操作系统知识整理 - 进程控制

版权声明: https://blog.csdn.net/Ha1f_Awake/article/details/85345416

主要内容


所谓进程控制,就是系统使用一些具有特定功能的程序段来创建撤销进程以及完成进程各状态间的转换,从而达到多进程高效率并发执行和协调、实现资源共享的目的。

在操作系统中,这些用于进程控制的程序段被做成原语原语又分为创建原语撤销原语阻塞原语唤醒原语挂起原语激活原语等。

创建进程

创建进程有两种方式:由系统程序模块统一创建;由父进程创建(形成家族关系)。

无论是哪种创建方式,都必须调用创建原语来实现。创建原语扫描系统的PCB链表(存储各进程的PCB),在找到一定的PCB表后,填入调用者提供的各项参数,最后形成代表进程的PCB结构。参数包括进程名进程优先级P0进程正文段起始地址d0资源清单R0等。

撤销进程

撤销进程的情况:

(1)进程已完成所要求的功能而正常终止;

(2)由于某种错误导致非正常终止;

(3)父进程(祖先进程)要求撤销某个子进程。

撤销原语首先检查进程链表或进程家族是否存在要撤销的进程,如果有,且该进程没有子进程,则释放该进程占有的所有资源,并释放PCB结构。

阻塞进程

阻塞原语实现进程从执行状态阻塞状态的转换。首先保存当前进程的CPU现场,然后将PCB块中的进程状态设置为“阻塞状态”,再将被阻塞进程放入等待队列。旧进程(被阻塞进程)处置好后,就要转进程调度,选择新进程(就绪进程)投入运行。

唤醒进程

唤醒进程有两种方式:由系统进程唤醒;由事件发生进程唤醒。

唤醒原语实现进程从阻塞状态就绪状态的转换。首先将被唤醒进程从相应的等待队列摘下,然后将PCB块中的进程状态设置为“就绪状态”,并送入就绪队列。

随后唤醒原语既可以返回原调用程序,也可以转进程调度

挂起进程

挂起进程的情况:

1)终端用户的需要:在程序运行期间发现可疑问题后,及时暂停处理。

2)父进程请求:父进程挂起子进程,可以协调各子进程间的活动。

3)调节负荷:当实时系统中的负荷影响到对实时任务的控制时,可由系统把一些不重要的进程挂起,保证系统的正常运行。

4)挂起某些进程,以便检查资源的使用情况。

挂起的作用:

1. 挂起就绪状态的进程后,进程变为静止就绪态,直至被激活原语作用才能变为活动就绪态;同理,挂起阻塞状态的进程后,进程变为静止阻塞态,直至被激活原语作用才能变为活动阻塞态

2. 执行状态的进程被挂起后变为静止就绪态

3. 活动阻塞态的进程被唤醒后,只能变为活动就绪态静止阻塞态的进程被唤醒后,只能变为静止就绪态

猜你喜欢

转载自blog.csdn.net/Ha1f_Awake/article/details/85345416