操作系统2_进程控制

进程管理中最基本的功能。创建,终止,状态转换操作

有OS内核中的原语实现的,原语由若干指令组成,是‘原子操作‘,所有动作要么做,要么不做,不允许中断,在管态下执行,常驻内存

进程创建:

进程图是描述有进程家族关系的有向树

进程间关系:子进程可以继承父进程所拥有的资源

引起进程创建事件

1,、用户登录;2、作业调度;3、提供服务;4、应用请求

进程的创建:

申请空白PCB;为新进程分配资源;初始化进程控制块;将新进程插入就绪队列;

进程终止:

引起的事件:

正常结束:每种系统都应有表示进程已经运行完成的指示;

异常结束:越界错误;保护错;非法指令;特权指令错;运行超时;等待超时;算术运算错;I/O故障;

外界干预:操作员或OS干预;父进程请求;父进程终止;

终止过程:

1、根据标示符,找出该进程PCB,读取其状态;

2、若该进程在执行,立即终止其执行,置调度标志为真,用于指示该进程被终止后应重新进行调度

3、若还有子进程,应将其所有子孙进程终止;

4、将被终止进程的所有资源,还给其父进程,或者OS;

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

进程阻塞和唤醒:

引起阻塞的事件:

请求系统服务

启动某种操作

新数据未到达

无新工作可做

阻塞过程

出现上述事件时,进程通过阻塞原语block把自己阻塞,是进程自身的主动行为。block后,立即停止当前的执行态,PCB的现行状态由执行改为阻塞,PCB插入阻塞队列。

进程唤醒过程:

所期待的事件出现时,如I/O完成时,由有关进程(如用完了并释放了该I/O设备的进程)调用唤醒原语wakeup()

过程:把阻塞的该进程从等待该事件的阻塞队列中移出,将其PCB的现行状态由阻塞改为就绪,然后将该PCB插入到就绪队列中。

挂起和激活:

挂起:

出现挂起事件时,OS利用suspend()将指定进程或处于阻塞状态的进程挂起

过程:活动就绪状态转为静止就绪状态;活动阻塞状态改为静止阻塞

激活:

active()原语

过程:与挂起正好反过来

来自为知笔记(Wiz)

操作系统2_进程控制

时间: 2024-11-03 08:52:52

操作系统2_进程控制的相关文章

操作系统(二)进程控制

1 进程状态 1. 进程的三种基本状态 1) 就绪(Ready)状态 2) 执行状态3) 阻塞状态(请求I/O,申请缓冲空间等) 2. 挂起状态 引入挂起状态的原因有: (1)终端用户的请求.当终端用户在自己的程序运行期间发现有可疑问题时,希望暂时使自己的程序静止下来.亦即,使正在执行的进程暂停执行;若此时用户进程正处于就绪状态而未执行,则该进程暂不接受调度,以便用户研究其执行情况或对程序进行修改.我们把这种静止状态称为挂起状态. (2)父进程请求.有时父进程希望挂起自己的某个子进程,以便考查和

操作系统:进程管理和IO控制

一.进程管理 进程管理包括进程控制,进程调度,进程同步与通信,死锁控制四个内容. (一)进程控制 进程是操作系统中运行的基本单位,包括程序段,数据段和进程控制段.操作系统通过进程控制块(PCB)管理进程.每一个PCB唯一标示一个进程.它存储进程的PID,UID,当前状态等信息,以及进程执行某一时刻的寄存器值,并且指向进程的数据段和程序段.OS把所有PCB链接为一个链表. 进程在刚刚被创建时出于new状态.OS负责申请一块存储空间作为该进程的PCB,在其中填上进程的信息,标示为ready,链接到P

操作系统基础-下-进程控制及处理机调度

!:进程的控制和描述 *进程的定义:进程是一个具有独立功能的程序在一个数据集合上的一次动态运行过程(是操作系统进行调度和资源分配的基本单元,进程间的通信.同步及上下文切换的开销略大) *进程的特征(了解) 1.动态性:动态性是相对于程序本身来说的,程序仅仅是存放在硬盘上的代码,而进程是程序在某一特定数据集上的动态运行,所以,动态性是程序的最基本特性 2.并发性:并发性是指在一段时间内,操作系统内有多个进程并发执行 3.独立性:进程之间是相对独立的,每个进程都有可用的内存空间 4.异步性:即进程之

进程篇(4: 基本进程控制:其他相关控制)--请参照本博客“操作系统”专栏

1. 更改进程的用户ID和组ID:为什么我们要更改用户ID和组ID的呢? 在UNIX系统中,特权是基于用户和组ID的.当用户需要增加特权,或要访问某个当前没有能力访问的文件时,我们需要更改自己的权限,以让新的ID具有合适的特权或访问权限.与此类似,当程序需要降低其特权或阻止对某些资源的访问时,也需要跟换用户ID或组ID;一般而言,在设计应用程序时,我们总是试图使用"最小特权"模型.依照此模型,我们的程序应当值具有为完成特定的任务所需要的最小特权. NAME getuid, geteui

【操作系统】进程描述与控制

前言: 开发操作系统是为了给应用程序提供一个方便.安全.一致的访问接口,以屏蔽硬件的复杂性.我们可以将操作系统理解为资源的统一抽象表示,可以被应用程序请求和访问.资源包括内存,文件等,一旦操作系统为应用程序创建了这些资源的抽象表示,就必须管理它们的使用.现代操作系统采用进程来管理应用程序的执行. 进程的概念: 1.一个具有以下特征的活动单元:一组指令序列的执行.一个当前状态和相关的系统资源集. 2.能分配给处理器并由处理器执行的实体. 3.一个正在计算机上执行的程序实例. 进程的组成: 进程由程

进程篇(3: 基本进程控制:进程的退出)--请参照本博客“操作系统”专栏

1. exit函数: 进程的五种正常的结束方式: 在main函数中执行return语句,这等效于exit; 调用exit函数.此函数由ISO C定义,其操作包括运行各终止处理程序,然后关闭所有标准I/O流等. 调用_exit或_Exit函数,ISO C定义了_Exit函数,目的是为了为进程提供一种无需运行终止处理程序和信号处理程序而终止的方法.并不处理标准I/O流! 进程的最后一个线程在其启动例程中执行返回语句,然后该进程以终止状态0返回. 进程的最后一个线程调用pthread_exit函数.

深入理解计算机操作系统——第8章:进程控制

8.4 进程控制 8.4.1 获取进程ID (1)pid_t getpid(void)和pid_t gettpid(void)函数,其中返回的是pid_t整数值 (2)pid_t在types.h文件中被定义 8.4.2 创建和终止进程

操作系统之进程篇(1)

1.进程介绍: 1.1 进程模型: 进程是一个程序的实际执行,包含了程序计数器的状态,寄存器和变量等等! 程序可以看成是一个状态的序列,程序在不同时刻呈现出不同的状态,而这种状态的前后交替过程可以看成是程序的执行过程.概念上来说,每个程序有自己的虚拟CPU,但在现实中CPU在不同的进程间来回切换,又称这种切换为伪并行! 进程和程序差别看似微小,实际上却是十分精妙; 可以将计算机执行程序的过程看成一次有趣的烹饪过程.食谱就是程序,厨师就是CPU,而食材是输入,得到的输出是鲜美可口的美食. 当厨师在

【操作系统】进程管理(二)

一.前言 之前已经介绍了操作系统的各个模块,现在来具体深入学习操作系统中的进程管理. 二.进程的基本概念 在未配置OS的系统中,程序的执行方式是顺序执行,即必须在一个程序执行完成后,才允许另外一个程序执行:在多道程序环境下,则允许多个程序并发执行.也正是程序的并发执行,才导致引入进程. 2.1 程序的顺序执行 通常可以把一个应用程序分成若干个程序段,在各程序段之间,必须按照某种先后次序顺序执行,仅当前一操作(程序段)执行完后,才能执行后继操作.如典型的输入->计算->打印任务就是顺序执行. 程