操作系统-第五次作业

操作系统-第五次作业

ID:35497419

大小:60.93 KB

页数:4页

时间:2019-03-25

操作系统-第五次作业_第1页
操作系统-第五次作业_第2页
操作系统-第五次作业_第3页
操作系统-第五次作业_第4页
资源描述:

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

1、1.消息缓冲列队的接受原语:其中s・b:是空缓冲区个数,初值:n;R_mutex:是接受区的互斥信号量,初值为1s・syn:同步信号量,初值为0,用于消息计数Receive(S,N)Begin根据S找发送进程,如果没找到出错返回;P(s-syn);P(R-mutex);根据m_q,把缓冲区从消息链首取出;V(R-mutex);把消息从空缓冲区处copy到N;P(R-mutex);释放缓冲区V(s-b);V(R-mutex);END2.进程之间通信方式有几种,分别说明这几类方式的原理,查阅有关Windows或UNIX资料,举例说明在此操作

2、系统下的消息机制。答:方式举例管道连接两个进程之间的一个打开的共享文件,用于进程之间的数据通信:一个进程正在使用某个管道写入或读出数据时,另一个进程就必须等待(通过测试inode节点的特征位);-发送者和接收者双方必须能够知道对方是否存在,如果对方已经不存在,就没有必要再发送或接收信息-发送信息和接收信息之间一定要实现正确的同步关系(考虑传输长度)-进程在关闭管道的读出或写入端时,应唤醒等待写或读此管道的进程UNIX管道・通过pipe系统调用创建无名管道,得到两个文件描述符,分别用于写和读。-intpipe(intfildes[2]);

3、-文件描述符fildes[O]为读端,fildes⑴为写端;-通过系统调用write和read进行管道的写和读;・进程间双向通信,通常需要两个管道;-只适用于父子进程之间或父进程安排的各个子进程之间;・UNIX中的命名管道,可通过mknod系统调用建立:指定mode为SJFIFO-intmknod(constchar*path#modestmode,dev_tdev);-可在两个不相关进程之间进行管道通信-命名管道与文件系统共享一个名字空间,命名管道不得与文件系统中文件重名信道是一种软中断,传递短消息的简单通信机制,通过发送指定信号来通

4、知进程某个异步事件发生,以迫使进程执行信号处理程序。信号处理完毕后,被中断进程将恢复执行。■①数据结构・每个进程task_struct结构中signal域专门保存接收到的信号,内核根据所发生的事件产生相应的信号并发送给接收进程。相当于“中断请求寄存器”的某位置位;•进程task_struct结构中的blocked是信号屏蔽标记,相当于“中断屏蔽寄存器”;•信号处理程序入口存放在task_struct的sigactionf]数组中,信号的编号对应于数组下标,数组元素的值是信号处理程序的入口地址-②信号的产生和发送•函数sigaction(

5、signo,act,oldact)信号预置处理程序・函数kill(pid,sig)用来向指定进程发送指定信号③信号检测和处理流程-信号检测与响应发生地点•总是发生在系统空间-信号检测与响应发生时间・在中断或异常处理程序末尾,在进程从核心态返回用户态之前・或在处理运行进程所遇到的时钟中断结束之前・或进程以interruptible状态进入等待队列之前(若此时收到信号,就不睡眠)-检查处理信号・系统调用do.signalO检査此进程是否已收到信号,若是则执行handle_signal()让它返回用户态并转入信号处理程序执行-信号处理结朿・执

6、行系统调用sigreturnO陷入内核,内核做好善后工作后返回用户态,回到应用程序的断点执行信号量相互通信的进程间设有公共内存,一组进程向该公共内存中写,另一组进程从公共内存中读,通过这种方式实现两组进程间的信息交换共享主存在主存开辟一个公用存储区。要通信的进程把自己的虚地址空间映射到共享主存区。发送进程将信息写入共享主存的某个位置时,接收进程可从此位置读取信息消息传递消息是一组信息,由消息头和消息体组成。-消息传递机制至少需要提供两条原语send和receive・前者向一个给定的目标发送一个消息,后者则从一个给定的源接受一条消息。・如

7、果没有消息可用,则接收者可能阻塞直到一条消息到达,或者也可以立即返回,并带回一个错误码消息传递(消息缓冲)在操作系统空间设置一组缓冲区,当发送进程需要发送消息时,执行send系统调用,产生自愿性中断,进入操作系统,操作系统为发送进程分配一个空缓冲区,并将所发送的消息从发送进程copy到缓冲区中,然后将该载有消息的缓冲区连接到接收进程的消息链链尾,如此就完成了发送过程。发送进程返回到用户态继续执行・在以后某个时刻,当接收进程执行到receive接收原语时,也产生自愿性中断进入操作系统,由操作系统将载有消息的缓冲区从消息链中取出,并把消息内

8、容copy到接收进程空间,之后收回缓冲区,如此就完成了消息的接收,接收进程返回到用户态继续进行消息传当一个进程希望与另一进程通信,Send(BoxA)原语:把信件L送到信箱递(信箱)创建一个链接两个进程的信

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

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

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