Chinaunix首页 | 论坛 | 博客
  • 博客访问: 57502
  • 博文数量: 9
  • 博客积分: 228
  • 博客等级: 入伍新兵
  • 技术积分: 110
  • 用 户 组: 普通用户
  • 注册时间: 2012-05-25 12:12
文章分类

全部博文(9)

文章存档

2012年(9)

分类: LINUX

2012-05-29 14:38:11

  看过操作系统的人应该都知道的一个概念.进程..

  先提几个概念.就绪队列 阻塞队列,调度程序.

   对多道程序设计的操作系统来说,进程在内存中有三个大体状态.就绪态,阻塞态和执行态. 进程创建好的状态时就绪态.多道程序设计要在一段时间内执行多个程序.所以所有的就绪态的进程组成一个就绪队列(一般是链式队列).同理,阻塞队列也是这样来的.进程状态之间的转换后面会提到.

    调度程序就是从就绪队列中选择一个,让他执行.

   进程通俗了理解就是运行中的程序,

   进程和程序的区别:

      1, 进程是动态的.程序是静态的,就是在内存或者外存中的一堆代码和数据.

      2, 进程是动态的.

      3,进程有自己的进程控制块.

      4,进程大了来分有三个状态,程序就只是存在那里而已.

    操作系统载入进程并为其分配PCB(进程控制块 Process Control Block)运行所需要的资源.然后把进程插入就绪队列中.进程状态从创建状态转为活动就绪态.若是分配运行时所需资源时没有分配成功(例如主存空间不够了).则进程状态被转换成静止就绪态.

    进程之间详细状态以及其转换.进程状态大体来分的三种状态本文前面已经说过,在细分的话.就有:活动就绪态,静止就绪态,活动阻塞态,静止阻塞态. 执行态,创建态,终止态. 两种就绪态都不能直接到阻塞态.任何一种阻塞态不能直接到执行态.两种静止状态都是要转换成该状态是没有申请到空间.释放了空间就可以转换为对应的活动态.执行态若是遇到异常,等待某个正在占用的资源,或者等待某个程序的回应时等等则转换为阻塞态.等到了则被唤醒,进入就绪队列.

    就绪态转换成执行态.若是就绪队列中的某个进程被调度程序选中了,则修改其PCB中的调度位(说明不需要调度了,调度程序通过这一位来选择程序).

    很多时候一个时钟周期不能执行完一个进程.CPU执行了一个时间片后把断点保存到PCB 中的寄存器中.

    进程的删除.删除PCB块并把资源还给操作系统.进程的创建也是创建PCB块并分配资源.进程删除时候,若是进程在就绪队列中并没有子孙进程,则删除PSB块,归还资源.若是进程在执行,则修改调度位,调度程序重新调度.若是有子孙进程,则先等待子孙进程退出然后删除PCB,归还资源给系统或者父进程.

阅读(1864) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:处理机三级调度以及调度算法略讲

给主人留下些什么吧!~~