在开始编写文章前,有几个问题需要思考一下:
1. 进程的由来
多道程序环境下,程序的执行是动态变化的,在系统中处于“走走停停、停停走走”的运行状态。为了使程序能够并发执行,并能够如实反映程序活动的动态特征,操作系统引入了进程,以对并发执行的程序加以控制和描述。计算机系统中 CPU 是以进程为单位进行分配和管理的。 2. 什么是进程?进程的概念是 20 世纪 60 年代初期,首先由麻省理工学院的 MULTICS 系统 IBM 公司的 CTSS/360 系统中引入并实现的。其后,人们对它不断加以改进,从不同方面对它进行描述。一般而言,进程是指一个具有独立功能的程序在某个数据集上的一次运行过程,它是系统资源分配和调度的基本单位。 进程和程序是两个截然不同的概念,两者的区别如下:
它们之间的关系类似于菜谱和炒菜,其中程序相当于菜谱,而进程就是每一次按照菜谱炒菜的过程。 3. 进程具有哪些状态?
由于共享系统中的资源,因此进程之间相互制约、相互依赖,其整个生命周期呈现为“运行 — 暂停 — 运行”。进程在其生命周期中处于创建、就绪、运行、阻塞、终止这五种状态。
为了更有效地使用系统有限的资源,部分现代操作系统中引入了挂起状态。进程被挂起意味着该进程处于静止状态。此时,若进程正在执行,则将暂停执行;若进程处于就绪状态,则挂起后该进程暂时不接受调度。引入挂起状态主要是基于下列需求:
引入挂起状态后,若进程被挂起,则处于静止状态;反之,若未被怪,则处于活动状态:
4. 进程由哪几部分组成?
进程是程序的一次运行过程,它是由程序段、数据段和进程控制块 PCB 组成的一个实体,其中:
4.1 进程控制块进程控制块(PCB)是进程实体的重要组成部分,它记录了操作系统所需要的、用于描述进程情况及控制进程所需要的全部信息。原来不能独立运行的程序或数据,通过 PCB 就可以成为一个可以独立运行的基本单位。系统通过 PCB 感知进程的存在,并对其进行有效管理和控制。系统创建一个新进程时,为它建立一个 PCB;当进程结束时,系统又收回其 PCB,该进程也随之消亡。 进程控制块主要包括下述四个方面的信息: 1. 进程标识符信息:用于标识、区分一个进程,通常有外部标识符和内部标识符两类。外部标识符通常是由字母、数字所组成的一个字符串,用户或其他进程访问该进程时使用。内部标识符是操作系统为每个进程赋予的唯一一个整数,是作为内部识别而设置的。 2. 进程调度信息:用于描述与进程调度有关的状态信息,包括进程状态、进程优先权、调度信息和等待事件等。进程状态指明进程当前的状态,作为进程调度和对换时的依据;进程优先权说明进程使用 CPU 的优先级别,其中优先权高的进程将优先获得 CPU;调度信息描述与进程调度算法相关的信息,如进程等待时间、已运行的时间等;等待事件是指进程由运行态转变为阻塞态时所等待发生的事件。 3. CPU 状态信息:用于保留进程运行时 CPU 的各种信息,使得进程暂停运行后,下次重新运行时能从上次停止的地方继续运行。CPU 状态信息通常包含通用寄存器、控制和状态寄存器、用户栈指针等。CPU 状态字记载了程序执行的状态信息,如条件码、外中断屏蔽标识、执行状态(核心态或用户态)标识等。 4. 进程控制信息:包括进程资源、控制机制等一些进程运行时所需要的信息,如:
|
|