导图社区 操作系统
操作系统知识点:进程是竞争计算机系统资源的基本单位,从而其并发性受到系统自己的制约。这里,制约就是对进程独立性和异步性的限制。
编辑于2022-09-22 20:45:42 河南第三章,前5小节
进程的概念
采用一个什么样的概念来描述计算机程序的执行过程和作为资源分配的基本单位,才能充分反映操作系统的执行并发、资源共享及用户随机的特点呢?这个概念就是进程。
程序的并发执行
程序
描述计算机所要完成的具有独立功能的,并在时间上按严格次序前后相继的计算机操作序列集合,是一个静态的概念 功能时所应该采取的顺序步骤。 它体现了编程人员要求计算机完成相应
程序的顺序执行
顺序性 程序顺序执行时,其执行过程可看作一系列严格按程序规定的状态转移过程,也就是每执行一条指令,系统将从上一个执行状态转移到下一个执行状态,且上一条指令的执行结束是下一条指令执行开始的充分必要条件。
封闭性 程序执行得到的最终结果由给定的初始条件决定,不受外界因素的影响。
可再现性 顺序执行的最终结果可再现是指它与执行速度无关。只要输入的初始条件相同,则无 论何时重复执行该程序都会得到相同的结果。
多道程序系统中程序执行环境的变化
如果每台计算机在任一时刻只处理一个具有独立功能的程序,操作系统的设计和功能都将变得非常简单,因为在这样的系统中不存在资源共享、程序的并发执行以及用户执行的随机性问题。但是,在许多情况下,计算机需要能够同时处理多个具有独立功能的程序。
独立性 在多道环境下执行的每道程序都是逻辑上独立的,它们之间不存在逻辑上的制约关系。
随机性 在多道程序环境下,特别是在多用户环境下,程序和数据的输入与执行开始时间都是随机的。
资源共享性 这里所说的资源,既包括硬件资源,也包括软件资源。硬件资源包括CPU、输入输出设备和存储器等。
程序的并发执行
所谓并发执行,是为了增强计算机系统的处理能力和提高资源利用率所采取的一种同时操作技术。
多道程序系统的程序执行环境变化所引起的多道程序的并发执行。
并发执行是在某道程序的几个程序段中(例如几个程序)包含着一部分可以同时执行或顺序颠倒执行的代码。
并发执行与并行执行的区别
程序的并行执行是指一组程序按独立的、异步的速度执行。并行执行不等于时间上的重叠。
进程的定义
并发执行的程序在执行过程中分配和管理资源的基本单位。
进程与程序的区别
进程是一个动态概念,而程序则是一个静态概念。程序是指令的有序集合,没有任何执行的含义。
进程具有并发特征,而程序没有。由进程的定义可知,进程具有并发特征的两个方面,即独立性和异步性。
进程是竞争计算机系统资源的基本单位,从而其并发性受到系统自己的制约。这里,制约就是对进程独立性和异步性的限制。
不同的进程可以包含同一程序,只要该程序所对应的数据集不同。
进程的描述
进程控制块
描述信息
进程名或进程标识号 每个进程都有唯一的进程名或进程标识号。在识别一个进程时,进程名或进程标识号代表该进程。
用户名或用户标识号 每个进程都隶属于某个用户,用户名或用户标识号有利于资源共享与保护。
家族关系 在有的系统中,进程之间互成家族关系。因此,PCB中相应的项描述其家族关系。
控制信息
进程当前状态 进程当前状态说明进程当前处于何种状态。
进程优先级 进程优先级是选取进程占有处理机的重要依据。
占有CPU时间
进程优先级偏移
占据内存时间,等等。
程序开始地址 程序开始地址规定该进程的程序以此地址开始执行。
各种计时信息 给出进程占有和利用资源的有关情况。
通信信息 通信信息用来说明该进程在执行过程中与别的进程所发生的信息交换情况。
资源管理信息
占用内存大小及其管理用数据结构指针
在某些复杂系统中,还有对换或覆盖用的有关信息
共享程序段大小及起始地址。
输入输出设备的设备号,所要传送的数据长度、缓冲区地址、缓冲区长度及所用设备的有关数据结构指针等。
指向文件系统的指针及有关标识等。
CPU现场保护结构
当前进程因等待某个事件而进入等待状态或因某种事件发生被中止在处理机上的执行时,为了以后该进程能在被打断处恢复执行,需要保护当前进程的CPU现场。
进程上下文
进程上下文实际上是进程执行过程中顺序关联的静态描述。
进程上下文是一个与进程切换和处理机状态发生交换有关的概念。
进程上下文切换
保存被切换进程的正文部分(或当前状态)至有关存储区
操作系统进程中有关调度和资源分配程序执行,并选取新的进程
将被选中进程的原来被保存的正文部分从有关存储区中取出,并送至有关寄存器与堆栈中,激活被选中进程执行
进程空间与大小
任一进程,都有一个自己的地址空间,该空间称为进程空间或虚空间
进程空间的大小只与处理机的位数有关。
进程状态及其转换
进程状态
初始态
执行状态
等待状态
就绪状态
终止状态
进程状态转换
进程控制
进程创建于撤销
进程创建
由系统程序模块统一创建。
由父进程创建。
进程撤销
该进程已完成所要求的功能而正常终止;
祖先进程要求撤销某个子进程。
由于某种错误导致非正常终止;
进程的阻塞与唤醒
阻塞原语在一个进程期待某一事件(例如键盘输入数据、写盘、其他进程发来的数据等)发生,但发生条件尚不具备时,被该进程自己调用来阻塞自己。
当等待队列中的进程所等待的事件发生时,等待该事件的所有进程都将被唤醒。
进程互斥
资源共享所引起的制约
临界区
把不允许多个并发进程交叉执行的一段程序称为临界区
间接制约
简称间把这种由于共享某一公有资源而引起的在临界区内不允许并发进程交叉执行的现象,称为由共享公有资源而造成的对并发进程执行速度的间接制约接制约。
什么是互斥
可以把互斥定义为:一组并发进程中的一个或多个程序段,因共享某一公有资源而导致它们必须以一个不允许交叉执行的单位执行。也就是说,不允许两个以上的共享该资源的并发进程同时进入临界区称为互斥。
互斥的加锁实现
当某个进程进入临界区之后,它将锁上临界区,直到它退出临界区时为止。
信号量和P,V愿语
信号量
在操作系统中,信号量sem是一个整数。在sem大于等于零时代表可供并发进程使用的资源实体数,但sem 小于零时则表示正在等待使用临界区的进程数。显然,用于互斥的信号量sem的初值应该大于零,而建立一个信号量必须说明所建信号量代表的意义,赋初值,以及建立相应的数据结构,以便指向那些等待使用该临界区的进程。
P,V原语
P原语操作的主要动作如下: (1)sem减1。 (2)若 sem减1后仍大于或等于零,则P原语返回,该进程继续执行。 (3)若sem减1后小于零,则该进程被阻塞后进入与该信号相对应的队列中,然后转进程调度。
V原语的操作主要动作如下! (1)sem 加1。 (2)若相加结果大于零,V原语停止执行,该进程返回调用处,继续执行。 (3)若相加结果小于或等于零,则从该信号的等待队列中唤醒一个等待进程,然后再返回原进程继续执行或转进程调度。
用P,V 原语实现进程互斥
把临界区置于P(sem)和V(sem)之间,即可实现进程间的互斥