操作系统学习笔记-进程控制

别等时光非礼了梦想. 提交于 2020-03-04 06:00:57

进程控制

操作系统内核

通常将一些与硬件紧密相关的模块(如中断处理程序等)、各种常用设备的驱动程序以及运行频率比较高的模块(如时钟管理、进程调度和许多模块公用的一些基本操作),都安排在紧靠硬件的软件层次中,将它们常驻内存,即通常被称为的OS内核。

目的:便于对这些软件进行保护,防止遭受其他应用程序的破坏;提高OS运行效率

为了防止OS本身及其关键数据(如PCB等)遭受程序有意或无意的破坏,通常将处理机的执行状态分为系统态和用户态两种

系统态又称管态,也称为内核态。它具有较高的特权,能执行一切指令,访问所有寄存器和存储区,传统的OS都在系统态运行

用户态又称目态。它是具有较低特权的执行状态,仅能执行规定的指令,访问指定的寄存器和存储区。

一般情况下,应用程序只能在用户态运行

支持功能

中断处理中断处理是内核最基本的功能,是整个操作系统赖以活动的基础,OS中许多重要的活动(系统调用、键盘命令的输入、进程调度、设备驱动)无不依赖于中断

时钟管理(时间片轮转调度、实时系统中断截止时间控制、批处理中的最长运行事件控制等)

原语操作所谓原语就是由若干指令组成的,用于完成一定功能的一个过程

资源管理功能

进程管理

存储器管理

设备管理

进程的创建

OS运行一个进程(父进程)创建另一个进程(子进程)

在系统中每当出现了创建新进程的请求后,OS便调用进程创建原语Creat按下述步骤创建一个新进程:

1.申请空白PCB

2.为新进程分配其运行所需资源。新进程对资源的需求一般也要提前告知操作系统或其父进程

3.初始化进程控制块(PCB)

包括:初始化标识信息;初始化处理机状态信息;初始化处理机控制信息

4.如果进程就绪队列能够接纳新进程,便将新进程插入到就绪队列

进程的终止

引起进程终止的事件

1.正常结束

2.异常结束:

1.越界错:程序访问的存储区,已越出该进程的区域

2.保护错,指进程试图访问一个不允许访问的资源或文件,或以不适当的方式进行访问(如进程试图去写一个只读文件)

3.非法指令,程序试图区执行一条不存在的指令

4.特权指令错,指用户进程试图去执行一条只允许OS执行的指令

5.运行超时,指进程的执行时间超过了指定的最大值

6.等待超时,指进程等待某事件的时间超过规定的最大值

7.算术运算错,值进程试图去执行一个被禁止的运算

8.I/O故障,指在I/O过程中发生了错误

3外界干预

1.操作员或操作系统干预

2.父进程请求

3.因父进程终止,当父进程终止时,它的所有子进程都应该结束

进程的终止过程

1.根据被终止进程的标识符,从PCB集合中检索出该进程的PCB。从中读出该进程的状态

2.若被终止进程正处于执行状态,应立即终止该进程的执行,并置调度标志为真,用于至少该进程被终止后应重新进行调度

3.若该进程还有子孙进程,还应该将其所有子孙进程也都予以终止,以防它们成为不可控的进程

4.若被终止进程所拥有的全部资源或者归还给其父进程或者归还给系统

5.将被终止进程(PCB)从所在队列(或链表)中移出,等待其他程序来搜索信息

进程的阻塞与唤醒

下述几类事件会引起进程阻塞或被唤醒:

向系统请求共享资源失败;等待某种操作完成;新数据尚未到达;等待新任务的到达

在执行的过程中,如果发生了上述某事件,进程便调用阻塞原语block将自己阻塞。阻塞是进程自身的一种主动行为

当被阻塞进程所期待的事件发生时,则由有关进程调用唤醒原语wakeup,将等待该事件的进程唤醒。weakup执行的过程是:首先把阻塞的进程从等待该事件的阻塞队列中移除,将其PCB中的现性状态由阻塞改为就绪,然后将该PCB插入就绪队列中。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!