进程的状态模式
2015-05-30 10:20
246 查看
进程是程序的一次执行,该程序可以和其他程序并发执行。进程通常是由程序、数据和进程控制块(PCB)组成.
进程的状态可以分为三态模型和五态模型,五态模型实在三态模型的基础上进行进一步的划分得到的。所谓的三态模型是在多道程序系统中,进程在处理器上交替运行,状体不断发生变化,一般有三种状态:运行、就绪和阻塞。下面通过一张图,简单介绍一下三态模型。a:就绪。b:运行。c:阻塞。
![](http://img.blog.csdn.net/20150530095440850?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDAxMTM3MQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
运行:当一个进程在处理机运行时,则称改进程处于运行状体。
就绪:一个进程获得除处理机外的一切所需资源,一旦得到处理机即可运行,责成此进程处于就绪状态。
阻塞:也称等待或睡眠状态,一个进程正在等待某一事件发生而暂时停止运行。
五态模式如图:
![](http://img.blog.csdn.net/20150530100658887?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDAxMTM3MQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
活跃就绪:是指进程在主存并且可被调度的状态。
静止就绪:是指就绪进程被对换到辅存时的状态,时不能被直接调度的状态,只有当主存中没有活跃就绪态进程,或者是挂起态进程具有更高的优先级,系统将把挂起的就绪进程调回主存并转换为活跃就绪。
活跃阻塞:是指进程在主存,一旦等待事件产生便进入活跃就绪状态。
禁止阻塞:是指阻塞进程对换到辅存时的状态,一旦等待的事件产生便进入静止就绪状态。
进程间的通信→同步与互斥:
1、定义:同步是合作进程间的直接制约问题,互斥是申请临界资源间的间接制约问题。
同步:多个进程并发执行,每个进程都是各自独立的、不可预知的速度向前推进,但是需要在某些确定点上协调相互合作进程间的工作。
互斥:有些资源一次只能供一个进程使用,称为临界资源。如打印机等。进程间的互斥是指系统中各进程互斥使用临界资源。
2、PV操作是实现进程同步与互斥的常用方法。P操作表示申请一个资源。V操作表示释放一个资源。二者是低级通信原语,在执行期间不可分割。
P操作:也称为down()、wait()操作,使S=S-1,若S<0,进程暂停执行,放入信号量的等待队列。若S≥0,执行P操作的进程继续执行。
V操作:也称为up()、signal()操作,使S=S+1,若S>0,则执行V操作的进程继续执行,若S≤0,则从阻塞状态唤醒一个进程,并插入就绪队列,然后执行V操作的进程继续。
进程的状态可以分为三态模型和五态模型,五态模型实在三态模型的基础上进行进一步的划分得到的。所谓的三态模型是在多道程序系统中,进程在处理器上交替运行,状体不断发生变化,一般有三种状态:运行、就绪和阻塞。下面通过一张图,简单介绍一下三态模型。a:就绪。b:运行。c:阻塞。
运行:当一个进程在处理机运行时,则称改进程处于运行状体。
就绪:一个进程获得除处理机外的一切所需资源,一旦得到处理机即可运行,责成此进程处于就绪状态。
阻塞:也称等待或睡眠状态,一个进程正在等待某一事件发生而暂时停止运行。
五态模式如图:
活跃就绪:是指进程在主存并且可被调度的状态。
静止就绪:是指就绪进程被对换到辅存时的状态,时不能被直接调度的状态,只有当主存中没有活跃就绪态进程,或者是挂起态进程具有更高的优先级,系统将把挂起的就绪进程调回主存并转换为活跃就绪。
活跃阻塞:是指进程在主存,一旦等待事件产生便进入活跃就绪状态。
禁止阻塞:是指阻塞进程对换到辅存时的状态,一旦等待的事件产生便进入静止就绪状态。
进程间的通信→同步与互斥:
1、定义:同步是合作进程间的直接制约问题,互斥是申请临界资源间的间接制约问题。
同步:多个进程并发执行,每个进程都是各自独立的、不可预知的速度向前推进,但是需要在某些确定点上协调相互合作进程间的工作。
互斥:有些资源一次只能供一个进程使用,称为临界资源。如打印机等。进程间的互斥是指系统中各进程互斥使用临界资源。
2、PV操作是实现进程同步与互斥的常用方法。P操作表示申请一个资源。V操作表示释放一个资源。二者是低级通信原语,在执行期间不可分割。
P操作:也称为down()、wait()操作,使S=S-1,若S<0,进程暂停执行,放入信号量的等待队列。若S≥0,执行P操作的进程继续执行。
V操作:也称为up()、signal()操作,使S=S+1,若S>0,则执行V操作的进程继续执行,若S≤0,则从阻塞状态唤醒一个进程,并插入就绪队列,然后执行V操作的进程继续。
相关文章推荐
- Google I/O 2015 为 Android 开发者带来了哪些福利?
- 3.1-7
- 人生的三个陷阱+人的一生,到底在追求什么?
- 人生之最
- JS截取字符串常用方法详细整理
- centos禁止root用户登录系统
- 红外
- Arduino控制风扇转动
- hdu 1394 Minimum Inversion Number
- 前端知识质量内容网址
- 那个和你一起吃路边摊的姑娘为什么没有陪你走到最后
- 梯度-牛顿-拟牛顿优化算法和实现
- HDU 5239 上海大都会 D题(线段树+数论)
- 阅读8.9.10章
- 2013斯坦福大学iOS应用开发学习笔记 11 Table View and iPad
- 与人说话
- poj1061青蛙的约会 扩展欧几里得
- 常用正则表达式
- 1.CentOS 6.5 静态网站制作学习
- ZOJ 3713 In 7-bit