1.程序的顺序执行与特征
程序的顺序执行就是可以将一个程序分成若干程序段,若干程序段按照某种先后次序执行,仅当前一操作执行完后,才能执行后续操作。顺序操作有以下特征:
(1)顺序性:处理机的操作严格按照程序规定的顺序执行。
(2)封闭性:程序是在封闭的环境下执行的,程序运行独占全机资源。
(3)可再现性:只要程序执行时的环境和初始条件相同,程序重复执行时,结果都将一样。
2.程序的并行执行与特征
在多道程序运行时,程序可进行并发执行。这里的并发与之前所说OS的并发性是一样的含义。程序的并发执行提高系统吞吐量(单位时间内,系统完成的作业量),但也产生与顺序执行时不同的特征:
(1)间断性:并发执行程序时,由于程序会共享某些系统资源,以及要完成某一任务而相互合作,导致程序之间产生相互制约的关系。导致程序具有“执行-暂停-执行”的间断性活动规律。
(2)失去封闭性:由于一些资源会被多个程序共同占有,导致可能会有多个程序对这些共享资源的状态产生影响。
(3)不可再现性:程序失去封闭性,自然导致失去可再现性。
进程的定义
(1)进程是程序的一次执行;
(2)进程是一个程序及其数据在处理机上顺序执行时发生的活动**;
(3)进程是程序在一个数据集合上运行的过程,是系统进行资源分配和调度的一个独立单位。
进程的特征与状态(五大特征、三个状态)
(1)结构特征:为使程序能独立运行,为之配置一进程控制块,PCB(Process Control Block);由程序段,数据段与PCB三部分构成了进程实体。
(2)动态性:进程的实质是进程实体的一次执行过程,因此动态性是最基本的特性。进程“由创建而生,由调度而行,由撤销而亡”。对比程序,知识一组有序指令的集合,存放在某种介质上。
(3)并发性:多个进程实体同存与内存中,且能在一段时间内同时运行。
(4)独立性:传统OS中,独立性值进程实体是一个独立运行、独立分配资源和独立接受调度的基本单位。
(5)异步性:进程按各自独立的、不可预知的速度向前推进。
进程的三种基本状态:
(1)就绪(Ready)状态:当进程已分配出CPU以外的所有必要资源后,只要再获得CPU,即可立即执行。在一个系统中通常将多个处于就绪状态的进程排成一个队列(FIFO),称之为就绪队列。
(2)执行状态:进程已获得CPU,其程序正在执行。单处理机中只有一个进程处于执行状态;多处理机中有多个。
(3)阻塞状态:正在执行的进程由于发生某事件而暂时无法继续执行时,便放弃处理机而处于暂停状态,即进程的执行受到阻塞。也叫等待状态或封锁状态。导致阻塞的事件由:请求I/O。系统通常也将阻塞状态的进程排成一个队列,也有系统根据阻塞原因的不同将阻塞状态进程排成多个队列。
进程挂起的原因
(1)终端用户的请求。
(2)父进程请求。
(3)负荷调节的需要。
(4)操作系统的需要。
进程控制块
PCB(Process Control Block),它是进程实体的一部分,是操作系统中最重要的记录型数据结构。PCB是进程存在的唯一标识。PCB中记录了OS所需的、用于描述进程的当前情况与控制进程运行的全部信息。但系统创建一个新进程时,就为它建立了一个PCB;进程结束时又回收其PCB,进程也随之消亡。PCB常驻内存,可以被OS中多个模块读或者修改。Linux系统中用task_struct数据结构来描述每个进程的进程控制块,Windows中使用一个执行体进程块(EPROCESS)来表示进程对象的基本属性。
进程控制块中的信息
(1)进程标识符(方便系统调用和用户使用)
(2)处理机状态(处理机被中断时用于保存处理机中的内容)
(3)进程调度信息(进程状态、优先级、时间等)
(4)进程控制信息(程序和数据的地址、进程同步和通信机制、资源清单、链接指针)
进程控制块的组织方式:
(1)链接方式:把具有同一状态的PCB,用其中的链接字链接成一个队列.其中的就绪队列常按进程的优先级的高低排序.
(2)索引方式:系统根据所有进程的状态建立几张索引表,比如,就绪索引表,阻塞索引表.