- 前趋图是一个有向无循环图,记为DAG(Directed Acyclic Graph),用于描述进程之间执行的前后关系。
- 进程的执行方式
- 顺序执行:是单道批处理系统的执行方式
顺序性:按照程序结构所指定的次序执行
封闭性:独占全部资源,资源的状态只有本程序才能改变
可再现性:程序执行时的环境和初始条件相同则结果相同
并发执行:现在的操作系统,具有许多新的特征。引入并发执行的目的是为了提高资源利用率。
间断(异步)性:
“走走停停”,一个程序可能走到中途停下来,失去原有的时序关系。
失去封闭性:
共享资源,受其他程序的控制逻辑的影响。如:一个程序写到存储器中的数据可能被另一个程序修改,失去原有的不变特征。
失去可再现性:
- 进程的定义和特征:
描述性定义:计算机中的所有程序(软件),按照某种顺序运行,这种运行的过程称之为进程。
进程是程序的一次执行
进程是一个程序及其数据在处理机上顺序执行时所发生的活动
进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位
特征:
结构性:进程实体:程序段、数据段和PCB;进程的创建与撤消就是PCB的创建与撤消
动态性:进程的实质是进程实体的一次执行过程;进程实体有一定的生命周期
并发性:多个进程实体同存于内存中,且能在一段时间内同时运行;引入进程实体的目的就是并发执行
独立性:进程实体是一个能独立运行、独立分配资源和独立接受调度的基本单位
异步性:各进程按各自独立的、不可预知的速度向前推进
- PCB:进程管理块
为了描述控制进程的运行,系统中存放进程的管理和控制信息的数据结构称为进程控制块(PCB Process Control Block),它是进程实体的一部分,是操作系统中最重要的记录性数据结构。它是进程管理和控制的最重要的数据结构,每一个进程均有一个PCB,在创建进程时,建立PCB,伴随进程运行的全过程,直到进程撤消而撤消
注意:“进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位"!!!
PCB是系统感知进程存在的唯一标志!!
- 进程于程序之间的区别
进程是动态的,程序是静态的:程序是有序代码的集合;进程是程序的执行。通常进程不可在计算机之间迁移;而程序通常对应着文件、静态和可以复制
进程是暂时的,程序的永久的:进程是一个状态变化的过程,程序可长久保存
进程与程序的组成不同:进程的组成包括程序、数据和进程控制块(即进程状态信息)
进程与程序的对应关系:通过多次执行,一个程序可对应多个进程;通过调用关系,一个进程可包括多个程序
- 进程的基本状态-------就绪状态 执行状态 阻塞状态
执行进程------------>就绪进程 (当时间片用完) 就绪进程-------->执行进程(当进程被调度)
阻塞进程不可以变为执行进程,执行进程可以变为阻塞进程(当I/O执行其他进程,将其挂起阻塞)
阻塞进程在I/O请求完成后变为就绪进程
- 进程的创建(Creation of Process)
1.申请空白PCB 为新进程申请唯一的数字标识符,并从PCB集合中索取一个空白PCB
2.为新进程分配资源 为新进程的程序和数据分配内存。对于批处理型作业,可在用户提出创建进程时要求提供所需内存大小。 对于 交互型作业可以由系统来分配一定的空间
3. 初始化进程控制块
初始化标识信息 将系统标识信息写入新PCB
初始化处理机状态信息 使程序计数器指向程序的入口地址,栈指针指向栈顶
初始化处理机控制信息 将进程的状态设为就绪状态或静止就绪状态
4. 将新进程插入就绪队列 如果进程就绪队列能够接纳新进程,便将新进程插入就绪队列
在操作系统中为什么要引入进程概念?它会产生什么样的影响?
进程的引入:由于多道程序在执行时,需要共享资源,从而导致各个程序在执行过程中会出现相互制约的关系,程序的执行表现出间断性。这些特征都是在程序执行的过程中表现出来的,是一个动态的过程。而程序是静态概念不能如实反映出并发执行过程的基本特征。为了使程序在多道程序环境下能并发执行,为了更加具体的描述程序动态执行过程的性质,所有引入了“进程”概念。
产生影响:可以使程序并发执行得以实现,更加具体的描述程序动态执行过程的性质
试从调度性、并发性、拥有资源以及系统开销方面对进程和线程进行比较。
调度的基本单位:线程作为调度的基本单位,同进程中线程切换不引起进程切换,当不同进程的线程切换才引起进程切换;进程作为拥有资源的基本单位。
并发性:一个进程间的多个线程可并发。
拥有资源:线程仅拥有隶属进程的资源;进程是拥有资源的独立单位。
独立性:在同一进程中的不同线程之间的独立性要比不同进程之间的独立性低得多。
系统开销:进程大;线程小。
临界资源跟临界区的区别:
临界资源:只允许一个进程进行访问的资源,比如打印机;
临界区:使用临界资源的代码区;
所以这个题目的意思就是进程间互斥,针对同类临界资源的,而对应的代码段是独立的,所以各个进程只能访问各自的代码空间。
P,V操作由P操作原语和V操作原语组成(原语是不可中断的过程),对信号量进行操作,具体定义如下:
P(S):①将信号量S的值减1,即S=S-1;
②如果S>=0,则该进程继续执行;否则该进程置为等待状态,排入等待队列。
V(S):①将信号量S的值加1,即S=S+1;
②如果S>0,则该进程继续执行;否则释放队列中第一个等待信号量的进程。
PV操作的意义:我们用信号量及PV操作来实现进程的同步和互斥。PV操作属于进程的低级通信。