ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:348.38KB ,
资源ID:15231234      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/15231234.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(操作系统报告66160Word格式.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

操作系统报告66160Word格式.docx

1、基于消息队列和共享内存的进程间通信.18实验一 UNIX/LINUIX入门一、实验目的 了解UNIX/LINUX运行环境,熟悉UNIX/LINUX的常用基本命令,熟悉和掌握UNIX/LINUX下c语言程序的编写、编译、调试和运行方法。二、实验内容1、熟悉UNIX/LINUX的常用基本命令如ls、who、pwd、ps等。2、练习UNIX/LINUX的文本行编辑器vi的使用方法3、熟悉UNIX/LINUX下c语言编译器cc/gcc的使用方法。用vi编写一个简单的显示“Hello,World!”c语言程序,用gcc编译并观察编译后的结果,然后运行它。三、实验要求按照要求编写程序,放在相应的目录中,编

2、译成功后执行,并按照要求分析执行结果,并写出实验报告。四、实验设计代码如下:#includevoid main() printf(hello world);五、运行结果1六、收获及机会此次实验让我熟悉了Liunx下的文本行编辑器vi和c语言编译器cc/gcc的使用方法。七、参考资料实验指导书2实验二 进程管理 加深对进程概念的理解,明确进程与程序的区别;进一步认识并发执行的实质(1)进程创建编写一段程序,使用系统调用 fork()创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示“a“;子进程分别显示字符”b“和字符“c”。试观察

3、记录屏幕上的显示结果,并分析原因。(2)进程控制修改已编写的程序,将每一个进程输出一个字符改为每一个进程输出一句话,再观察程序执行时屏幕上出现的现象,并分析原因。(3)进程的管道通信编写程序实现进程的管道通信。使用系统调用pipe()建立一个管道,二个子进程P1 和P2 分别向管道各写一句话:Child 1 is sending a message!Child 2 is sending a message!父进程从管道中读出二个来自子进程的信息并显示(要求先接收P1,再接收P2)。 按照要求编写程序,放在相应的目录中,编译成功后执行,并按照要求分析执行结果,并写出实验报告。 使用fork()创

4、建两个子进程,父进程等待两个子进程执行完在运行。使用fork()创建两个子进程,父进程等待两个子进程分别输出一句话在运行。建立一个管道。在程序中先建立一个子进程,然后向管道中输入数据,然后从子进程中退出到父进程,读出管道数据,然后再建立一个子进程,写入数据,再读出,即可。(1) 进程创建:#include sys/types.hunistd.hstring.herrno.h#define INPUT 0#define OUTPUT 13void main() pid_t pid2; /定义两个子进程pid0=fork(); /创建第一个子进程if(pid00) /判断是否创建成功 printf

5、(Fork Failed exit(-1);else if(pid0 = 0)bnelse pid1=fork(); /创建另一子进程 if(pid1 int rw2;/*定义子进程号*/ pid_t pid2; int count,count2;/*创建无名管道*/ pipe(rw); char *msg1=child 1 process is sending message!n; 字符串msg1 char *msg2=child 2 process is sending message! 字符串msg2 char buf50,s50; int result; result=pipe(rw)

6、; if(result=-1)failed in calling pipe /*创建子进程*/ if(pid0 = fork() = -1) Error in forkn exit(1); if(pid0 = 0) /printf( /*子进程向父进程写数据,关闭管道的读端*/ close(rw0); write(rw1,msg1, 1+strlen(msg1); close(rw1); exit(0); else if(pid1 = fork() = -1) exit(1); if(pid1 = 0) /printf(6 close(rw0); write(rw1, msg2, 1+strl

7、en(msg2); close(rw1); exit(0); else /*执行父进程*/ /printf(in the spawning (parent) process.n /*父进程从管道读取子进程写的数据,关闭管道的写端*/ count=read(rw0,buf,sizeof(buf); count2=read(rw0,s,sizeof(s);%d %sn,count,buf);,count2,s); (1)进程创建7 (2)进程控制8此次实验让我对进程和管道有了进一步的理解,用fork()创建完子进程后,要用exit()返回父进程,当需要创建两个子进程的时候,不能直接在第一个子进程中

8、直接fork(),要返回到父进程再用fork()再次创建子进程,否则将无法控制。创建完管道后,在向管道中写入数据和从管道中读出数据的时候,要控制好管道的读写控制,不适当的关闭和开启管道端口,将不能使得数据得到正确的读写。这些是我此次实验最大的收获,还需要在今后的时候发现更多的问题,有更深的理解。9实验三 线程的管理 编写 Linux 环境下的多线程程序,了解多线程的程序设计方法,掌握最常用的三个函数pthread_create,pthread_join 和pthread_exit 的用法 1、主 程 序 创 建 两 个 线 程 myThread1 和myThread2 , 每个线程打印一句话。

9、使用pthread_create(&id,NULL,(void *) thread,NULL)完成。提示:先定义每个线程的执行体,然后在 main 中()创建几个线程,最后主线程等待子线程结束后再退出。2、创建两个线程,分别向线程传递如下两种类型的参数􀁺 传递整型值 传递字符 先定义2个线程的带有参数的函数,参数分别为整型(int)和字符型(char),每个函数中打印出相对应线程的话。在main函数中,利用pthread_create函数创建该两个线程,在函数参数中的第四位,写入想要传进各进程的参数。最有利用pthread_join等待第二个结束后退出。1、主程序创建两个线程 myThread1 和myThread2, 每个线程打印一句话。pthread.hstdlib

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1