第二章进程管理01

2.1进程

进程的概念

程序:是静态的,就是个存放在磁盘里的可执行文件,应用程序。是一系列的指令集合。
进程(Process):是动态的,是程序的一次执行过程,同一个程序可以执行多次。(可以开多个QQ)
操作系统如何区分相同程序多次执行的进程:每一个进程有自己特殊的进程标识PID、用户标识符UID(唯一的、不重复)。同时还记录进程所分配的资源(CPU使用时间,占用多少内存等)
在这里插入图片描述
这些信息都被保存在一个数据结构PCB(Process Control Block)中,进程控制块
操作系统需要对各个并发运行的进程进行管理,但凡管理时所需要的信息,都会被放在PCB中。

进程的组成

一个进程实体(进程映像)由PCB、程序段、数据段组成。进程是动态的,进程实体是静态的。
程序段:程序的代码(指令序列)
数据段:运行过程中产生的各种数据。(定义的变量等)

引入进程实体概念后,把进程定义为:进程是进程实体的运行过程,是系统进行资源分配和调度的一个单位。
PCB是进程的唯一标志!

进程的特征

  • 动态性:进程是程序的一次执行过程,是动态地产生、变化和消亡的(进程的最基本的特征)
  • 并发性:内存中有多个进程实体。各个进程并发执行
  • 独立性:进程是能独立运行、独立获得资源、独立接受调度的基本单位
  • 异步性:各进程按各自独立的、不可预知的速度向前推进,操作系统要提供“进程同步机制解决一部问题”
  • 结构性:每一个进程都会配置一个PCB。

2.2进程的状态和转换

  • 就绪态(Ready):进程创建完毕后,进程就已经具备运行条件,称为“就绪态”,在一个系统中处于就绪状态的进程可能有多个,通常将它们排成一个队列,称为就绪队列。,由于没有空闲CPU,暂时未运行。
  • 运行态(Running):CPU空闲,在就绪队列中选择进程上CPU运行。单处理系统中只有一个进程处于运行态,多处理系统可能有多个进程处在运行态。
  • 阻塞态(Waiting 等待态):运行态的进程在运行的过程中,可能会请求等待某个事件发生(等待某种资源的分配,打印机等),在这个事件发生之前,进程无法继续 则下CPU,进入“ 阻塞态 ”,CPU空闲,选择下一个就绪态进程运行。如果等待的资源得到释放,空闲,那么阻塞态的进程又会重新回到就绪态。
  • 创建态(New 新建态):当进程正在创建时,称为创建态,此时操作系统会为进程分配各项资源、初始化PCB
  • 终止态(Terminated):运行态的进程执行exit系统调用,请求操作系统终止进程,或是进程达到自然结束点,或是出现无法克服的错误,或是被操作系统终结,或被其他有终止权的进程所终结,进入“终止态” ,并回收进程占用的各项资源,最后回收进程的PCB。

(PCB中变量state可表示当前进程状态,1表示就绪态,2表示阻塞态…)

三态转化图:

在这里插入图片描述

运行态→阻塞态:当前运行的进程因某种原因受阻(访问某种临界资源,该资源正被其它进程访问时),使之无法继续(进程自身的主动行为
阻塞态→就绪态:临界资源被释放、空闲时,阻塞的进程又回到就绪态(非进程自身控制,是一种被动行为
就绪态→运行态:CPU空闲,处于就绪态的进程得到处理机后,进入运行状态
运行态→就绪态:分配的时间片已完;有优先级更高的进程

五态转化图

增加创建态和终止态后的状态转化图
NULL→创建态:执行一个程序,创建一个子进程。
创建态→就绪态:系统完成创建进程的相关工作
运行态→终止态:进程运行结束,或是出现无法克服的错误,或是被操作系统终结,或被其他有终止权的进程所终结
终止态→NULL:完成善后操作。
在这里插入图片描述

挂起操作和进程状态的转换

在许多系统中,进程除了就绪、运行和阻塞三种基本的状态外,为了系统和用户观察和分析进程的需要,还引入了一个对进程的重要操作——挂起操作。当操作作用于某个进程时,该进程将被挂起,处于静止状态。如果进程正在运行,则被暂停。若原本处于就绪态,则该进程暂时不接受调度。与挂起对应的时激活操作。
引入挂起操作的原因,是基于系统和用户的如下需要:

  1. 终端用户的需要。当终端用户在自己的程序运行期间发现有可疑问题,希望暂停自己的程序的运行,使之停止下来,以便用户研究其执行情况或对程序进行修改。
  2. 父进程请求。有时父进程希望挂起自己的某个子进程,以便考查和修改该子进程,或者协调各子进程间的活动。
  3. 负荷调节的需要。当实时系统中的工作负荷较重,可由系统把一些不需要的进程挂起,以保证系统能正常运行。
  4. 操作系统的需要。操作系统有时希望挂起某进程,以便检查运行中资源的使用情况或进行记账。
  5. 对换的需要。为了缓和内存紧张的情况,将内存中处于阻塞状态的进程换至外存上。

引入挂起后的三态转化

在这里插入图片描述

引入挂起后的五态转化

在这里插入图片描述

2.3进程管理中的数据结构

操作系统中用于管理的数据结构

在计算机系统中,对每个资源和进程都设置了一个数据结构,用表征其实体,成为资源信息表或进程信息表。包含资源或进程的标识、描述、状态信息等以及指针,通过这些指针可以将同类的资源或进程信息表链接成不同队列。
在这里插入图片描述
(进程表又称为进程控制块PCB)

进程控制块PCB的作用

PCB的作用是使一个在多道程序环境下不能独立运行的程序(含数据)成行为一个能独立运行的基本单位,一个能与其他进程并发执行的进程。

  1. 作为独立运行基本单位的标志。当一个程序(含数据)配置PCB后,则它就是一个能独立运行的基本单位(只要获得处理机)。当创建进程时,就要为其初始化PCB,进程结束后,收回PCB,进程也就随之消亡。系统是通过PCB感知进程的存在的。所以PCB是进程的唯一标志!
  2. 能实现间断运行方式。多道程序环境下,程序运行走走停停。当进程因为阻塞而暂停时,需要保留当前运行CPU的现场信息,再次运行时,恢复CPU现场信息。有了PCB,系统可将CPU的现场信息保存在被暂停进程的PCB中。
  3. 提供进程管理所需要的信息。PCB中记录程序和数据 在内存和外存中的始址指针,根据这些,程序运行时找到相应的程序和数据。
  4. 提供进程调度所需要的信息。只有就绪态的进程才能被调度运行,在PCB中提供了进程处于何种状态的信息。
  5. 实现与其他进程同步通信。进程同步机制是用于实现诸进程的协调运行的,在采用信号量机制时,它要求在每个进程中都设置有相应的用于同步的信号量。在PCB中还具有用于实现进程通信的区域或通信队列指针等。

进程控制块中的信息

  • 进程标识符(PID)
  1. 外部标识符
  2. 内部标识符
  • 处理机状态
  • 进程调度信息
  • 进程控制信息

进程控制块的组织方式

系统中可拥有数百数千个PCB,为能够对其有效管理,应该用适当的方式将这些PCB组织起来。主要有一下三种方式。

  1. 线性方式,将所有PCB都组织在一张线性表中,把表首地址存放在内存的一个专区中。该方式实现简单,开销小,但是每次查找时都需要扫描真个线性表,适合进程数目不多的系统。
  2. 链式,即把具有相同状态进程的PCB分别通过PCB中的链接字链接成一个队列。这样,可以形成就绪队列、若干个阻塞队列和空白队列等。就绪队列按进程优先级排列PCB,阻塞队列根据阻塞原因不同排列。
  3. 索引方式,建立几张索引表。

在这里插入图片描述
在这里插入图片描述

2.4进程控制

进程控制是进程管理中最基本的功能,主要包括创建新进程、终止已经完成的进程、将因发生异常情况而无法继续运行的进程置于阻塞状态、负责进程运行中的状态转换等功能。如当一个正在执行的进程因等待某事件而暂时不能继续执行时,将其转变为阻塞状态,而在该进程所期待的事件出现后,又将该进程转换为就绪状态等。进程控制一般是由OS的内核中的原语来实现的。

支撑功能

该功能是提供给OS其它众多模块所需要的一些基本功能,以便支撑这些模块工作。
其中三种最基本的支撑功能是:中断处理、时钟管理和原语操作。

  1. 中断处理是内核最基本的功能,是整个操作系统活动的基础,例如系统调用、键盘命令的调入、进程调度、设备驱动等。
  2. 时钟管理是内核基本功能,在时间片轮转调度中,每当时间片用完时,时钟管理产生一个中断信号。
  3. 原语是由若干指令组成的,用于完成一定功能的一个过程,是一个原子操作,即一气呵成,一个操作中所有动作要么全做,要么不做。

相关原语操作

  • 进程的创建:
  1. 申请空白PCB
  2. 为新进程分配所需要的资源
  3. 初始化PCB
  4. 如果进程就绪队列能够接纳新进程,就将进程插入就绪队列
  • 进程的终止:
  1. 从PCB集合中找出终止进程的PCB
  2. 若进程正在运行,立即剥夺CPU,分配给其他进程
  3. 终止其所有子进程,以防成为不可控进程
  4. 将进程拥有的资源归还父进程或者操作系统
  5. 从PCB队列或链表中移除终止进程(PCB)

引起进程终止的事件:
正常结束:表示进程的任务已经完成。准备退出运行
异常结束:是指进程在运行过程中发生某种异常,程序无法继续进行
外界干预:进程应外界请求而终止运行

  • 进程的阻塞、唤醒:
    在这里插入图片描述
    (进程的阻塞和唤醒是同时出现的,有阻塞,就必须有唤醒)

  • 进程的切换:
    在这里插入图片描述

2.5进程通信

进程通信是指进程之间的信息交换。由于进程的互斥和同步,需要在进程间交换一定信息。
在这里插入图片描述

共享存储

在这里插入图片描述

管道通信

在这里插入图片描述

消息传递

在这里插入图片描述

2.6线程

基本概念

线程是比进程还小的基本单位,进程的两个基本属性,1.可拥有资源的独立单位,拥有一定资源 2.可独立调度和分派的而基本单位,每个进程都有其唯一PCB 。
程序并发执行时,需要创建进程,撤销进程,切换等。创建的过程中需要分配资源,初始化PCB等,所以在程序执行,进程运行时,系统必须付出较大的时空开销,这样就限制了系统所设置的进程数目,而且进程切换不宜过于频繁。
为了能够使多个程序更好的并发执行,将进程的两个基本属性分开,由OS分开处理。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

以下哪一项不是文件存取控制要实现的目标( D )。 A) 防止未经核准的用户存取文件 B) 防止冒名顶替者存取文件 C) 防止以不正确的方式使用文件 D) 防止以不正确的方式删除文件 4、( C )是进行资源分配的基本单位。 A) 作业 B) 线程 C) 进程 D) 共享 5、响应比Rp=( B )。 A) 时间等待/要求服务时间 B) 响应时间/要求服务时间 C) 要求服务时间/等待时间 D) 要求服务时间/响应时间 6、在一个以批处理为主的系统,为了保证系统的吞吐率,总是要力争缩短用户作业的( A ) A) 周转时期 B) 运行时期 C) 提交时期 D) 完成时期 7、解决I/O 的瓶颈效应问题最有效的方法是( D )。 A) 增加通道 B) 增加控制器 C) 减少 I/O 设备 D) 启用多通路系统 8、下面的页面分配和置换策略,哪一种是不合适的。( B ) A) 固定分配、局部置换 B) 固定分配、全局置换 C) 可变分配、全局置换 D) 可变分配、局部置换 9、下列那项不是设备控制器的功能( D )。 A) 接收和识别命令 B) 设备状态的了解和报告 C) 数据交换,地址识别 D) 实现设备独立性 10、下列选项不能提高对文件的访问速度的是( C )。 A) 改进文件目录结构以及检索方法 B) 提高磁盘I/O 速度 C) 提高 CPU的利用率 D) 选择好的文件储存结构 1、下列那种状态不是进程必须用的基本状态( A )。 A) 挂起状态 B) 就绪状态 C) 执行状态 D) 阻塞状态 2、能独立运作但基本上不拥有系统资源的基本单位是( D )。 A) 作业 B) 程序
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值