进程调度的时机

进程调度和切换程序是操作系统内核程序。

请求调度的事件发生后,才可能运行进程调度程序,调度了新的就绪进程后,才会进行进程的切换。理论上这三件事情应该顺序执行,但在实际设计中,操作系统内核程序运行时,若某时发生了进程调度的因素,则不一定能够马上进行调度与切换。

不能进行进程的调度与切换的情况有以下情况:
1)在处理中断的过程中。中断处理过程复杂,在实现上很难做到进程切换,而且中断处理是系统工作的一部分,逻辑上不属于某一进程,不应被剥夺处理机资源。
2)进程在操作系统内核程序临界区中。进入临界区后,需要独占地访问共享数据,理论上必须加锁,以防止其他并行程序进入,在解锁前不应该切换其他进程运行,以加快该共享数据的释放。
3)其他需要完全屏蔽中断的原子操作过程中。如加锁、解锁、中断现场保护、恢复等原子操作。在原子过程中,连中断都要屏蔽,更不应该进行进程调度与切换。

若在上述过程中发生了引起调度的条件,则不能马上进行调度和切换,应置系统的请求调度标志,直到上述过程结束后才进行相应的调度与切换。

应该进行进程调度与切换情况
1)发生引起调度条件且当前进程无法继续运行下去时,可以马上进行调度与切换。若操作系统只在这种情况下进行进程调度,则是非剥夺调度。
2)中断处理结果或自陷处理结束后,返回被中断进程的用户态程序执行现场前,若置上请求调度标志,即可马上进行进程调度与切换。若操作系统支持这种情况下的运行调度程序,则实现了剥夺方式的调度。

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

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

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

内核程序临界区一般是用来访问某种内核数据结构的,比如进程的就绪队列(由各就绪进程的PCB组成)

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

进程切换往往在调度完成后立即发生,它要求保存原进程当前切换点的现场信息,恢复被调度进程的现场信息。现场切换时,操作系统内核将原进程的现场信息推入当前进程的内核堆栈来保存它们,并更新堆栈指针。内核完成从新进程的内核栈中装入新进程的现场信息、更新当前运行进程空间指针、重设PC寄存器等相关工作之后,开始运行新的进程。

进程调度的方式

进程调度方式:指当某个进程正在处理机上执行时,若有某个更为重要或紧迫的进程需要处理,即有优先权更高的进程进入就绪队列,此时应如何分配处理机。

两种进程调度方式:
1)非剥夺调度方式(非抢占方式):指当一个进程正在处理机上执行时,即使有某个更为重要或紧迫的进程就绪队列,仍然让正在执行的进程继续执行,直到该进程完成或发生某种事件而进入阻塞态时,才把处理机分配给更为重要或紧迫的进程。

在非剥夺调度方式下,一旦把CPU分配给一个进程,该进程就会保持CPU直到终止或转换到等待状态。优点:实现简单、系统开销小,适用于大多数的批处理系统,但不能用于分时系统和大多数的实时系统。

2)剥夺调度方式(抢占方式):指当一个进程正在处理机上执行时,若有某个更为重要或紧迫的进程需要使用处理机,则立即暂停正在执行的进程,将处理机分配给这个更为重要或紧迫的进程。

采用剥夺式调度,对提高系统吞吐率和响应效率都有明显的好处。必须遵循一定的原则,有优先权、短进程优先、时间片原则等。

进程的切换与过程

“狭义的进程调用”与“进程切换”的区别:
狭义的进程调度指的是从就绪队列中选中一个要运行的进程。(这个进程可以是刚刚被暂停执行的进程,也可能是另一个进程,后一种情况就需要进程切换)
进程切换是指一个进程让出处理机的过程

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

进程切换的过程主要完成了
1)对原来运行进程各种数据的保存
2)对新的进程各种数据的恢复
(如:程序计数器、程序状态字、各种数据寄存器等处理机现场信息,这些信息一般保存在进程控制块)

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

进程调度的时机切换与过程调度方式相关推荐

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

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

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

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

  3. 20135202闫佳歆--week 8 实验:理解进程调度时机跟踪分析进程调度与进程切换的过程--实验及总结...

    week 8 实验:理解进程调度时机跟踪分析进程调度与进程切换的过程 1.环境搭建: rm menu -rf git clone https://github.com/megnning/menu.gi ...

  4. 实验八---理解进程调度时机跟踪分析进程调度与进程切换的过程

    实验目的: 使用gdb跟踪分析一个schedule()函数,理解Linux系统中进程调度的时机. 实验过程: 登陆实验楼虚拟机http://www.shiyanlou.com/courses/195 ...

  5. 理解进程调度时机跟踪分析进程调度与进程切换的过程

    虞啸川 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 Linux既支持 ...

  6. Linux内核分析--理解进程调度时机、跟踪分析进程调度和进程切换的过程

    学号后三位:426  原创作品转载请注明出处 + https://github.com/mengning/linuxkernel/ 1.进程的创建 除了0号进程(系统创建的)之外,linux系统中都是 ...

  7. linux每隔多久调度y,Linux 进程调度+Linux系统一般执行过程 笔记

    进程的调度时机与进程的切换 操作系统原理中介绍了大量进程调度算法,这些算法从实现的角度看仅仅是从运行队列中选择一个新进程,选择的过程中运用了不同的策略而已. 对于理解操作系统的工作机制,反而是进程的调 ...

  8. OS2.2.2:进程调度的时机、切换过程、调度方式

    文章目录 知识总览 进程调度 进程调度的时机 临界资源与临界区 进程调度的方式 进程的切换与过程 总结 知识总览 进程调度 进程调度的时机 什么时候要进行进程调度与切换的情况? 不能进行进程调度与切换 ...

  9. 八、进程调度的时机、切换与过程,调度方式

    一.知识总览 二.进程调度的时机 1.进程在操作系统内核程序临界区不能进行调度与切换,但若说成进程处于临界区时不能进行处理机调度是错误的. 2.临界资源:一个时间段内只允许一个进程使用的资源,各进程需 ...

最新文章

  1. 管理索引表:深入研究B树索引--重建,合并,删除(理论篇3)
  2. fegin通信中速度慢等待解决异常
  3. python爬虫怎么爬同一个网站的多页数据-请问爬虫如何爬取动态页面的内容?
  4. P_C_Brules
  5. java代码编译之后是如何运行的?不知道这些,面试官问你jvm问题,你只能懵圈
  6. 项目管理杂感(2)──继续说项目管理的目标
  7. slack通知本地服务器_通过构建自己的Slack App学习无服务器
  8. (进阶)LeetCode(338)——比特位计数(JavaScript)
  9. 标准Dispose实现 (转)
  10. Java中的重载(overloading)和重写(overriding)
  11. excel文件下载下来损坏 js_js实现txt/excel文件下载
  12. idea+java+selenium自动化测试环境搭建
  13. 更新sqlmap1.5.5版本教程(附带下载地址)
  14. java8进制转换_Java进制转换方法大全_十进制,八进制,二进制,十六进制转换...
  15. Visio 2010导入中UML2.2模板说明
  16. 基于photoshop滤色混合模式的图片亮度改变
  17. 回测好,为什么实盘不靠谱?
  18. 数字阅读市场陷入两强之争 掌阅能不能守住半壁江山?
  19. SwiftUI Mapkit 导航基础教程大全之 MKMapView地图显示并实现导航线路(教程含源码)
  20. 广东高中生多少人_2020年广东高考报名人数统计有多少人

热门文章

  1. 4.13_chain_of_responsibility_行为型模式:责任链模式
  2. 安装centos linux7,安装centos7
  3. spring-boot-starter-parent的主要作用
  4. loj#6436. 「PKUSC2018」神仙的游戏(NTT)
  5. 【LOJ】#2479. 「九省联考 2018」制胡窜
  6. MikroTik RouterOS电子克隆盘原理收集
  7. MyBatis(3):SQL映射
  8. 6、easyUI-拖放事件及应用
  9. 用CSS3实现图像风格
  10. 计算机网络学习笔记(2. 什么是网络协议)