当前位置: 首页 > news >正文

软考 中级软件设计师 考点知识点笔记总结 day09 操作系统进程管理

文章目录

      • 4、操作系统基本原理
          • 4.1 、进程管理
            • **4.1.1 、进程同步机制**
            • **4.1.2 、进程互斥机制**
            • **4.1.3 、信号量机制**
            • **4.1.4 、PV操作实现前驱操作**
            • **4.1.5 、死锁**
            • 4.1.6 、银行家算法


4、操作系统基本原理

进程管理 存储管理 文件管理 设备管理 微内核操作系统

操作系统 Operating System OS 指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分,以提供给用户和其他软件方便的接口和环境,它是计算机系统中最基本的系统软件。、

操作系统的功能和目标

1 作为系统资源的管理者 2 向上层提供方便易用的服务 3 作为最接近硬件的层次

操作系统的特征: 并发 共享 虚拟 异步

操作系统的发展与分类

手工操作阶段 批处理阶段(单道批处理系统 多道批处理系统) 分时操作系统 *实时操作系统 网络操作系统 分布式操作系统 个人计算机操作系统

4.1 、进程管理

状态转换图

1 、进程在被创建时 ,它的状态是创建态 在这个阶段操作系统会为进程分配资源 、初始化PCB

2 、当进程创建完成后,进入就绪态,处于就绪态的进程已经具备运行条件,但由于没有空闲CPU ,暂时不能运行

3 、如果一个进程在CPU上运行 那么进程处于运行态,CPU会执行该进程对应的程序

4 、进程运行过程中,可能会请求等待某个事件的发生,(如等待某种系统资源的分配,或者等待其他进程的响应) 在这个事件发生之前,进程无法继续往下执行 。操作系统会让这个进程下CPU 并让它进入阻塞态, 当CPU空闲时 又会选择另一个就绪态 进程上CPU运行

5 、一个进程可以执行exit系统调用,请求系统终止该进程,此时进程进入终止态,操作系统会让该进程下CPU,并回收内存空间等资源,并回收该进程的PCB。这个进程就彻底消失了。

  • 不能由阻塞态直接转换为运行态。也不能由就绪态直接转换为阻塞态
  • 阻塞态到就绪态不是进程自身控制的 ,是一种被动行为
  • 运行态到阻塞态是一种进程自身做出的主动行为。
4.1.1 、进程同步机制

进程具有异步性的特征。异步性是指,各并发执行的进程以各自独立的不可预知的速度向前推进。

读进程和写进程并发地运行,由于并发必然导致异步性。因此,写数据和读数据两个操作执行先后顺序不确定。实际应用中,如何解决这种异步问题,就是采用进程同步机制。

同步也称直接制约关系,它是指为完成某种任务而建立的两个或多个进程,这些进程因为需要在某些位置上协调它们的工作次序而产生的制约关系。进程间的直接制约关系就是源于它们之间的相互合作。

4.1.2 、进程互斥机制

进程的并发需要共享的支持,各个并发执行的进程不可避免的需要共享一些系统资源。

我们把一个时间段内只允许一个进程使用的资源称为临界资源。许多物理设备,变量,数据,内存缓冲区都属于临界资源。

对临界资源的访问必须互斥地进行。 进程互斥指当一个进程访问某临界资源时,另一个想要访问该临界资源的进程必须等待。当前访问临界资源进程结束访问,释放资源之后,另一个进程才能去访问临界资源

对临界资源的互斥访问,可以在逻辑上分为如下四部分

进入区(检查是否可进入临界区,若可进入,则设置正在访问临界资源的标识 即锁,以阻止其他进程同时进入临界区)

临界区 (访问临界资源的代码)

退出区 (负责解除正在访问临界资源的标志 解锁)

剩余区 (其他处理)

临界区是进程中访问临界资源的代码段

进入区和退出区是负责实现互斥的代码段 临界区也可称为 临界段

为了实现对临界资源的互斥访问,同时保证系统整体性能,需要遵循以下原则:

1 空闲让进。 临界区空闲时 可以允许一个请求进入临界区的进程立即进入临界区

2 忙则等待 当已有进程进入临界区时,其他试图进入临界区的进程必须等待

3 有限等待 对请求访问的进程,应保证在有限时间内进入临界区 保证不会饥饿

4 让权等待 当进程不能进入临界区时,应立即释放处理机,防止进程忙等待。

4.1.3 、信号量机制

用户进程可以通过使用操作系统提供的一对原语来对信号量进行操作,从而实现进程互斥,进程同步。

信号量其实就是一个变量,可以用一个信号量来表示系统中某种资源的数量,比如系统中有一台打印机,可以设置初值为1的信号量

原语 一种特殊的程序段,执行不可被中断。原语是由关中断/开中断指令实现的

信号量机制

1 实现进程互斥 2 实现进程同步 3 实现进程的前驱关系

一个信号量对应一种资源信号量的值 等于这种资源的剩余数量 如果信号量的值小于0,说明此时有进程在等待这种资源

P(S) 申请一个资源S 如果资源不够就阻塞等待 即S-1

V(S) 释放一个资源S 如果有进程在等待该资源则 唤醒一个进程 即S + 1

4.1.4 、PV操作实现前驱操作

进程的PV操作

1 每对前驱关系各设置一个同步信号量

2 前操作之后对相应的同步信号量执行V操作

3 后操作之前对应的同步信号量执行P操作

Q 进程 P1、P2 、P3、P4 和 P5 的前趋图如下所示:

若用 PV 操作控制进程 P1、P2、P3、P4 和 P5 并发执行的过程,需要设置 5 个信号量 S1、S2、S3、S4 和 S5,且信号量 S1~S5 的初值都等于零。如下的进程执行图中 a 和 b 处应分别填写(P(S1)和 P(S2) );c 和 d 处应分别填写(V(S1)V(S2)和 P(S3) P(S4)) ;e 和 f 处应分别填写(V(S3) V(S4))。

4.1.5 、死锁

产生死锁必须同时满足以下四个条件,任一条件不成立,死锁不会发生

1 、 互斥条件 只有对必须互斥使用的资源的争抢才会导致死锁。 像内存 、扬声器这样可以让多个进程使用的资源不会导致死锁

2 、不剥夺条件 进程所获得的资源在未使用完之前,不能由其他进程强行夺走,只能主动释放。

3 、请求和保持条件 进程已经保持了至少一个资源,但又提出了新的资源请求,而该资源又被其他进程占用,此时请求进程被阻塞,但又对自己已有的资源保持不放。

4 、循环等待条件 存在一种进程资源的循环等待链,链中的每一个进程已获得的资源同时被下一个进程所请求

死锁的处理策略

1 、预防死锁 破坏死锁产生的四个必要条件中的任一个

2 、避免死锁 防止系统进入不安全状态 避免死锁(银行家算法)

3 、死锁的检测和解除 允许死锁的发生,不过操作系统会负责检测出死锁的发生,然后采取措施解除死锁

Q 某系统中有3个并发进程竞争资源R 每个进程都需要5个R 那么至少也要有 (B)个 R 才能保证系统不会死锁

A 12 B 13 C 14 D 15

3个进程 ABC 先都分发 4个R资源 4+4+4 然后一个R资源共享 A使用完释放给B B使用完给C

4+4+4+1 = 13

4.1.6 、银行家算法

安全序列 系统按照这种序列分配资源 则每个进程都能顺利完成。 只要能找出一个安全序列,系统就是安全状态。

如果分配了资源之后 系统找不出任何一个安全序列,系统就进入了不安全状态 意味着可能所有进程都无法顺利执行

如果系统处于安全状态就一定不会发生死锁,不安全状态未必就是发生了死锁, 但发生死锁时一定在不安全状态

因此可以在资源分配之前预先判断这次分配是否会导致系统进入不安全状态,来决定是否答应资源分配的请求,这就是银行家算法的核心思想

Q 假设系统中有三类互斥资源R1、R2和R3,可用资源数分别为9、8和5。在T0时刻系统中有P1、P2、P3、P4和P5五个进程,这些进程对资源的最大需求量和已分配资源数如下表所示。如果进程按(B)序列执行,那么系统状态是安全的。

A P1 P2 P4 P5 P3 B P2 P4 P5 P1 P3 C P2 P1 P4 P5 P3

P1、P2、P3、P4、P5的执行顺序:
思路:首先需要系统有资源数,才能够分配需要的进程
R1、R2、R3 已分配的资源数:

R1:1+2+2+1+1 = 7
R1:2+1+1+2+1 = 7
R1:1+1+0+0+3 = 5

R1、R2、R3 已使用的资源数(根据题意):
R1:9
R2:8
R3:5

R1、R2、R3 剩余的资源数:
R1:9 - 7 = 2
R2:8 - 7 = 1
R3:5 - 5 = 0

因为只有满足最大资源数才能够运行进程
所以:最大资源数 - 已分配资源数 = 尚需资源数
剩余进程数:R1:2 R2:1 R3:0(第一步)
能够满足尚需进程数的只有 P2
执行完 P2 之后便可以释放资源
释放的资源 = 已分配给 P2 的资源(图表中) + 剩余进程数
P2 释放的资源 = R1:2 R2:1 R3:1 + R1:2 R2:1 R3:0
P2释放的资源:R1:4 R2:2 R3:1
剩余进程数:R1:4 R2:2 R3:1 (第二步)
能够满足尚需进程数的只有 P4
执行完 P4 之后便可以释放资源
释放的资源 = 已分配给 P4 的资源(图表中) + 剩余进程数
P4 释放的资源 = R1:1 R2:2 R3:0 + R1:4 R2:2 R3:1
P2释放的资源:R1:5 R2:4 R3:1
剩余进程数:R1:5 R2:4 R3:1 (第三步)
能够满足尚需进程数的有 P1 和 P5(这里一般是运行时间短的优先运行)
第一种情况(执行P1或者说P1执行的时间短)
如果是执行完 P1 之后便可以释放资源
释放的资源 = 已分配给 P1 的资源(图表中) + 剩余进程数
P1 释放的资源 = R1:1 R2:2 R3:1 + R1:5 R2:4 R3:1
P1释放的资源:R1:6 R2:6 R3:2
第一种情况(执行P5或者说P5执行的时间短)
如果是执行完 P5 之后便可以释放资源
释放的资源 = 已分配给 P5 的资源(图表中) + 剩余进程数
P5 释放的资源 = R1:1 R2:1 R3:3 + R1:5 R2:4 R3:1
P5 释放的资源:R1:6 R2:5 R3:4

P2 - P4 - P1 - P5 - P3

P2 - P4 - P5 - P1 - P3

相关文章:

  • 自然语言处理(24:(第六章4.)​seq2seq模型的应用)
  • 卸载360壁纸
  • Android开发:support.v4包与AndroidX
  • AI Agent拐点已至,2B+2C星辰大海——行业深度报告
  • nextjs使用02
  • MySQL在线DDL操作指南
  • 安全框架SpringSecurity入门
  • Window C++ Postmortem Debugger
  • opencv(C++)图像的读写、翻转、绘制、鼠标事件
  • 源码分析之Leaflet中control模块Control基类实现原理
  • Vue2 通过 Object.defineProperty 对哪些数组进行了特殊处理?
  • C语言中的内存管理:掌握动态分配的技巧
  • 雪花算法生成的主键存在哪些问题,为什么不能使用自增ID或者UUID做MySQL的主键
  • git 对比两种优化方法的性能
  • MySQL主从复制(二)
  • Go语言入门指南:从语法基础到核心特性解析
  • 【C++】mapset使用与实战 OJ题
  • ABAP RANGE表 OPTION 运算符 SIGN
  • 无人机数据链技术及运行方式详解!
  • python生成并绘制各种类型声音噪声
  • “80后”蒋美华任辽宁阜新市副市长
  • 解读|特朗普“助攻”下加拿大自由党“惨胜”,卡尼仍需克服“特鲁多阴影”
  • 在岸、离岸人民币对美元汇率双双升破7.26关口
  • 跟着京剧电影游运河,京杭大运河沿线六城举行京剧电影展映
  • 五一期间上海景观照明开启重大活动模式,外滩不展演光影秀
  • 酒店就“保洁员调包住客港币”致歉,称希望尽早达成解决方案