操作系统上机练习报告

操作系统上机练习报告

ID:34171507

大小:115.44 KB

页数:9页

时间:2019-03-04

操作系统上机练习报告_第1页
操作系统上机练习报告_第2页
操作系统上机练习报告_第3页
操作系统上机练习报告_第4页
操作系统上机练习报告_第5页
资源描述:

《操作系统上机练习报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、操作系统上机实验报告成绩教师:2016年12月16日班级:学号:姓名:实验一进程的建立【实验目的】创建进程及子进程在父子进程间实现进程通信【实验软硬件环境】VC++6.0或者Linux操作系统【实验内容】创建进程并显示标识等进程控制块的属性信息;显示父子进程的通信信息和相应的应答信息。(进程间通信机制任选)【实验程序及分析】在linux操作系统桌面建立test1.c程序文件如下:#include#include#include#includemain(){charfather

2、[]={nthemessageisfromfather!11};charchild[]=「'themessageisfromchild!”};intchan1[2],chan2[2];charbuff[5Ol;pipe(chanl);pipe(chan2);intF=fork();printf(H%dn,F);if(F>0){sleep(3);printf(Hthisisfatherprogressn);close(chan1[0]);//closechan1readclose(chan2[l]);//closechan2writewrite(ch

3、an1[1],father,strlen(father));close(chanl[ll);//sleep(lO);read(chan2[0],buff,50);sleep(3);printf("Fatherprocess:%s'buff);printf(HthisfatherprocesswhoseIDis:%dH,getpid());}elseif(F==0){printf(Hthisischildprogressn);//close(chanl[l]);//closechan1writeclose(chan2[0]);//close

4、chan2readread(chan1[0],buff,50);sleep(3);printf("Childprocess:%s",buff);write(chan2[1],child,strlen(child));close(chan2[l]);printf(HthischildprocesswhoseIDis:%dn,getpid());printf(HthischildprocesswhosefathersIDis:%dH,getppid());else{ncreatfork()error!H;}产生结果如下:【实验心得体会】1、

5、通过本次实验,我认识到管道通信在进程Z间的应用,了解并掌握了进程建立与通信的相关机制;2、熟悉了Linux操作系统的一些简单操作,并体会到了Linux操作系统的设计理念。实验二进程间的同步【实验目的】理解进程同步和互斥模型及其应用【实验软硬件环境】VC++6.0或者Linux操作系统【实验内容】利用通信API实现进程之间的同步:建立司机和售票员进程;并实现他们间的同步运行。【实验程序及分析】分析:司机与售票员要协同工作:一方面只有售票员把门关好之后司机才可开车,因此售票员关好门之后要通知司机开车,然后售票;另一方面,也只有司机把车停下之后售票员才能开门

6、让乘客下车和上车,因此,此时司机应通知售票员。汽车当前正在始发站停车让乘客让乘客上车,因此,必须设置一定的信号量来实现他们Z间的同步问题。设计:设置司机与售票员的信号量为全局变量,并U客车的人数:现在人数、下车人数、上车人数为全局变量;设置司机与售票员的线程。考虑到第一站和最后一站的问题,应单独处理,故在各自的线程中分情况讨论:具体的思路是下而的图示。其中S1是司机的信号量,S2是售票员的信号量。程序的实现(代码):#include#include#includeintc=0;intf=0;i

7、nti=5;pthread_mutex_tt;void*fl(void*arg){while(i){pthread_mutex_lock(&t);if(f==O){i-;printf(nDriverprocess:Wewillstopat...");printf(nStation%dn,i);f=l;sleep(l);}pthread_mutex_unlock(&t);}}void*f2(void*arg){while(i){if(f==l){pthread_mutex_lock(&t);f=0;printf("Conductorprocesss:

8、Weareleaving...");printf("Station%dM,i);sle

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

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

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