当前位置:文档之家› 云计算实验报告

云计算实验报告

云计算实验报告
云计算实验报告

云计算原理课程

期末实践报告

题目:Linux集群、MapReduce和

CloudSim实践

成绩:

学号:

姓名:罗滔

登录邮箱:

任课老师:许娟

2016年11月12日

目录

实验一:AWS身份与访问管理(P2~P11)实验二:Amazon Relational Database Service(P11~P20)实验三:Hadoop实验报告(P21~)

AWS 管理控制台

使用 qwikLABS 登录 AWS 管理控制台

6. 在 AWS 管理控制台中,单击【服务/Services】,然后单击【IAM 或身份与访问管理/

IAM or Identity & Access Management】。

7. 在 IAM 控制台的左侧面板中,单击【用户/Users】。

8. 找到“userone”,然后单击其名称以显示有关该用户的详细信息。在用户详细信息中,找到有关该用户的以下三方面的信息:

a. 已向该用户分配了一个密码

b. 该用户不属于任何组

c. 目前没有任何策略与该用户关联(“附加到”该用户)

9. 现在,单击左侧导航窗格中的【组/Groups】。

本实验的 CloudFormation 模板还创建了三个组。在 IAM 控制台中的【用户/Users】仪表板中可以看到,

自动化 CloudFormation 脚本在创建这些组时为其提供了唯一的名称。这些唯一名称包含以下字符串:

“EC2support”

“EC2admin”

“S3admin”

完整组名的格式如下所示:

EC2support--GA9LGREA7X4S

从现在开始,我们在本实验中将使用上面这些简写名称来指代这些组。您可以在【组/Groups】仪表板中搜

索子字符串,以便为后续实验操作确定正确的组。

10. 单击“EC2support”对应的组名。其格式应与上面的类似。

11. 向下滚动至组详细信息页面中的【权限/Permissions】部分后,在【内联策略/Inline Policies】部分,

可以看到一个名称为“EC2supportpolicy”的策略与该组关联。

在策略中,您可以规定将允许或拒绝对特定 AWS 资源执行哪些操作。您可以使用自定义策略,或通过

选择 AWS 托管策略来使用一组预定义的权限。

12. 虽然我们不会更改此策略,但请单击【编辑策略/Edit Policy】,使其显示在一个窗口中,以便您进行查

看和滚动。

请留意 IAM 策略中语句的基本结构。“Action”部分指定了该服务内的 AWS 服务和功能。“Resource”部

分定义了该策略规则所涵盖的实体范围,而“Effect”部分则定义了所需结果。更多有关定义IAM 策略的

信息,请访问“AWS Identity and Access Management:权限和策略”文档页面。

13. 单击另外两个组(“EC2admin”和“S3admin”),查看附加到这两个组的策略。您现在能否识别出附加到这些组的策略所允许的权限

18. 完成后,再次单击左侧面板中的【组/Groups】。各组的【用户/Users】列中应显示“1”,表示各组中

的用户数。

设置自定义密码

替换和设置自定义密码

22.为“userone”设置一个密码,然后在临时的记事本文件中记下该密码。

24.重复上述步骤,为“usertwo”和“userthree”设置密码。

测试对 S3 的访问权限

您在本实验中使用的“awsstudent”用户所拥有的权限寥寥无几,例如,您可以访问 S3 仪表板,但无法查看

其中的存储桶。立即对此进行测试:

25. 在主 AWS 控制台上,单击【服务/Services】,然后单击【S3】。

26. 您应该会看到三个存储桶。尝试单击存储桶以查看其内容–您将无法查看其内容。

25.

28. 在主IAM 仪表板上,在【欢迎使用身份识别和访问管理/Welcome to Identity and Access Management】

下方,您将看到IAM 用户登录链接。复制此URL,然后将其粘贴到临时记事本文件中。

30.现在,您的记事本文件中应包含登录 URL、完整的“userthree”登录名和密码。在新的浏览器中,使用这些信息以“userthree”的身份登录。

31. 您应该会看到标准的 AWS 控制台。但是,在右上角,您的用户名不再是“awsstudent”,而是

“userthree”。

32. 现在,访问 S3 服务仪表板。您可以看到之前的三个存储桶,但现在,作为“S3admin”组的一部分,您可以查看这些存储桶、复制文件、创建新的存储桶和文件等。

实验二:Amazon Relational Database Service(P12~P21) 1.登录AWS 管理控制台

登录之后,返回qwik LAB网

2.创建 Relational Database Service (RDS) 实例要开始创建第一个 Amazon RDS 实例,您需要访问 Amazon 管理控制台上的 Amazon RDS 图标,然后使Relational Database Service 向导。

7.单击首页上的 Amazon RDS 图标并转到该控制面板。

8. 单击“Launch a Database Instance/启动数据库实例”按钮来启动 RDS 向导。

9. 单击 MySQL 数据库引擎类型对面的“Select/选择”按钮。

10. 看到该数据库是否用于生产目的的询问时,选择“开发测试”单选按钮,然后单击“Next Step/下一步”。

11. 在接下来的“DB Instance Details/指定数据库详细信息”屏幕上,按以下

内容进行设置:

a. DB Instance Class/数据库实例类

b. Multi--AZ Deployment/多可用区部署

c. Allocated Storage/分配的存储空间: 5

d. DB Instance Identifier/数据库实例标识符: RDSLab

e. Master Username:/主用户名 AWSMaster

f. Master Password/主密码: AWS12345

12. 单击“Next Step/下一步”。

13. 在接下来的“Additional Config/配置高级设置”屏幕上,按以下内容

进行设置:a. Database Name/数据库名称: RDSLab

b. Publically Accessible/公开访问: 否

c. VPC Security Group/VPC 安全组:选择包含文本“qlstack”的安全组

14. 在备份中,选择备份保留期为0 天。

15. 单击“Launch DB Instance/启动数据库实例”。

从亚马逊系统映像 (AMI)创建 Amazon Linux 实例

要开始创建第一个 Amazon 实例,您需要访问 Amazon 管理控制台上的 Amazon EC2 图标,然后使用向导。

16. 返回 AWS 管理控制台(它在浏览器中仍是打开的)。

17. 单击 AWS 管理控制台首页上的 EC2 图标。

18. 单击“Instances/实例”链接来创建实例。

19. 单击“Launch Instance/启动实例”按钮来开始该过程。

20. 在第一个对话窗.口中,步骤1:选择一个Amazon 系统映像,然后单击该AMI 旁边的“Select/选.”来选择Amazon Linux AMI 实例。

注意:确认是64 位的映像。

21. 步骤 2:使实例类型保留默认设置,即。要继续,则单击“Next: Configure Instance Details/下一

步:配置实例详细信息”。

22. 步骤 3:Configure Instance Details/配置实例详细信息,我们将保留所有默认选项,并单击“Next:

Add Storage/下一步:添加存储”。

23. 步骤4:Add Storage/添加存储,保留默认虚拟拟硬。单击“Next: Tag Instance/下一步:标签实例”。

注意:您可以在此轻松增加更多虚拟硬盘或更改硬盘大小。

24. 步骤5:Tag Instance/标.实例,使标签实例界面为实例命名。您将注意到左边文本框填充了标签的名字为Name,右边.文本框为空。在空文,键入名称,例如“EC2 Free Lab”并单击“Next: Configure

Security Group/下一步:配置安全组。

25.步骤6:Configure Security Group/配置安全组,接受默认安全组,因为它允许通过端口 22 (SSH) 从任意位置连接此 Linux 实例,单击“Review and Launch/审核和启.

26.步骤7:通过“Review Instance Launch/审核和启.动”,您可以获取全部设置的概览。。单击“Launch/启动”以继续。

27.QwikLab 自动.您生成的密钥.应.自动填第二个下拉框。

28.单击“acknowledgement/确认”复选框,声明。

29.现在,单. “Launch Instance/启.实例。

30.单击“View Instances/查看实例。

40. 将ec2--user@ 键入Host Name 字段,然后将您复制到剪贴板板的连接字符串粘贴到42. 单击单词“Auth”选择“Auth”类(而不是单词“Auth”旁边的 + 符号)。

43. 单击“Browse”。

44. 浏览到您稍早在本实验中保存 .ppk 文件的位置。

45. 选择您下载的 .ppk 文件。

46. 单击“Open”。

47. 在 PuTTY 客户端,单击“Open”。

48. 出现提示时,单击“Yes”允许 PuTTY 缓存服务器的主机键。

您已成功登录了Linux 主机!

50. 回到RDS 页面,选中并展开之前创建的RDS 实例。

50.

51. 回到Linux EC2 主机的终端,输入以下命令:$ mysql –h --p –uAWSMaster

52. 在密码的提示符下输入AWS12345

53. 然后在mysql> 提示符下输入show databases; 并检查结果。

54. 您现在已将 MySQL 客户端连接到您新创建的 RDS 实例。恭喜您!

Hadoop云计算实验报告(P21-)

1、实验目的

在虚拟机Ubuntu上安装Hadoop单机模式和集群;

编写一个用Hadoop处理数据的程序,在单机和集群上运行程序。

2、实验环境

虚拟机:VMware 9

操作系统:

Hadoop和Jdk和Eclipse

Hadoop集群:一台namenode主机master,一台datanode主机salve,

3、主要设计思路

在ubuntu操作系统下,安装必要软件和环境搭建,使用eclipse编写程序代码。实现大数据的统计。本次实验是统计软件代理系统操作人员处理的信息量,即每个操作人员出现的次数。

4、算法设计

该算法首先将输入文件都包含进来,然后交由map程序处理,map程序将输入读入后切出其中的用户名,并标记它的数目为1,形成的形式,然后交由reduce处理,reduce将相同key值(也就是word)的value值收集起来,形成的形式,之后再将这些1值加起来,即为用户名出现的个数,最后将这个对以TextOutputFormat的形式输出到HDFS中。

5、安装实验环境

安装ubuntu操作系统

1)打开VMware,在Home tab中单击“Create a New Virtual Machine”,

2)选择custom,选择虚拟硬件版本,选择ios文件,next,

3)录入目标操作系统信息,包括Full name、Uer name和Password, next,

4)选择默认的选项,一般不做更改,最后确认信息,Finish,

5)安装成功后,会看到如下画面,

安装配置Samba

安装samba主要为了实现与windows操作系统的通讯,由于server版本的ubuntu没有自带图形操作界面,所以下载资料等操作不太方便,这也是安装samba的目的之一。

1)安装samba,输入如下命令:

2)安装vim

3)创建共享目录,并修改权限

4)配置samba。修改samba的配置文件/etc/samba/ ,将security=share,并在文件的末尾追加如下内容,

5)测试。在windows实机中,通过ip访问ubuntu虚拟机,可以见到share文件夹

安装配置JDK

首先,下载java开发工具包JDK。在本次试验中,我们下载的版本是。解压安装到/usr/lib/jvm/目录下,更名为java-7-sun。

配置环境变量/etc/environment,

使配置生效

测试安装配置结果

在单节点(伪分布式)环境下运行HADOOP

1)添加Hadoop用户并赋予sudo权限

2)安装配置SSH

切换至hadoop用户,

配置密钥,使得hadoop用户能够无须输入密码,通过SSH访问localhost,

测试结果:

3)安装配置Hadoop

首先下载Hadoop,解压缩到/opt/hadoop目录下,更改目录名称为hadoop。

修改与hadoop相关的配置文件(在/opt/hadoop/conf目录下),分别是, , , 。在此不一一列举。

4)运行Hadoop

首先格式化HDFS,

启动单节点集群,

通过jps查看,

master

slave

停止单节点集群,

在多节点(分布式)环境下运行HADOOP

1)设置/etc/hosts文件

2)设置节点之间无密码SSH登陆

验证配置SSH是否正确

3)修改集群配置文件

修改master的masters、slaves,修改所有节点的, , ,在此不一一列出。

4)在master上格式化HDFS

5)启动和停止集群

启动集群,

在master上启动HDFS后,jps结果如下:

master

slave

在master上启动mapreduce后,jps结果如下:

master

slave

停止集群

6、运行程序

1.在单机上运行程序

(1)在Eclipse下,新建map/reduce工程

(2)新建一个java类UserNameCount,编写代码

(3)运行程序,结果如下:

(4)在eclipse中编译好源代码后,导出程序的jar包,供在集群上使用。

2.在集群上运行程序

(1)启动集群,通过jps命令查看master,slave上启动的服务列表,结果如下:

(2)在集群环境下运行该程序jar包(),结果如下:

(3)查看集群环境下启动程序生成的结果,即output文件,结果如下:

(4)数据统计结果在part-r-00000中,具体内容如下,

7、源代码:

package hadoop;

public class UserNameCount {

public static class UserNameCountMap extends

Mapper {

private final IntWritable one = new IntWritable(1);

private Text word = new Text();

public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {

String line = ();

StringTokenizer token = new StringTokenizer(line);

while ()) {

());

(word, one);

}

}

}

public static class UserNameCountReduce extends

Reducer {

public void reduce(Text key, Iterable values,

Context context) throws IOException, InterruptedException { int sum = 0;

for (IntWritable val : values) {

sum += ();

}

(key, new IntWritable(sum));

}

}

public static void main(String[] args) throws Exception { Configuration conf = new Configuration();

Job job = new Job(conf);

;

("usernamecount");

;

;

;

;

;

;

(job, new Path(args[0]));

(job, new Path(args[1]));

(true);

}

}

“材料科学与工程导论”——课程教学大纲

北京工业大学 “材料科学与工程导论”——课程教学大纲 英文名称:Introduction to Materials Science and Engineering 课程编号:0000274 课程类型:学科基础必修课 学时:32 学分:2.0 适用对象:材料类本科生 先修课程:大学物理、高等数学、工程力学 使用教材及参考书: [1] 许并社,材料科学概论,北京工业大学出版社,2002 [2] 冯端、师昌绪、刘治国,材料科学导论,化学工业出版社,2002 [3] 张钧林、严彪、王德平、袁华,材料科学基础,化学工业出版社,2006 [4] 周达飞,材料概论,化学工业出版社,2001 [5] William D. Callister, David G. Rethwisch, Fundamentals of Materials Science and Engineering: An Integrated Approach, John Wiley & Sons INC, 2008 [6] 美国国家研究委员会,90年代的材料科学与材料工程,航空工业出版社,1992 [7] 李恒德、师昌绪,中国材料发展现状及迈入新世纪对策,山东科学技术出版 社,2002 一、课程性质、目的和任务 《材料科学与工程导论》是面向材料学院二年级本科生开设的专业基础必修课。其目的是使学生了解材料科学在经济社会发展中的作用以及材料科学与工程学的形成与学科发展趋势。以材料“四要素”及其相互关系为中心,使学生建立从材料设计、组织控制、制备加工到性能评价与工程应用的概念体系,在掌握材料共性规律与特点的基础上,使学生理解材料科学与工程内涵,学会分析材料问题的方法。以案例的形式,介绍典型金属及无机非金属的结构与功能材料的研究规律,强化学生对“四要素”的理解。 二、课程教学内容及要求

hadoop实验报告

基于hadoop的大规模文本处理技术实验专业班级:软件1102 学生姓名:张国宇 学号: Setup Hadoop on Ubuntu 11.04 64-bit 提示:前面的putty软件安装省略;直接进入JDK的安装。 1. Install Sun JDK<安装JDK> 由于Sun JDK在ubuntu的软件中心中无法找到,我们必须使用外部的PPA。打开终端并且运行以下命令: sudo add-apt-repository ppa:ferramroberto/java sudo apt-get update sudo apt-get install sun-java6-bin sudo apt-get install sun-java6-jdk Add JAVA_HOME variable<配置环境变量>: 先输入粘贴下面文字: sudo vi /etc/environment 再将下面的文字输入进去:按i键添加,esc键退出,X保存退出;如下图: export JAVA_HOME="/usr/lib/jvm/java-6-sun-1.6.0.26" Test the success of installation in Terminal<在终端测试安装是否成功>: sudo . /etc/environment

java –version 2. Check SSH Setting<检查ssh的设置> ssh localhost 如果出现“connection refused”,你最好重新安装 ssh(如下命令可以安装): sudo apt-get install openssh-server openssh-client 如果你没有通行证ssh到主机,执行下面的命令: ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys 3. Setup Hadoop<安装hadoop> 安装 apache2 sudo apt-get install apache2 下载hadoop: 1.0.4 解压hadoop所下载的文件包: tar xvfz hadoop-1.0.4.tar.gz 下载最近的一个稳定版本,解压。编辑/ hadoop-env.sh定义java_home “use/library/java-6-sun-1.6.0.26”作为hadoop的根目录: Sudo vi conf/hadoop-env.sh 将以下内容加到文件最后: # The java implementation to use. Required. export JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.26

基本测量实验报告

基本测量(实验报告格式) 一、实验项目名称实验一:长度和 圆柱体体积的测量实验二:密度的 测量 二、实验目的实 验一目的: 1、掌握游标的原理,学会正确使用游标卡尺。 2、了解螺旋测微器的结构和原理,学会正确使用螺旋测 微器。 3、掌握不确定度和有效数字的概念,正确表达测量结果。实验二目的: 1、掌握物理天平的正确使用方法。 2、用流体静力称量法测定形状不规则的固体的密度。 3、掌握游标卡尺,螺旋测位器,物理天平的测量原理及正确使用方法 4、掌握不确定度和有效数字的概念,正确表达测量结果 5、学会直接测量量和间接测量量的不确定度的计算,正确表达测量结果

三、实验原理 实验一原理: 1、游标卡尺的使用原理 游标副尺上有n个分格,它和主尺上的(n-1)格分格的总长度相等,一般主尺上每一分格的长度为1mm,设游标上每一个分格的长度为x,则有nx=n-1,主尺上每一分格与游标上每一分格的差值为1-x= (mm)是游标卡尺的最小读数,即游标卡尺的分度值。若游标上有20个分格,则该游标卡尺的分度值为=0.05mm,这种游标卡尺称为20分游标卡尺;若游标上有50个分格,其分度值为=0.02mm,称这种游标卡尺为50分游标卡尺。 2、螺旋测微器的读数原理: 螺旋测微器是依据螺旋放大的原理制成的,即螺杆在螺母中旋转一周,螺杆便沿着旋转轴线方向前进或后退一个螺距的距离。因此,沿轴线方向移动的微小距离,就能用圆周上的读数表示出来。 3、当待测物体是一直径为 d、高度为 h 的圆柱体时, 物体的体积为:V=π 4 ? d2?h只要用游标卡尺测出高度 h,用螺旋测微器测出直径d,代

LINUX实验报告

实验报告 ( 2014/ 2015 学年第一学期) 课程名称操作系统A 实验名称文件系统 实验时间2014 年12 月8 日指导单位计算机学院计算机科学与技术系 指导教师徐鹤 学生姓名王生荣班级学号B12040809 学院(系) 计算机学院专业软件工程

实验名称文件系统指导教师徐鹤 实验类型设计实验学时 2 实验时间2014.12.08 一、实验目的和要求 1. 学习LINUX系统下对文件进行操作的各种命令和图形化界面的使用方法。 2. 深入学习和掌握文件管理系统的基本原理和LINUX等操作系统下常用的系统调用,编写一个使用系统调用的例程。 3.实现一个文本文件的某信息的插入和删除 4.实现一个记录文件的某记录的插入和删除 二、实验环境(实验设备) Windows XP + VMWare + RedHat Linux 8

三、实验过程描述与结果分析 1. 目录/proc下与系统相关的文件和目录 (1) /proc/$pid/fd:这是一个目录,该进程($PID号码进程)每个打开的文件在该目录下有一个对应的文件。 例如:#ls /proc/851/fd 0 1 2 255 这表示,851号进程目前正在使用(已经打开的)文件有4个,它们的描述符分别是0、1、2、255。其中,0、1、2 依次分别是进程的标准输入、标准输出和标准错误输出设备。 (2)/proc/filesystems:该文件记录了可用的文件系统类型。 (3)/proc/mounts:该记录了当前被安装的文件系统信息 例如:#cat /proc/mount (4)/proc/$pid/maps:该文件记录了进程的映射内存区信息。 例如:#cat /proc/851/maps 2.常用命令讲解 ls 命令 用来查看用户有执行权限的任意目录中的文件列表,该命令有许多有趣的选项。例如: $ ls -liah * 22684 -rw-r--r-- 1 bluher users 952 Dec 28 18:43 .profile

Hadoop云计算实验报告

Hadoop云计算实验报告

Hadoop云计算实验报告 1实验目的 在虚拟机Ubuntu上安装Hadoop单机模式和集群; 编写一个用Hadoop处理数据的程序,在单机和集群上运行程序。 2实验环境 虚拟机:VMware 9 操作系统:ubuntu-12.04-server-x64(服务器版),ubuntu-14.10-desktop-amd64(桌面版)Hadoop版本:hadoop 1.2.1 Jdk版本:jdk-7u80-linux-x64 Eclipse版本:eclipse-jee-luna-SR2-linux-gtk-x86_64 Hadoop集群:一台namenode主机master,一台datanode主机salve, master主机IP为10.5.110.223,slave主机IP为10.5.110.207。 3实验设计说明 3.1主要设计思路 在ubuntu操作系统下,安装必要软件和环境搭建,使用eclipse编写程序代码。实现大数据的统计。本次实验是统计软件代理系统操作人员处理的信息量,即每个操作人员出现的次数。程序设计完成后,在集成环境下运行该程序并查看结果。 3.2算法设计 该算法首先将输入文件都包含进来,然后交由map程序处理,map程序将输入读入后切出其中的用户名,并标记它的数目为1,形成的形式,然后交由reduce处理,reduce 将相同key值(也就是word)的value值收集起来,形成的形式,之后再将这些1值加起来,即为用户名出现的个数,最后将这个对以TextOutputFormat 的形式输出到HDFS中。 3.3程序说明 1) UserNameCountMap类继承了org.apache.hadoop.mapreduce.Mapper,4个泛型类 型分别是map函数输入key的类型,输入value的类型,输出key的类型,输出value 的类型。 2) UserNameCountReduce类继承了org.apache.hadoop.mapreduce.Reducer,4个泛 型类型含义与map类相同。 3) main函数通过addInputPath将数据文件引入该类,在通过setOutputPath将生成 结果转为一个文件,实现生成结果,即统计结果的查看。 FileInputFormat.addInputPath(job, new Path(args[0])); FileOutputFormat.setOutputPath(job, new Path(args[1])); 程序具体代码如附件中源程序。

Hadoop云计算平台实验报告V1.1

Hadoop云计算平台实验报告V1.1

目录 1实验目标 (3) 2实验原理 (4) 2.1H ADOOP工作原理 (4) 2.2实验设计 (6) 2.2.1可扩展性 (6) 2.2.2稳定性 (7) 2.2.3可靠性 (7) 3实验过程 (9) 3.1实验环境 (9) 3.1.1安装Linux操作系统 (10) 3.1.2安装Java开发环境 (14) 3.1.3安装SSH (15) 3.1.4配置网络 (15) 3.1.5创建SSH密钥安全联机 (19) 3.1.6配置Hadoop云计算系统 (19) 3.1.7配置Slaves节点 (23) 3.1.8格式化Hadoop系统 (23) 3.1.9启动Hadoop集群 (23) 3.22.实验过程 (25) 3.2.1可扩展性 (25) 3.2.1.1动态扩展 (25) 3.2.1.2动态缩减 (27) 3.2.2稳定性 (28) 3.2.3可靠性 (31) 3.2.4MapReduce词频统计测试 (32) 4实验总结 (35)

1. 掌握Hadoop安装过程 2. 理解Hadoop工作原理 3. 测试Hadoop系统的可扩展性 4. 测试Hadoop系统的稳定性 5. 测试Hadoop系统的可靠性

2.1Hadoop工作原理 Hadoop是Apache开源组织的一个分布式计算框架,可以在大量廉价的硬件设备组成集群上运行应用程序,为应用程序提供一组稳定可靠的接口,旨在构建一个具有高可靠性和良好扩展性的分布式系统。Hadoop框架中最核心的设计就是:MapReduce和HDFS。MapReduce 的思想是由Google的一篇论文所提及而被广为流传的,简单的一句话解释MapReduce就是“任务的分解与结果的汇总”。HDFS是Hadoop分布式文件系统(Hadoop Distributed File System)的缩写,为分布式计算、存储提供了底层支持。 HDFS采用C/S架构,对外部客户机而言,HDFS就像一个传统的分级文件系统。可以对文件执行创建、删除、重命名或者移动等操作。HDFS中有三种角色:客户端、NameNode和DataNode。HDFS的结构示意图见图1。 NameNode是一个中心服务器,存放着文件的元数据信息,它负责管理文件系统的名字空间以及客户端对文件的访问。DataNode节点负责管理它所在节点上的存储。NameNode对外暴露了文件系统的名字空间,用户能够以文件的形式在上面存储数据。从内部看,文件被分成一个或多个数据块,这些块存储在一组DataNode上,HDFS通过块的划分降低了文件存储的粒度,通过多副本技术和数据校验技术提高了数据的高可靠性。NameNode执行文件系统的名字空间操作,比如打开、关闭、重命名文件或目录。它也负责确定数据块到具体DataNode节点的映射。DataNode负责存放数据块和处理文件系统客户端的读写请求。在NameNode的统一调度下进行数据块的创建、删除和复制。

linux操作系统实验报告

LINUX操作系统实验报告 姓名 班级学号 指导教师 2011 年 05月 16 日 实验一在LINUX下获取帮助、Shell实用功能 实验目的: 1、掌握字符界面下关机及重启的命令。 2、掌握LINUX下获取帮助信息的命令:man、help。 3、掌握LINUX中Shell的实用功能,命令行自动补全,命令历史记录,命令的排列、替

换与别名,管道及输入输出重定向。 实验容: 1、使用shutdown命令设定在30分钟之后关闭计算机。 2、使用命令“cat /etc/cron.daliy”设置为别名named,然后再取消别名。 3、使用echo命令和输出重定向创建文本文件/root/nn,容是hello,然后再使用追加重定向输入容为word。 4、使用管道方式分页显示/var目录下的容。 5、使用cat显示文件/etc/passwd和/etc/shadow,只有正确显示第一个文件时才显示第二个文件。 实验步骤及结果: 1.用shutdown命令安全关闭系统,先开机在图形界面中右击鼠标选中新建终端选项中输入 命令Shutdown -h 30 2、使用命令alias将/etc/cron.daliy文件设置为别名named,左边是要设置的名称右边是要更改的文件。查看目录下的容,只要在终端输入命令即可。取消更改的名称用命令unalias 命令:在命令后输入要取消的名称,再输入名称。 3.输入命令将文件容HELLO重定向创建文本文件/root/nn,然后用然后再使用追加重定向输入容为word。步骤与输入容HELLO一样,然后用命令显示文件的全部容。 4.使用命令ls /etc显示/etc目录下的容,命令是分页显示。“|”是管道符号,它可以将多个命令输出信息当作某个命令的输入。

linux实验报告

实验一 实验名称:Linux 基本命令的使用 实验时间:2学时 实验目的:熟练使用Linux字符界面、窗口系统的常用命令。 实验内容 (一)Linux操作基础 1.重新启动linux或关机(poweroff,shutdown,reboot,init 0,init 6) 2.显示系统信息(uname),显示系统日期与时间,查看2014年日历(date,cal) ①uname:查看系统与内核相关信息 uname -asrmpi 参数: -a :所有系统相关的信息; -s: 系统内核名称; -r: 内核的版本; -m:本系统的硬件名称,如i686或x86_64; -p: CPU的类型,与-m类似,只是显示的是CPU的类型; -i :硬件的平台(ix86). ②date:显示日期的命令 ③cal:显示日历 单独cal:列出当前月份的日历 cal 2014:列出2014年的日历 cal 5 2014:列出2014年五月的目录 3.使用帮助命令(man,help) ①man:是manual(操作说明)的简写,是在线帮助系统 man后跟某个命令就会详细说明此命令,例如:man man就会详细说明man 这个命令的用法; ②help:也是帮助命令,一般会在命令后,例如:cd --help 就会列出cd命令的使用说明。 4.查看当前登陆用户列表(who),显示当前用户(whoami) ①who:显示目前已登录在系统上面的用户信息; ②whoami:查询当前系统账户 5.建立一个新用户mytest,设定密码(useradd,passwd) ①useradd mytest(建立新用户mytest);

实验报告基本测量

实验题目: 基本测量 1、实验目的 (1)掌握游标卡尺的读数原理和使用方法,学会测量不同物体的长度。 (2)掌握千分尺(螺旋测微器)和物理天平的使用方法。 (3)测量规则固体密度。 (4)测量不规则固体密度。 (5)学会正确记录和处理实验数据,掌握有效数字记录、运算和不确定度估算。 2、实验仪器(在实验时注意记录各实验仪器的型号规格 游标卡尺(量程:125mm ,分度值:0.02mm ,零点读数:0.00m m)、螺旋测微计(量程:25mm ,分度值:0.01mm ,零点读数:-0.005)、物理天平(量程:500g ,感量:0.05g )、温度计(量程:100℃,分度值:1℃)。 3、实验原理 1、固体体积的测量 圆套内空部分体积V 空=πd 2 内H /4 圆筒材料的体积V =圆筒壁的体积= H )d D (4 22 ?-π 其相对不确定度计算公式为: 22 2122212 212 22221222)(?? ? ??+???? ??-+???? ??-=h U D D U D D D U D V U h D D V 不确定度为:V U V U V V ?= ①游标卡尺的工作原理 游标卡尺是利用主尺和副尺的分度的微小差异来提高仪器精度的。如图1所示的“十分游标”,主尺上单位分度的长度为1mm ,副尺的单位分度的长度为0.9mm ,副尺有10条刻度,当主、副尺上的零线对齐时,主、副尺上第n(n 为小于9的整数) 条刻度相距为n ×0.1=0.n mm ,当副尺向右移动0.n mm 时,则副尺上第n 条刻度和主尺上某刻度对齐。由此看出,副尺移动距离等于0.1mm 的n 倍时都能读出,这就是“十分游标”能把仪器精度提高到0.1mm 的道理。 钢珠(球)的体积3 3634D r V ππ== ②螺旋测微计的工作原理 如图2所示,A 为固定在弓形支架的套筒,C 是螺距为0.5mm 的螺杆,B 为活动套筒,它和测微螺杆连在一起。活动套筒旋转一周,螺杆移动0.5mm 。活动套筒左端边缘沿圆周刻有50个分度, 当它转过1分度,螺杆移动的距离δ=0.5/50=0.01mm ,这样,螺杆移动0.01mm 时,就能准确读出。 ③移测显微镜 移测显微镜的螺旋测微装置的结构和工作原理与螺旋测微计相似,所以能把仪器精度提高到0.01mm 。由于移测显微镜能将被测物体放大,因而物体上相距很近的两点间的距离也能测出。 2、固体和液体密度的测量 (1)流体静力称衡法 ①固体密度的测定,设用物理天平称衡一外形不规则的固体,称得其质量为m ,然后将此固体完全浸入水中称衡,称得其质量为m 1,水的密度为ρ0,则有: ρ固=m ρ0/(m -m 1)

云计算实验报告

期末实践报告 题目:Linux集群、MapReduce和 CloudSim实践 成绩: 学号:161440119 姓名:罗滔 登录邮箱:750785185@https://www.doczj.com/doc/b514365774.html, 任课老师:许娟 2016年11月12日 目录 实验一:AWS身份与访问管理(P2~P11)实验二:Amazon Relational Database Service(P11~P20) 实验三:Hadoop实验报告(P21~)

AWS 管理控制台 使用 qwikLABS 登录 AWS 管理控制台 6. 在 AWS 管理控制台中,单击【服务/Services】,然后单击【IAM 或身份与访问管理/ IAM or Identity & Access Management】。 7. 在 IAM 控制台的左侧面板中,单击【用户/Users】。

8. 找到“userone”,然后单击其名称以显示有关该用户的详细信息。在用户详细信息中,找到有关该用户的以下三方面的信息: a. 已向该用户分配了一个密码 b. 该用户不属于任何组 c. 目前没有任何策略与该用户关联(“附加到”该用户)

9. 现在,单击左侧导航窗格中的【组/Groups】。 本实验的 CloudFormation 模板还创建了三个组。在 IAM 控制台中的【用户/Users】仪表板中可以看到, 自动化 CloudFormation 脚本在创建这些组时为其提供了唯一的名称。这些唯一名称包含以下字符串: “EC2support” “EC2admin” “S3admin” 完整组名的格式如下所示: arn:aws:iam::596123517671:group/spl66/qlstack2--labinstance--47090--666286a4--f8c--EC2support--GA9LGREA 7X4S 从现在开始,我们在本实验中将使用上面这些简写名称来指代这些组。您可以在【组/Groups】仪表板中搜 索子字符串,以便为后续实验操作确定正确的组。 10. 单击“EC2support”对应的组名。其格式应与上面的类似。 11. 向下滚动至组详细信息页面中的【权限/Permissions】部分后,在【内联策略/Inline Policies】部分, 可以看到一个名称为“EC2supportpolicy”的策略与该组关联。 在策略中,您可以规定将允许或拒绝对特定 AWS 资源执行哪些操作。您可以使用自定义策略,或通过 选择 AWS 托管策略来使用一组预定义的权限。 12. 虽然我们不会更改此策略,但请单击【编辑策略/Edit Policy】,使其显示在一个窗口中,以便您进行查 看和滚动。 请留意 IAM 策略中语句的基本结构。“Action”部分指定了该服务内的 AWS 服务和功能。“Resource”部 分定义了该策略规则所涵盖的实体范围,而“Effect”部分则定义了所需结果。更多有关定义 IAM 策略的 信息,请访问“AWS Identity and Access Management:权限和策略”文档页面。

(完整精品)大学物理实验报告之长度基本测量

大学物理实验报告 姓名 学号 学院 班级 实验日期 2017 年5 月23日实验地点:实验楼B411室 【实验原理】 1、游标卡尺构造及读数原理 游标卡尺主要由两部分构成,如(图1)所示:在一毫米为单位的主尺上附加一个能够滑动的有刻度的小尺(副尺),叫游标,利用它可以把主尺估读的那位数值较为准确地读出来。 图1

游标卡尺在构造上的主要特点是:游标上N 个分度格的总长度与主尺上(N -1)个分度格的长度相同,若主尺上最小分度为a ,游标上最小分度值为b ,则有 1()Nb N a =-(式1) 那么主尺与游标上每个分格的差值(游标的精度值或游标的最小分度值)是: 11 N a b a a a N N δ-=-=-=(式2) 图2 常用的游标是五十分游标(N =50),即主尺上49mm 与游标上50格相当,见图2–7。五十分游标的精度值δ=0.02mm 。游标上刻有0、l 、2、3、…、9,以便于读数。 毫米以上的读数要从游标“0”刻度线在主尺上的位置读出,毫米以下的数由游标(副尺)读出。 即:先从游标卡尺“0”刻度线在主尺的位置读出毫米的整数位,再从游标上读出毫米的小数位。 游标卡尺测量长度的普遍表达式为 l ka n δ=+(式3) 式中,k 是游标的“0”刻度线所在处主尺刻度的整刻度(毫米)数,n 是游标的第n 条线与主尺的某一条线重合,a =1mm 。图3所示的情况,即l =21.58mm 。 图3 在用游标卡尺测量之前,应先把量爪A 、B 合拢,检查游标的“0”刻度线是否与主尺的“0”刻度线重合。如不重合,应记下零点读数,加以修正,即待测量l=l 1-l 0。其中,l 1为未作零点修正前的读数值,l 0为零点读数。l 0可以正,也可以负。 使用游标卡尺时,可一手拿物体,另一手持尺,如图4所示。要特别注意保护量爪不被磨损。使用时轻轻把物体卡住即可读数。 图4

Linux实验报告

燕山大学 Linux技术上机实验指导

实验一Linux系统安装与简单配置 一、实验目的 1.掌握Linux系统安装的分区准备。 2.掌握Linux系统的安装步骤。 3.掌握Linux系统分区的挂载和卸载。 4.掌握Linux系统的启动和关闭操作。 二、实验内容 1.安装VMware虚拟机,设置光盘驱动器,为Linux系统安装做准备。2.在虚拟机下安装Linux操作系统(如Ubuntu桌面版本)。 3.配置Linux系统运行环境。 4.利用空闲分区创建新的Linux系统分区。 5.将新的Linux系统分区挂载到系统中;卸载新挂载的分区,重新挂载到目录树中的其他位置。 三、主要的实验步骤 1.制定安装系统的分区计划。 2.配置光驱引导镜像文件iso,启动系统,开始安装过程。 3.根据安装计划,对磁盘空间进行分区设置。 4.根据系统安装指导,完成Linux系统的安装过程。 5.安装成功后,退出系统,重新启动虚拟机,登陆Linux操作系统。6.对Linux系统进行配置,如网络设备等。 7.利用磁盘使用工具和mount,将新创建的Linux系统分区挂载到系统中。将新挂载的分区卸载,并重新挂载到目录树的其他位置。

实验二Linux常用命令使用 一、实验目的 1.掌握Linux一般命令格式。 2.掌握有关文件和目录操作的常用命令。 3.熟练使用man命令。 二、实验内容 1.熟悉cd、date、pwd、cal、who、echo、clear、passwd等常用命令。2.在用户主目录下对文件进行操作:复制一个文件、显示文件内容、查找指定内容、排序、文件比较、文件删除等。 3.对目录进行管理:创建和删除子目录、改变和显示工作目录、列出和更改文件权限、链接文件等。 4.利用man命令显示date、echo等命令的手册页。 5.显示系统中的进程信息。 三、主要实验步骤 1.登陆进入系统,修改个人密码。 2.使用简单命令:date、cal、who、echo、clear等,了解Linux命令格式。

虚拟化与云计算实验报告.

实验报告 课程名称虚拟化与云计算学院计算机学院 专业班级11级网络工程3班学号3211006414 姓名李彩燕 指导教师孙为军 2014 年12 月03日

EXSI 5.1.0安装 安装准备 安装VSPHERE HYPERVISOR SEVER(EXSI 5.1.0)需要准备: 无操作系统的机器(如有系统,安装过程中会格式化掉),需切换到光盘启动模式。BOIS中开启虚拟化设置(virtualization设置成enable) VMware vSphere Hypervisor 自启动盘 安装过程 1.安装VMware vSphere Hypervisor确保机器中无操作系统,并且设置BIOS到光盘启 动模式 2.插入光盘,引导进入安装界面。 3.选择需要安装在硬盘 4.选择keyboard 类型,默认US DEFAULT

5.设置ROOT的密码 6.安装完毕后,请注意弹出光盘。然后重启。 7.F2进入系统配置界面。

8.选择到Configure management network去配置网络。

9.配置完毕后,注意重启网络以使设置生效,点击restart management network,测 试网络设置是否正确,点test management network。至此,sever端安装完毕。配置 1.添加机器名:在DNS服务器上添加相关正反解析设置。 2.License设置:Vsphere client登陆后,清单→配置→已获许可的功能→编辑 输入license

3.时间与NTP服务设置:Vsphere client登陆后,清单→配置→时间配置→属性 钩选上NTP客户端 选项中,NTP设置设添加NTP服务器,然后在常规中开启NTP服务

LINUX的FTP实验报告

LINUX的FTP实验报告 实验需求:为了实现文件传输,共享资源 实验环境:一台centos和一台XP客户机 实验步骤:首先打开centos再将安装光盘挂载上,输入命令“rpm -qa|grep vsftpd”查看是否有此软件,如果没有进入到光盘的挂载目录,然后输入命令“rpm -ivh vsftpd(然后使用补全)”,如图1所示,安装软件完成 图1 下面我们到配置文件中设置一下,输入命令“vi /etc/vsftpd/”就出现如图2所示,用末行模式加上行号

图2 我们将文件中的第27和31行启用,就是把前面的#删除即可,然后在31行下面写上“anon_other_write_enable=YES”这一行的意思是给匿名用户删除权限,第27行是给匿名用户上传权限,31行是给匿名用户创建、修改文件夹权限,如图3所示,修改完成后保存退出

图3 然后我们再到“/var/ftp/”下将pub文件夹的其它用户权限设为读、写、执行,输入命令“chmod o+w pub”如图4所示 图4 下面我们将两台虚拟机网段设置成3,将centos的IP设置为将XP的IP设置为如图5-1,5-2所示,都点击确定完成设置

图5-1

图5-2 然后我们在XP上测试一下网络是否畅通,如图6所示网络畅通 图6

下面我们到centos上启动FTP服务,输入命令“service vsftpd restart”, ,我们启动成功,下面我们到XP上测试,我们的设置是否生效,如图7所示,我们访问成功 图7 我们测试一下上传和删除功能,如图8-1,8-2所示,设置生效,我们实验成功

Hadoop云计算实验报告

云计算实验报告Hadoop 云计算实验报告Hadoop 实验目的1在虚拟机上安装单机模式和集群;Ubuntu Hadoop编写一个用处理数据的程序,在单机和集群上运行程序。Hadoop 实验环境2虚拟机:9VMware(桌面(服务器版),操作系统: -desktop--server-x64amd64ubuntu-14.10ubuntu-12.04 版)版本: 1.2.1hadoop Hadoop版本: x647u80-linuxJdk -jdk-版本:x86_64-gtk-jee-luna-SR2-linuxEclipse eclipse-,主机集群:一台主机,一台mastersalve datanodeHadoop namenode 。,主机为主机为master IP IP 10.5.110.22310.5.110.207slave 实验设计说明3 主要设计思路 3.1 eclipse编写程序代码。实现在ubuntu操作系统下,安装必要软件和环境搭建,使用大数据的统计。本次实验是统计软件代理系统操作人员处理的信息量,即每个操作人员出现的次数。程序设计完成后,在集成环境下运行该程序并查看结果。算法设计 3.2 程序将输入读入后该算法首先将输入文件都包含进来,然后交由map程序处理,map处理,切出其中的用户名,并标记它的数目为1,形成的形式,然后交由reduce值收集起来,形成的形式,(reduce将相同key值也就是word)的value1值加起来,即为用户名出现的个数,最后将这个对以之后再将这些中。的形式输出到HDFSTextOutputFormat 程序说明 3.3 4个泛型类类继承了1)UserNameCountMap org.apache.hadoop.mapreduce.Mapper,的类型,输出的类型,输入value的类型,输出key函数输入型分别是map key value的类型。个泛,4org.apache.hadoop.mapreduce.ReducerUserNameCountReduce2)类继承了 类相同。map型类型含义与

凝聚态物理学

《凝聚态物理学》教学大纲 课程英文名称:Condensed matter physics 课程编号:0322203002 课程计划学时:48 学分:3 课程简介:本课程为专业基础课。凝聚态物理学是由固体物理学逐渐演变而来的, 为了对凝聚物质的前沿问题的了解及掌握非常必要开设“填补传统固体物理学领域与凝聚态物理学前沿研究课题之间的沟鸿”的凝聚态物理学。通过该课程的学习,学生可以掌握凝聚态物理的基本理论与基本方法,能提高本科生分析和解决实际物理问题的能力,为磁性材料物理本科生后续的材料物理专业实验课程学习和毕业论文阶段的理论基础,并掌握初步的解决问题方法。 让学生掌握凝聚物质的结构,各种物质结构中的波的行为,键、能带,相变与有序相等内容。为后续毕业论文(计算材料学方向)打好坚实的理论基础及提高实验现象的理论分析能力。 一、课程教学内容及教学基本要求 0绪论综览 本编重点: 1)了解物质世界的层次化,凝聚态物理学的研究范围,凝聚态物理学的历史透视与概念框架。 2) 理解量子力学与经典物理的采用方法上的界限(即量子简并温度)。 难点:量子简并温度,凝聚现象。 本章学时:2学时 教学形式:讲授 教具:投影仪,黑板,粉笔 第一节0.1物质世界的层次化;0.2凝聚态物理学的范围;0.3 凝聚态物理学的历史透视与概念框架 本节要求:了解:物质世界的层次化(20世纪的物理学,简单性与复杂性,层展现象);凝聚态物理学的范围(理论方法:量子力学与经典物理,经典现象,有序化);凝聚态物理学的历史透视与概念框架(固体物理学的范式,键与能带—从单电子近似走向关联电子态,合作现象及其他,凝聚态物理学范式) 1物质世界的层次化(了解);凝聚态物理学的范围(了解); 2凝聚态物理学的历史透视与概念框架(了解)。 第一编凝聚物质的结构 本编重点:

Linux 及其使用环境实验报告

计算机语言与程序设计上机实验报告 学号:姓名:所在系:班级: 实验名称:实验1 Linux 及其使用环境实验日期 实验指导教师实验机房及机号 ------------------------------------------------------------------------------------------------------ 1.实验目的 (1)1、了解UNIX的命令及使用格式。 (2)熟悉UNIX/LINUX的常用基本命令。。 2.实验内容 (1)熟悉UNIX/LINUX的常用基本命令如ls、who、w、pwd、ps、pstree、top 等。 (2)使用passwd命令,date命令,uname命令等显示机器及环境相关信息(3)使用whoami命令找到用户名。然后使用who -a命令来看看你的用户名和同一系统其他用户的列表 (4)使用目录相关命令熟悉目录操作,文件操作,掌握相对路径及绝对路径(5)学习后台命令运行 3. 实验步骤 (1)显示目录文件ls 命令:在**目录下,运行ls –la, 运行结果为 (1)显示目录文件ls 命令:在**目录下,运行ls –la,运行结果为

(2)pwd命令的使用,创建目录:mkdir命令: 结果为 (3)查看文件内容:cat命令;

(4)删除目录:rmdir命令 (5)显示目录内容:ls命令

(6)改变工作目录:cd命令 (7)删除文件:rm命令

(8)复制文件或目录:cp命令; (9)移动或更改文件,目录名称:mv命令

(10)查看系统中的使用者:who命令 (11)改变文件或目录的存取权限:chmod命令

hadoop倒排索引实验报告

大数据技术概论实验报告 作 业 三 姓名:郭利强 专业:工程管理专业 学号: 2015E8009064028

目录 1.实验要求 (3) 2.环境说明 (4) 2.1系统硬件 (4) 2.2系统软件 (4) 2.3集群配置 (4) 3.实验设计 (4) 3.1第一部分设计 (4) 3.2第二部分设计 (6) 4.程序代码 (11) 4.1第一部分代码 (11) 4.2第二部分代码 (17) 5.实验输入和结果 (21) 实验输入输出结果见压缩包中对应目录 (21)

1.实验要求 第一部分:采用辅助排序的设计方法,对于输入的N个IP网络流量文件,计算得到文件中的各个源IP地址连接的不同目的IP地址个数,即对各个源IP地址连接的目的IP地址去重并计数 举例如下: 第二部分:输入N个文件,生成带详细信息的倒排索引 举例如下,有4个输入文件: – d1.txt: cat dog cat fox – d2.txt: cat bear cat cat fox – d3.txt: fox wolf dog – d4.txt: wolf hen rabbit cat sheep 要求建立如下格式的倒排索引: – cat —>3: 4: {(d1.txt,2,4),(d2.txt,3,5),(d4.txt,1,5)}–单词—>出现该单词的文件个数:总文件个数: {(出现该单词的文件名,单词在该文件中的出现次数,该文件的总单词数),……}

2.环境说明 2.1系统硬件 处理器:Intel Core i3-2350M CPU@2.3GHz×4 内存:2GB 磁盘:60GB 2.2系统软件 操作系统:Ubuntu 14.04 LTS 操作系统类型:32位 Java版本:1.7.0_85 Eclipse版本:3.8 Hadoop插件:hadoop-eclipse-plugin-2.6.0.jar Hadoop:2.6.1 2.3集群配置 集群配置为伪分布模式,节点数量一个 3.实验设计 3.1第一部分设计

大学物理实验报告-基本测量

得分教师签名批改日期深圳大学实验报告 课程名称:大学物理实验(一) 实验名称:实验1 基本测量 学院: 专业:课程编号: 组号:16 指导教师: 报告人:学号: 实验地点科技楼906 实验时间:年月日星期 实验报告提交时间:

一、实验目的 二、实验原理 三、实验仪器 仪器名称组号型号量程△仪

四、实验内容和步骤 五、数据记录 1、用游标卡尺R测量圆筒的外径D、内径d、和高H 表1 单位:________ 卡尺零点:_________卡尺基本误差:___________ k D d H 1 2 3 4 5 6 7 8 9 10 平均

2、 用螺旋测微计测量粗铜丝、细铜丝的直径 表2 单位:________千分尺零点:____________千分尺基本误差:___________ k 1D 2D 1 2 3 4 5 6 7 8 9 10 平均 六、数据处理: 1、计算圆筒的外径D ,并计算D ?(5分) 2、计算圆筒的内径d ,并计算d ?(5分)

3、计算圆筒的高H ,并计算H ?(5分) 4、计算粗铜丝直径1D 及1D ?(6分) 5、计算细铜丝直径2D 及2D ?(6分) 6、间接量2 12 1D D D D B += ,计算B 的平均值、相对误差和绝对误差。(5分) 提示: ()() 2112 22112212 [][]B D D D D B D D D D D D ???=+++

七、实验结果与讨论 实验结果1:圆筒的外径: D = ± ( ) P = D D ?= 实验结果2:圆筒的内径: d = ± ( ) P = d d ?= 实验结果3:圆筒的高: H = ± ( ) P = H H ?= 实验结果4:粗铜丝的直径:1D = ± ( ) P = 1 1 D D ?= 实验结果5:粗铜丝的直径:2D = ± ( ) P = 2 2 D D ?= 实验结果6: B = ± ( ) P = B B ?= 讨论:

实验四-同步与互斥-Linux实验报告

实验四-同步与互斥-Linux实验报告

实验四同步与互斥 【实验目的和要求】 1、掌握进程(线程)的同步与互斥。 2、掌握生产者消费者问题的实现方法。 3、掌握多线程编程方法。 【实验内容】 实现生产者消费者问题 1、有一个仓库,生产者负责生产产品,并放入仓库,消费者会从仓库中拿走产品(消费)。 2、仓库中每次只能入一个(生产者或消费者)。 3、仓库中可存放产品的数量最多10个,当仓库放满时,生产者不能再放入产品。 4、当仓库空时,消费者不能从中取出产品。 5、生产、消费速度不同。 【实验原理】 1、信号量mutex提供对缓冲池访问的互斥要求并初始化为1,信号量empty和 full分别用来表示空缓冲项和满缓冲项的个数,信号量empty初始化为n,信号量full初始化为0。 2、定义如下结构及数据: 定义缓冲区内的数据类型:typedef int buffer_item; 缓冲区:buffer_item buffer[BUFFER_SIZE];

对缓冲区操作的变量:int in,out; 信号量mutex提供了对缓冲池访问的互斥要求:pthread_mutex_t mutex; 信号量empty和full分别表示空缓冲顶和满缓冲顶的个数:sem_t empty,full; 可以设定生产者的生产速度及消费者的消费速度:int pro_speed,con_speed; 对缓冲区操作的自增函数:#define inc(k) if(k < BUFFER_SIZE) k = k+1;else k=0 3、并定义了如下实现问题的函数模块: 将生产的产品放入缓冲区: int insert_item(buffer_item item) 从缓冲区内移走一个产品: int remove_item(buffer_item *item) 生产者进程:void *producer(void *param) 消费者进程:void *consumer(void *param) 生产者结构进程消费者结构进程 【程序代码】 //sx.c #include

相关主题
文本预览
相关文档 最新文档