11070327-刘飞-操作系统实验报告

11070327-刘飞-操作系统实验报告

ID:11058683

大小:747.00 KB

页数:13页

时间:2018-07-09

11070327-刘飞-操作系统实验报告_第1页
11070327-刘飞-操作系统实验报告_第2页
11070327-刘飞-操作系统实验报告_第3页
11070327-刘飞-操作系统实验报告_第4页
11070327-刘飞-操作系统实验报告_第5页
资源描述:

《11070327-刘飞-操作系统实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、操作系统实验报告姓名刘飞学号11070327完成日期2013.12.19实验二进程管理一、实验目的加深对进程概念的理解,明确进程与程序的区别;进一步认识并发执行的实质。二、实验内容(1)进程创建编写一段程序,使用系统调用fork()创建两个子进程。当此程序运行时,在系统中有一子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示“a“;子进程分别显示字符”b“和字符“c”。试观察记录屏幕上的显示结果,并分析原因。(2)进程控制修改已编写的程序,将每一个进程输出一个字符改为每一个进程输出一句话,再观察程序执行时屏幕上出现的现象,并分析原因。(3)进程通信编写程序实现进程的管道通信。使用系统调用

2、pipe()建立一个管道,二个子进程P1和P2分别向管道各写一句话:Child1issendingamessage!Child2issendingamessage!父进程从管道中读出二个来自子进程的信息并显示(要求先接收P1,再接收P2)。三、实验要求按照要求编写程序,放在相应的目录中,编译成功后执行,并按照要求分析执行结果,并写出实验报告。四、实验代码#include#include#include#include#include#includeintmain(){int

3、fd[2];//fd[1]为写端,fd[0]为读端pid_tpid1,pid2;charbuf[256];intresult,read_count;char*msg1="Child1issendingamessage!";char*msg2="Child2issendingamessage!";result=pipe(fd);if(result==-1){perror("Failedincallingpipe.");exit(1);}pid1=fork();if(pid1==-1){perror("Failedincallingfork1.");exit(1);}elseif(pid1

4、==0){close(fd[0]);//关闭读端result=write(fd[1],msg1,strlen(msg1));if(result==-1){perror("InChild1,Failedtowriteapipe.");exit(1);}exit(0);}else{read_count=read(fd[0],buf,sizeof(buf));if(read_count==-1){perror("Inparent,failedtoreadfrompipe.");exit(1);}elseif(read_count==0)printf("Inparent,0bytereadfr

5、ompipe.");else{buf[read_count]='';//设置字符串结尾为’’printf("%dbytesofdatareceivedfrompipe:%s",read_count,buf);pid2=fork();if(pid2==-1){perror("Failedincallingfork2.");exit(1);}elseif(pid2==0){close(fd[0]);result=write(fd[1],msg2,strlen(msg2));if(result==-1){perror("InChild2,Failedtowriteapipe.

6、");exit(1);}exit(0);}else{read_count=read(fd[0],buf,sizeof(buf));if(read_count==-1){perror("Inparent,failedtoreadfrompipe.");exit(1);}elseif(read_count==0)printf("Inparent,0bytereadfrompipe.");else{buf[read_count]='';printf("%dbytesofdatareceivedfrompipe:%s",read_count,buf);}}}}return(EXIT_S

7、UCCESS);}实验三线程的管理一、实验目的编写Linux环境下的多线程程序,了解多线程程序设计方法,掌握最常用的三个函数pthread_create,pthread_join和pthread_exit的用法二、实验内容1、主程序创建两个线程myThread1和myThread2,每个线程打印一句话。使用pthread_create(&id,NULL,(void*)thread,NULL)完成。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。