华工操作系统实验

华工操作系统实验

ID:46893340

大小:40.29 KB

页数:19页

时间:2019-11-29

华工操作系统实验_第1页
华工操作系统实验_第2页
华工操作系统实验_第3页
华工操作系统实验_第4页
华工操作系统实验_第5页
资源描述:

《华工操作系统实验》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、一、实验步骤:1.在linux下编写一个应用程序,命名为an_ch2_1b。这个程序不断地输出如下行:Thoseoutputcomefromchild,[系统时间]另外写一个应用程序,命名为an_ch2_1a。这个程序创建一个子进程,执行an_ch2_1b。这个程序不断地输出如下行:Thoseoutputcomefromchild,[系统时间]观察程序运行的结果,并对你看到的现象进行解释。2.在linux环境下编写一个控制台应用程序,程序中有一个共享的整型变量shared_var,初始值为0;创建一个线程并使其立即与主线程并发执行。新创

2、建的线程与主线程均不断地循环,并输出shared_var的值。主线程在循环中不断地对shared_var进行加1操作,即每次循环shared_var被加1;而新创建的线程则不断地对shared_var进行减1操作,即每次循环shared_var被减1。观察程序运行的结果,并对你看到的现象进行解释。二、实验数据:an_ch2_1b.cpp文件:#include#include#include#include#includeusingnamespac

3、estd;stringgetTime()//获取系统时间{time_ttimep;time(&timep);chartmp[64];strftime(tmp,sizeof(tmp),"%Y-%m-%d%H:%M:%S",localtime(&timep));returntmp;}intmain(){while(true){stringtmn=getTime();cout<<"Thoseoutputcomefromchild,"<

4、_ch2_1a.cpp文件:#include#include#include#include#includeusingnamespacestd;intmain(){pid_tpid;pid=fork();if(pid==-1)cout<<"failtocreate"<

5、>#include#include#includeintshared_var=0;void*thread(void*arg){while(1){printf("inthethreadshared_var:%d",--shared_var);}}intmain(){pthread_tpt;intret=pthread_create(&pt,NULL,(void*)thread,NULL);if(ret!=0)printf("failtocreatethread");whi

6、le(1){printf("inthemainshared_var:%d",++shared_var);}pthread_join(pt,NULL);return0;}1.生产者消费者问题(信号量)参考教材中的生产者消费者算法,创建5个进程,其中两个进程为生产者进程,3个进程为消费者进程。一个生产者进程试图不断地在一个缓冲中写入大写字母,另一个生产者进程试图不断地在缓冲中写入小写字母。3个消费者不断地从缓冲中读取一个字符并输出。为了使得程序的输出易于看到结果,仿照的实例程序,分别在生产者和消费者进程的合适的位置加入一些随机睡眠时间。

7、可选的实验:在上面实验的基础上实现部分消费者有选择地消费某些产品。例如一个消费者只消费小写字符,一个消费者只消费大写字母,而另一个消费者则无选择地消费任何产品。消费者要消费的产品没有时,消费者进程被阻塞。注意缓冲的管理。2.用线程实现睡觉的理发师问题,(同步互斥方式采用信号量或mutex方式均可)理发师问题的描述:一个理发店接待室有n张椅子,工作室有1张椅子;没有顾客时,理发师睡觉;第一个顾客来到时,必须将理发师唤醒;顾客来时如果还有空座的话,他就坐在一个座位上等待;如果顾客来时没有空座位了,他就离开,不理发了;当理发师处理完所有顾客,

8、而又没有新顾客来时,他又开始睡觉。3.读者写者问题教材中对读者写者问题算法均有描述,但这个算法在不断地有读者流的情况下,写者会被阻塞。编写一个写者优先解决读者写者问题的程序,其中读者和写者均是多个进程,用信

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

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

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