操作系统(第四周 第一堂)

目录

回顾

[进程调度(process schedule)](#进程调度(process schedule))

进程角度

计算机整体------调度队列

队列图

调度程序

总结


回顾

上一篇文章的重点只有一个------------进程

对进程的了解包含以下几个方面:1、程序如何变为进程 2、进程在内存中的存储形式 3、进程控制块在内核中的存储形式 4、进程状态

总的来说:

1、进程是程序在计算机中运行的实例

2、进程本身也是一个程序,特殊的程序

3、进程的管理依赖于进程控制块(PCB)

4、进程本身存储在内存中,有特定的存储形式

进程有五个状态,设计进程有状态的原因就在于方便计算机并行运行多个进程 ,并行运行多个进程就涉及到进程的调度,这个调度是由内核实现

进程调度(process schedule)

进程调度有两个思考角度:一、从一个进程角度 看进程调度;二、从计算机整体角度看进程调度

进程角度

从进程自身角度看进程是如何被调度的

上图关键点:

1、进程P0与进程P1是两个并行的进程。所谓并行实际上是指对程序员(计算机使用者)并行,其实际的运行方式并不是同时进行的(多处理器情况除外)

2、进程从执行到空闲需要经过中断或系统调用。 中断:I/O设备等硬件。系统调用:可以认为就是陷入内核。分为进程程序主动要求陷入内核,或程序错误陷入内核

3、图中的省略号是值:内核在PCB(进程控制块)保存要进入空闲状态的进程的现场信息,此时是kernal mode。进程执行时是user mode

4、保存完现场后才可以切换下一个要执行的进程的状态信息,同时内核这个"大眼睛"将内存映射给新进程

5、每次进程的调度都是由操作系统来执行的,操作系统就是计算机的心脏

计算机整体------调度队列

计算机整体 看计算机是如何整理调度内部所有的进程

上图关键点:

1、所有的进程都会放在队列中,这个队列称为作业队列

2、驻留在内存中就绪的等到运行 的进程保存在就绪队列中,内核为CPU选择下一个进程就是从就绪队列中获取

3、等待特定I/O设备的进程列表称为设备队列 ,每个设备都有自己的设备队列,因为一个设备能同时给多个进程提供服务

4、一个进程只可能出现在一个队列 里面(就绪队列、设备队列等各个队列都体现一种状态),但是所有的进程都在任务队列

队列图

队列图是表示进程调度一个常用的方法,在理解这个图之前需要补充一个知识

I/O请求和中断请求的关系:

1、I/O请求是由I/O设备需要输入输出 导致的请求,中断请求是外围设备 完成操作或紧急事件需要处理而向CPU发送的请求

2、I/O请求是由程序发起 的,中断是由硬件设备发起

3、I/O设备准备号数据或者需要服务时会向CPU发送中断信号,这个中断信号也会让CPU暂停工作

4、虽然I/O操作可能导致中断产生,但是它们本身不是中断请求

(进程状态变化关系表)

1、每个矩形块表示一个队列,右边四个矩形块都是处于等待状态

2、圆圈表示服务队列的资源(I/O、CPU),或导致进程发生队列变化原因(子进程执行、中断发生)

3、图中共有5个队列:I/O等待队列、时间片过期队列、分叉子进程队列、中断等待队列、就绪队列

调度程序

当计算机提交的进程多于可以立即执行的进程时,进程会被保存到大容量的存储设备(缓冲池),后续需要执行进程就要把进程从缓冲池中拿出来,而有一些进程本身就在就绪队列中,可以直接拿出来使用。为了调度这些进程,我们就需要在操作系统中存储一些调度程序

调度程序分为:

1、长期调度程序:从缓冲池中选择进程加到内存

2、短期调度程序:从准备执行(粗略可以认为是已经加载到内存中的进程)的进程中选择进程分配给CPU

为了让性能达到最佳,系统需要合理组合I/O密集型和CPU密集型

总结

本文到这里就结束啦~~这堂课的内容较为杂乱、复杂,但是学一学拓展一下知识是非常好的呀~~

如果觉得对你有帮助,辛苦友友点个赞哦~

知识来源:操作系统概念(黑宝书)、山东大学高晓程老师PPT及课上讲解。不要私下外传

相关推荐
Mia_100916 小时前
【计算机考研】408王道四本书的正确使用顺序
考研
Beast Cheng1 天前
07-7.1.1 查找的基本概念
数据结构·笔记·考研·算法·学习方法
苏十八1 天前
计算机系统概论
考研·计算机外设·学习方法
西电研梦2 天前
24西安电子科技大学经济与管理学院—考研录取情况
考研·金融·经济·西电
西电研梦2 天前
24西安电子科技大学数学与统计学院—考研录取情况
人工智能·考研·数学·统计学·西电·西安电子科技大学
一个通信老学姐2 天前
专业140+总分420+天津大学815信号与系统考研经验天大电子信息与通信工程,真题,大纲,参考书。
考研·自动化·信息与通信·信号处理
寒页_2 天前
操作系统笔记分享(第八章 文件管理)
linux·笔记·操作系统
神奇夜光杯3 天前
Python酷库之旅-第三方库Pandas(006)
开发语言·人工智能·python·pandas·基础知识·学习和成长·标准库及第三方库
神奇夜光杯3 天前
Python酷库之旅-第三方库Pandas(005)
开发语言·python·pandas·基础知识·学习和成长·标准库及第三方库
yangshuquan3 天前
总结一下 .NET FrameWork 和 .NET Core 创建的项目的不同点
c#·.net·基础知识