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

简介: 操作系统(第四周 第一堂)



回顾

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

对进程的了解包含以下几个方面: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及课上讲解。不要私下外传

相关文章
|
3月前
|
存储 SQL 关系型数据库
遇上Linux异常,这样处理才丝滑!
遇上Linux异常,这样处理才丝滑!
|
6月前
|
Unix API
操作系统(第三周 第一堂)
操作系统(第三周 第一堂)
|
6月前
|
NoSQL 安全 Shell
操作系统(第二周 第二堂)
操作系统(第二周 第二堂)
|
6月前
|
消息中间件 算法 调度
操作系统(第四周 第二堂)
操作系统(第四周 第二堂)
|
6月前
|
监控 NoSQL Unix
操作系统总结(第二周 第一堂)
操作系统总结(第二周 第一堂)
|
6月前
|
存储 Unix Shell
操作系统(第三周 第二堂)
操作系统(第三周 第二堂)
|
6月前
|
存储 Unix Linux
计算机操作系统-第六天
计算机操作系统-第六天
计算机操作系统-第六天
|
6月前
|
算法 调度
今年十八,期末速刷(操作系统篇1)
今年十八,期末速刷(操作系统篇1)
73 0
|
边缘计算 监控 安全
2021爱智先行者-爱智操作系统(EdgerOS)与精灵一号(Spirit1)
2021爱智先行者-爱智操作系统(EdgerOS)与精灵一号(Spirit1)
229 0
|
Oracle 关系型数据库 Linux
操作系统的“冷板凳”要坐多久?万字长文解读16年开源老兵的坚持
想知道内核研发是怎样的体验?操作系统的“冷板凳”得坐多久才有春天?本文对话龙蜥社区理事长马涛,畅所欲言聊开源,一起来看看那些开源润物细无声背后的故事以及龙蜥社区运营的道法术。
操作系统的“冷板凳”要坐多久?万字长文解读16年开源老兵的坚持