进程基本概念
一 进程(Process)
1 定义:一个具有以下特征的活动单元:一组指令序列的执行,一个当前状态和相关的系统资源集。(有多种解释,笔者采用认为最合适的一种)
2 进程状态(process state):就是进程的生命状态,描述进程所表现的行为。
2.1两状态进程模型
说明:进程状态分为:运行态、非运行态。
图解:
2.2 五状态模型
说明:
新建态:刚刚创建的进程,OS并没有将其调度至可运行进程队列中。
运行态:该进程正在运行。
就绪态:进程做好的运行的准备,等待系统调度运行。
阻塞态(等待态):进程正在等待某些事情发生后才能继续执行,如I/O操作。
退出态:已经执行完的进程被释放,或者进程自身停止,或者因为其他原因被终止。
图解:
2.3 状态之间的转换
空---->新建:创建一个新进程。
新建---->就绪: 操作系统准备再接纳一个进程时,将其从新建态转换到就绪态。
就绪---->运行:操作系统选择一个进程运行时,从就绪进程中选择。
运行---->退出:进程已经运行结束或者被取消。
运行---->就绪:出现这种情况最大的可能原因有两个:一是,该进程运行时间超过了系统规定的时间片。二是,在基于优先级设计的系统中,当有一个比正在运行的进程的优先级高的进程进入到就绪态时,系统会优先调度该优先级高的进程运行,并将当前运行进程转换到就绪态。
运行---->阻塞:一般是因为进程请求必须等待某些事情发生,如I/O操作。
阻塞---->就绪:当进程等待的事情发生后,处于阻塞态的进程转换到就绪态。
就绪---->退出:父进程可以在任何时刻终止一个子进程。(一般情况下)
阻塞---->退出:原因同上。
3进程描述--进程控制块(PCB)
进程控制块是一种数据结构,包含进程的属性,如PID,状态等。是由操作系统创建和管理的。是操作系统支持多进程和提供多重处理技术的关键技术。
进程映像:用户数据,用户程序,系统栈,进程属性(PCB)的集合。
4进程创建和终止
4.1 导致进程创建的原因
事件 | 说明 |
新的批处理事件 | 通常是磁带或者磁盘中的批处理作业控制流被提供给OS |
交互登陆 | 终端用户登录到系统 |
OS因为提供一项服务而创建 | OS可以创建进程代表用户程序执行一个功能 |
由现有进程派生(spawned) | 用户程序可以创建多个进程 |
事件 | 说明 |
正常完成 | 进程自行执行一个OS服务,表示其已经结束运行 |
超过时限 | 进程运行超过规定的运行时间 |
内存不足 | 系统无法满足进程需要的内存空间 |
越界 | 进程视图访问不允许访问的内存单元 |
A 给新进场分配一个唯一的进程标识符。
B给进程分配空间。
C初始化进程控制块
D设置正确的连接
E创建或者扩充其他数据结构
4.4进程切换
模式切换:用户态和内核态之间的切换,可以不改变正在运行的进程的状态。
进程切换:某一时刻,一个正在运行的进程被中断,操作系统调度另一个进程为运行态,并把控制权交给该进程。
进程切换步骤:
A保存处理器上下文环境,包括程序计数器和其他寄存器。
B更新当前处于运行态进程的进程控制块。
C将进程的进程控制块移到相应的队列。
D操作系统调度选择另一个进程执行。
E更新所选择进程的进程控制块。
F更新内存管理的数据结构。
G当前进程运行结束后,恢复上一个进程被切换出运行态是的上下文信息。
转载请注明出处:CSDN 博客 http://blog.csdn.net/chenzhao2013/article/details/46598229