您的位置:首页 > 其它

操作系统学习笔记--进程生命周期

2018-04-02 16:20 169 查看
     进程管理中最基本功能是进程控制。进程控制任务:进程的创建、终止、进程状态的转变等。进程控制一般由OS内核来实现。
    进程图(树状结构)描述的是进程家族之间的关系,任何一个进程可以产生它的子进程。子孙进程可以继承父进程的资源,比如父进程拥有的数据、缓冲区、文件。当子孙进程结束的时候,将资源归还的父进程。

    引起创建进程的事件。(1)用户登录(分时系统,用户登录后,创建进程);(2)作业调度(批处理操作系统);(3)提供服务(操作系统为用户提供服务);(4)应用请求(由进程自己创建自己的子进程)。其中(1)(2)(3)由系统内核创建

    进程的创建:CREATE()原语 (1)申请空白PCB。(2)为新进程分配资源(资源清单写在PCB中)。(3)初始化进程控制块(进程的标志信息、处理机的状态信息、资源信息),刚产生的进程处于就绪状态。(4)将新进程插入就绪队列。

    PCB初始化 ①初始化标识信息(给系统看的内部标识、给用户看的外部标识)。②初始化处理机状态信息(通用寄存器:暂放数据、指令、指令计数器、psw用户栈指针)。③初始化处理机控制信息(置于就绪状态)

    引起进程终止的事件:1)正常结束

    异常结束:①越界(超出内存访问范围)错误;②保护(对只读的文件进行写的操作等)错误;③非法指令;④特权指令错误;⑤运行超时;⑥等待超时;⑦算术运算错(例如除0);⑧I/O故障

    外界干预:①操作员或OS干预;②被父进程终止;③父进程终止。如果父进程终止,则它的所有子进程都终止。
    进程终止过程:从PCB集合中检索(根据内部标识)出该进程的PCB,从中读出该进程的状态。若进程处于执行状态,终止该进程的执行,并且置调度标志为真,重新调度(使CPU不处于空闲状态)。若有子孙进程,将所有子孙进程终止。将进程全部资源归还其父进程或系统。将其PCB从所在队列(或链表)中移除。

    引起阻塞(自己阻塞自己,等待I/O)和唤醒的事件:请求系统服务、启动某种操作、新数据尚未到,无新工作可作

    进程阻塞过程:由阻塞原语BLOCK完成。入口->保存当前进程的CPU现场->置该进程状态(将执行状态置于阻塞状态)->进入等待队列(阻塞队列)->转进程调度

    进程唤醒过程:由唤醒原语WAKEUP完成。入口->从等待队列中摘下被唤醒进程(的PCB)->置该进程为就绪状态->进入就绪队列->(还要看优先级)转进程调度或返回

    如果在某进程中调用了阻塞原语,则必须在与之相合作(等待事件)的另一进程中或其它相关进程中,安排唤醒原语,以能唤醒阻塞进程;否则,被阻塞进程将会因不能被唤醒而长久地处于阻塞状态,从而再无机会继续运行。(有阻塞必然有唤醒。自己阻塞自己,与之相关的进程唤醒被阻塞的进程)

    进程的挂起。引入原因:由于操作系统或用户的需要,将处于就绪状态、执行的进程或内存等待队列的进程,暂时调出内存,调到外存,以便监督内存的执行或解决系统当中比较繁忙的状态。

    挂起原语:SUSPEND() 挂起原语的执行过程:检查(对不同状态的进程采用不同的操作)被挂起进程的状态,若处于活动就绪状态,改为静止就绪;若处于活动阻塞状态,则改为静止阻塞;若正在执行,改为静止就绪,转向调度程序重新调度(在活动就绪队列中的进程选择一个) (挂起是把被挂起进程的资源从内存调到外存)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: