《计算机操作系统》笔记|第三章

第三章 进程管理
3.1 进程的概念
1.操作系统的特点:

  • 程序并发执行
  • 系统所拥有的资源被共享
  • 系统的用户随机地使用

2.程序顺序执行的特点:顺序性、封闭性、可再现性
3.程序并行执行的特点:独立性、随机性、资源共享性
4.程序的并发执行:一组在逻辑上互相独立的程序或程序段在执行过程中,其执行时间在客观上互相重叠,即一个程序段的执行尚未结束,另一个程序段的执行已经开始的这种执行方式。
5.进程是可以和其他程序并行执行的程序,是关于某个数据集合的一次执行过程。
6.作业与进程的区别与联系:

  • 作业是用户向计算机提交任务的任务实体,而进程则是完成用户任务的执行实体,是资源分配的基本单位
  • 一个作业可由一个或多个进程组成
  • 作业的概念主要用在批处理系统中,而进程的概念则用在几乎所有的多道系统中

7.进程和程序的区别和联系:

  • 进程是一个动态概念,是一个运行的程序,而程序则是一个静态概念
  • 进程具有并发特征,而程序没有
  • 进程是竞争计算机系统资源的基本单位,进程有资源,而程序没有
  • 不同的进程可以包括同一程序

3.2 进程的描述
1.进程的静态描述有三部分组成:

  • 进程控制块(PCB)
  • 有关程序段
  • 该程序段对其进行操作的数据结构集

2.进程控制块(PCB)包括一个进程的描述信息、控制信息及资源信息,有些系统中还有进程调度等待所使用的现场保护区(CPU现场保护区——进程的上下文)。
3.一个进程的PCB结构都是全部或部分常驻内存的。
4.进程上下文实际上是进程执行过程中顺序关联的静态描述。进程上下文是一个与进程切换和处理机状态发生交换有关的概念。
5.在进程执行过程中,由于中断、等待或程序出错等原因造成进程调度,这时操作系统需要知道和记忆进程已经执行到什么地方或新的进程将从何处执行。另外,进程执行过程中还经常出现调用子程序的情况。在调用子程序执行后,进程将返回何处继续执行,执行结果将返回或存放到什么地方等都需要进行记忆。
6.进程上下文是一个抽象的概念,它包含了每个进程执行过的、执行时的以及待执行的指令和数据,在指令寄存器、堆栈(存放各调用子程序的返回点和参数等)和状态字寄存器等中的内容。
7.已执行过的进程指令和数据在相关寄存器与堆栈中的内容称为上文,正在执行的指令和数据在寄存器与堆栈中的内容称为正文,待执行的指令和数据在寄存器与堆栈中的内容称为下文。
8.进程上下文结构
在这里插入图片描述
9.进程上下文切换发生在不同的进程之间而不是同一个进程内。
10.进程上下文切换过程一般包含3个部分,并涉及3个进程。
第一部分为保存被切换进程的正文部分(或当前状态)至有关存储区,例如该进程的PCB中。
第二部分是操作系统进程中有关调度和资源分配程序执行,并选取新的进程。
第三部分则是将被选中进程的原来被保存的正文部分从有关存储区中取出,并送至有关寄存器与堆栈中,激活被选中进程执行。
11.任一进程,都有一个自己的地址空间,该空间称为进程空间或虚空间。
12.进程空间的大小只与处理机的位数有关。例如,一个16位长处理机的进程空间大小为2 16,而32位长处理机的进程空间天小为2 32。
13.进程空间还被划分为用户空间和系统空间两大部分。
14.什么是线程?
答线程是在进程内用于调度和占有处理机的基本单位,它由线程控制表、存储线程上下文的用户找以及核心栈组成。线程可分为用户级线程、核心级线程以及用户/核心混合型线程等类型。其中用户级线程在用户态下执行,CPU调度算法和各线程优先级都由用户设置,与操作系统内核无关。核心级线程的调度算法及线程优先级的控制权在操作系统内核。混合型线程的控制权则在用户和操作系统内核二者。
15.线程与进程的主要区别:
(1)进程是资源管理的基本单位,它拥有自己的地址空间和各种资源,例如内存空间、外部设备等;线程只是处理机调度的基本单位,它只和其他线程一起共享进程资源,但自己没有任何资源。
(2)以进程为单位进行处理机切换和调度时,由于涉及资源转移以及现场保护等问题,将导致处理机切换时间变长,资源利用率降低。以线程为单位进行处理机切换和调度时,由于不发生资源变化,特别是地址空间的变化,处理机切换的时间较短,从而处理机效率较高。
(3)对用户来说,多线程可减少用户的等待时间,提高系统的响应速度。例如,当一个进程需要对两个不同的服务器进行远程过程调用时,对于无线程系统的操作系统来说,需要顺序等待两个不同调用返回结果后才能继续执行,且在等待中容易发生进程调度、对于多线程系统而言,则可以在同一进程中使用不同的线程同时进行远程过程调用,从而缩短进程的等待时间。
(4)线程和进程一样,都有自己的状态,也有相应的同步机制。不过,由于线程没有单独的数据和程序空间,因此,线程不能像进程的数据与程序那样交换到外存存储空间,从而线程没有挂起状态。
(5)进程的调度、同步等控制大多由操作系统内核完成,而线程的控制既可以由操作系统内核进行,也可以由用户控制进行。

3.3 进程状态及其转换
1.在进程的生命期内,一个进程至少具有5种基本状态:初始态、执行状态、等待状态、就绪状态和终止状态。
2.进程状态转换:
在这里插入图片描述

3.4 进程管理
1.PCB表:系统把所有PCB组织在一起,并把它们放在内存的固定区域,就构成了PCB表。
PCB表的大小决定了系统中最多可同时存在的进程个数,称为系统的并发度。
PCB表组织方式:线性表、链接方式、索引方式
2.一般地,把系统态下执行的某些具有特定功能的程序段称为原语。原语可分为两类:一类是机器指令级的,其特点是执行期间不允许中断;另一类是功能级的,其特点是作为原语的程序段不允许并发执行。
3.用于进程控制的原语有创建原语、撤销原语、阻塞原语和唤醒原语等。
4.进程创建方式:
* 由系统程序模块统一创建
* 由父程序创建

5.无论是系统创建方式还是父进程创建方式,都必须端用创建原语来实现。
6.创建原语扫描系统的PCB链表,在找到一定的PCB表之后,填入调用者提供的有关参数,最后形成代表进程的PCB结构。
7.创建原语流图
在这里插入图片描述
9.撤销原语首先检查PCB进程链或进程家族,寻找所要撤销的进程是否存在。如果找到了所要撤销的进程的PCB结构,则撤销原语释放该进程所占有的资源之后,把对应的PCB结构从进程链或进程家族中摘下并返回给PCB空队列。如果被撤销的进程有自己的子进程,则撤销原语先撤销其子进程的PCB结构并释放子进程所占用的资源之后,再撤销当前进程的PCB结构并释放其资源。
10.撤销原语流图
在这里插入图片描述
11.一个进程有两个方法:一种是由系统进程唤醒,另一种是由事件发生进程唤醒。
12.阻塞原语流图和唤醒原语流图
在这里插入图片描述

3.5 进程互斥
1.临界资源:一次仅允许一个进程访问的资源被称为临界资源。
2.临界区:把在进程中那段访问资源的代码称为临界区。(不允许多个并发进程交叉执行的一段程序称为临界区)
3.间接制约:把这种由于共享某一公有资源而引起的在临界区内不允许并发进程交叉执行的现象,称为由共享公有资源而造成的对并发进程执行速度的间接制约。
4.互斥:一组并发进程中的一个或多个程序段,因共享某一公有资源而导致它们必须以一个不允许交叉执行的单位执行。也就是说,不允许两个以上的共享该资源的并发进程同时进入临界区称为互斥。
5.一组并发进程互斥执行时必须满足如下准则:
* (空闲让进)不能假设各并发进程的相对执行速度。即各并发进程享有平等地、独立地竞争共有资源的权利,且在不采取任何措施的条件下,在临界区内任一指令结束时,其他并发进程可以进入临界区。
* (忙则等待)并发进程中的某个进程不在临界区时,它不阻止其他进程进入临界区。
* (多则择一)并发进程中的若干个进程申请进入临界区时,只能允许一个进程进入。
* (有限等待)并发进程中的某个进程从申请进入临界区时开始,应在有限时间内得以进入临界区。

6.对临界区加速以实现互斥:首先测试该临界区是否是上锁的。如果该临界区已被锁住,则该进程要等到该临界区开锁之后才有可能获得临界区。设临养区的类名为S。为了保证每一次临界区中只能有一个程序段被执行,又设锁定
位为key[S],它表示该锁定位属于类名为S的临界区。
7.在操作系统中,信号量sem是一个整数。在sem大于等于零时代表可供并发进程使用的资源实体数,但sem小于零时则表示正在等待使用临界区的进程数。
8.P原语、V原语流程图
在这里插入图片描述
9.P、V原语的过程:
当某个进程正在临界区内执行时,其他进程如果执行了P原语,则该进程并不像lock时那样因进不了临界区而返回到lock的起点,等以后重新执行测试,而是在等待队列中等待由其他进程做V原语操作释放资源后,进人临界区,这时P原语才算真正结束若有多个进程做P原语操作而进入等待状态之后,一旦有V原语释放资源,则等待进程中的一个进人临界区,其余的继续等待。
10.P、V原语法和加锁法实现进程间互斥的区别:
加锁法是采用反复测试lock而实现互斥的,存在CPU浪费和不公平现象,P、V原语使用了信号量,克服了加锁法的弊端。

3.6 进程同步
1.把异步环境下的一组并发进程因直接制约而互相发送消息而进行互相合作、互相等待,使得各进程按一定的速度执行的过程称为进程间的同步。
2.具有同步关系的一组并发进程称为合作进程,合作进程间互相发的信号称为消息或事件。
3.如果对一个消息或事件赋予唯一的消息名,则可用过程
wait(消息名)
表示进程等待合作进程发来的消息,而用过程
signal(消息名)
表示向合作进程发送消息。
4.私用信号量:同步时使用
公用信号量:互斥时使用
5.把系统中使用某一类资源的进程称为该资源的消费者,而把释放同类资源的进程称为该资源的生产者。
6.生产者和消费者之间满足如下条件:
(1)消费者想接收数据时,有界缓冲区中至少有一个单元是满的。
(2)生产者想发送数据时,有界缓冲区中至少有一个单元是空的。
另外,由于有界缓冲区是临界资源,因此,各生产者进程和各消费者进程之间必须互斥执行。

3.7 进程通信
1.低级通信:进程间控制信息的交换。
一般只传送一个或几个字节的信息。
目的:控制进程执行速度。
2.高级通信:进程间大批量数据的交换。
要传送大量数据。
目的:交换信息。
3.在单机系统中,进程间通信可分为4种形式:
(1)主从式;
(2)会话式;
(3)消息或邮箱机制;
(4)共享存储区方式。
4.主从式通信系统的主要特点如下:
(1)主进程可自由地使用从进程的资源或数据。
(2)从进程的动作受主进程的控制。
(3)主进程和从进程的关系是固定的。
主从式通信系统的典型例子是终端控制进程和终端进程。
5.会话系统的特点:
(1)使用进程在使用服务进程所提供的服务之前,必须得到服务进程的许可。
(2)服务进程根据使用进程的要求提供服务,但对所提供服务的控制由服务进程自身
完成。
(3)使用进程和服务进程在进行通信时有固定连接关系。
6.消息或邮箱机制的特点如下:
(1)只要存在空缓冲区或邮箱,发送进程就可以发送消息。
(2)与会话系统不同,发送进程和接收进程之间无直接连接关系,接收进程可能在收到
某个发送进程发来的消息之后,又转去接收另一个发送进程发来的消息。
(3)发送进程和接收进程之间存在缓冲区或邮箱用来存放被传送消息。
7.消息的组成
在这里插入图片描述
8.使用消息缓存机制传送数据时,两个通信进程必须满足如下条件:
(1)在发送进程把消息写入缓冲区和把缓冲区挂入消息队列时,应禁止其他进程对该缓冲区消息队列的访问。
(2)当缓冲区中无消息存在时,接收进程不能接受到任何消息。

3.8 死锁问题
1.所谓死锁,是指各并发进程互相等待对方所拥有的资源,且这些并发进程在得到对方的资源之前不会释放自己所拥有的资源。
2.死锁的起因:系统共享资源不足,资源分配不当,进程的推进顺序不当(并发进程的执行速度)
3.产生死锁的必要条件
(1)互斥条件
(2)不剥夺条件
(3)部分分配(保持和等待条件)
(4)环路条件
4.解决死锁的方法一般可分为预防、避免、检测与恢复3种。

  • 死锁预防——静态、按序、剥夺式
  • 死锁避免
    1.有序资源分配法
    资源按类编号
    同类资源一次申请完
    按类序号上升次序申请
    2.银行家算法
  • 死锁的检测和恢复——资源分配图
    最简单的办法是终止各锁住进程,或按一定的顺序中止进程序列,直至已释放到有足够的资源来完成剩下的进程时为止。另外,也可以从被锁住进程强迫剥夺资源以解除死锁。

3.9 线程的概念
1.进程是为了提高CPU的执行效率,减少因为程序等待带来的CPU空转以及其他计算机软硬件资源的浪费而提出来的。
进程是为了完成用户任务所需要的程序的一次执行过程以及为其分配资源的一个基本单位。
2.进程控制块(PCB):以进程为单位来分配资源时,为了便于处理机执行,系统定义的如何对进程进行识别和操作的物理实体。
3.线程是进程的一部分,也是CPU调度的一个本单位,有时又被称为轻权进程或轻量级进程。
4.每个线程也有自己的线程控制块(TCB)
5.线程和进程的区别
线程改变只代表了CPU执行过程的改变,而进程所拥有的资源没有发生变化。
线程是进程的一部分,它没有自己的地址空间,它和进程内的其他进程一起共享分配给该进程的所有资源。
6.使用线程的最大好处是在有多个任务需要处理机处理时可以减少处理机的切换时间;而且,线程的创建和结束所需要的系统开销也比进程要小得多。
7.线程典型应用

  • 服务器中的文件管理或通信控制
  • 前后台处理
  • 异步处理

3.10 线程分类与执行
1.线程的两个基本类型是用户级线程和内核极线程(系统级线程)
2.区别
(1)用户级线程的调度算法和调度过程全部由用户自行选择和确定,与操作系统内核无关。
(2)用户级线程的调度算法只进行线程上下文切换而不进行处理机切换,且其线程上下文切换是在内核不参与的情况下进行的。
(3)尽管相关进程的状态是阻塞的或等待的,但所属线程状态却是执行的。
3.与用户线程不同,内核级线程既可以被调度到一个处理机上并发执行,也可以被调度到
不同的处理机上并行执行。因此,内核级线程不会出现进程处于阻塞或等待状态,而线程处于执行状态的情况。
4.内核级线程的上下文切换时间要大于用户级线程的上下文切换时间。
5.线程有3个基本状态,即执行、就绪和阻塞。
6.线程有5种基本状态,即派生,阻塞,激活,调度,结束。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值