计算机操作系统第二章 进程与处理机调度

程序:就是一个指令序列

早期的计算机(只支持单道程序)

多道程序技术

1.为了方便操纵系统管理,完成各程序并发执行,引入了进程,进程实体的概念。

2.系统为每个运行的程序配置一个数据结构,称为进程控制块(PCB),用来描述进程的各种信息(如程序代码存放位置)

程序段,数据段,PCB三个部分组成了进程实体(进程映像)。

一般情况下,我们把进程实体就简称为进程。

例如,所谓创建进程,实际上是创建进程实体中的PCB,而撤销进程,实质上是撤销进程实体中的PCB。

从不同的角度,进程,可以有不同的定义,比较传统典型的定义有

1.进程是程序的一次执行过程

2.进程是一个程序及其数据在处理机上顺序执行时所发生的活动,

3.进程是具有独立功能的程序在数据集合上运行的过程,它是系统进行资源分配和跳读的一个独立单位。

动态性

进程是进程实体的运行过程,是系统进行资源和分配和调度的一个独立单位。

进程实体和进程并不一样,进程是动态的,进程实体是静态的。

当进程切换时,需要把进程当前的运行情况记录下来保存在PCB中。

进程的特征

什么是进程控制?

进程控制的主要功能是对系统中的所有进程实现有效的管理。她具有创建新进程,撤销已有进程,实现进程状态转化等功能。

用原语实现进程,控制。原语的特点是执行期间不允许中断,只能一气呵成。

这种不可被中断的操作即为原子操作。

原语采用“关中断指令”和“开中断指令”

显然,关/开中断指令的权限非常大,必然是只允许在核心态下执行的特权指令。

进程控制会导致进程状态的转换,无论哪个原语,要做的无非三类事情

1.更新PCB中的信息(修改进程状态标志,将运行环境保存到PCB,从PCB恢复运行环境)

2.将PCB插入合适的队列

3.分配回收资源

1.分时系统中用户登录成功,系统会创建一个新的进程

2.多道批处理系统中,有新的作业放入内存中,会为其建立一个新的进程。

3.用户向操作系统提出某些请求时,会新建一个进程处理该请求

4.由用户进程主动请求创建一个子进程

多线程模型

什么是线程,为什么引入线程?

引入线程机制后,有什么变化?

线程有哪些重要的属性?

线程的实现方式 ?用户线/内核级

多线程模型 ->多对一 ,一对多 ,多对多

在进入进程之前,系统中各个程序只能串行执行,一边运行QQ,一边听音乐不可能实现,

进程是程序的一次执行,但这些功能是显然不可能是由一个程序顺序处理就能实现的。

引入线程增加并发度

线程是一个基本的CPU执行单位,也是程序执行流的最小单位。

引入线程之后,不仅是进程之间可以并发,从而进一步提升了系统的并发度,使得一个进程也可以并发处理各种任务

引入线程后,进程只作为除CPU之外的系统资源的分配单位(如打印机,内存地址空间)

传统的进程间并发,需要切换进程的运行环境,系统开销很大

线程间并发,如果是同一进程内的线程切换,则不需要切换进程环境,系统开销小

引入线程后,并发程度高,系统开销小。

进程的属性

1.线程是处理机调度单位

2.多CPU计算机中,各个线程可占用不同的CPU

多对一模型:多个用户及线程映射到一个内核级线程。每个用户进程只对应一个内核级线程。

优点:线程切换在用户控件即可完成,不需要切换到核心态,线程管理空间开销小,效率高。

缺点:当一个用户级线程被阻塞后,整个进程都会被阻塞,并发度不高,多个线程不可在多个处理机上运行并行

一对一模型:

一个用户级线程映射到一个内核级线程。每个用户有与用户级线程同数量的内核级线程。

优点:当一个线程被阻塞后,别的进程还可以继续执行,并发能力强

缺点:一个用户进程会占用多个内核级线程。线程切换由操作系统内核完成,需要切换到核心态,因此线程管理的成本高,开销大。

多对多模型:n用户级线程映射到m个内核级线程(n>=m).每个用户进程对应m个内核级线程。

克服了多对一模型并发度不高的缺点,又客服了一对一模型中,一个用户进程占用太多内核级线程,开销太大的缺点。

2.2 处理机调度

高级调度(作业调度)。按一定的原则从外存上处于后备队列的作业中(或多个作业)。给他们分配内存等必要资源,并建立相应的进程(建立PCB),以使它(们)获得竞争处理机的权利

作业调入时建立相应的PCB,作业调出时才撤销PCB.

引入虚拟技术之后,可将暂时不能运行的进程调至外存等待。等它重新具备了运行条件且内存少有空闲时,再重新调入内存。

暂时调到外存等待的状态称为挂起状态,值得注意的是,PCB并不会一起调到外存,而是会常驻内存,PCB中会记录进程数据在外存中的存放位置,进程状态等信息,操作系统通过内存中的PCB来保持各个进程的监控。

“狭义的进程调度“和”进程切换“的区别

狭义的进程调度值的是从就绪的队列中选择一个要运行的程序。

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

广义的进程调度包括选择一个进程和进程切换。

进程切换

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

2.对新的数据各种数据的恢复 (如果切换过于频繁,会使整个系统效率降低)

周转时间->平均周转时间,带权周转时间,平均带权周转时间,

CPU利用率=忙碌的时间/总时间

系统吞吐量:单位时间内完成作业的数量

系统吞吐量:共完成多少道作业/总完成多少时间

周转时间:完成时间-提交时间

对于进程来说,等待时间就是指进程建立后等待被服务的时间之和,在等待I/O完成的期间其实进程也是在被服务的,故不计入等待时间。

对于作业来说,不仅要考虑建立进程后等待时间,还要加上作业在外存后备队列中等待的时间

响应时间,指从用户提交请求到首次产生响应所用时间。

Tips:各种调度算法

1.算法思想

2.算法规则

3.这种调度算法是用于作业调度还是进程调度?

4.抢占式,非抢占式?

5.优点和缺点

6.是否会导致几个->某进程长期得不到服务

算法思想:主要从”公平“的角度考虑

算法规则:安装作业/进程到达的先后顺序进行服务

用于作业/进程调度 :

用于作业/进程调度时,考虑的是哪个队列先到达后备队列,用于进程调度时考虑

猜你喜欢

转载自blog.csdn.net/yutong5818/article/details/81211631