操作系统实验报告5.doc

操作系统实验报告5.doc

ID:56245242

大小:441.00 KB

页数:8页

时间:2020-03-24

操作系统实验报告5.doc_第1页
操作系统实验报告5.doc_第2页
操作系统实验报告5.doc_第3页
操作系统实验报告5.doc_第4页
操作系统实验报告5.doc_第5页
资源描述:

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

1、甘肃政法学院本科生实验报告(五)姓名:杨青虎学院:计算机科学学院专业:计算机科学与技术班级:2010级计本班实验课程名称:操作系统实验实验日期:2013年6月20日指导教师及职称:何珍祥实验成绩:开课时间:2012-2013学年第二学期甘肃政法学院实验管理中心印制实验题目进程间的共享存贮和信号量通信小组合作否姓名杨青虎班级2010级计本学号201081010137一、实验目的(1)理解和掌握使用信号量机制来实现进程之间的同步和互斥。(2)理解共享主存段机制由通信双方直接访问某些共享虚拟存储空间。(3)理解一个共享主存段一

2、旦被附加到自己的虚拟存储空间后,对它的访问与其他虚拟地址的访问完全相同。二.实验环境WindowsXP+Linux虚拟机三、实验内容与步骤1.信号量机制在UNIX系统V中,一个或多个信号量构成一个信号量集合。使用信号量机制用来实现进程间的同步和互斥,允许并发进程一次对一组信号量进行相同或不同的操作。每个P,V操作不限于减1或加1,而是可以加减任何整数。在进程终止时,系统可以根据需要自动消除所有被进程操作过的信号量的影响。进入VM虚拟机中,右击屏幕,选择“新建终端”,打开终端,输入命令“vi16.6.c”,新建一个名为“1

3、6.6.c”的用信号量机制进行进程间通信的C语言程序,其程序代码如下图1所示:图116.6.c代码用“Esc+:wq”,退出并保存程序“16.6.c”,在终端输入“gcc16.6.c–o16.6”对程序进行编译,如果编译没有错误,继续在终端输入“./16.6”,运行信号量机制进行进程间通信的程序“16.6.c”,即可看到程序结果,其运行截图如下图2所示:图2程序运行截图分析:本程序中创建了5个并发子进程,互斥地对文件进行写操作,将自己的进程号写到文件中去,信号量的初值为1,当地一个进程执行update_file函数时首先

4、将信号量值-1,(相当于P操作)致使其它进程等待无法操作文件,直到其结束后,将其值变为1后(相当于V操作),其它进程并发竞争对文件的写操作,并将自己的pid写入文件中。2.共享主存段机制共享主存段为进程提供了直接通过主存进行通信的有效手段,不像消息缓存机制那样需要系统提供缓存,也不像pipe机制那样需要事先建立一个特殊文件,而是有通信双方直接访问某些共享虚拟存储器空间。在系统V中,系统管理一组共享主存段控制块。通信进程在使用共享主存段以前,首先提出申请,系统为止分配存储空间并返回共享主存段标识号。一个共享段建立后,进程把

5、它被附加到自己的虚拟存储空间中。一个进程可以附加多个共享主存段。一个主存段一旦被附加到进程的虚拟机空间后,对它的访问以其他虚拟机的访问完全相同。但为了保证共享主存段数据完整性,通信的进程之间要互斥的进行访问。当通信进程不再需要该共享主存段时,可使用命令将其与进程分离,从而使其进程的虚空间删除。进入VM虚拟机中,右击屏幕,选择“新建终端”,打开终端,输入命令“vi16.7.c”和“vi16.8.c”,新建两个用共享主存段机制进行进程间通信的C语言程序,其程序代码如下图3和4所示:图316.7.c代码图416.8.c代码用“

6、Esc+:wq”,分别退出并保存程序“16.7.c”和“16.8.c”,在终端输入“gcc16.7.c–o16.7”和“gcc16.8.c–o16.8”对程序进行编译,如果编译没有错误,继续在终端输入“./16.7&”和“./16.8”,运行程序,即可看到程序结果,其运行截图如下图5所示:图5程序运行截图分析:首先进程向共享段写信息。该进程创建了长度为16K的共享主存段,并将共享段附加到了地址空间为Addr的地址上。然后从共享段的起始单元开始写入0~255个自然数。等待接收进程读。然后进程从共享段读信息的例子,该进程首先

7、将进程写信息共享段的共享段连接到自己的地址空间,之后,判断共享段是否有信息,若无,则等待,否则,读信息并显示。write进程创建了长度16k的共享主存段,并将共享段附加到了地址空间为addr的地址上,也显示了addr的值,然后从共享段的起始单元开始写入0-255个自然数,然后将首地址赋值为256,故读进程read运行后,第一个数显示256,后面是1-255。这个程序最好在root下运行,在一般用户下运行不出结果。四、实验过程与分析在做实验的过程中,我了解到了信号量机制和共享主存段机制进行通信。使用信号量机制用来实现进程之

8、间的同步和互斥,允许并发进程一次对一组信号量进行相同或不同的操作。每个P、V操作不限于减1或加1,而是可以加减任何整数。在进程终止时,系统可根据需要自动消除所有被进程操作过的信号量的影响。共享主存段为进程提供了直接通过主存进行通信的有效手段,不像消息缓冲机制那样需要系统提供缓冲,也不像pipe机制那样需要事先建立一个

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

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

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