文章目录

  • 2.1.7 进程调度的时机、切换与过程、方式
    • 2.1.7.1 进程调度的时机
    • 2.1.7.2 进程调度的方式
    • 2.1.7.3 进程的切换和过程
    • 2.1.7.4 小结

2.1.7 进程调度的时机、切换与过程、方式

知识总览

2.1.7.1 进程调度的时机

进程调度(低级调度),就是按照某种算法从就绪队列中选择一个进程为其分配处理机。

需要注意的是一些表述的问题。

进程在操作系统内核程序临界区中不能进行调度和切换。√

进程处于临界区不能进行处理机调度。×

这里两个表述的差异就在于名词:内核程序临界区临界区的区别。

临界资源:一个时间段只允许一个进程使用的资源。各进程需要互斥地访问临界资源。

临界区:访问临界资源的那段代码。

内核程序临界区一般是用来访问某种内核数据结构的,比如进程的就绪队列。这个时候一般来说快点访问完快点结束。这涉及到封锁表的问题,在数据库中我们也曾经谈过这个上锁的问题,实际上操作系统也有上锁,也就是说,当你的进程1在访问内核程序的临界资源的时候,其他进程例如进程2无法同时访问,因为该内核程序临界资源被进程1上锁了,也就是说,此时如果你还去做进程的调度和切换,势必会导致占用该资源时间过长,拖延了其他进程使用该资源的时间;如果不是内核程序的临界资源倒也无所谓,但是如果是内核程序临界区访问的临界资源不尽快释放的话,极有可能影响到操作系统内核的其他管理工作。因此在访问内核程序临界区期间不能进行调度和切换。

而如果不是内核程序,是普通的临界区如打印机打印,那么在打印机打印完成之前,进程一直处于临界区内,临界资源不会解锁。但打印机又是慢速设备,CPU帮操作系统把进程对应的资源塞到打印机门口了,然后一直在等待打印完,这是不合理的,此时如果一直不允许进程调度的话就会导致CPU一直空闲。

普通临界区访问的临界资源不会直接影响操作系统内核的管理工作。因此在访问普通临界区时可以进行调度和切换。

回到前面讲的进程调度的时机。有的系统中,只允许进程主动放弃处理机;有的系统中,进程可以主动放弃处理机,当有更紧急的任务需要处理时,也会强行剥夺处理机(被动放弃)。由此我们引出了下一小节:进程调度的方式。

2.1.7.2 进程调度的方式

进程调度的方式可以分为两种:非剥夺调度方式剥夺调度方式

非剥夺调度方式,也称为非抢占方式。即只允许进程主动放弃处理机。在运行过程中即便有更紧迫的任务到达,当前进程依然会继续使用处理机,直到该进程终止或主动要求进入阻塞态。

这种方式实现简单,系统开销小但是无法及时处理紧急任务,适合早期的批处理系统。

剥夺调度方式,又称为抢占方式。当一个进程正在处理机上执行时,如果有一个更重要或更紧迫的进程需要使用处理机,则立即暂停正在执行的进程,将处理机分配给更重要紧迫的那个进程。

这种方式可以优先处理更紧急的过程,也可以实现让各进程按时间片轮流执行的功能(通过时钟中断)。适合于分时操作系统、实时操作系统。

2.1.7.3 进程的切换和过程

这里需要知道的是两个每次的区别:狭义进程调度进程切换的区别。

狭义的进程调度指的是从就绪队列中选中一个要运行的进程。这个进程可以是刚刚被暂停执行的进程,也可能是另一个进程。

进程切换是指一个进程让出处理机,由另一个进程占用处理机的过程。

广义的进程调度包含了选择一个进程进程切换两个步骤。

进程切换的过程主要完成了:

  1. 对原来运行进程各种数据的保存
  2. 对新的进程各种数据的恢复

如:程序计数器、程序状态字、各种数据寄存器等处理机现场信息,这些信息一般保存在进程控制块。

注意:进程切换是有代价的,因此如果过于频繁地进行进程调度、切换,比如会使整个系统的效率降低,使系统大部分时间都花在了进程切换上,而真正用于执行过程的时间减少。

2.1.7.4 小结

该小节含有的知识较多,不是考试的重点,但是也需要理解。

王道操作系统考研笔记——2.1.7 进程调度的时机、切换与过程、方式相关推荐

  1. 2.2.2.进程调度的时机切换与过程、方式

    2.2.2.进程调度的时机切换与过程.方式 文章目录 2.2.2.进程调度的时机切换与过程.方式 1.知识概览 2.时机 3.切换与进程 3.1进程的切换与过程 4.方式 4.1抢占式和非抢占式 5. ...

  2. 进程调度的时机切换与过程调度方式

    进程调度的时机 进程调度和切换程序是操作系统内核程序. 请求调度的事件发生后,才可能运行进程调度程序,调度了新的就绪进程后,才会进行进程的切换.理论上这三件事情应该顺序执行,但在实际设计中,操作系统内 ...

  3. 2.2.2 进程调度的 时机 切换与过程 调度方式

    目录 思维导图 进程调度的时机 进程调度的切换与过程 进程调度的方式 思维导图 进程调度的时机 简言之: 临界区有两种 一种是内核程序临界区 它不能进行调度与切换 另一种是普通的临界区 它可以进行处理 ...

  4. 王道操作系统考研笔记——2.1.8 调度算法的评价指标

    文章目录 2.1.8 调度算法的评价指标 2.1.8.1 CPU利用率 2.1.8.2 系统吞吐量 2.1.8.3 周转时间 2.1.8.4 等待时间 2.1.8.5 响应时间 2.1.8.6 小结 ...

  5. 王道操作系统考研笔记——2.1.6 处理机调度的概念和层次

    文章目录 2.1.6 处理机调度的概念和层次 2.1.6.1 调度的基本概念 2.1.6.2 高级调度 2.1.6.3 中级调度 2.1.6.4 进程的挂起态和七状态模型 2.1.6.5 低级调度 2 ...

  6. 王道操作系统考研笔记——2.2.0 交互式系统调度算法

    2.2.0 交互式系统调度算法 知识总览 2.2.0.1 时间片轮转 知识点 说明 英文名 RR,Round-Robin 算法思想 公平地.轮流地为各个进程服务,让每个进程在一定时间间隔内都可以得到响 ...

  7. 王道操作系统考研笔记——1.1.1 操作系统的概念、功能和目标

    如果这篇博客对您有用的话,可以给我点个赞吗,这对我很重要,谢谢!❤️ 文章目录 1.1.1 操作系统的概念.功能和目标 1.1.1.1 操作系统的概念 1.1.1.2 作为系统资源的管理者 1.1.1 ...

  8. 王道操作系统考研笔记——2.3.4 信号量机制

    文章目录 2.3.4 信号量机制 2.3.4.1 引入 2.3.4.2 整型信号量 2.3.4.3 记录型信号量 2.3.4.4 小结 2.3.4 信号量机制 知识总览 在1965年,荷兰学着Dijk ...

  9. 王道操作系统考研笔记——2.3.3 进程互斥的硬件实现方法

    文章目录 2.3.3 进程互斥的硬件实现方法 2.3.3.1 中断屏蔽方法 2.3.3.2 TestAndSet指令 2.3.3.3 Swap指令 2.3.3.4 小结 2.3.3 进程互斥的硬件实现 ...

最新文章

  1. python编程print语法_Python 第一节 安装及 print 输出语句—教案
  2. 2020 年深度学习最佳 GPU 一览,看看哪一款最适合你!
  3. C++primer笔记之关联容器
  4. 在周末程序员可以做些什么?
  5. View类的xml属性和相关方法说明
  6. Chrome 技巧篇-浏览器网页设置编码,解决网页乱码问题,最新版charset插件获取,UTF-8编码设置
  7. SwiftUI之深入解析布局如何自定义AlignmentGuides
  8. mysql oracle 备份数据库备份_完整备份Oracle数据库
  9. Leetcode——1. Two Sum
  10. Linux下安装MySQL数据库、禅道
  11. 随想录(强大的kprobe)
  12. node-sass安装报错node-sass@4.12.0 postinstall: `node scripts/build.js`
  13. jmeter404_JMeter – 如何记录失败的响应的完整请求?
  14. Android根据分辨率进行单位转换-(dp,sp转像素px)
  15. 硬件探索——2FSK通信系统调制解调综合实验电路设计
  16. 【大学物理·早期量子论和量子力学基础】电子的自旋 原子的电子壳层结构
  17. 手游摇杆(二)八方向摇杆和移动范围限制
  18. HTTP服务器开发教程
  19. C语言 推箱子小游戏 可重玩 可选关 保存记录
  20. web zxr10 中兴 路由器_ZXR10路由器基本操作和配置

热门文章

  1. C#面试题——附答案
  2. bigquery_在BigQuery中链接多个SQL查询
  3. 永恒python地速_立竿见影地把你的 Python 代码提速7倍
  4. leetcode 137. 只出现一次的数字 II(位运算)
  5. leetcode 85. 最大矩形(dp)
  6. 如何创建一个自记录的Makefile
  7. github代码_GitHub启动代码空间
  8. 魅族mx5游戏模式小熊猫_您不知道的5大熊猫技巧
  9. Andrew Ng机器学习(一):线性回归
  10. Django 模型与 Mysql 数据类型对应