作者:非妃是公主
专栏:《操作系统》
个性签:顺境不惰,逆境不馁,以心制境,万事可成。——曾国藩
专栏地址
专栏系列文章
*掌握竞争条件、临界资源、临界区、进程调度、原语操作、互斥、同步、进程控制块概念
竞争条件、临界资源、临界区:
进程调度:
原语操作:
内核或微核提供核外调用的过程或函数称为源于(primitive)。
原语是一段用机器指令编写的完成特定功能的程序,在执行过程中不允许中断。
互斥:
进程同步:
进程控制块:
*掌握进程的基本状态
*掌握进程状态的转换关系
理解基于忙等待的互斥手段的实现
存在问题:不是原语操作,可能两个进程同时进入临界区
存在问题:是原子操作,但是两个进程必须交替进行,在临界区外的进程Q可能组织进程P进入临界区。
存在问题:不是原子操作,两个开关都被置为true的时候,会导致谁都无法进入临界区。
是对第三种解法的改进,增加了turn变量,turn不是1,就是2,为1的时候P运行,为2的时候q运行,所以就不会出现相互等待的问题了,这也是第一个完全实现进程互斥的软件解法,于1965年被提出。
*掌握生产者-消费者问题
若颠倒两个P操作的顺序:如上图,就会导致如果缓冲区无进程,消费者进程现在进入,更改信号量,但是empty=0,导致生产者进程无法进入临界区进行生产,而消费者进程由于信号量已经更改,所以也无法进入临界区,这就导致了死锁现象的发生。
若颠倒两个V操作的顺序:如上图,不会导致死锁现象的发生,但是,根据具临界区只能进入一个进程,所以越短越好,有利于CPU利用率的提高。所以,不更换更好一些。
将produce_item位置放到P操作中间 或 把consume_item放到V操作中间:同样会导致临界区长度增大,进而导致计算机资源的浪费。
*掌握典型的调度算法,对常见的调度算法能熟练掌握
批处理系统调度算法
交互式系统调度算法
说明:CPU类型的进程运行完当前时间片以后进入就绪队列,IO型进程运行完之后进入等待队列,IO完成后就进入辅助队列,当辅助队列中有进程时,CPU优先运行辅助队列的IO进程,这个调度算法缓解了上面算法对于IO进程的不公平性。
各种调度算法的比较:
*掌握实时调度的基本条件
最低松弛度算法调度时机选择:
(1) 某作业当前的松弛度变为 0。松弛度达到最小,意味着该任务不能再等了,必须得抢占处理机进行执行,否则调度算法就无法保证该任务在此周期内执行完成了;
(2) 某个作业执行完成退出,释放处理机资源。在此周期内,该作业不会再占用处理机资源,此时必须根据松弛度的大小选择一个合适的作业上处理机执行;
(3) 某个作业的新一轮执行周期开始了,此时需要检查该任务的松弛度大小,看看该任务是否紧迫程度高,急需上处理机优先执行,体现调度算法的对优先级高低的偏好。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/130553.html