操作系统基础知识复习


提示:只适用于简单的复习

第一章 操作系统引论

操作系统的目标和作用

  • 主要目标是:
    方便性、有效性、可扩充性和开放性。
  • 作用:
    OS作为用户与计算机硬件系统之间的接口
    OS作为计算机系统资源的管理者
    OS实现了对计算机资源的抽象

操作系统的发展过程

  • 推动操作系统发展的主要动力有哪些?
    (1)提高计算机资源利用率
    (2)方便用户
    (3)器具的更新迭代
    (4)计算机体系结构的不断发展
    (5)新的应用需求
  • 单道批处理系统
    虽然系统对作业的处理是成批进行的,但在内存中始终只保持一道作业,故称为单道批处理系统。
    单道批处理系统是在解决人机矛盾和CPU与I/O设备速度不匹配矛盾的过程中形成的。换言之,批处理系统旨在提高系统资源的利用率和系统吞吐量
    单道批处理系统最主要的缺点是,系统中的资源得不到充分的利用。
  • 多道批处理系统
    内存中存放多道程序,当某道程序因某种原因如执行I/O操作时而不能继续运行放弃CPU时,操作系统便调度另一程序运行,这样CPU就尽量忙碌,达到提高系统效率的目的。
     
    多道批处理系统的优缺点如下:
    (1)资源利用率高。引入多道批处理能使多道程序交替运行,以保持CPU处于忙碌状态;在内存中装入多道程序可提高内存的利用率;此外还可以提高I/O设备的利用率。
    (2)系统吞吐量大。能提高系统吞吐量的主要原因可归结为:① CPU和其它资源保持“忙碌”状态;②仅当作业完成时或运行不下去时才进行切换,系统开销小。
    (3)平均周转时间长。由于作业要排队依次进行处理,因而作业的周转时间较长,通常需几个小时,甚至几天。
    (4)无交互能力。用户一旦把作业提交给系统后,直至作业完成,用户都不能与自己的作业进行交互,修改和调试程序极不方便。
     
    多道批处理系统需要解决的问题:
    (1)处理机争用问题
    (2)内存分配和保护问题
    (3) IO设备分配问题
    (4)文件的组织和管理问题
    (5)作业管理问题
    (6)用户与系统的接口问题
  • 分时系统
    如果说推动多道批处理系统形成和发展的主要动力是提高资源利用率和系统吞吐量,那么,推动分时系统形成和发展的主要动力,则是为了满足用户对人一机交互的需求,由此形成了一种新型OS。
  • 实时系统
    实时系统是指系统能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。
  • 单用户单任务、单用户多任务、多用户多任务操作系统

操作系统的基本特性

  • 操作系统的基本特性:并发、共享、虚拟、异步
     
  • 并行性是指两个或多个事件在同一时刻发生。
  • 并发性是指两个或多个事件在同一时间间隔内发生。在多道程序环境下,并发性是指在一段时间内宏观上有多个程序在同时运行,但在单处理机系统中,每一时刻却仅能有一道程序执行,故微观上这些程序只能是分时地交替执行。
  • 进程是指在系统中能独立运行并作为资源分配的基本单位,它是由一组机器指令、数据和堆栈等组成的,是一个能独立运行的活动实体。多个进程之间可以并发执行和交换信息。

第二章 进程的描述与控制

前趋图和程序执行

  • 前趋图(Precedence Graph),是指一个有向无循环图,可记为DAG(DirectedAcyclic Graph),它用于描述进程之间执行的先后顺序。
  • 程序顺序执行时的特性
    顺序性、封闭性、可再现性
  • 程序并发执行时的特性
    间断性、失去封闭性、不可再现性

进程的描述

  • 由程序段、相关的数据段和PCB三部分便构成了进程实体(又称进程映像)。一般情况下,我们把进程实体就简称为进程,例如,所谓创建进程,实质上是创建进程实体中的PCB;而撤消进程,实质上是撤消进程的PCB。
     
  • 对于进程从不同的角度可以有不同的定义,其中较典型的定义有:
    (1)进程是程序的一次执行。
    (2)进程是一个程序及其数据在处理机上顺序执行时所发生的活动。
    (3)进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。
     
  • 进程的特性
    动态性、并发性、独立性、异步性
     
  • 进程的五种基本状态:
    就绪状态、执行状态、阻塞状态 、创建状态、终止状态
     
  • 进程三种状态的转换:
    在这里插入图片描述
  • 进程五种状态的转换:
    在这里插入图片描述
  • 中断:正在执行的进程(作业,程序)由于时间片用完或者请求I/O输入不能继续执行时,释放对处理机(CPU)的使用权,在这个过程中,当前进程需要保护现场(把CPU执行到哪一行代码、执行中间结果等信息写入当前进程),之后操作系统从就绪队列重新选择一个进程,把CPU使用权交给这个进程,这个进程在使用CPU执行之前,需要恢复现场(把进程上一次执行到的那一行代码放到CPU的指令寄存器,把上一次执行中间结果写入CPU的相关寄存器),之后新进程就开始执行。
     
  • 程序和进程的区别:
    (1)程序是静态的,进程是动态的;
    (2)程序是没有进程控制块的,进程是有进程控制块的;
    (3)程序常保存在外存,而进程经常位于内存。
    注意:进程可以位于外存。比如,suspend(挂起)操作就会让进程从内存移动到外存。
  • 资源分配:指进程获取内存、I/O设备使用权
  • 调度:处理机调度,指进程获取CPU执行
  • 进程控制块PCB:PCB作为进程实体的一部分,记录了操作系统所需的,用于描述进程的当前情况以及管理进程运行的全部信息,是操作系统中最重要的记录型数据结构。
  • PCB的作用
    (1)作为独立运行基本单位的标志。
    (2)能实现间断性运行方式。
    (3)提供进程管理所需要的信息。
    (4)提供进程调度所需要的信息。
    (5)实现与其它进程的同步与通信。
  • PCB的组织方式
    线性方式、链接方式、索引方式

进程同步

  • 进程同步:进程同步机制的主要任务,是对多个相关进程在执行次序上进行协调,使并发执行的诸进程之间能按照一定的规则(或时序)共享系统资源,并能很好地相互合作,从而使程序的执行具有可再现性。
  • 临界资源:同一时刻只允许一个进程访问的资源。各进程之间通过互斥访问的方式,实现对这种资源的共享。
  • 访问临界资源的循环进程描述如下:
    在这里插入图片描述
  • 同步机制应遵循的四条准则:
    (1)空闲让进
    (2)忙则等待
    (3)有限等待
    (4)让权等待
  • 关中断:当进程正在访问临界资源时,该进程的处理使用权不能被其他进程剥夺。
  • Test-and-Set 指令实现互斥
  • Swap指令实现进程互斥
  • 信号量机制:
    整型信号量:
    在这里插入图片描述
    记录型信号量:
    在这里插入图片描述
    AND型信号量:
    在这里插入图片描述
    信号量集
  • 信号量的应用:
    在这里插入图片描述
  • 管程的定义:
    代表共享资源的数据结构以及由对该共享数据结构实施操作的一组过程所组成的资源管理程序共同构成了一个操作系统的资源管理模块,我们称之为管程。

进程通信

进程通信是指进程之间的信息交换。由于进程的互斥与同步,需要在进程间交换一定的信息,故不少学者将它们也归为进程通信,但只能把它们称为低级进程通信。
 
低级的原因在于:①效率低;②通信对用户不透明
 
在进程之间要传送大量数据时,应当利用OS提供的高级通信工具,该工具最主要的特点是:
(1)使用方便;(2)高效地传送大量数据

线程(Threads)的基本概念

  • 由于线程具有许多传统进程所具有的特征,所以又称之为轻型进程(Light-WeightProcess)或进程元,相应地,把传统进程称为重型进程(Heavy-Weight Process)。它相当于只有一个线程的任务。
     
  • 传统操作系统中,进程是资源分配和调度的基本单位。
    现代操作系统中,进程是资源分配的独立单位,线程是调度的独立单位。
  • 在引入线程的OS 中,不仅进程之间可以并发执行,而且在一个进程中的多个线程之间亦可并发执行,甚至还允许在一个进程中的所有线程都能并发执行。

第三章 处理机调度与死锁

处理机调度的层次和调度算法的目标

调度的层次

  • 1.高级调度(High Level Scheduling)
    高级调度又称长程调度或作业调度,它的调度对象是作业。
  • 2.低级调度(Low Level Scheduling)
    低级调度又称为进程调度或短程调度,其所调度的对象是进程(或内核级线程)。
  • 3.中级调度(Intermediate Scheduling)
    中级调度又称为内存调度。引入中级调度的主要目的是,提高内存利用率和系统吞吐量。
     

调度算法的目标
在这里插入图片描述

作业与作业调度

  • 作业 = 程序 + 数据 + 作业说明书
  • 作业步(Job Step)。一个典型的作业可分成:“编译”作业步,“链接装配”作业步和“运行”作业步。
  • 作业控制块(Job Control Block,JCB)
    它是作业在系统中存在的标志,其中保存了系统对作业进行管理和调度所需的全部信息。通常在JCB中包含的内容有:作业标识、用户名称、用户账号、作业类型(CPU繁忙型、I/O 繁忙型、批量型、终端型)、作业状态、调度信息(优先级、作业运行时间)、资源需求(预计运行时间、要求内存大小等)、资源使用情况等。
  • 作业运行的三个阶段和三种状态
    作业从进入系统到运行结束,通常需要经历收容、运行和完成三个阶段。相应的作业也就有“后备状态”、“运行状态”和“完成状态”。

作业调度算法

  1. 先来先服务(first-come first-served,FCFS)调度算法
    FCFS是最简单的调度算法,该算法既可用于作业调度,也可用于进程调度。每次调度是从就绪的进程队列中选择一个最先进入该队列的进程,为之分配处理机,使之投入运行。该进程一直运行到完成或发生某事件而阻塞后,进程调度程序才将处理机分配给其它进程。
     
  2. 短作业优先(short job first,SJF)的调度算法
    作业越短,优先级越高。
    SJF调度算法较之FCFS 算法有了明显的改进,但仍然存在不容忽视的缺点:
    (1)必须预知作业的运行时间
    (2)对长作业非常不利,长作业的周转时间会明显地增长
    (3)在采用FCFS 算法时,人一机无法实现交互
    (4)该调度算法完全未考虑作业的紧迫程度,故不能保证紧迫性作业能得到及时处理
     
  3. 优先级调度算法(PSA):基于作业的紧迫程度
     
  4. 高响应比优先调度算法(HRRN):同时考虑作业调度时间和作业运行时间
    在这里插入图片描述
  • 周转时间,是指从作业被提交给系统开始,到作业完成为止的这段时间间隔(称为作业周转时间)。
  • 它包括四部分时间:
    (1)作业在外存后备队列上等待(作业)调度的时间
    (2)进程在就绪队列上等待进程调度的时间
    (3)进程在CPU上执行的时间
    (4)进程等待IO操作完成的时间
    其中的后三项在一个作业的整个处理过程中,可能发生多次。
     
  • 周转时间 = 完成时间 - 到达时间
  • 带权周转时间 = 周转时间 / 运行时间
  • 等待时间 = 周转时间 - 运行时间

进程调度

  • 进程调度机制中,应具有如下三个基本部分:
    排队器、分派器、上下文切换器
     
  • 进程调度方式:
    (1)非抢占方式
    (2)抢占方式
    抢占方式遵循的原则:
    1、优先权原则;2、短进程优先原则;3、时间片原则

进程调度算法

  1. 轮转调度算法(RR)
    在RR调度算法中,应在何时进行进程的切换,可分为两种情况:①若一个时间片尚未用完,正在运行的进程便已经完成,就立即激活调度程序,将它从就绪队列中删除,再调度就绪队列中队首的进程运行,并启动一个新的时间片。②在一个时间片用完时,计时器中断处理程序被激活。如果进程尚未运行完毕,调度程序将把它送往就绪队列的末尾。
     
  2. 优先级调度算法
  3. 多队列调度算法
  4. 多级反馈队列调度算法
  5. 基于公平原则的调度算法

死锁

  • 死锁的起因:,通常是源于多个进程对资源的争夺,不仅对不可抢占资源进行争夺时会引起死锁,而且对可消耗资源进行争夺时,也会引起死锁。
    (1)竞争不可抢占性资源
    (2)竞争可消耗资源
    (3)进程推进顺序不当
  • 死锁的定义:
    在一组进程发生死锁的情况下,这组死锁进程中的每一个进程,都在等待另一个死锁进程所占有的资源。或者说每个进程所等待的事件是该组中其它进程释放所占有的资源。但由于所有这些进程已都无法运行,因此它们谁也不能释放资源,致使没有任何一个进程可被唤醒。这样这组进程只能无限期地等待下去。由此可以给死锁做出如下的定义:
    如果一组进程中的每一个进程都在等待仅由该组进程中的其它进程才能引发的事件,那么该组进程是死锁的(Deadlock)。
  • 产生死锁的必要条件:
    (1)互斥条件。在一段时间内,某资源只能被一个进程占用。
    (2)请求和保持条件。进程已经保持了至少一个资源,但又提出了新的资源请求,而该资源已被其它进程占有,此时请求进程被阻塞,但对自己已获得的资源保持不放。
    (3)不可抢占条件。进程已获得的资源在未使用完之前不能被抢占,只能在进程使用完时由自己释放。
    (4)循环等待条件
  • 处理死锁的方法:
    目前处理死锁的方法可归结为四种:
    (1)预防死锁
    (2)避免死锁
    (3)检测死锁
    (4)解除死锁
    上述的四种方法,从(1)到(4)对死锁的防范程度逐渐减弱,但对应的是资源利用率的提高,以及进程因资源因素而阻塞的频度下降(即并发程度提高)。

第四章 存储器管理

存储器的层次结构

  • 对于通用计算机而言,存储层次至少应具有三级:最高层为CPU寄存器,中间为主存,最底层是辅存。在较高档的计算机中,还可以根据具体的功能细分为寄存器、高速缓存、主存储器、磁盘缓存、固定磁盘、可移动存储介质等6层。在存储层次中,层次越高(越靠近CPU),存储介质的访问速度越快,价格也越高,相对所配置的存储容量也越小。
    在这里插入图片描述

连续分配存储管理方式

把一个作业保存在一段连续的内存空间。

  • 连续分配方式是最早出现的一种存储器分配方式,曾被广泛应用于上世纪60~80年代的OS 中,该分配方式为一个用户程序分配一个连续的内存空间,即程序中代码或数据的逻辑地址相邻,体现在内存空间分配时物理地址的相邻。
  • 连续分配方式可分为四类:
    单一连续分配
    固定分区分配
    动态分区分配
    动态可重定位分区分配
  • 通过移动内存中作业的位置,把原来多个分散的小分区拼接成一个大分区的方法,称为“拼接”或“紧凑”。

对换(Swapping)

“对换”,是指把内存中暂时不能运行的进程或者暂时不用的程序和数据换出到外存上,以便腾出足够的内存空间,再把已具备运行条件的进程或进程所需要的程序和数据换入内存。

离散分配存储管理方式

把一个作业分成若干页或若干段,每一页或每一段保存在不连续的内存空间。

根据在离散分配时所分配地址空间的基本单位的不同,又可将离散分配分为以下三种:
 
(1)分页存储管理方式。在该方式中,将用户程序的地址空间分为若干个固定大小的区域,称为“页”或“页面”。典型的页面大小为1KB。相应地,也将内存空间分为若干个物理块或页框(frame),页和块的大小相同。这样可将用户程序的任一页放入任一物理块中,实现了离散分配。
 
(2)分段存储管理方式。这是为了满足用户要求而形成的一种存储管理方式。它把用户程序的地址空间分为若干个大小不同的段,每段可定义一组相对完整的信息。在存储器分配时,以段为单位,这些段在内存中可以不相邻接,所以也同样实现了离散分配。
 
(3)段页式存储管理方式。这是分页和分段两种存储管理方式相结合的产物。它同时具有两者的优点,是目前应用较广泛的一种存储管理方式。

分页存储管理方式

  • 页面和物理块
    (1)页面。分页存储管理将进程的逻辑地址空间分成若干个页,并为各页加以编号,从0开始,如第0页、第1页等。相应地,也把内存的物理地址空间分成若干个块,同样也为它们加以编号,如0#块、1#块等等。在为进程分配内存时,以块为单位,将进程中的若干个页分别装入到多个可以不相邻接的物理块中。由于进程的最后一页经常装不满一块,而形成了不可利用的碎片,称之为“页内碎片”。
    (2)页面大小。页面的大小应选择适中,且页面大小应是2的幂,通常为1KB~8 KB。

  • 页表的作用是实现从页号到物理块号的地址映射。

  • 页表地址结构:
    在这里插入图片描述

  • 分页系统的地址变换机构:
    在这里插入图片描述

  • 快表:具有并行查询能力的特殊高速缓冲寄存器,用以存放当前访问的那些页表项。

  • 具有快表的地址变换机构:
    在这里插入图片描述

分段存储管理方式

  • 引入分段存储管理方式的原因:
    一方面是由于通常的程序都可分为若干个段,如主程序段、子程序段A、子程序段B、…、数据段以及栈段等,每个段大多是一个相对独立的逻辑单位;
    另一方面,实现和满足信息共享、信息保护、动态链接以及信息的动态增长等需要,也都是以段为基本单位的。更具体地说,分段存储管理方式更符合用户和程序员多方面的需要。
     
  • 在分段存储管理方式中,作业的地址空间被划分为若干个段,每个段定义了一组逻辑信息。
  • 段表是用于实现从逻辑段到物理内存区的映射的。
  • 段表地址结构:
    在这里插入图片描述
  • 分段系统的地址变换过程:
    在这里插入图片描述

第五章虚拟存储器

虚拟存储器概述

  • 虚拟存储器,是指具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统。其逻辑容量由内存容量和外存容量之和所决定,其运行速度接近于内存速度,而每位的成本却又接近于外存。
  • 与传统的存储器管理方式比较,虚拟存储器具有以下三个重要特征:
    (1)多次性
    (2)对换性:允许在作业的运行过程中进行换进、换出
    (3)虚拟性
    值得说明的是,虚拟性是以多次性和对换性为基础的,或者说,仅当系统允许将作业分多次调入内存,并能将内存中暂时不运行的程序和数据换至盘上时,才有可能实现虚拟存储器;而多次性和对换性显然又必须建立在离散分配的基础上。

请求分页存储管理方式

请求分页系统是建立在基本分页基础上的,为了能支持虚拟存储器功能,而增加了请求调页功能和页面置换功能。相应地,每次调入和换出的基本单位都是长度固定的页面,这使得请求分页系统在实现上要比请求分段系统简单(后者在换进和换出时是可变长度的段)。因此,请求分页便成为目前最常用的一种实现虚拟存储器的方式。

  • 请求页表:
    在这里插入图片描述
    对其中各字段说明如下:
    (1)状态位(存在位)P:由于在请求分页系统中,只将应用程序的一部分调入内存,还有一部分仍在外存磁盘上,故须在页表中增加一个存在位字段。由于该字段仅有一位,故又称位字。它用于指示该页是否已调入内存,供程序访问时参考。
    (2)访问字段A:用于记录本页在一段时间内被访问的次数,或记录本页最近已有多长时间未被访问,提供给置换算法(程序)在选择换出页面时参考。
    (3)修改位 M:标识该页在调入内存后是否被修改过。M位供置换页面时参考。
    (4)外存地址:用于指出该页在外存上的地址,通常是物理块号,供调入该页时参考。

页面置换算法

  • 最佳(Optimal)置换算法
    其所选择的被淘汰页面将是以后永不使用的,或许是在最长(未来)时间内不再被访问的页面。
  • 先进先出(FIFO)页面置换算法
    FIFO算法是最早出现的置换算法。该算法总是淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面予以淘汰。
  • 最近最久未使用(LRU)置换算法
    选择最近最久未使用的页面予以淘汰。

不适当的算法可能会导致进程发生“抖动”(Thrashing),即刚被换出的页很快又要被访问,需要将它重新调入,此时又需要再选一页调出;而此刚被调出的页很快又被访问,又需将它调入,如此频繁地更换页面,以致一个进程在运行中把大部分时间都花费在页面置换工作上,我们称该进程发生了“抖动”。

“抖动”与工作集

  • 发生“抖动”的根本原因是,同时在系统中运行的进程太多,由此分配给每一个进程的物理块太少,不能满足进程正常运行的基本要求,致使每个进程在运行时,频繁地出现缺页,必须请求系统将所缺之页调入内存。
  • 工作集:指在某段时间间隔里,进程实际所要访问的页面的集合。

请求分段存储管理方式

在分页基础上建立的请求分页式虚拟存储器系统,是以页面为单位进行换入、换出的。而在分段基础上所建立的请求分段式虚拟存储器系统,则是以分段为单位进行换入、换出的。
在请求分段系统中,程序运行之前,只需先调入少数几个分段(不必调入所有的分段)便可启动运行。当所访问的段不在内存中时,可请求OS将所缺的段调入内存。像请求分页系统一样,为实现请求分段存储管理方式,同样需要一定的硬件支持和相应的软件。

  • 请求段表:
    在这里插入图片描述
    在段表项中,除了段名(号)、段长、段在内存中的起始地址(段基址)外,还增加了以下字段:
    (1)存取方式。由于应用程序中的段是信息的逻辑单位,可根据该信息的属性对它实施保护,故在段表中增加存取方式字段,如果该字段为两位,则存取属性是只执行、只读和允许读/写。
    (2)访问字段A。其含义与请求分页的相应字段相同,用于记录该段被访问的频繁程度。提供给置换算法选择换出页面时参考。
    (3)修改位 M。该字段用于表示该页在进入内存后是否已被修改过,供置换页面时参考。
    (4)存在位P。该字段用于指示本段是否已调入内存,供程序访问时参考。
    (5)增补位。这是请求分段式管理中所特有的字段,用于表示本段在运行过程中是否做过动态增长。
    (6)外存始址。指示本段在外存中的起始地址,即起始盘块号。
  • 16
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值