计算机操作系统6精选.ppt

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
七、死锁 死锁原因和必要条件 死锁例子 死锁概念 产生死锁的原因和必要条件 预防死锁 资源独占(静态分配) 资源顺序分配 资源受控动态分配 (避免死锁) 发现死锁 (死锁检测) 解除死锁 5.解除死锁 Linux中的进程 Linux进程控制块PCB简介 进程的状态 进程调度 相关系统调用 信号量 等待队列 管道 Linux内核体系结构 相关系统调用 系统调用:广义指令,操作系统提供给用户使用的程序界面。 表3-4简要列出了和进程及进程间通信相关的系统调用。 等待队列 管道 本章小结 进程:定义、状态转换图、与程序的区别、与线程的区别。 同步与互斥(同步原语P、V操作的定义、信号量概念) 经典的同步与互斥问题 管程 消息缓冲区 死锁问题 本质区别 进程地址空间独立 线程共享地址空间 线程 堆栈 执行上下文TSS 进程 代码 数据 堆栈 文件 IO 虚存 进程 线程 进程与线程 进程调度(1) 调度策略 SCHED_OTHER 普通进程 SCHED_FIFO 执行时间不长的实时进程 (更高优先级可抢占CPU) SCHED_RR 轮转的实时进程 (相同优先级进程用时间片调度) weight 权值 priority 静态优先级(时间片大小,单位时标) counter 动态优先级,当前的时间配额 DEF_PRIORITY =20, (每个时标10ms) 进程调度(2) rt_priority 相对优先级(0-99) #define DEF_PRIORITY (20*HZ / 100) // 其中:HZ=100 几个计算式子: 普通进程的权值:counter = counter / 2 + priority weight=counter+prinority 当前进程的权值:weight=counter+priority+1 实时进程的权值:weight = 1000+rt_priority Weight是linux系统在进程调度过程中选择进程的唯一标准 Linux信号量定义 Linux 信号量数据结构中包含的信息 count(计数) 该域用来跟踪希望访问该资源的进程个数。正值表示资源是可用的,而负值或零表示有进程正在等待该资源。该计数的初始值为 1,表明同一时刻有且只能有一个进程可访问该资源。进程要访问该资源时,对该计数减 1,结束对该资源的访问时,对该计数加 1。 sleepers (等待唤醒计数) 等待该资源的进程个数,也是当该资源空闲时等待唤醒的进程个数。 Wait(等待队列) 某个进程等待该资源时被添加到该等待队列中。 lock(锁) 用来实现对 waking 域的互斥访问的 Buzz 锁 (自旋锁spin lock )。 Linux 中的等待队列 wait_queue wait_queue task_struct task_struct wait_queue task_struct task task ... ... task ... next next next …… 进程 1 file 结构 (files_struct) 进程 2 file 结构 inode 数据页 管道写操作集 管道读操作集 f_mode f_pos f_flags f_count f_owner f_inode f_version f_op f_mode f_pos f_flags f_count f_owner f_inode f_version f_op 进程控制 北 京 林 业 大 学 信 息 学 院 * 进程推进顺序不当产生死锁 打印机 磁带机 Pa Pb 进程Pa 请求打印机 请求磁带机 释放打印机 释放磁带机 进程Pb 请求磁带机 请求打印机 释放磁带机 释放打印机 cobegin Pa; Pb; coend 死锁的例子(1) 同类资源分配不当引起死锁 系统中有m个资源被n个进程共享,当每个进程都要求K个资源,而mn*K时,如果分配不得当就可能引起死锁。 例如:m=4,n=4,K=2,执行中采用的分配策略是为每个进程轮流分配资源。 假设每个进程对资源的申请和释放符合下列原则: 一次只能申请一个单位;满足总申请后才能使用;使用完后一次性释放 死锁的例子(2) 存储器共享的死锁 对临时性资源使用不加限制引起死锁 资源的类型:

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档