进程(基础介绍)

1、何为进程

      进程是正在运行中的程序。程序加载到内存中后就变成了进程。将多个程序加载到计算机中并发的执行,可以提高系统资源的利用率,缩短系统的响应时间。实现进程首先需要考虑程序的存储,这需要给程序分配合适的内存。但由于多进程的存在,为了避免内存冲突需要进行内存管理。 此外,进程运行实际上是指进程在CPU上执行。那么如何将CPU在多个进程之间进行交接或切换,这就需要考虑进程的调度了。进程间还需要考虑进程间的通讯。

      多进程可以提高资源(CPU)的使用效率,看如下例子。

      如果一个进程有20%的时间使用CPU进行计算,另外80%的时间用来进行I/O,则如果使用单道编程,CPU的利用率只有20%。但如果同时运行两个这样的进程,即进行所谓的2道编程,则CPU利用率将提高到36%(忽略了进程切换所需要的系统消耗, CPU只在两个进程同时进行I/O时才处于闲置状态,因此CPU的利用率为1-0.8×0.8=36%)。但如下图所示,随着进程数量的增加,CPU利用率在稳定的上升,但最终会到达极限(下图中进程数为12时到达极限)。

       进程越多就不得不考虑进程切换的消耗了。到达临界点之后再起进程,多进程带来的好处会呈现下降的趋势。

      多进程带来的另外一个好处是响应时间(用户的等待时间)的降低。假设现在有四个进程,每个进程花费80%的时间进行I/O,20%的时间使用CPU。每个进程的启动时间和使用CPU的时间如下图所示。

       多进程环境下,每个进程的响应时间如下表所示。

       而单进程环境下,则每个进程的响应时间如下表所示。

       由上述两个表格的数据可以看出,多进程比起单进程,系统平均响应时间缩短了约21分钟,响应时间改善程度约47%,这是一个巨大的改善。

      多进程带来的好处到底有多少与每个程序的性质、多道编程的度数、进程切换消耗等均有关系。但一般来说,只要度数适当,多进程总是利大于弊。

2、进程的状态转移

      进程从CPU的使用来说,分为两种状态。一种是执行状态(CPU上执行);另一种是挂起状态。挂起的原因可能是因为进程自身的原因,如在进程运行过程中执行了阻塞操作(读写操作),此时即使给其CPU控制权它也不会使用,这时OS就会将该进程挂起,运行其他进程;还可能使为了公平性,将运行时间太长的进程挂起,让其他进程运行。

      逻辑上进程分为3种状态:执行、阻塞和就绪。下图是它们之间状态的转换图。

 3、进程的管理

      创建进程的步骤如下所示:

            1)分配进程控制块。

            2)初始化机器寄存器。

           3)初始化页表。

           4)将程序代码从磁盘读进内存。

           5)将处理器状态设置为“用户态”。

            6)跳转到程序的起始地址(设置程序计数器)。

      进程的产生,操作系统需要维护进程的一些信息。进程产生后,操作系统使用进程表维护进程信息。一般来说,维护的资料信息应当包括寄存器、程序计数器、状态字、栈指针、优先级、进程ID、信号、创建时间、所耗CPU时间、当前持有的各种句柄等。而采纳的数据结构主要是线性表、链表和结构(struct),当然也可能使用树和图(网络)结构。

       进程表保存在操作系统的内核中。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我要出家当道士

打赏是不可能,这辈子都不可能

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值