Chinaunix首页 | 论坛 | 博客
  • 博客访问: 716828
  • 博文数量: 67
  • 博客积分: 994
  • 博客等级: 准尉
  • 技术积分: 1749
  • 用 户 组: 普通用户
  • 注册时间: 2011-08-03 14:10
文章分类
文章存档

2014年(11)

2013年(14)

2012年(14)

2011年(28)

分类: LINUX

2011-09-30 17:30:50

      首先什么叫进程?
       简单的说进程就是运行的程序,就是说一个程序加载到内存后就变为进程。
      进程在Multics操作系统出现前叫工作(job).工作是IBM用于多道批处理程序中用到的概念。历史原因最后改为进程(process)。
     那么进程是如何引入的?
    在之前的操作系统中CPU的利用率很低,为了提高CPU的利用率人们将多个程序同时加载到计算机里,并发执行
   ,这些加载到内存中的程序就成了进程。所以进程的引入实现了多道编程。
    进程如何产生?
     进程的产生主要有以下几种情况:1、系统初始化 2、执行进程创立程序  3、用户请求创建新进程
     进程的消亡
     造成进程消亡的事件主要分为4中。
      1、寿终:进程运行完成而退出
       2、自杀:进程因错误而自行退出。
       3、他杀:进程被其他进程强行“杀死”。
       4、处决:进程因异常而强行终结。
前两种情况都是自愿退出,后两种情况被动退出。
       进程的状态
       首先进程至少有执行和挂起两种状态。如果进程在CPU上执行,自然是执行状态。如果是挂起状态呢?那就要看什么原因挂起的。因为操作系统进行进程调度是要从挂起的进程里面选择一个来执行,所以清楚一个进程挂起的原因对进程调度很重要。那么进程挂起的原因有那些?首先一个进程在执行过程中执行了 某种阻塞操作。如读写磁盘。还有一种情况就是分给进程的时间用完了,这时就要挂起,以便其他进程使用CPU。达到公平公正。这两种挂起的原因不同,一种是进程自身的原因。另一种挂起是操作系统的原因。
    一般情况下我们将进程分为执行、阻塞、就绪3终状态。他们之间的关系为:执行--->就绪    执行--->阻塞    阻塞---->就绪      和  就绪----->执行
    进程创立步骤:
    1、分配进程控制块
     2、初始化机器寄存器。
     3、初始化页表。
     4、将程序代码从磁盘度进内存。
     5、将处理器状态设置为“用户态”。
     6、跳转到程序的起始地址。
  这里的一个最大的问题是跳转指令是内核态指令。而在第5步时处理器状态已经被设置为用户态,而用户态下是不能执行内核 态指令的。如何解决?这就需要硬件帮忙了。硬件必须将第5、第六两步作为一个步骤一起完成。
   进程如何管理?
   进程的管理当然在操作系统的管理之下。到底操作系统如何或怎样更详细的管理进程。操作系统通过一个记录表来“监视”进程的一举一动。这个记录表就是进程表或进程控制块(PCB)。进程表或PCB里面存放的就是有关进程的资料。那么进程表里面有什么资料呢?显然,不同的操作系统维护的进程资料是不尽相同的。
     好了进程的一生基本就是这样。
参考《计算机的心智操作系统之哲学原理》
阅读(1000) | 评论(0) | 转发(0) |
0

上一篇:list.h分析

下一篇:乔帮主走了

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