操作系统原理 进程管理 进程同步互斥与通信、死锁.pptVIP

操作系统原理 进程管理 进程同步互斥与通信、死锁.ppt

  1. 1、本文档共175页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
UNIX 的并发机制 UNIX为进程间的通信和同步提供了各种机制,最重要的有 管道 消息 共享存储区 信号量 信号 管道、消息和共享存储区提供了进程间传递数据的方法,而信号量和信号用于其他进程的触发动作 UNIX 的并发机制 管道 UNIX对操作系统开发最重要的一个贡献是管道 (pipe) 管道是一个环形缓冲区,允许两个进程以生产者/消费者的模型进行通信。因此,这是一个先进先出(FIFO)队列,由一个进程写,而由另一个进程读 创建一个管道后,它的大小是固定的字节数。当一个进程试图往管道中写时,如果有足够的空间,则写请求被立即执行;否则该进程被阻塞 如果一个读进程试图读取多于当前管道中的字节数时,它也被阻塞;否则读请求被立即执行 操作系统强制实施互斥,也就是说,一次只能一个进程可以访问 UNIX 的并发机制 消息 消息是有伴随类型的一段文本,UNIX为参与消息传递的进程提供msgsnd和msgrev系统调用。每个进程都有一个与之相关联的消息队列,其功能类似于信箱 消息发送者指定发送的每个消息的类型,类型可以被接收者用作选择原则,接收者可以按先进先出的顺序接收信息,或者按类型接收 当进程试图给一个满队列发送信息时,它将被挂起;当进程试图从一个空队列读取时也会被挂起;如果一个进程试图读取某一特定类型的消息,但由于现在还没有这种类型的消息而失败时,该进程不会挂起 UNIX 的并发机制 共享存储区 UNIX提供的进程间通信的最快形式是共享存储区,这是被多个进程所共享的虚存中的一个公共块 进程读写共享存储区所使用的机器指令与读写虚存的其他空间所使用的指令相同 每个进程有一个只读或读写的权限,互斥约束不属于共享存储区机制的一部分,但必须使用共享存储区的进程提供 UNIX 的并发机制 信号量 UNIX系统V中的信号量系统调用是对wait和Signal原语的推广,在它们上面可以同时进行很多操作,并且增量和减量操作的值可以大于l 内核自动完成所有请求的操作,在所有操作完成前,其他任何进程都不能访问该信号量 一个信号量包含以下元素 信号量的当前值 在信号量上操作的最后一个进程的进程ID 等待该信号量的值大于当前值的进程数 等待该信号量的值为零的进程数 UNIX 的并发机制 与信号量相关联的是在该信号量上挂起的进程队列 信号量实际上以集合的形式创建,一个信号量集合有一个或多个信号量 UNIX 对信号量的推广为执行进程的同步与合作提供了相当大的灵活性 UNIX 的并发机制 信号 信号是用于通知发生一个进程同步事件的软件机制 信号类似于硬件中断,但没有优先级,也就是说,它平等地对待所有的信号。对于同时发生的信号,一次只给进程一个信号,而没有特别的次序 进程间可以互相发送信号,内核也可能在内部发送信号 信号的传递是通过修改信号要发送到的进程的进程表中的一个域来完成的 由于每个信号只保存为一位,因此不能对给定类型的信号进行排队。只有在进程被唤醒继续运行时,或者进程准备从系统调用中返回时才处理信号 进程可以通过执行某些默认动作(如终止)、执行一个信号处理函数或者忽略该信号,对信号做出响应 Linux的并发机制 Linux是一个多任务操作系统.它要保证CPU时刻保持在使用状态,如果某个正在运行的进程等待外部设备完成工作 (例如等待打印机完成打印任务) ,这时,操作系统就可以选择其他进程运行,从而保持CPU的最大利用率,这就是多任务的基本思想 进程之间的切换由调度程序完成 Linux的并发机制 PCB是OS对进程管理的依据和对象。为了实现进程调度,PCB中必须存有进程标识、状态、调度方法以及进程的上下文等信息 每个进程运行在各自不同的虚拟地址空间,需要有虚实地址映射机制;为了达到控制目的,PCB中存有进程链信息以及时钟定时器等 PCB中还有用于通信的内容如:信号、信号量等。OS便是根据这些信息来控制和管理每个进程的创建、调度切换以及消亡 Linux的并发机制 信 号 信号是 UNIX 系统中最古老的进程间通信机制之一,它主要用来向进程发送异步的事件信号。键盘中断可能产生信号,而浮点运算溢出或者内存访问错误多也可产生信号 shell通常利用信号向子进程发送作业控制命令 在Linux中,信号种类的数目和具体的平台有关,对32位的i386平台而言,一个字为32位,因此信号有32种;而对64位的 Alaha AXP平台而言,每个字为 64位,因此信号最多可有64种 Linux的并发机制 信号量与 PV 操作 信号量也用来保护关键代码或数据结构 (即临界资源) 关键代码段的访问,是由内核代表进程完成的,Linux利用信号量实现对关键代码和数据的互斥访问,同一时刻只能有一个进程访问某个临界资源,所有其他要访问该资源的进程必须等待直到该资源空闲为止。等待进程处于暂停状

文档评论(0)

nuvem + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档