操作系统复习02:进程

本文深入探讨操作系统中的进程管理,包括进程状态转换、互斥与同步、原语操作、生产者-消费者问题及调度算法。重点解析基于忙等待的互斥实现、经典调度策略以及实时调度的基本条件,帮助读者深化对操作系统核心概念的理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作者:非妃是公主
专栏:《操作系统》
个性签:顺境不惰,逆境不馁,以心制境,万事可成。——曾国藩
在这里插入图片描述

专栏地址

《操作系统》专栏地址

专栏系列文章

操作系统复习01:引言

操作系统复习02:进程

操作系统复习03:输入输出系统

操作系统复习04:存储管理

操作系统复习05:文件系统

基于Windows的进程互斥实现机制(生产者消费者模拟)

Ubuntu操作系统+虚拟机virtualBox配置共享文件夹(实现主机和虚拟机之间文件资源共享)

*掌握竞争条件、临界资源、临界区、进程调度、原语操作、互斥、同步、进程控制块概念

竞争条件、临界资源、临界区:

在这里插入图片描述

进程调度:

在这里插入图片描述

原语操作:

内核或微核提供核外调用的过程或函数称为源于(primitive)。
原语是一段用机器指令编写的完成特定功能的程序,在执行过程中不允许中断。

互斥:

在这里插入图片描述

进程同步:

在这里插入图片描述

进程控制块:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

*掌握进程的基本状态

在这里插入图片描述

*掌握进程状态的转换关系

在这里插入图片描述

理解基于忙等待的互斥手段的实现

在这里插入图片描述
存在问题:不是原语操作,可能两个进程同时进入临界区
在这里插入图片描述
存在问题:是原子操作,但是两个进程必须交替进行,在临界区外的进程Q可能组织进程P进入临界区。
在这里插入图片描述

存在问题:不是原子操作,两个开关都被置为true的时候,会导致谁都无法进入临界区。
在这里插入图片描述
是对第三种解法的改进,增加了turn变量,turn不是1,就是2,为1的时候P运行,为2的时候q运行,所以就不会出现相互等待的问题了,这也是第一个完全实现进程互斥的软件解法,于1965年被提出。

*掌握生产者-消费者问题

在这里插入图片描述
在这里插入图片描述
若颠倒两个P操作的顺序:如上图,假设缓冲区无进程,消费者进程现在进入,更改信号量,但是full=0,导致消费者进程无法进入临界区进行消费,而生产者进程由于信号量已经更改,所以也无法进入临界区,这就导致了死锁现象的发生。
若颠倒两个V操作的顺序:如上图,不会导致死锁现象的发生,但是,根据具临界区只能进入一个进程,所以越短越好,有利于CPU利用率的提高。所以,不更换更好一些。
将produce_item位置放到P操作中间 或 把consume_item放到V操作中间:同样会导致临界区长度增大,进而导致计算机资源的浪费。

*掌握典型的调度算法,对常见的调度算法能熟练掌握

批处理系统调度算法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

交互式系统调度算法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
说明:CPU类型的进程运行完当前时间片以后进入就绪队列,IO型进程运行完之后进入等待队列,IO完成后就进入辅助队列,当辅助队列中有进程时,CPU优先运行辅助队列的IO进程,这个调度算法缓解了上面算法对于IO进程的不公平性。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

各种调度算法的比较:

在这里插入图片描述

*掌握实时调度的基本条件

在这里插入图片描述

实时任务指的是每个周期都要执行的任务。比如,每50s调用一次某个函数,但如果这个函数的执行时间超过了50s,入不敷出了。如果这个函数小于50s,那么在没有其他任务的前提下,可以说机器可以实时完成这个任务。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

哪个先截至?就运行哪个
在这里插入图片描述
最低松弛度算法调度时机选择:
(1) 某作业当前的松弛度变为 0。松弛度达到最小,意味着该任务不能再等了,必须得抢占处理机进行执行,否则调度算法就无法保证该任务在此周期内执行完成了;
(2) 某个作业执行完成退出释放处理机资源。在此周期内,该作业不会再占用处理机资源,此时必须根据松弛度的大小选择一个合适的作业上处理机执行;
(3) 某个作业的新一轮执行周期开始了,此时需要检查该任务的松弛度大小,看看该任务是否紧迫程度高,急需上处理机优先执行,体现调度算法的对优先级高低的偏好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cherries Man

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值