操作系统复习

Posted shuyong-xiuer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了操作系统复习相关的知识,希望对你有一定的参考价值。

第1章 操作系统引论

操作系统的作用

  • 用户观点:用户与计算机硬件系统之间的接口
  • 资源管理观点:计算机系统资源的资源管理者
  • 虚拟机观点:实现了对资源的抽象
    • 第一层次的抽象:设备管理软件
    • 第二层次的抽象:文件管理软件(文件系统)
  • 是计算机工作流程的组织者

什么是多道程序设计技术?优点?

多道是指,允许多个程序同时存在于主存中,按照某种原则分派处理机,逐个执行这些程序。

优点:

  • 提高CPU的利用率

  • 提高内存和I/O设备利用率

  • 增加系统吞吐量

实现分时系统的关键问题是什么?应如何解决?

  • 及时接收

? 多路卡:使主机能同时接收各用户从终端上输入的数据。

? 缓冲区:暂存用户键入的命令。

  • 及时处理

? 作业直接进入内存

? 采用轮转运行方式

操作系统四大特征

并发

  1. 并行与并发
  • 并行性是指两个或多个事件在同一时刻发生;

  • 并发性是指两个或多个事件在同一时间间隔内发生。

  1. 引入进程
  • 进程是指在系统中能独立运行并作为资源分配的基本单位,它由一组机器指令、数据和堆栈等组成,是一个活动实体。
  • 多个进程之间可以并发执行和交换信息。
  • 引入进程的目的:是使多个程序能并发执行。

共享

系统中的资源可供多个并发执行的进程共同使用。

  • 互斥共享方式
    • 临界资源(或独占资源):规定在一段时间内只允许一个进程访问的资源
    • 打印机、磁带机、栈
  • 同时访问方式
    • 宏观上:同时
    • 微观上:交替访问
    • 磁盘设备

虚拟

通过某种技术把一个物理实体变为若干个逻辑上的对应物

  • 采用分时技术,将一台处理机虚拟为若干台处理机。还可以虚拟存储、虚拟设备、虚拟通道、虚拟文件、虚拟用户组以及虚拟网络等。
  • 时分复用技术:即分时使用方式,最早用于电信业,将一条物理信道虚拟为多条逻辑信道,以提高信道的利用率。
    • 虚拟处理机技术:利用多道程序设计技术,把一台物理上的处理机虚拟为多台逻辑上的处理机,在每台逻辑处理机上运行一道程序
    • 虚拟设备技术:将一台物理I/O设备虚拟为多台逻辑上的I/O设备,并允许每个用户占用一台逻辑上的I/O设备。
  • 频分复用技术:将一个频率范围非常宽的信道,划分成多个频率范围较窄的信道,其中的任何一个频带都只供一对用户通话
    • 虚拟磁盘技术:将一台硬盘虚拟为多台虚拟磁盘,即将硬盘划分为若干个卷
    • 虚拟存储器技术:利用存储器的空闲空间来存放其它的程序,以提高内存的利用率。通过“请求调入功能”和“置换功能”每次只把用户程序的一部分调用内存运行,实现用户的各部分分时进行内存运行的功能

异步性

  • 进程是以人们不可预知的速度向前推进。
    • 内存中的每个进程何时获得处理机运行;
    • 进程何时因提出某种资源请求而暂停;
    • 进程以怎样的速度向前推进;
    • 每道程序总共需要多少时间完成,等等。
  • 在多道程序环境下,允许多个进程并发执行,但由于竞争资源等因素的限制,使进程的执行不是“一气呵成,而是以“走走停停”的方式运行。
  • 只要运行环境相同,作业经过多次运行,都会获得完全相同的结果。

五大功能

OS的主要任务:为多道程序的运行提供良好的运行环境,以保证多道程序能有条不紊地、高效地运行。

处理机管理

  • 创建和撤消进程(线程)
  • 对诸进程(线程)的运行进行协调
  • 实现进程(线程)之间的信息交换
  • 按照一定的算法把处理机分配给进程(线程)

存储器管理

  • 为多道程序的并发执行提供良好的环境;
  • 便于用户使用存储器;
  • 提高存储器的利用率;
  • 从逻辑上扩充内存。

设备管理

  • 完成用户进程提出的I/O请求,为用户程序进程分配其所需的I/O设备,并完成指定的I/O操作;

  • 提高CPU和I/O设备的利用率,提高I/O速度,方便用户使用I/O设备。

文件管理

  • 管理用户文件和系统文件,以方便用户使用
  • 管理文件的存储空间
  • 保证文件数据的安全

提供用户接口

  • 用户接口:是提供给用户使用的接口,用户可通过该接口取得操作系统的服务。
  • 程序接口:以系统调用的形式供用户编程时使用。几乎各种操作系统都提供了系统调用,供程序设计。

第2章 进程的描述与控制

进程相关的概念

为什么要引入进程

  • 进程是对运行程序过程的抽象,
  • 也是一个数据结构,旨在清晰地描述动态系统的内在规律,有效地管理和调度运行到计算机系统主内存中的程序

进程的基本特征:

  • 动态性:进程的实质是程序在多道程序系统中的一次执行过程,进程是动态产生,动态消亡的。

  • 并发性:任何进程都可以同其他进程一起并发执行

  • 独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位;

  • 异步性:由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的、不可预知的速度向前推进

PCB:存放的信息

  • 进程控制块(Processing Control Block),是操作系统核心中一种数据结构,主要表示进程状态。
  • OS是根据PCB来对并发执行的进程进行控制和管理的。
  • PCB通常是系统内存占用区中的一个连续存区,它存放着操作系统用于描述进程情况及控制进程运行所需的全部信息,
  • 它使一个在多道程序环境下不能独立运行的程序成为一个能独立运行的基本单位或一个能与其他进程并发执行的进程。

进程的三种基本状态,它们之间如何进行转换?

技术图片

引入挂起之后的五状态

技术图片

进程控制

原语

:操作系统提供的为完成某系统功能的最基本的不可分割的操作

  • 与一般过程的区别:它们是“原子操作”
  • ?原语是不允许并发执行的,分为机器指令级原语和功能级原语两类,在核心态(管态)下执行,常驻内存。
  • 控制进程的原语:创建、撤销、阻塞、唤醒

特点:原子性,运行在内核态

进程创建的典型事件

(1)用户登录。

(2)作业调度。

(3)提供服务。

(4)应用请求。

创建过程

(1)申请空白PCB。

(2) 为新进程分配资源。

(3) 初始化进程控制块。

(4) 将新进程插入就绪队列,如果进程就绪队列能够接纳新进程, 便将新进程插入就绪队列。

进程控制原语:

创建、撤销、阻塞、唤醒、挂起、激活

进程的同步与互斥(大题)

临界资源、临界区的概念

临界资源:一次只允许一个进程访问的资源

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

进程的同步机制:

(1) 空闲让进。

(2) 忙则等待。

(3) 有限等待。

(4) 让权等待。

记录型信号量的含义,它是如何解决整型信号量中所出现的“忙等”问题的?

  • 由于它采用了记录型的数据结构而得名的
  • 在整型信号量机制中的wait操作,只要是信号量S<=0,就会不断测试。因此,该机制并未遵循“让权等待”准则,而是使进程处于“忙等”状态
  • 除了需要一个用于代表资源数目的整型变量value外,还应该增加一个进程链表指针L,用于链接上述的所有等待进程。

什么是忙等,有何缺点?

  • 在整型信号量机制中的wait操作,只要是信号量S<=0,就会不断测试。

信号量集的引入

  • 在记录型信号量机制中,wait(S)或signal(S)操作仅能对信号量施以加1或者减1操作,意味着每次只能获得或释放一个单位的临界资源。而当一次需要N个某类临界资源时,便要进行N次wait(S)操作,显然这是低效的。
  • 此外,在有些情况下,当资源数量低于某一下限值时,便不予分配。因而,在每次分配前,都必须测试该资源数量,看其是否大于其下限值。

什么是前趋图?为什么要引入前趋图?编程)

  • 是一个有向无循环图,记为DAG(Directed Acyclic Graph),用于描述进程之间执行的前后关系。
  • 为了描述一个程序的各部分(程序段或语句)间的依赖关系,或者是一个大的计算的各个子任务间的因果关系

技术图片

应用信号量机制解决进程的同步与互斥问题(生产者与消费者、读者写者问题)大题一

生产者—消费者问题

需解决的问题:

  • 对缓冲池的互斥访问。只有一个进程可以访问缓冲区。

  • 对生产、消费进程的同步。即有产品才能消费,无产品时必须先生产后消费;有空间时才能生产,空间满时必须先消费后生产。

信号量的设置

  • 一个互斥信号量,mutex用于实现对缓冲区的互斥访问,初值为1;

  • 两个同步信号量,分别表示可用资源数:

? empty-表示空缓冲区数,初值为n

? full-表示装有产品的缓冲区数,初值为0

技术图片

技术图片

读者-写者问题

一个数据集(如文件)如果被几个并行进程所共享,几个读者可以同时读些数据集,而不需要互斥,但一个写者不能和其它进程(不管是写者或读者)同时访问些数据集,它们之间必须互斥。

数据结构

1、全局变量readcount对进入共享区的读进程进行计数

2、信号量rmutex用于实现对多个读进程共享变量readcount的互斥访问

3、信号量wmutex用于实现读/写互斥

技术图片

技术图片

第3章 处理机调度与死锁

调度层次

  • 高级调度

又称作业调度、长程调度:决定把外存上处于后备队列中的哪些作业调入内存,并为之创建进程、分配必要的资源,然后,再将新创建的进程排在就绪队列中。

  • 低级调度

    进程调度、短程调度:决定就绪队列中哪个进程应获得处理机,然后再由分派程序执行把处理机分配给该进程的具体操作。

  • 中级调度

将那些暂时不能运行的进程不再占用宝贵的内存资源,而将它们调至外存上去等待,把此时的进程状态称为就绪驻外存状态或挂起状态。当这些进程重又具备运行条件、且内存又稍有空闲时,由中级调度来决定把外存上的哪些又具备运行条件的就绪进程,重新调入内存,并修改其状态为就绪状态,挂在就绪队列上等待进程调度

作业调度

任务:接纳多少作业,接纳哪些作业

进程调度算法

FCFS,SJF高响应比优先调度、高优先级,要求知道每种算法的调度规则、调度方式与偏好性,会计算周转时间与带权周转时间**

先来先服务(FCFS)调度算法

短作业优先(SJF)调度算法

优先级调度算法

高响应比优先调度算法

技术图片

(1) 等待时间相同,则要求服务的时间愈短,其优先权愈高—有利于短作业

(2) 当要求服务的时间相同时,则等待时间愈长,其优先权愈高—先来先服务

(3) 长作业只要等待时间足够长,其优先级便可升到很高, 从而也可获得处理机

(4) 响应比的计算增加了系统开销

优先级调度算法:静态、动态优先级

优先级调度算法的类型

  • 非抢占式优先权算法
    • 处理机分配给就绪队列优先权最高的进程后,该进程就一直执行下去,直至完成;或因发生某事件使该进程放弃处理机时,才进行CPU的重新分配。
    • 批处理系统、实时性要求不严的实时系统
  • 抢占式优先权调度算法
    • 处理机分配给就绪队列优先权最高的进程后,只要出现另一个优先权更高的进程时,便停止原来执行进程,把处理机分配给新出现的优先权最高的进程。
    • 实时性要求比较严格的实时系统

静态优先级

  • 进程优先级在创建进程时确定,整个运行期间保持不变
  • 确定优先权依据
    • ?进程类型:系统进程的优先级高于一般用户进程。
    • ?进程对资源的需求:资源要求少的进程赋予较高的优先级。
    • 用户要求:根据进程的紧迫程序及用户的付费确定优先级
  • 特点
    • 简单易行,系统开销小,不够精确;
    • 可能会出现低优先权作业长期不被调度。

动态优先权

  • 进程创建时赋予的优先权可以随进程的推进或等待时间的增加而改变,以便获得更好的调度性能。

  • 优先权随执行时间而下降,随等待时间而升高

  • 优点:长短兼顾,可防止某类作业长时间垄断CPU。

    缺点:增加了系统的开销

**多队列调度算法(*)**

  • 将不同类型或性质的就绪进程固定分配在不同的就绪队列
  • 不同的就绪队列采用不同的调度算法
  • 一个就绪队列中的进程可以设置不同的优先级
  • 不同的就绪队列本身也可以设置不同的优先级

保证调度算法

  • 如果系统中有n个相同类型的进程同时运行,须保证每个进程都获得相同的处理机时间1/n。
  • 保证的是每个进程获得相同的处理机时间
  • 系统必须具备的功能
    • 跟踪计算每个进程自创建以来已经执行的处理时间;
    • 计算每个进程应获得的处理机时间:技术图片
    • 计算进程获得处理机时间的比率:技术图片
    • 比较各进程获得处理机时间的比率;
    • 调度程序选择比率最小的进程,将处理机分配给它,并让该进程一直运行到超过最接近它的进程比率为止

实时调度算法

最低松弛度优先算法(调度规则、松弛度)

  • 任务的松弛度愈低,其优先级愈高。
  • 松弛度 = 必须完成的时间 – 其本身的运行时间 - 当前时间
  • 要求系统中有一个按松弛度排序的实时任务就绪队列。
  • 主要用于可抢占调度方式中,当一任务的最低松弛度减为0时,它便立即抢占CPU,以保证按截止时间的要求完成任务。

优先级倒置的概念

一个低优先级的任务持有一个被高优先级任务所需要的共享资源,高优先任务由于因资源缺乏而处于阻塞状态,一直等到低优先级任务释放资源为止。

死锁的相关概念(大题)

两个或两个以上的线程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去

产生死锁的原因

  • 竞争不可抢占性性资源引起进程死锁
  • 竞争可消耗性资源引起进程死锁
  • 进程推进顺序不当引起死锁

产生死锁的必要条件

  • 互斥条件:进程对所分配到的资源进行排它性使用,即在一段时间内某资源只由一个进程占用。
  • 请求和保持条件:进程已经保持了至少一个资源,但又提出了新的资源请求。
  • 不可抢占条件:进程已获得的资源,在未使用之前,不能被剥夺,只能在使用完时由自己释放。
  • 循环等待条件:在发生死锁时,必然存在一个进程-资源的环形链。

避免死锁

  • 预防死锁

    通过设置某些限制条件,去破坏产生死锁的四个必要条件重的一个或几个条件,来预防产生死锁。

    ? 缺点:系统资源利用率和系统吞吐量降低。

  • 避免死锁

    属于事先预防的策略。在资源的动态分配过程中,用某种方法去防止系统进入不安全状态,从而避免发生死锁。

  • 检测死锁

    允许系统在运行过程中发生死锁,设置检测机构及时检测出死锁的发生,并准确地确定与死锁有关的进程和资源。

  • 解除死锁

    将进程从死锁中解脱出来

银行家算法

技术图片

技术图片

技术图片

P0所需要的资源Need,大于可用资源,所以系统进入不安全

检测并解除死锁

  • 检测死锁:资源分配图完全简化法

    • 在顺利情况下,pi可获得所需资源而继续执行,直至运行完毕,再释放其所占有的全部资源。这相当于消去pi所有的请求边和分配边,使之成为孤立的结点
    • pi释放资源后.便可使p2获得资源而继续运行,直到p2完成后又释放出它所占有的全部资源
    • 在进行一系列的简化后,若能消去图中所有的边,使所有进程都成为孤立结点,则称该图是可完全简化的;若不能通过任何过程使该图完全简化,则称该图是不可完全简化的

    技术图片

  • 解除死锁:剥夺资源与撤消进程

第4章 存储器管理

程序的装入与链接

装入:

  • 绝对

    • 在可执行文件中记录内存地址,装入时不再作地址重定位,直接定位在上述(即文件中记录的地址)内存地址

    • ?优点:装入过程简单。

      ?缺点:过于依赖于硬件结构,不适于多道程序系统

  • 可重定位

    • 在装入时对目标程序中的指令和数据地址的修改过程
    • 静态重定位:地址变换只是在装入时一次完成,以后不再改变。
    • 缺点:一个程序通常需要占用连续的内存空间,程序装入内存后不能移动。不易实现共享
  • 动态运行

    • ?在把装入模块装入内存后,并不立即把装入模块中的逻辑地址转换为物理地址,而是把这种地址转换工作推迟到程序真正执行时才进行。

    • 因此,装入内存后的所有地址都是逻辑地址。

    • ?优点:

      –OS可以将一个程序分散存放于不连续的内存空间,可以移动程序,有利用实现共享。

      –能够支持程序执行中产生的地址引用,如指针变量(而不仅是生成可执行文件时的地址引用)。

      ?缺点:

      需要硬件支持(重定位寄存器),OS实现较复杂

链接:

将经过编译或汇编后所得到的一组目标模块以及它们所需要的库函数,装配成一个完整的装入模块

  • 静态

    • 是在程序运行之前,先将各目标模块及它们所需的库函数链接成一个完整的装入模块,以后不再拆开的链接方式。
  • 装入时动态

    • 用户源程序经编译后所得到的目标模块,是在装入内存时,采用边装入边链接的链接方式

    • ?优点:便于软件版本的修改和更新

      ? 便于实现目标模块共享

  • 运行时动态

    • 在运行时,若发现一个被调用模块尚未装入内存,由OS去找到该模块,将它装入内存,并把它链接到调用者模块上。

什么是重定位,有几种形式,如何实现?分别与何种装入方式相对应?哪种装入方式不需要进行重定位?

动态分区分配算法

为把一个新作业装入内存,须按照一定的分配算法,从空闲分区表或空闲分区链中,选出一分区分配给该作业

基于顺序搜索的算法:

适用范围:

不太大的系统

系统中通常只设有一个空闲分区链

  • 首次适应
    • 要求:空闲分区链以地址递增的次序链接
    • 算法:从链首开始顺序搜索,直至找到一个大小能满足要求的空闲分区,从该分区中划出一块能放下作业的空间给请求者,剩下的空闲分区仍留在空闲链中。若未找到大小大于作业要求的大小,则分配失败。
    • 缺点:低地址不断被划分,留下许多难以利用的、很小的空闲分区;因为每次查找都是从低地址开始,从而增加可用空闲分区查找的开销
  • 循环首次
    • 是由首次适应算法演变而成的
    • 要求:设置查找指针,指示下一次起始查询的空闲分区, 采用循环查找方式
    • 算法:不从链首开始查找,从上次找到的空闲分区的下一空闲分区开始查找
    • 优点:减少了查找空闲分区的开销
    • 缺点:缺乏大的空闲分区
  • 最佳
    • 要求:将空闲分区按容量从小到大形成空闲分区链。
    • 算法:将能满足要求、又是最小的空闲分区分配给作业
    • 缺点:留下许多难以利用的小空闲区
  • 最坏
    • 要求:将空闲分区按容量从大到小形成空闲分区链。
    • 算法:查找时只要看第一个分区能否满足作业要求
    • 优点:产生碎片的几率最小;对中、小作业有利;查找效率很高
    • 缺点:会使存储器中缺乏大的空闲分区

基于索引搜索的算法:

适用范围:

大、中型系统

  • 快速适应

    • 要求:将空闲分区根据容量大小进行分类,对于每一类具有相同容量的所有空闲分区,单独设立一个空闲分区链表,同时在内存中设立一张管理索引表,该表每个表项对应了一种空闲分区类型,并记录了该类型空闲分区链表表头的指针
    • 算法:根据进程长度,寻找能容纳它的最小空闲区链表,并取下第一块进行分配。
    • 优点:查找效率高;既能保留大的分区,也不会产生内存碎片。
    • 缺点:分区归还主存时算法复杂,系统开销较大;分配空闲分区时是以进程为单位,一个分区只属于一个进程,存在一定的浪费,且空闲分区划分越细,浪费越严重
  • 伙伴系统

    • ?内存分区的大小为2k字节,l<=k<=m,其中:2l表示分配的最小分区的大小,而2m表示分配的最大分区的大小,通常2m是整个可分配内存的大小。空闲分区按分区的大小进行分类,对具有相同大小的所有空闲分区单独设立一个空闲分区双向链表,不同大小的空闲分区形成了k个空闲分区链表。

    • 当有一个进程申请K字节时,首先计算一个i值,使2i-1<n<=2i,然后在空闲分区大小为2i的空闲分区链表中查找:若找到,则把该空闲分区分配给进程;否则,表明长度为2i的空闲分区已经耗尽,则在分区大小为2i+1的空闲分区链表中寻找,若存在2i+1的空闲分区,则把该空闲分区分为相等的两个分区,其中一个分区用于分配,另一个则加入分区大小为2i的空闲分区链表中。若不存在2i+1的空闲分区,则查找2i+2的空闲分区……

    • ?伙伴系统的回收:

      当一个进程释放内存时,回收过程需要查找该分区的伙伴是否也空闲,如果空闲,则与伙伴合并起来形成一个大分区。一次回收也可能要进行多次合并。

  • 哈希

    • 分类搜索算法与伙伴系统算法的缺点:选择合适空闲链表的开销比较大,时间性能受影响。
    • 哈希算法:
      • 利用哈希快速查找的优点,以及空闲分区在可利用空间表中的分布规律,建立哈希函数,
      • 构造一张以空闲分区大小为关键字的哈希表,表的每一个表项记录了一个对应的空闲分区链表表头指针。
      • 当进行空闲分区分配时,根据所需空闲分区大小,通过哈希函数计算,即得到在哈希表中的位置,从而得到相应的空闲分区链表,实现最佳分配策略

空闲分区的回收算法

基本分页存储管理(大题)

逻辑地址结构

技术图片

地址变换机构(大题)

实现从逻辑地址到物理地址的转换

利用页面映射表,实现将逻辑地址中页号,转换为内存中的物理块号。

技术图片

快表

  • 问题的提出:由于页表是存放在内存中的,这使CPU每次要存取一个数据时,都要两次访问内存。使计算机的处理速度降低近1/2
  • ?为了提高地址的变换速度,在地址变换机构中,增设的一个具有并行查寻能力的特殊高速缓冲存储器。
  • 快表作用:存放当前访问的那些页表项
  • 快表效果:取决于对快表的访问命中率。
  • 快表的大小:通常存放16-512个页表项

技术图片

内存有效访问时间(EAT)

  • 从进程发出指定逻辑地址的访问请求,经过地址变换,到内存中找到对应的实际物理地址单元并取出数据,所需花费的总时间。

  • 假定访问一次内存的时间为t,λ为查找快表所需要的时间,a为快表的命中率,则:

    • 基本分页存储管理方式中:EAT=2t

    • 引入快表的分页存储管理方式中:

      EAT=a × λ+(t+ λ)(1-a)+t=2t+ λ-t × a

基本分段存储管理

逻辑地址结构

  • 技术图片

地址变换机构

技术图片

技术图片

分页系统与分段系统的异同点

技术图片

技术图片

第5章 虚拟存储器管理

常规存储器管理特点

  • 一次性:作业必须一次性全部装入内存才能开始运行,这是一种对内存空间的浪费。
  • 驻留性:作业装入内存后,便一直驻留在内存直至作业运行结束,占据了宝贵的内存资源
  • 带来的问题:
    • 会使许多在进程运行时不用的或暂时不用的程序(数据)占据大量的内存空间;
    • 使一些需要运行的作业无法装入运行

虚拟存储器概念

  • 定义:具有请求调入功能和置换功能,能从逻辑上对内存容量进行扩充的一种存储器系统。它把内存与外存有机结合起来使用,构成容量很大的“内存”。

  • 特点:

    • 多次性:指一个作业中的程序和数据允许被分成多次调入内存运行,这是虚拟存储器最重要的特征。
    • 对换性:指允许作业中的程序和数据在作业运行过程中换入、换出。
    • 虚拟性:指能够从逻辑上扩充内存容量,使用户所看到的内存容量远大于实际内存容量。这是虚拟存储器表现出的最重要特征,是实现虚拟存储器的最重要的目标。
  • 原理

    技术图片

请求分页系统

页面置换算法(OPT、FIFO、LRU、CLOCK)

  • 功能:需要调入页面时,选择内存中哪个物理页面被置换

  • 目标:未来不再使用的或短期内较少使用的页面调出,通常只能在局部性原理指导下依据过去的统计数据进行预测

  • 不适当的算法可能会导致进程发生“抖动”

  • 最佳置换算法(OPT)

    • 方法:根据未来使用情况将未来的近期里不用的页替换出去。
    • 实现:
      • 确定要替换的时刻t。
      • 找出主存中每个页将来要用到的时刻ti。
      • ti -t最大的页将被替换
    • 特点:命中率高,但难于实现(必须运行一遍,才能知道未来的时刻ti),是理想算法,用于评价其它替换算法。

技术图片

  • 先进先出(FIFO)页面置换算法

    • 方法:最早装入主存的页作为被替换的页,即选择在内存中驻留时间最久的页面予以淘汰
    • 实现:只需把一个进程已调入内存的页面,按先后次序链接成一个队列,并设置一个指针,称为替换指针,使它总可以指向最老的页面。
    • 特点:利用历史信息,但不反映程序的局部性(最先进入的页可能是现在经常使用的页)

    技术图片

  • LRU最近最久未使用置换算法

    • 方法:近期最久未访问过的页作为被替换的页
    • 实现:赋予每个页面一个访问字段,用来记录一个页面自上次被访问以来所经历的时间t,当须淘汰一个页面时,选择现有页面中其t值最大的页面予以淘汰。
    • 特点:计数器硬件较少,主存页面表可由软硬件实现修改,根据“历史”预测“未来”

    技术图片

  • Clock置换算法

    • 每页设置一位访问位,若该页被访问则其访问位被置1;
    • 内存中所有页面都通过链接指针链接成一个循环队列,置换时采用一个指针,从当前指针位置开始按地址先后检查各页,寻找访问位为0的页面作为被置换页;
    • 指针经过的访问位为1的页都将其访问位置0,最后指针停留在被置换页的下一个页。

    技术图片

    技术图片

抖动与工作集

  • 抖动:刚被换出的页面很快又要被访问,需要重新调入,此时又需要再选一页调出;而此刚被调出的页很快又被访问,又需将它调入,如此频繁地更换页面,以致一个进程在运行中把大部分时间都花费在页面置换上,则称该进程发生了“抖动”
  • 工作集:
    • 是指在某段时间间隔里,进程实际所要访问页面的集合。
    • 进程在时间间隔( t-Δ, t)中引用页面的集合

分段系统

  • 地址变换

    • 技术图片
  • 保护机制:

    • 越界检查

      • 将逻辑地址的段号与段表的长度(段表寄存器)比较
      • 段内地址与(段表中)段长比较
    • 存取控制权限检查

      • ?段表的“存取控制”字段中的访问方式:

        (1)只读;(2)只执行;(3)读写;

第6章 输入输出系统

设备控制器的组成

  • 设备控制器与处理机的接口
  • 设备控制器与设备的接口
  • I/O逻辑:在其控制下完成与CPU、设备的通信。

技术图片

I/O软件层

中断处理过程,中断、陷入概念

中断处理程序的处理过程:

  1. 测定是否有未响应的中断信号;
  2. 保护被中断进程的CPU环境;
  3. 转入相应的设备处理程序;
  4. 中断处理;
  5. 恢复CPU环境并退出中断。
  • 中断(interrupt)
    • 中断是指CPU对I/O设备发来的中断信号的一种响应
    • 中断的处理流程:CPU暂停正在执行的程序,保留CPU环境后,自动地转去执行该I/O设备的中断处理程序。执行完后,再回到断点,继续执行原来的程序。
  • ?陷入(trap)
    • 陷入:由CPU内部事件所引起的中断
    • 陷入的处理流程与中断类似
  • ?中断和陷入的主要区别:
    • 中断信号源来自于CPU外部
    • 陷入信号源来自CPU内部

设备独立性

是指操作系统把所有外部设备统一当作成文件来看待,只要安装它们的驱动程序,任何用户都可以像使用文件一样,操纵、使用这些设备,而不必知道它们的具体存在形式。

设备驱动的功能

  • 接收由与设备无关的软件发来的I/O命令和参数,将命令中的抽象要求转换为与设备相关的低层操作序列;
  • 检查用户I/O请求的合法性,了解I/O设备的工作状态,传递与I/O设备操作有关的参数,设置设备的工作方式;
  • 发出I/O命令。如果设备空闲,则立即启动I/O设备,完成指定的I/O操作;如果设备忙碌,则将请求者的请求块挂在设备队列上等待;
  • 及时响应由设备控制器发来的中断请求,并根据其中断类型,调用相应的中断处理程序进行处理;
  • 对设置了通道的计算机系统,则自动构成通道程序。

通道的概念

通道是通过执行通道程序,并与设备控制器来共同实现对I/O设备的控制。通道程序是由一系列的通道指令(或称为通道命令)所构成

I/O控制方式

  • 程序
    • 利用I/O测试指令测试设备的闲忙。若设备不忙,则执行输入或输出指令;若设备忙,则I/O测试指令不断对该设备进行测试,直到设备空闲为止。这种方式使CPU花费很多时间在I/O是否完成的循环测试中,造成极大的浪费
  • 中断
    • 引入中断之后,每当设备完成I/O操作,便以中断请求方式通知CPU,然后进行相应处理。但由于CPU直接控制输入输出操作,每传达一个单位信息,都要发生一次中断,因而仍然消耗大量CPU时间
  • DMA
    • 用于高速外部设备与内存之间批量数据的传输。它使用专门的DMA控制器,采用窃取总线程控制权的方法,由DMA控制器送出内存地址和发出内存读、设备写或者设备读、内存写的控制信号完成内存与设备之间的直接数据传送,而不用CPU干预。当本次DMA传送的数据全部完成时才产生中断,请求CPU进行结束处理
  • 通道
    • 通道是一个用来控制外部设备工作的硬件机制,相当于一个功能简单的处理机。通道是独立于CPU的、专门负责数据的输入输出传输工作的处理器,它对外部设备实统一管理,代替CPU对I/O操作进行控制,从而使I/O操作可以与CPU并行工作。通道是实现计算机和传输并行的基础,以提高整个系统的效率

缓冲管理

引入缓冲区的目的

  • 凡是数据到达和离去速度不匹配的地方均可采用缓冲技术

    1、缓和CPU和I/O设备间速度不匹配的矛盾。

    ? 如:计算——打印buffer——打印

    2、减少对CPU的中断频率

    ? 如:buffer越大,“buffer满”信号发生频率越低。

    3、解决数据粒度不匹配的问题

    4、提高CPU和I/O并行性

缓冲池

  • 问题:当系统配置较多的设备时,使用专用缓冲区就要消耗大量的内存空间,且其利用率不高。
  • 解决:为了提高缓冲区的利用率,目前广泛使用公用缓冲池,池中的缓冲区可供多个进程共享

SPOOLing技术概念及组成部分

  • 是指在多道程序的环境下,利用多道程序中的一道或两道来模拟外围控制机,从而在联机的条件下实现脱机I/O功能的技术,也称为SPOOLing技术
  • SPOOLing系统由
    • 输入/输出设备和通道、
    • 输入井和输出井
    • 输入井和输出井管理程序、
    • 假脱机输入程序
    • 以及假脱机输出程序等几部分组成

磁盘存储器的调度

磁盘调度算法(FCFS;SSTF;SCAN;CSCAN)

  • 先来先服务FCFS

    • ?优点:公平、简单,每个进程的请求都能依次得到处理

      ?缺点:未对寻道进行优化,平均寻道时间较长

  • 最短寻道时间优先SSTF

    • ?要求访问的磁道与当前磁头所在的磁道距离最近,以使每次的寻道时间最短。

    • ?优点:平均每次磁头移动距离较近

      ?缺点:不能保证平均寻道时间最短,可能导致某些进程发生“饥饿”现象

  • 扫描(SCAN)算法(电梯调度算法)

    • 磁道距离 + 磁头移动方向

      优点:较好的寻道性能,且能防止进程饥饿

      缺点:严重推迟某些进程的请求

  • 循环扫描(CSCAN)算法

    • 为了减少SCAN算法中,某些请求的延迟
    • 该算法规定磁头单向移动

第7章 文件管理

文件系统

文件系统的模型及每层的内容

  • 对象及其属性

    • ?文件管理系统管理的对象包括:
      • 文件
      • 目录
      • 磁盘(磁带)存储空间
  • 对对象操纵和管理的软件集合

    • I/O控制层(设备驱动程序层):主要由磁盘驱动程序组成
    • 基本文件系统:用于处理内存与磁盘之间数据块的交换
    • 基本I/O管理程序:用于完成与磁盘I/O有关的事务,如将文件逻辑块号转换为物理块号、管理磁盘中的空闲盘块等
    • 逻辑文件系统:用于处理与记录、文件相关的操作
  • 文件系统的接口

    • 文件系统以接口的形式向上层用户一组对文件和记录操作的方法和手段:

      • 命令接口:用户与文件系统直接交互的接口,用户可以通过键盘终端输入命令取得文件系统的服务。
      • 程序接口:**用户程序与文件系统的接口,用户程序通过系统调用取得文件系统的服务。

打开文件操作

  • 打开:是指系统将指名文件的属性(包括该文件在外存上的物理位置),从外存拷贝到内存打开文件表的一个表目中,并将该表目的编号(或称为索引)返回给用户。

文件的逻辑结构

  • 是从用户的观点出发,所观察到的文件组织形式,是用户可以直接处理的数据及其结构,它独立于物理特性,又称文件组织
  • 按文件是否有结构分类

    • 有结构文件(记录式文件)

      • 定长记录
      • 变长记录
    • ?无结构文件(流式文件)
      • 以字节为单位,利用读写指针进行访问
  • 按文件的组织方式分类
    • 顺序文件
    • 索引文件
    • 索引顺序文件

文件目录管理

  • 一种数据结构,用于标识系统中的文件及其物理地址,供检索时使用

  • 对目录管理的要求
    • 实现“按名存取”。==最基本的功能==
    • 提高对目录的检索速度。==大中型文件系统追求的主要目标==
    • 文件共享。==多用户系统的目标==
    • 允许文件重名。
  • 目录查找技术
    • 文件控制块FCB
    • 索引结点

第8章 磁盘存储器的管理

文件的物理结构

物理结构:概念及分类

  • 连续分配方式

    • 连续分配(Continuous Allocation)要求为每一个文件分配一组相邻接的盘块。 一组盘块的地址定义了磁盘上的一段线性地址
  • 链接组织方式

    • 将一个文件放在不连续的物理块中,每个物理块通过指针链接起来

    • 隐式链接

      显式链接

  • FAT技术

    • FAT12
    • FAT16
    • FAT32

文件存储空间的管理

  • 位示图法

技术图片

技术图片

以上是关于操作系统复习的主要内容,如果未能解决你的问题,请参考以下文章

操作系统 —期中复习

操作系统复习

操作系统复习

操作系统期末复习

操作系统第一章(仅期末复习)

系统分析与设计 复习