处理机管理

第二章

2_1进程的基本概念

**并发:**多个线程同时竞争一个位置,竞争到的才可以执行,每一个时间段只有一个线程在执行。

**并行:**多个线程可以同时执行,每一个时间段,可以有多个线程同时执行。

作业(JOB) :作业是用户从控制界面向OS提交的一项完整工作的请求,由作业步序列组

作业可能是一个简单的程序命令,也可能是一个命令序列,即作业步序列
作业是作业说明,作业程序,作业数据三者的总和

**程序:**是一个在时间上严格有序的指令集合

进程(Process):

是程序的一次执行。
是可以和其它计算并行执行的计算。
是系统进行资源分配和调度的一个独立单位(也称最小单位)。
分为:系统进程、用户进程。系统进程高于用户进程

线程(Thread):

1、引入的目的是为了减少程序并发执行时所付出的时空开销
2、线程是进程中的一个实体,是被系统独立调度和分派的基本单位.多个线程之间可以并发执行。

进程与线程的区别:

一个程序至少有一个进程,一个进程至少有一个线程
1、调度:线程的划分尺度小于进程,使得多线程程序的并发性高。
2、拥有资源:进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率
3、并发性:进程可以独立的执行但线程不能够独立运行,必须依存在应用程序中。

作业≥进程≥线程

**调度(Schedule):**系统是多任务的,所以会有很多的作业,一批作业按照某种算法从中选择出来一个,这个过程叫做调度。

进程与程序的联系和区别:(5个)

1)动态性:进程是程序的一次执行,进程是动态的,程序是静态的。
(2)并发性:进程可以并发执行,而程序不可并发执行。
(3)独立性:进程是系统进行资源分配和调度的一个独立单位;程序则不是。(CPU的分配是以进程为单位)
(4)异步性:进程以各自独立的、不可预知的速度向前推进。
(5)结构特性:从结构上看,每个进程是由程序段、数据段和进程控制块三部分组成。

2_2进程的基本状态

**引入进程的目的:**为了描述系统中各并发活动而引入的,资源利用率及提高系统的吞吐量。

进程的三种基本状态:

1、就绪状态(Ready):存在于处理机调度队列中的那些进程,它们已经准备就绪,一旦得到CPU,就立即可以运行。
2、运行状态(Running):正在运行的进程所处的状态。
3、阻塞状态(Wait / Blocked ):若一进程正在等待某一事件发生(如等待输入输出工作完成),这时,即使给它CPU,它也无法运行,称该进程处于等待状态、阻塞、 睡眠、封锁状态。
4、新状态。当一个新进程刚刚建立,还未将其放入就绪队列时的状态,称为新状态。
5、结束状态。当一个进程已经正常结束或异常结束,操作系统已将其从系统队列中移出,但是,尚未撤消。

进程的状态变迁图(三态图):

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zd9AlHsl-1626180647826)(C:\Users\邵星宇\AppData\Roaming\Typora\typora-user-images\image-20210702145041295.png)]

进程的挂起

将挂起操作作用于某个进程时该进程将会被挂起。此时该进程处于静止的状态,
如果正在运行则暂停进入阻塞态,
如果处于就绪态,则该进程暂不接受调度
与挂起对应的时激活状态

进程的状态变迁图(五态图):

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BfiClRqb-1626180647827)(C:\Users\邵星宇\AppData\Roaming\Typora\typora-user-images\image-20210702150612067.png)]

2_3进程的基本结构

**进程的组成:**程序段、数据段、进程控制块

进程控制块(PCB):存放进程的管理和控制信息的数据结构,是OS感知进程存在的唯一标志。

创建进程时为其建立PCB,伴随进程运行的全过程,直到进程撤销而收回。系统通过PCB实现对程序的控制。
说明:
1、PCB只能由OS访问,不允许用户进程访问。
2、一个系统中的PCB数目是一定的,它规定了该系统可同时拥有的进程的最大数目。
3、每个PCB是系统PCB表中的一个表目。
4、PCB的组织方式可采用链接方式和索引方式
5、PCB表常驻内存,存放于OS中专门开辟的PCB

进程控制块的内容:

1)进程标识信息:
进程标识符用于标识一个进程,通常有外部标识符和内部标识符两种。 
(2)说明信息(进程调度信息):
说明信息是与进程调度有关的状态信息 :进程状态、优先级、阻塞原因等。
(3)现场信息(处理器状态信息):
现场信息是用于保留进程存放在处理器中的各种信息,主要由处理器中的各个寄存器的内容组成。 
(4)管理信息(进程控制信息):
管理信息包括进程资源、控制机制等一些进程执行所需要的信息:程序和数据的地址、进程同步和通信机制 、资源清单 、链接指针等。 
(5)其他信息:如进程的家族联系等

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8M5zOKhW-1626180647829)(C:\Users\邵星宇\AppData\Roaming\Typora\typora-user-images\image-20210702152501372.png)]

进程的组织:

1、链接方式:根据进程的状态将PCB分为多个队列,操作系统拥有指向各个队列的指针
2、索引方式:用的较少不做介绍。

链接方式:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-F04Qzy3t-1626180647831)(C:\Users\邵星宇\AppData\Roaming\Typora\typora-user-images\image-20210702152923091.png)]

2_4进程的控制

处理器管理概述:

处理器管理的主要任务就是对处理器进行合理有效的分配,又因为处理器的管理和运行都是以进程为单位,所以对处理器管理可以看作对进程的管理。

处理器管理的主要功能:

1.处理器调度:作业调度,进程调度
2.进程控制
3.进程同步与互斥
4.进程通信

**进程的控制:**包括进程的创建、进程的撤销、以及改变进程的状态。

如何实现进程的控制?

内核进行操作时,利用原语操作实现。

原语:指具有特定功能不可被中断的过程。主要实现操作系统的一些专门控制操作。
原子操作:一个操作中的所有动作要么全做,要么全不做,即不可分割的操作。
原语采用“关中断指令”和“开中断指令”实现

用于进程控制的原语:

(1)创建原语(create原语):用于为一个进程分配工作区和建立PCB,置该进程为就绪状态。
(2)撤消原语(Termination):用于一个进程工作完后,收回它的工作区和PCB。
(3)阻塞原语(blocked):用于进程在运行过程中发生等待事件时,把进程的状态改为阻塞状态,或者叫(挂起原语)。
(4)唤醒原语(blocked):用于当进程等待的事件结束时,把进程的状态改为就绪状态。
(注意:阻塞和唤醒应当成对出现)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JKpirwtc-1626180647834)(C:\Users\邵星宇\AppData\Roaming\Typora\typora-user-images\image-20210702160104811.png)]

2_5进程调度

从就绪队列中按照一定的算法选择一个进程把处理机分配给它运行,以实现进程并发地执行。

处理机调度三个层次:

低级调度(进程调度)
中级调度(内存/交换调度)
高级调度(作业/长程/宏观)

进程调度(低级调度):

它的主要功能是按照某种调度原则,实现对处在就绪队列里的进程进行调度。
作业调度与进程调度的关系:
   作业调度是把输入缓存中的作业装入主存,此时系统为该作业创建一个进程,若有多个作业被装入主存储器,则同时存在多个进程。它们处于就绪状态 (万事具备,只欠处理器)
    进程调度则是选择当前可占用处理器的进程,当进程的状态发生变化,他让出处理器,进程调度就再选另一个作业的进程去运行。

中极调度:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gWvqdOgb-1626180647834)(C:\Users\邵星宇\AppData\Roaming\Typora\typora-user-images\image-20210702161829280.png)]

三种调度直接的关系:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V1TvQlpQ-1626180647835)(C:\Users\邵星宇\AppData\Roaming\Typora\typora-user-images\image-20210702161915573.png)]

进程调度算法

1、进程调度的方式:

抢占式(剥夺方式)
非抢占式(非剥夺方式)

2、常用的调度算法:

(1)先来先服务算法(FCFS)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L238G1Q1-1626180647835)(C:\Users\邵星宇\AppData\Roaming\Typora\typora-user-images\image-20210702162446356.png)]

特点:① 原理简单,易于实现。
     ② 各进程平等竞争。
     ③ 由于各进程执行的时间不一样,从而导致相对不公平现象的产生。
     ④ 有利于长进程,不利于短进程。
     ⑤ 很少用来作为主调度策略,常常用作辅助调度算法使用

(2)时间片轮转法(RR)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OQxloeQe-1626180647837)(C:\Users\邵星宇\AppData\Roaming\Typora\typora-user-images\image-20210702162619347.png)]

每个进程被分配一时间段,称作它的时间片,即该进程允许运行的时间。即使没运行完也要中断到后面(就绪态)排队。
特点: ① 时间片的长度选择比较困难 
	  ② 时间片长度选择的动态性 
      ③ 该算法的扩充——多级反馈轮转法(法分级调度法)
抢占式算法:若进程未能在时间片完成,则被强行剥夺处理机使用,由时钟发出时钟中断通知时间片到    

(3)最高优先权优先调度算法(优先数法,优先级法)

**基本思想:**为每个进程规定一个优先数,进程优先权高者优先调度;优先级别相同,则采用FCFS算法。

静态法:创建进程时确定,之后不再改变 
动态法:是指在创建进程有一个初始优先权,在进程运行过程中再根据情况的变化调整优先权 。(动态优先权一般根据进程占有CPU时间的长短、进程等待CPU时间的长短等因素确定)
抢占、非抢占方式

(4)多级队列调度算法(分级反馈队列)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wb4Prnyx-1626180647838)(C:\Users\邵星宇\AppData\Roaming\Typora\typora-user-images\image-20210702163529580.png)]

**思想:**先照顾输入输出繁忙的过程;你要得越多、就必须等得越久(抢占式算法)

总结:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VBQ1sIqR-1626180647838)(C:\Users\邵星宇\AppData\Roaming\Typora\typora-user-images\image-20210702163707267.png)]

三层调度的联系与对比:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wX27EvFJ-1626180647838)(C:\Users\邵星宇\AppData\Roaming\Typora\typora-user-images\image-20210702163737979.png)]

进程调度需要完成的主要功能:

记录系统中所有进程的情况,如进程状态、优先数等
确定处理机的分配算法
完成处理机的分配
完成处理机的回收

三种调度方法比较:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VQ9TOfLH-1626180647839)(C:\Users\邵星宇\AppData\Roaming\Typora\typora-user-images\image-20210702163906192.png)]

2_6作业调度

概念: 特权指令、管态、目态

特权指令:只能由os使用的指令
    主要用于系统资源的分配和管理,包括改变系统的工作方式,检测用户的访问权限,修改虚拟存储器管理的段表,页表和完成任务的创建和切换等
管态:管理程序态
    当cpu控制权移至os,硬件设为管态
目态:目标程序态
	用户程序占用cpu,硬件设为目态
这是CPU的两种工作状态:当其处于管态时,可执行包括特权指令在内的一切机器指令;当其处于目态时,只能执行非特权指令,禁止使用特权指令

用户与操作系统的两种接口:

1、程序级:系统调用
2、操作命令级:命令接口
    作业控制语言( 早期批处理操作 系统) 
    键盘命令(交互式操作系统,分时操作系统为代表) 
    图形用户接口(UNIX、WINDOWS)

访管指令:

是一条非特权指令,执行它时会产生一条软中断,促使cpu由目态转变为管态,用户程序只有通过访管指令,才能由目态转为管态,以达到调用系统调用命令的目的。

作业调度与管理

(1)作业与作业步

一个作业的各作业步之间是有联系的。通常,上一个作业步的输出是下一个作业步的输入。下一个作业步能否顺利执行,取决于上一个作业步的结果是否正确。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b15U1Rj0-1626180647840)(C:\Users\邵星宇\AppData\Roaming\Typora\typora-user-images\image-20210702184509382.png)]

(2)作业控制块(JCB)

作业提交时用于记录作业调度所需信息的数据结构,即作业说明。

概念:

后备作业与后备作业队列:
    被系统接纳的作业,在未投入运行前,称后备作业。它们存放在辅存,由JCB连接在一起,形成后备作业队列。后备作业队列里的作业,不参与对处理机的竞争,但系统从它们里面挑选对象去参与对处理机的竞争。
作业调度:
    按某种规则从后备作业队列里挑选作业进入内存,参与对处理机的竞争,称为作业调度,它由作业调度程序完成。所 采用的规则,称作业调度算法。
作业的生命期:从作业提交给系统,到作业运行完毕被撤消,是一个作业的生命期。在这期间,作业随着自己的推进,及环境变化,状态也在不断变化。

(3)作业调度(高级调度/宏观调度)

功能:按照某种调度原则,选取某些作业进入内存,为它们分配必要的资源,建立相应的进程,并当作业完成后做好一切的善后工作。

作业调度的作用:

1、选择作业:按照作业调度算法,从作业队列中选取作业进入内存
2、分配资源:调用存储管理和设备管理程序,为选中的作业分配内存和外设
3、建立作业的进程:为选中的作业建立的进程
4、作业善后处理:作业运行完毕时回收该资源占用的资源,输出必要的信息,撤销必要的信息,撤销该作业的JCB与相应的进程

作业状态

从作业提交到作业运行完毕的全过程
作业在整个活动期间有4种状态:
1、提交状态:用户正在将程序和数据输入计算机外存
2、后备状态:用户程序和数据已经进入外存待运行,又叫收容状态
3、执行状态:作业被作业调度程序选中送入内存,参与竞争处理机;(作业将生成若干进程)
4、完成状态:作业运行结束,系统回收其占用的所有资源,使其退出系统

作业调度算法:

1、先来先服务(FCFS)

2、短作业优先(Short Job First)

3.响应比最高者优先算法 (Highest Response Ratio Next)

响应比最高者优先算法 :响应比=(等待时间+计算时间)/计算时间

**周转时间:**从作业提交到作业完成的时间间隔(等待的时间+作业运行的时间)

周转时间=完成时间-到达时间

平均周转时间=周转时间/进程个数

**等待时间:**是从作业进入后被队列起,到被调度程序选中时的时间间隔。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZctnqNVW-1626180647840)(C:\Users\邵星宇\AppData\Roaming\Typora\typora-user-images\image-20210702192315358.png)]

实验2:Linux中进程的创建

1、fork()函数

1、头文件:
#include<sys/types.h>      //提供类型pid_t的定义
#include<unistd.h>         //提供fork()命令
2、系统调用格式: 
pid=fork( )
参数定义:
int  fork(  )
3、返回值:
    子进程返回0,父进程返回子进程的ID,出错返回-1
    pid=0,表示当前为子进程。
    pid>0,表示当前为父进程。
    pid=-1,表示创建失败。
4、注意:创建子进程时产生一个新的PCB。
     父子进程并发执行。
     创建后父子的调度平等。
     父子共享代码区,子复制父的数据区。
ps -l :获得进程详细状态

2、getpid()

头文件:
   #include<sys/types.h>    
   #include<unistd.h> 
系统调用格式:
    pid=getpid()
    返回值:调用进程的进程ID

3、getppid()

头文件:
   #include<sys/types.h>    
   #include<unistd.h> 
系统调用格式:
    pid=getppid()
    返回值:调用进程的父进程ID
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值