操作系统复习纲要


阅前提示:本文按照复习所划重点而写,不会涉及所有知识点

第一章 绪论

操作系统历史

早期批处理
多道程序系统
分时操作系统
实时操作系统

操作系统基本类型

单道
多道:提高CPU利用率
批处理操作系统:脱机,无交互
分时系统:有交互,有用户同时性、独立性
实时系统:高度可靠,及时响应

操作系统功能

  • 资源管理
    1. 处理机管理
    2. 存储管理
    3. 设备管理
    4. 信息管理(文件系统管理)
  • 用户接口
    1. 系统调用
    2. 作业控制

第二章 操作系统用户界面

作业 作业步 系统调用

  • 作业 :在一次应用业务处理过程中,从输入开始到输出结束,用户要求计算机所做的有关该次业务处理的全部工作称为一个作业。

  • 作业步:在一个作业的处理过程中计算机所做的相对独立的工作。

  • 作业由不同的顺序相连的作业步组成

  • 系统调用
    系统调用是操作系统提供给编程人员的唯一接口。

第三章 进程管理

进程的定义

进程 是一个独立功能的程序关于某个数据集合的一次运行活动,它是系统进行资源分配和调度的基本单位。

进程与程序的区别

  • 程序是静态的,进程是动态的(根本区别)
    程序是有序代码的集合;进程是程序的执行。
  • 进程和程序不是一一对应的
    一个程序可对应多个进程,例如:一个QQ程序被多人登录。
  • 进程是暂时的,程序的永久的
    进程是一个状态变化的过程,程序可长久保存。
  • 进程与程序的组成不同
    进程包括程序、数据和进程控制块。
    程序是指令序列。
  • 进程具有创建其他进程的功能,而程序没有

程序执行方式

程序的顺序执行:在某个程序段执行完之前,其它程序段只能等待。这种程序的执行方式,我们称为程序的顺序执行。
程序的并发执行:在一定时间内,有两个或两个以上的程序同时处于开始时运行尚未结束的状态。即:不同的程序在执行时间上是重叠的,在系统中交替执行。

顺序执行并发执行
程序具有封闭性程序失去封闭性
独享资源共享资源(互为存在条件)
可再现性程序与“计算”不再一一对应
无相互制约有相互制约

ps:并发执行与并行执行的区别
并发:一组程序逻辑上独立,执行时间客观上互相重叠。
并行:一组程序按独立,异步的速度执行。

进程组成

进程是一个实际存在的实体,包括三个组成部分:

  1. 程序: 完成独立功能的指令集合。
  2. 数据: 程序运行所作用的对象。
  3. 进程控制块(PCB):是进程的描述信息和控制信息。

PCB是进程存在的唯一标志。
这三部分也被称为”进程映像”。

进程状态转换

进程的状态

  1. 运行态: 进程正占用处理机执行。
  2. 就绪态:进程已具备运行条件,只因处理机被其它进程占用而处于一种等处理机的状态。
  3. 等待态:进程因等某事件发生(例等I/O操作结束)而暂时不能运行的状态。

进程的状态转换
在这里插入图片描述

原语

原语:所谓原语是机器指令的延伸,是为完成某些特定功能而编制的一段系统程序。为保证操作的正确性,在许多机器中规定,执行原语操作时,要屏蔽中断,原语不能并发执行,以保证其操作的不可分割性。

进程控制原语

  1. 进程的创建原语:create
    主要功能:
    (1)申请一个空闲的PCB,指定PID
    (2)为新进程分配资源,装入进程的实体:程序数据
    (3)将新进程的PCB初始化:就绪态,优先级,地址等
    (4)将新进程加到就绪队列中
    两种创建方式:
    (1)系统程序模块统一创建
    (2)父进程创建
    父进程和子进程
    (1)子进程继承父进程的资源;
    (2)父、子进程可以并发执行;
    (3)父进程可以等待子进程执行结束之后再执行;
    (4)父进程撤销,子进程一般也撤销。

  2. 进程的撤销:kill
    撤销的原因:正常终止、因错误而非正常终止、祖先进程要求终止某个子进程。
    主要功能:
    (1)从系统的PCB表中找到指定进程的PCB
    (2)回收该进程所占用的全部资源
    (3)若该进程还有子孙进程,回收它们所占有的
    全部资源
    (4)释放被终止进程的PCB,并从原来队列中摘走

  3. 进程阻塞原语:block
    起因:所需资源无法满足而不能继续运行,则进程调用阻塞原语,是自己变为等待状态。进程的阻塞是进程自身的一种主动行为。
    主要功能:
    (1)主动放弃CPU
    (2)保护现行进程的CPU现场
    (3).把该进程现行状态由“运行”改成“等待” ,并插入到具有相同事件的等待队列
    (4)转到进程调度程序,重新挑选一个合适的就绪进程投入运行

  4. 进程唤醒原语:wakeup
    进程唤醒过程:被阻塞的进程不能自己唤醒自己,当所期待的事件出现时,如I/O完成或其所期待的数据已经到达,则由有关进程(比如,用完并释放了该I/O设备的进程,或者是负责事件监测的系统进程),调用唤醒原语wakeup( ),将等待该事件的进程唤醒。
    主要功能:
    1.把进程从相应的等待队列中摘下
    2.将现行状态改为就绪态,然后把该进程插入到就绪队列中
    3.如果被唤醒进程比运行进程有更高的优先级,则设置重新调度标志

进程同步与互斥(PV操作题)

概念

  • 并发系统中,各个进程由于资源共享、进程合作,而产生进程之间的相互制约或依赖关系。(即:相互协作的同时,竞争着有限的资源)
  • 主要包括两种不同的制约关系:同步和互斥
    进程间为了完成一个共同的目标,彼此间存在互相合作的协同工作关系、有前后次序的直接制约关系,称为进程的同步。
    多个进程因不能同时访问临界资源(包括软硬件资源)而产生的间接制约关系,称为进程的互斥。

同步与互斥的异同

  • 相同:
    两者都是并发进程在执行的时间顺序上,相互制约的表现
  • 不同:
    互斥的进程不规定进入临界区的先后顺序,同步的进程必须按照严格的先后次序执行
    互斥的进程一般不知道对方存在,同步进程不仅知道对方存在,还需要与之通信

典型例题
生产者—消费者问题
哲学家进餐问题
吃水果问题
司机—售票员问题

进程通信

低级通信与高级通信

低级通信:进程间控制信息的交换
高级通信:进程间大批量数据的交换

低级通信

  • PV操作属于低级通信

高级通信

  • 直接通信——消息缓冲通信
  • 间接通信——邮箱通信

死锁(银行家算法)

死锁的定义:所谓死锁,是指各并发进程互相等待对方所拥有的资源,且这些并发进程在得到对方的资源前不会释放自己所拥有的资源。从而造成大家都想得到资源而又都得不到资源,各并发进程不能继续向前推进的状态。

死锁产生的原因
死锁的起因是并发进程的资源竞争。
产生死锁的根本原因在于系统提供的资源个数少于并发进程所要求的该类资源数。

死锁产生的必要条件(4个条件都要成立才会产生死锁)
1.互斥条件:资源使用互斥
2.不剥夺条件:进程所获得的资源在未使用完毕之前,不能被其他进程强行剥夺
3.部分分配(占有且等待)条件:进程在所占有的资源未使用完之前,又申请其它进程占用的资源
4.环路(循环等待)条件:资源分配图中存在环链

ps
(1)如果资源分配图中无环路,则系统中没有死锁发生。
(2)如果资源分配图中有环路,且环中每个进程处于永久等待,则死锁形成。
(3)如果资源分配图中有环路,但涉及到的资源类中有多个资源,则环路的存在未必就会形成死锁。

死锁的消除方法

  • 死锁预防
    静态策略,对进程申请资源的活动加以限制,使得死锁的四个必要条件不会同时具备。
    指导思想:破坏死锁四个必要条件中的一个
    1.互斥条件不可破坏
    2.破坏不可抢占条件
    若进程P1申请的资源R1正被进程P2占用,则检查P2的状态,如果P2处理等待另一个资源的状态,则抢夺R1,分配给P1,否则让P1处于等待R1的状态。
    3.破坏占有且等待条件(即:破坏部分分配条件)
    4.破坏循环等待的条件
  • 死锁避免
    动态策略,不限制进程对资源的申请,而是在申请时动态地加以检查,以决定是否实施资源分配。
  1. 安全状态
    能保证所有进程在有限的时间内得到需要的全部资源而运行完毕,则称系统处于安全状态。即存在安全序列<Pi,Pj,…,Pn>。
  2. 银行家算法
    Max:进程最大需求量
    Allocation:进程已分配量
    Need:进程尚需量(Need=Max-Allocation)
    Available:剩余资源量
    free:空闲资源量

例:
在这里插入图片描述
(1)T0时刻系统是否处于安全状态?
在这里插入图片描述
(2)T0时刻P1发出请求向量Request1(1,0,2),能否实施分配?
在这里插入图片描述
①Request<=Need ②Request<=Available ③存在安全序列 (三个条件都要满足)
所以能够实施分配。
(3)在(2)的基础上,若P[i](i=0,1,2,3,4)请求资源(?,?,?),能否实施分配?
同理需要看是否能同时满足如下条件,若满足则能分配,否则不能分配,
①Request<=Need ②Request<=Available ③存在安全序列

死锁的检测和解除
• 允许系统运行过程中发生死锁。
• 通过系统所设置的检测机构可以及时检测出死锁的发生,并精确地确定与死锁有关的进程和资源。
• 解除死锁是与检测死锁配套的一种设施,用于将进程从死锁状态下解脱出来。
• 常用的方法是撤消一些进程,以释放资源,再将它们分配给已处于阻塞状态的进程,使之转为就绪状态以继续运行。

线程

线程定义

线程是进程的一部分
线程有时又被称为轻权进程或轻量级进程

线程与进程的区别

在引入线程的操作系统中,线程作为CPU调度和分配的基本单位,进程作为资源分配的基本单位。

第四章 处理机调度

作业的状态及其转换

  1. 提交状态 :一个作业在其处于从输入设备进入外部存储设备的过程。
  2. 收容状态(后备状态) :若一个作业的全部信息已全部被输入进输入井,那么,在它还未被调度去执行之前,该作业处于收容状态。
  3. 执行状态 :作业调度程序从后备作业中选取若干个作业到内存投入运行。它为被选中作业建立进程并分配必要的资源,这时,这些被选中的作业处于执行状态。
  4. 完成状态 :当作业运行完毕,但它所占用的资源尚未全部被系统回收时,该作业处于完成状态。
    在这里插入图片描述

分级调度

一般来说,处理机调度可以分为以下4级:

作业调度:又称宏观调度或高级调度。
根据一定的算法,外存输入井中大量的后备作业中选择若干作业,分配内存、I\O设备等,建立进程,使得该作业的进程获得竞争处理机的权利。

交换调度:又称中级调度。
为了使内存中存放的进程数目不至于太多,有时需要将某些进程从内存移到外存,为此设立了中级调度,尤其是在采用虚拟存储技术的系统中。

进程调度:又称微观调度或低级调度。
根据一定的调度算法,从就绪队列中选择一个进程,使其获得处理机执行。

线程调度:线程是进程的一个实体,是CPU调度和分派的基本单位,线程不能独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制,提高系统内程序并发执行的程度。

周转时间(平均 带权 平均带权)

周转时间:进程自进入就绪队列开始至进程结束之间的时间间隔。
在这里插入图片描述

进程调度算法

1.先来先服务调度算法(FCFS)
在这里插入图片描述

2.最短作业优先法(SJF)
在这里插入图片描述

3.最高响应比优先算法(HRN)
在这里插入图片描述

4.时间片轮转法(RR)

  • 进程就绪队列往往按到达的时间来排序;
  • 调度程序总是选择就绪队列中的第一个进程,也就是说按照先来先服务原则调度;
  • 一旦进程占用处理机则仅使用一个时间片;在使用完一个时间片后,进程还没有完成,它必须释放出处理机给下一个就绪的进程;
  • 该进程返回到就绪队列的末尾,重新排队等待再次运行。
    在这里插入图片描述

5.多级队列调度算法
多级队列调度算法是先来先服务、时间片轮转算法和优先级算法的综合。
例:设有A、B、C、D、E五个进程,其到达时间分别为0、1、3、4、5,要求运行时间依次为3、8 、4、5、7,采用多级反馈队列调度算法,系统中共有3个队列,其时间片依次为1、2和4,试计算其平均周转时间和平均带权周转时间。

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

第五章 存储管理

各种存储方法的比较

在这里插入图片描述

存储管理

存储管理的功能

  1. 内存分配与回收(存储管理的首要功能)
    (1)记录内存空间的使用情况(内存分配登记表)
    (2)实施内存的分配
    (3)内存的回收

  2. 地址转换
    将逻辑地址转换为物理地址

    • 逻辑地址与物理地址的概念
      (1) 逻辑地址
      用户编程时总是从0开始编址,用这种编址方法所涉及的指令或数据的地址称为逻辑地址。
      (2)物理地址
      内存单元的一维线性地址。
    • 地址重定位方法
      CPU执行指令时是按物理地址进行的,而程序的逻辑地址与之不一致,因此需要地址重定位。
      (1)静态地址重定位
      程序装入时,由装入程序将逻辑地址转换为物理地址。
      实施:物理地址=程序在内存首址+逻辑地址
      (2)动态地址重定位
      程序在运行时将所涉及的指令或数据的地址转换为物理地址。
      实施:
      1.系统设置:基址reg(BR) 虚址reg(VR) 物理地址reg(PR)
      2.程序装入时,将其首址送基址reg(BR)
      3.程序在运行时将所涉及的指令或数据的地址送虚址reg(VR)
      4.(BR)+(VR)–>(PR)
  3. 存储保护
    限制进程只在自己的存储区活动,除了允许共享的部分外,不能对其他进程的程序和数据产生干扰和破坏。

    • 防止地址越界
    上、下界存储保护
    基址——限长存储保护

    • 存取权限控制

  4. 存储扩充
    通过虚拟存储器实现逻辑上的扩充。

虚拟存储器的概念

由系统构造一个存储容量远远超过内存实际容量的存储器,这种面向编程的存储器称为虚拟存储器,简称为虚存。

可实现在有限内存容量的情况下,执行比内存容量大得多的程序。

分区存储管理(三种分配方法及其比较)

  • 分区管理基本原理
  1. 固定分区法
  2. 动态分区法
  • 分区的分配与回收
    常用的内存分配算法
    1)最先适应算法
    最先适应算法要求可用表或自由链按起始地址递增的次序排列。
    2)最佳适应算法
    最佳适应算法要求按从小到大的次序组成空闲区可用表或自由链。
    3)最差适应算法
    最差适应算法要求空闲区按其大小递减的顺序组成空闲区可用表或自由链。

  • 动态分区时的回收与拼接
    在将一个新的空闲区插入可用表或自由链时,该空闲区和上下相邻区的关系是下述4种关系之一:
    (1)该空闲区的上下两相邻分区都是空闲区
    如果释放区上下两相邻分区都是空闲区,释放时,将3个空闲区合并为一个,新空闲区的起始地址为上空闲区的起始地址,大小为3个空闲区之和。
    (2)该空闲区的上相邻区是空闲区
    如果释放区上两相邻区是空闲区,释放时,将释放区与上空闲区合并为一个,新空闲区的起始地址为上空闲区的起始地址,大小为二者之和。
    (3)该空闲区的下相邻区是空闲区
    如果释放区下相邻区是空闲区,释放时,将释放区与下空闲区合并为一个,新空闲区的起始地址为释放区的起始地址,大小为二者之和。
    (4)该空闲区的上下两相邻分区都不是空闲区
    如果释放区上下两相邻分区都不是空闲区,释放时,释放区作为一个新的空闲区插入可用表或自由链。

  • 几种分配算法的比较
    最先适应算法
    1)从搜索速度上看,最先适应算法具有最佳性能。
    2)从回收过程来看,最先适应算法也是最佳的。
    3)最先适应算法尽可能地利用了低地址空间,从而保证高地址有较大的空闲区来放置要求内存较多的进程或作业。
    最佳适应算法
    最佳适应算法找到的空闲区是最佳的。
    最差适应算法
    最差适应算法基于不留下碎片空闲区这一出发点的,它选择最大的空闲区来满足用户要求,以期分配后的剩余部分仍能进行再分配。

页式存储管理

在这里插入图片描述

在这里插入图片描述
地址转换
在这里插入图片描述
例:
某分页系统的逻辑地址为16位,其中高6位为页号,低10位为页内地址,内存为一兆。建立的页表内容如下:

页号物理块号
02
13
21
36

(1)这样的地址结构每页最大有多少字节?逻辑地址可有多少页?一个作业最大使用空间是多少?
一页大小=1024B(低10位) ,逻辑地址有64页面 (高6位),作业最大的使用空间为64KB(64*1024)。
(2)逻辑地址4000,对应的页号,页内地址和绝对地址分别是多少?
4000/1024=3…928,页号为3,页内地址为928,绝对地址=6*1024+928=7072(页号为3物理块号为6)。
静态分页式存储管理的优缺点:

(1)作业不必作为整体装入内存连续区域
(2)便于多道程序设计,提高资源利用率
(3)页面大小和块的大小相等,便于主存管理
缺点:
(1)地址转换增加系统开销
(2)仍存在内存碎片:最后一个页面不能充分使用
(3)页表占用存储空间
(4)内存的扩充问题,作业的地址空间受内存容量限制
(5)页由系统划分,对用户透明,用户实现页的共享比较困难

请求页式动态方法

(1)划分内存和进程的逻辑空间(页面表和页表);
(2)把部分页载入内存;
(3)执行时,检查需要的页面在不在内存?如果在,则执行;否则执行中断程序,把所缺页面调入内存(需要检查是否有足够的空闲内存空间;如果没有,需要调出某页到外存,直至空闲空间足够。);
(4)回收。

请求分页的优缺点
优点:
● 提供多个大容量的虚拟存储器
● 更有效地利用了内存
● 多道程序度更高了
缺点:
● 缺页中断需要额外的存储空间及CPU开销
● 可能导致系统抖动

段式存储管理

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

在这里插入图片描述
例:
某分段系统的逻辑地址为16位,其中高6位为段号,低10位为段内地址,内存为1兆。建立的段表内容如下:

段号段长段首址
05k2500
11k4000
24k8000

(1)这样的地址结构每段最大有多少字节?逻辑地址可有多少段?一个作业最大的使用空间是多少?
每段最大为1024B(低10位),逻辑地址可有64段(高6位),作业最大的使用空间是64KB(64*1024)。
(2)逻辑地址1:512,对应的物理地址是多少?
物理地址=4000+512=4512(段号为1的段首址为4000,再加上位移量512)。

段页式存储管理

  • 分段结构具有逻辑上清晰的优点,但它的一个致命弱点是每个段必须占据主存储器的连续区域,于是,要装入一个分段时可能要移动已在主存储器中的信息。

  • 为了克服这个缺点,可兼用分段和分页的方法,构成段页式存储管理。

  • 进程仍按逻辑分段,但对每一段不是按单一的连续整体存放到存储器中,而是把每个段再分成若干个页面,每一段不必占据连续的主存空间,可把它按页存放在不连续的主存块中。
    在这里插入图片描述
    在这里插入图片描述
    地址变换过程:为了获得一条指令或数据,需要三次访问内存

扩充内存,局部性原理和抖动问题

扩充内存:交换、覆盖和虚拟存储技术

局部性原理

在几乎所有的程序的执行中,在一段时间内,CPU总是集中地访问程序中的某一部分而不是随机地对程序的所有部分具有平均访问概率,人们把这种现象称为局部性原理。

抖动问题

当给进程分配的内存小于所要求的工作集时,由于内存和外存之间交换频繁,访问外存时间和输入/输出处理时间大大增加,反而造成CPU因等待数据空转,使得整个系统性能大大下降,这就造成了抖动。

页面置换算法

缺页率=缺页次数/内存访问次数

  1. 最佳页面淘汰算法(Optimal Replace Algorithm—OPT)
    这是一种理论化的算法,选择永不使用的页,或随后很长时间内不使用的页。但实现困难,因为需要了解“将来”要访问哪些内存页。
    在这里插入图片描述

  2. 先入先出法(FIFO)
    选择在主存中停留时间最长的一页置换,即:先进入内存的页,先退出内存。
    实现方式:
    将装入内存的页面按照先后次序排成队列,每次总调出队首的页,新页装入队尾,例如:用指针指向“最老的页面”。
    缺点:
    不一定合理,较早进入内存的可能是共享的代码或数据,调出后不久又会使用。
    在这里插入图片描述

  3. 最近最不常用淘汰算法(基于次数)(Least frequently ued——LFU)
    选择被访问次数少的页面调出,如果一个页面访问次数较多,即:经常使用,则不应该被调出。
    实现方式:
    可通过设置周期和访问次数计数器来实现,经过一段周期后,计数器清零。
    缺点:
    会增加系统开销,且周期不宜确定。
    在这里插入图片描述

  4. 最久未使用算法(基于时间)(least recently used——LRU)
    基本思想:如果一个页面被访问了,那么它很可能马上又被访问,因此,可选择在最近一段时间里最久没有使用过的页面予以置换。
    可在页表中增加“计时”标记,每被访问一次,都从0开始重新计时,选择计时值最大的调出,也可以用堆栈实现。
    在这里插入图片描述

Belady现象及其原因

Belady现象:是指在采用FIFO算法时,如果对一个进程未分配它所要求的全部页面,有时就会出现分配的页面数增多,缺页率反而提高的异常现象。

原因:FIFO算法产生Belady现象的原因在于它根本没有考虑程序执行的动态特征。

第八章 文件系统

文件系统和文件的定义

文件

  • 是被命名的数据的集合;
  • 一般存放在外存上;
  • 文件的属性有:文件类型、文件长度、文件的物理位置、文件的存取控制、文件的建立日期和时间等。

文件系统

文件管理是操作系统最直接的对用户可见的管理模块,负责用户程序和数据的查找、删除、复制、修改、组织等;
将负责管理和存取文件信息的软件称为文件系统 。

文件的逻辑结构

一般可分为两种:有结构的记录式文件和无结构的流式文件。

  • 记录式文件 由记录组成,即文件内的信息划分为若干个相关的记录,以记录为单位组织和使用信息。又按各个记录的长度是否相同,分为定长记录文件和变长记录文件。

  • 流式文件 的内部不再划分记录,由一组相关信息组成有序字符流。其长度按字节计算。在UNIX系统中,所有的文件都看做流式文件。

文件存储空间管理算法

  • 空闲区表法
    • 以空闲块为单位进行登记,所有连续的空闲块在表中占据一项,表中每一项记录着空闲区域的起始块号和块数。
    • 文件在外存中分配和回收时,调整空闲区表空闲块的分配方法:
    可以参照内存管理中可变分区的管理方法,采用最先适应算法,最佳适应算法,最差适应算法,从空闲区表中选择一个空闲区分配给某个文件。若分配后有剩余,则作为一个新的空闲区,登记在空闲区表中;若无剩余,则直接删除该项。
    • 空闲块的回收:
    当用户删除文件时,系统将其磁盘空间回收,即:将回收的物理块登记在空闲区表中;若存在相邻的空闲区,则合并在一起,形成一个更大的空闲区。

  • 空闲块链接法

  1. 单块链接法
    • 利用指针将外存中的空闲块链接在一起;
    • 当申请者需要空闲块时,分配程序从链首开始摘取所需的空闲块,链首指针依次后移;反之,管理程序把回收的空闲块逐个的挂入链首。
    • 优点:简单易实现,只需记录链首指针
    • 缺点:是效率较低,增加或删除空闲块时需要多次移动指针
  2. 成组链接法
    • 把空闲块分成若干组,将指向同一组中空闲块的指针集中在一起,即可方便查找,又可减少修改指针的次数;
    • 每组的第一个空闲块登记下一组的组号和空闲数。即:把不同的组再串联起来。
  • 位示图法
    • 基本原理:
    利用一串二进制值来记载盘块的使用情况。
    磁盘中的各个空闲块与位示图中的各个比特位相对应。
    • 比特位的赋值:
    0,表示未分配
    1,表示已分配

文件目录与目录文件

文件目录
为了加快对文件检索,将文件控制块集中在一起管理,这种文件控制块的有序集合称为文件目录。

目录文件
为了实现对文件目录的管理,将文件目录以文件的形式,保存在外存中,这种完全由目录项构成的文件称为目录文件。

一级/二级/树形目录定义及其优缺点

一级目录结构

文件系统的全部文件都登记在一个目录中。

优点:简单

缺点:
1)当文件数量很大时,文件目录也很大,查找某个文件时,需要从整个目录表中查询,速度较慢;
2)由于是按名存取,因此不能重名;
3)难以做到不同文件名访问同一个文件,即:不利于共享。

二级目录结构

文件系统将目录分为两级:用户目录和主目录。

系统为每个用户建立一个文件目录,称为用户目录,反映本用户文件的属性等。

主目录用于管理所有的用户目录,包括其名字和物理地址,即:指向一个用户目录的指针。

优点:提高了查找速度,解决了重名问题

缺点:不利于文件共享

树型目录结构

即多级目录结构,将第一级目录作为系统目录,称为根目录。

目录树中的非叶子节点作为目录文件,即子目录。

优点:树型目录结构层次和隶属关系清晰,便于实现不同级别的存取保护、文件系统的动态装卸。

第九章 设备管理

数据传送控制方式

程序直接控制方式

  • 优点:控制简单,不需要很多硬件支持。
  • 缺点:
    1)CPU和外围设备只能串行工作。
    2)CPU在一段时间内只能和一台外围设备交换数据信息,从而不能实现设备之间的并行工作。
    3)只适用于CPU执行速度较慢,而且外围设备较少的系统。

中断方式

  • 中断方式数据输入可按如下步骤操作:
    1)进程需要数据时,通过CPU发送Start指令启动外围设备准备数据。
    2)在进程发出指令启动设备之后,该进程放弃处理机,等待输入完成。从而进程调度程序调度其他就绪进程占据处理机。
    3)当输入完成时,I/O控制器通过中断请求向CPU发送中断信号。CPU在接收到中断信号之后,转去执行设备中断处理程序。
    4)在以后的某个时刻,进程调度程序选中提出请求并得到了数据的进程,该进程从约定的内存特定单元中取出数据继续工作。

  • 中断控制方式的优缺点
    优点:与程序直接控制方式相比,中断方式使CPU的利用率大幅度提高。
    缺点:设备每输入/输出一个数据都要求中断CPU,这样在一次数据传送过程,中断发生次数较多,耗去大量CPU处理时间。

DMA方式(Direct Memory Access)

  • DMA基本概念:
    1)外设和内存直接交换数据,CPU不参与交换控制;
    2)总线使用权由CPU转到DMA控制器;
    3)内存和外设通过总线完成数据传送。

  • DMA工作的主要步骤:
    当进程需要从外设输入数据时:
    1)CPU把接收数据的内存地址和字节数送入DMA;
    2)提出数据输入请求的进程进入等待状态;
    3)CPU调度其他进程运行;
    4)设备数据缓冲器中的数据通过总线写入内存;
    5)DMA在所有数据传送完毕后,向CPU发出中断信号;
    6)CPU收到之后,转入中断处理程序进行后续处理。

通道控制方式

  • DMA方式存在的缺点和不足:
    1)一旦开始传送数据,CPU要让出主存,进行不访问主存的其它操作。
    2)DMA方式只解决了高速外存与主存的数据传送,对外设的管理和某些操作仍由CPU控制,并没有真正解决CPU与I/O设备的并行操作。
    3)如果每个I/O设备都配置DMA,硬件成本将大幅提高。

通道技术真正实现了CPU与I/O的并行工作,在需要使用I/O设备交换数据时,CPU只干预通道两次:启动通道、结束时的中断处理。

理解通道

通道相当于一台小型处理机,它接受主机的委托独立地执行通道程序,对外部设备的I/O操作进行控制,以实现内存和外设之间的成批数据传输。

三种通道及其适用设备

字节多路通道

  • 包括若干子通道,每个子通道至少连接一台低速设备
  • 字节:数据在通道中以字节为单位传输
  • 多路:可以分时执行多个通道程序
  • 主要用于连接低速设备

数据选择通道

  • 子通道每次只能控制一台设备
  • 直到该设备的数据传输工作全部结束
  • 主要用于连接高速外设,传送两个字节间的空闲时间较少

数组多路通道

  • 当设备进行数据传送时,通道只为该设备服务,且以数据块为传输单位
  • 当设备执行寻址等控制性操作时,通道暂时断开与其连接,转去为其他设备服务
  • 因此,结合了字节多路通道分时并行、数据选择通道传输速度高的特点,多用于中速设备

中断

中断的有关概念

  1. 什么叫中断
    CPU在正常运行程序时,由于程序的预先安排或内外部事件,引起CPU中止正在运行的程序,而转去执行预先安排好的程序或内外部事件处理程序,当处理程序执行完后再返回到被中止的程序继续运行。这一过程被称为中断。
  2. 中断源
    引起程序中断的事件或发出中断请求的来源。
  3. 中断请求
    中断源向CPU提出进行处理的请求。
  4. 中断响应
    CPU对中断源中断请求的响应。
  5. 中断优先级
    多个中断同时发生时,对其响应的优先次序。
  6. 中断禁止与中断屏蔽

中断的类型
• 外部中断:产生中断的原因为外部条件时,称为外部中断,也称硬中断,如:掉电、设备运行完成、设备故障、时钟中断等。
• 内部中断:产生中断的原因为内部条件时,称为内部中断,也称软中断。

一种是由于运行程序发生意外而产生,如:溢出、操作地址错误等;
另一种是运行程序需要产生的,如:系统调用。

中断的处理和返回

中断处理中断返回
1.保护现场1.关中断
2.开中断2.中断服务
3.恢复现场3.开中断

中断过程
在这里插入图片描述

缓冲技术

缓冲技术引入目的

1)缓解CPU与I/O设备间速度不匹配的矛盾
2)提高它们之间的并行性
3)减少对CPU的中断次数,放宽CPU对中断响应时间的要求

缓冲的种类

1)硬件缓冲器:价格贵、速度快、容量不会太大
2)软件缓冲器:在内存划出一块区域做缓冲器

设备分配顺序

设备->控制器->通道

假脱机技术(SPOOLing)

通过假脱机技术(SPOOLing)使独占设备变得可被共享
假脱机技术的组成

  • 输入井:用于存放独占型设备输入的数据。模拟独占的输入设备。
  • 输出井:用于存放用户程序最终向独占型设备输出的数据。模拟独占的输出设备。
  • 输入井缓冲区:用于暂存由输入设备送来的数据。
  • 输出井缓冲区:用于暂存从输出设备送来的数据。
  • 输入管理模块:将用户要求的数据从输入设备,通过输入缓冲区送到输入井。当CPU需要数据时直接从输入井读入内存。
  • 输出管理模块:把用户要求输出的数据,先从内存送到输出井,待输出设备空闲时,再将输出井中的数据,经过输出缓冲区送到输出设备上。

假脱机技术的工作原理

  • 在输入和输出之间增加了“输入井”和“输出井”的排队转储缓解,以消除用户的“联机”等待时间。
  • 在SPOOLing系统中,实际上并没有为任何进程分配设备,而只是在输入井和输出井中,为进程分配一个存储区。这样,便把独占设备改造为共享设备。

假脱机技术的特点

  1. 提高了I/O 速度。
  2. 将独占设备改造为共享设备 。
  3. 实现了虚拟设备功能 。

磁盘的物理结构及四种调度算法

磁盘物理结构
在这里插入图片描述
磁盘调度算法
例:读写磁头正在53号柱面上执行输入输出操作,而等待访问者依次要访问的柱面为:
98,183,37,122,14,124,65,67

  • 先来先服务调度(FCFS) :先来先执行
    执行顺序:98,183,37,122,14,124,65,67
    读写磁头总共移动640个柱面距离,寻找时间较长
    在这里插入图片描述

  • 最短寻道时间优先法(SSTF) :挑选寻找时间最短的执行
    执行顺序:53,65,67,37,14,98,122,124,183
    读写磁头总共移动236个柱面距离,减少了寻找时间
    在这里插入图片描述

  • 电梯调度算法或扫描法(SCAN)
    总是从移动臂当前位置开始,沿着臂的移动方向,选择离当前移动臂最近的那个柱面的访问者,如果沿臂的方向没有请求访问,则改变臂的方向再选择。类似于“电梯调度”。
    外移方向执行顺序:53,37,14,65,67,98,122,124,183
    读写磁头总共移动208个柱面距离
    里移方向执行顺序:53,65,67,98,122,124,183,37,14
    读写磁头总共移动299个柱面距离
    SCAN方法是一种 简单、实用、高效 的调度方法。
    在这里插入图片描述

  • 单向扫描法(C-SCAN)
    总是从0号柱面开始向里扫描,按照各个访问者所要访问的柱面位置的次序,选择访问者;
    当移动臂到达最后一个柱面时,立即快速返回到0号柱面,返回过程中不读磁盘,返回后再进行扫描。
    执行顺序:53,65,67,98,122,124,183,14,37
    在这里插入图片描述

参考资料:
《计算机操作系统教程(第4版)》张尧学 宋虹 张高 编著 清华大学出版社

  • 7
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值