操作系统
23~28题 6分
操作系统地位
- 计算机硬件——裸机
- 系统软件(所有其他软件,如编辑程序、汇编程序、编译程序等)和应用软件(如腾讯会议等)建立在操作系统基础上
- 操作系统是用户与计算机之间的接口
进程管理
-
(处理机管理)在多道程序批处理系统 和分时系统 中有多个并发执行的程序
-
系统中程序执行时动态变化的过程——进程
-
进程是资源分配和独立运行的基本单位
*程序顺序执行
- 顺序执行图——前趋图 是一个有向无循环图(两个程序段操作之间存在前趋关系,C2执行完才能执行P2)
- 特征:顺序性、封闭性、可再现性(可以把结果重新表现出来)
-
*PV操作:先V后P(先加后减,信号量初值都等于0),有几个箭头就有几个信号量(S)
eg.下图P2:P2执行前要确保P(S1)流程走完,执行P2,得到V(S3)
-
做题步骤:1. 明确有几个信号量===>有几个箭头
2.在图上标记信号量(按从小到大排)
3. —V操作(+)---->P---->P操作(-)-----
-
程序并发执行
- 同一个作业内没有前趋关系 的程序段或不同作业的程序段可以分别在CPU和各输入/输出部件上并行执行
- 特征:1. 失去了程序的封闭性
2.程序和机器的执行程序的活动不再一一对应
3. 并发程序间的相互制约性
- 前驱图:如下
进程状态
*三态模型
进程在处理器上交替运行,状态也不断地发生改变,一般有3种基本状态:运行、就绪、阻塞(等待、睡眠)
- 运行:CPU运行 已获得资源
- 就绪:CPU待运行 已获得资源
- 阻塞:CPU停止运行 未获得资源
五态模型
在三态模型基础上引入新建态和终止态
单处理机:一个CPU
进程间的通信
进程间必然存在资源共享和相互合作的问题;进程通信是指各个进程交换信息的过程
同步与互斥
同步是合作进程间的直接制约 问题,互斥是申请临界资源进程间的间接制约 问题(只能通过互斥来访问)
- 进程的同步:程序顺序执行
- 进程的互斥:系统中多个进程因争用临界资源而互斥执行。
- 临界资源:有些资源一次只能供一个进程使用(如打印机、共享变量、表格等)
- 临界区:进程中对临界资源实施操作的那段程序
- 临界区管理原则:
- 有空即进:当无进程处于临界区时,允许进程进入临界区,并且只能在临界区运行有限的时间
- 无空则等
- 有限等待:对于要求访问临界资源的进程,应保证进程能在有限的时间进入临界区,以免陷入“饥饿”状态
- 让权等待:当进程不能进入自己的临界区时,应立即释放处理CPU(处理机),以免进程陷入忙等状态(忙等状态:CPU在运行,但资源还未获得)
信号量机制
一种有效的进程同步与互斥工具
- 信号量种类:
- 公用信号量:实现互斥(成对出现),初值为1或资源的数目
- 私用信号量:实现同步(交叉出现),初值为0或某个正整数
- 信号量S的物理意义:S≥0表示某资源的可用数;S<0则其绝对值=阻塞队列中等待 该资源的进程数
*PV操作
pv操作是实现进程同步与互斥的常用方法(先V后P)
-
P操作:表示申请一个资源
S=S-1,若S≥0,则执行P操作的进程继续执行;若S<0,则置该资源进程为阻塞状态(无可用资源),并将其插入阻塞队列
-
V操作:表示释放一个资源
S=S+1,若S>0,则执行V操作的进程继续执行;若S≤0,则从阻塞队列唤醒一个进程,并将其插入就绪队列,然后执行V操作的进程继续
PV操作实现进程的同步
假定用信号量S表示某条消息,进程可以通过P操作测试消息是否到达,调用V操作通知消息已准备好
单缓冲区的生产者和消费者的同步问题(单缓冲区=1个产品)
eg.生产者进程P1不断地生产产品送入缓冲区,消费者进程P2不断地从缓冲区中取产品消费,为了实现P1与P2进程间地同步问题,需要设置两个信号量S1和S2
信号量S1(生产者)的初值为1,表示缓冲区空,可以将产品送入缓冲区;信号量S2(消费者)的初值为0,表示缓冲区有产品【P操作-1,V操作+1】
n个缓冲区生产者与消费者问题
eg.一个生产者和一个消费者,缓冲区可存放n件产品,生产者不断地生产产品,消费者不断地消费产品。通过设置3个信号量S、S1、S2,其中S是一个互斥信号量,初值为1,(避免有两个进程在同时使用一个缓冲区)进行互斥控制;S1表示生产者,初值为n;S2表示消费者,初值为0
*死锁
-
同类资源分配不当引起死锁
-
若系统中有m个资源被n个进程共享,当每个进程都要求K个资源,而m<nk时(资源数<进程所需要的总数),可能 会引起死锁。(每个进程中的资源未到达满足,进入等待状态而不进行执行)。若系统采用的分配策略是轮流地为每个进程分配,会使得各个进程都处于等待状态导致系统发生死锁
-
当有n个进程、m个资源、且每个进程所需要的资源数为k,并且系统采用的分配策略是轮流地为每个进程分配资源时,判断是否会发生死锁的公式:m≥n(k-1)+1
——为真不会发生死锁,为假发生死锁
死锁的处理
死锁的处理策略:鸵鸟策略(即不理睬策略)、预防策略、避免策略、检测与解除死锁
- 死锁避免
银行家算法:每一个系统可以满足的资源请求命令加以检测,如果发现分配资源后系统进入不安全状态,则不给予分配;若分配资源后系统仍处于安全状态,则实施分配。(提高了资源的利用率,但检测分配资源后系统是否安全增加了系统开销)
安全状态:系统能够按某种顺序来为每个进程分配其所需资源,直到最大需求,使每个进程都可顺序完成。
eg.(执行完的进程会释放,重新变为可用资源)
线程
- 传统的进程有两个基本属性:进程(可拥有资源的独立单位)和 线程(可独立调度和分配的基本单位),用户通过创建线程来完成任务,以减少程序并行执行时付出的时空开销
- 线程可与同属一个进程的其他线程共享 进程所拥有的全部资源,但线程与线程之间是不可见的
*进程资源图
可以先分配再申请,也可以先申请再分配(如果没有申请成功,那该进程是不会释放已占用的资源,呈阻塞状态)
能否化简:非阻塞的进程执行完后将资源物归原主,供给其他进程使用。能化简——非死锁;不能——死锁
程序局部性原理
程序的局限性表现在时间局限性和空间局限性
- 时间局限性:若程序中的某条指令一旦执行,则在不久的将来该指令可能再次被执行;若某个存储单元被访问,则在不久以后该存储单元可能再次被访问——因为程序中存在着大量的循环操作
- 空间局限性:一旦程序访问了某个存储单元,则在不久的将来,其附近的存储单元也是最有可能被访问的(一段时间内所访问的地址可能集中在一定的范围)——程序是顺序执行
页面变换表
淘汰顺序:状态位=0 > 访问位=0 > 修改位=0
*分页存储管理
- 纯分页存储管理
16位地址结构:【页号都只占前4位(对于二进制来说)】
(4K=4096=212)
eg.假如计算机系统的页面大小为4K,进程P的页面变换表如下表所示。若P要访问的逻辑地址为十六进制1C20H,那么该逻辑地址经过地址变换后,其物理地址应为:
页码 | 物理块号 |
---|---|
0 | 2 |
1 | 3 |
2 | 5 |
3 | 6 |
①1C20 H十六进制每一个就代表4位的二进制
②因为页面大小为4K——>212——>有12位就是其页内地址——>C20
③1就是逻辑结构上的“页号/页帧号”,转成物理块号就是3
④所以 物理地址=物理块号+页内地址——>3C20
- 段页式存储管理
(纯背)地址结构:
段号x=2位数
段内页号p=2位数
页内地址w=2位数/210 (单位:k)
单缓冲区
-
对于缓冲区:非空不输入、非满不传送
-
缓冲并行工作时间=(T+M)×n+C(设有n个作业,T为输入所需的时间,M为传送所需的时间,C为用户进程所需的时间)
双缓冲区
- 缓冲并行工作时间=n×T+M+C(设有n个作业)
调度算法
- 先进行移臂调度,再进行旋转调度
- 在访问不同柱面的信息时,需要先进行移臂调度,之后进行旋转调度
- 访问同一磁盘的信息时,只需要进行旋转调度
磁盘调度算法
(移臂调度算法)
- 先来先服务(FCFS)
按请求访问者的先后次序启动磁盘驱动器,而不考虑它们要访问的物理位置
- 最短寻道时间优先(SSTF)
让离当前磁道最近的请求访问者启动磁盘驱动器,即谁离得近就访问谁(懒人)。而不考虑请求访问者的先后次序
- 扫描算法(SCAN)或电梯调度算法
总是从磁头当前位置开始,沿磁头的移动方向去选择离当前磁头最近的那个柱面的请求。如果沿磁头的方向无请求访问时,就改变磁头的移动方向
- 循环扫描算法(CSCAN)单向扫描算法
循环扫描算法是在电梯调度算法的基础上改进的。从当前位置开始沿磁头的移动方向去选择离当前磁头最近的那个柱面访问,若遇此方向上再无请求访问时,磁头立即返回到最里面的柱面(自里向外)
*旋转调度算法
- 处理记录的总时间:要知道 磁盘不会等你处理完当前元素,它会继续旋转,直到下一个要读取的元素停下
- 优化方案:修改磁盘上元素的所在位置,使经过处理时间后指针能直接指向下一个要读取的元素(避免磁盘旋转一圈),优化后的时间为 n×(处理时间+读取时间),n为n个元素
*多级索引结构
磁盘块大小包含了地址项和数据块,编号都是从0开始
索引块的数量=磁盘索引块大小/一个地址项大小
地址项——>数据块
256×256=66536
文件目录
(也称文件的说明或文件目录项)由文件控制块组成的,专门用于文件的检索。
文件目录发生崩溃、损失等,对系统的影响大
- 文件控制块
为每个文件设置用于描述和控制文件的数据结构
文件控制块包含:基本信息类(文件名、物理地址等)、存取控制信息类(权限)、使用信息类(建立日期、修改日期等)
目录结构
一级目录结构、二级目录结构、多级目录结构
- 多级目录结构(树型目录结构)\
全文件路径:从根开始直到目标文件(叶子)
绝对路径:从根开始直到目标文件夹(不要叶子)
相对路径:当前所在文件夹的位置 到 目标文件的文件夹,也可以直接 目标文件的文件夹\
eg.
*位示图
用二进制的一位来表示一个物理块的使用情况
- 用 0和1 分别表示空闲和占用
- 位示图的大小由磁盘空间的大小(物理块总数)决定,每个物理块存放一位
- 字号和位号(块号)都是从0开始(题目没说明字号,默认从1开始)
eg.假如计算机系统中字长为32位,那么在 位示图中的第0个字——文件存储器上的0,1,2,3,…,31号物理块;第1个字——32,33,34,…,63号物理块…