操作系统基础复习资料

1  基础

1.1 什么是操作系统

操作系统是一个管理和控制计算机的所有软硬件资源、合理的组织工作流程,方便用户使用计算机的系统程序集和。

1.2 操作系统的功能

处理机管理:进程控制与管理、进程互斥与同步、进程通信与死锁、线程的控制与管理、处理机调度
存储管理:存储分配、存储共享、存储扩充、地址转换与存储保护
设备管理:缓冲管理、设备分配、设备驱动、实现虚拟设备
文件管理:文件存储空间管理、目录管理、文件读写管理和保护

1.3 操作系统的特性

并发性:两个或两个以上的运行程序在同一时间间隔段内同时执行

共享性:多个并发执行的进程共享系统资源

虚拟性:通过某种资源共享技术,将独占的物理设备转换为逻辑上可供多个申请进程共享的设备。                                             

异步性:进程推进的异步性,多个进程在内存中的运行速度和计算结果不可预知                                        

1.4 多道程序设计

用户所提交的作业都先存放在外存上并排成一个队列,称为“后备队列”;然后,由作业调度程序按一定的算法从后备队列中选择若干个作业调入内存,使它们共享 CPU 和系统中的各种资源。

2 运行环境

2.1 运行环境       

包括系统的硬件环境和由其他的系统软件组成的软件环境,同时操作系统与使用它的用户之间也有相互作用。

 2.2 硬件环境

 2.2.1中央处理器
 (1)特权指令:在指令系统中那些只能由操作系统使用的指令
 (2)处理器的状态:
                                 管理状态(特权状态、系统模式、特态或管态):程序可以执行全部指令
                                 用户状态(目标状态、用户模式、常态或目态):程序只能执行非特权指令
 (3)用户态切换到内核态方法:系统调用、异常、中断
 (4)系统调用:操作系统调用自身的程序和进程从而使处理器状态从目态到管态
 (5)设置管态与目态的原由:
          【1】保护操作系统程序免受用户程序的干扰和破坏
          【2】目态下执行特权指令会引起中断
 (6)PSW(程序状态字):指示处理器的状态
         【1】主要作用:实现程序状态的保护和恢复
         【2】标志位:C(进位)、V(溢出)、N(负数)、Z(零)、I(中断)S(状态,1:管态;0:目态)、T(自陷)
 (7)PC(程序计数器):指示下一条要执行的指令

 2.2.2主存储器存储保护: 界地址寄存器

 2.2.3缓冲技术

 缓冲:外部设备在进行数据传输时专门用来暂存这些数据的区域
 原因:
 (1)缓和 CPU 与 I/O 设备间传输数据速度不匹配的矛盾
 (2)减少对 CPU 的中断频率,放宽对 CPU 中断响应时间的限制。
 (3)提高 CPU 和 I/O 设备之间的并行性。

 2.2.4中断技术

(1)中断:程序执行过程中,当发生某个事件时,中止CPU上现行运行的程序,引出处理该事件的程序执行的过程。
 (2)中断作用
                 【1】充分发挥处理器的使用效率
                 【2】提高系统的实时处理能力
 (3)中断分类
               【1】IBM-PC分类:可屏蔽中断、不可屏蔽中断、程序错误中断、软件中断
               【2】一般分类:机器故障中断、输入输出中断、外部中断、程序中断、访管中断
 (4)CPU如何发现中断事件
 处理器的控制部件中有一个中断扫描机构,在每条指令执行周期内的最后时刻扫描中断寄存器,询问是否有中断信号到来。
 (5)中断信号、中断寄存器、中断优先级
 中断信号:发送给中央处理器,并要求它处理。
 中断寄存器:寄存中断信号。
 中断优先级:为使系统能及时响应并处理发生的所有中断,系统根据引起中断事件的重要性和紧迫程度,将中断源分为若干个级别。
 (6)中断响应、中断屏蔽
 中断响应:CPU终止现行运行的程序转而处理中断请求的过程
 中断屏蔽:指禁止处理机响应中断或禁止中断出现。
 中断屏蔽的目的:保证在执行一些重要的程序中不响应中断,以免造成迟缓而引起错误。
 (7)中断与异常
 中断: 与正执行指令无关,可以屏蔽
 异常: 与正执行指令有关,不可屏蔽
 (8)中断装置
 发现中断源并产生中断的硬件称中断装置
 中断装置:发现中断源、保护现场、启动处理中断事件的程序、恢复现场                                                                             

(9)中断系统                                                                                                                                                                                

中断装置 和中断处理程序                                                                                                                                                               

2.3 重定位

 绝对地址(物理地址):内存单元的地址
 相对地址(逻辑地址):相对于某个基准量编址时的地址
 地址重定位:程序被装入到分配给它的内存时,必须对每条指令里所涉及到的逻辑地址进行修改,转换成物理地址,使它们能够正确地反映出所在的存储位置。

 2.4 静态重定位和动态重定位的比较

 【1】静态重定位在程序运行之前完成地址转换;动态重定位则是将地址转换的时刻推迟到指令执行时进行。
 【2】静态重定位由软件完成地址转换;动态重定位由硬件地址转换机构完成。
 【3】静态重定位在装入时一次性集中把程序指令中所有地址全部加以重定位;动态重定位则是每执行一条指令时,才其地址加以重定位。
 【4】静态重定位时原来的指令地址被修改了;实行动态重定位,不对指令本身做修改。

3 进程管理

3.1  进程定义

 进程:是具有一定独立功能的程序关于某个数据集合的一次执行过程进程,是操作系统进行资源分配、调度和保护的基本单位。

3.2 进程特性

 结构性:进程包含了数据集合和运行与其上的程序。每个进程至少包含三个组成要素:程序块、数据块和进程控制块。
 共享性:同一程序运行于不同数据集合上时,可构成不同的进程;多个不同的进程可以共享一个的程序。
 动态性:进程由创建而产生,由调度而执行,由撤销而消亡。
 独立性:指进程实体是一个能独立运行、独立获得资源和独立接受调度的基本单位。
 异步性:由于进程的相互制约,使进程具有执行的间断性,即进程按各自独立的、 不可预知的速度向前推进。
 并发性:可以与其它进程一道在宏观上同时向前推进。

 3.3 进程与程序区别

(1)进程是程序的执行,进程属于动态概念;程序是一组指令的有序集合,是静态概念。
 (2)进程的存在是暂时的,而程序的存在是永久的。
 (3)进程的组成应包括程序和数据和记录进程状态信息的“进程控制块”组成。
 (4)一个程序可以对应多个进程。
 (5)一个进程可以包含多个程序。

3.4 进程三态模型

  运行态(running):进程占有处理机正在运行
 就绪态(ready):进程具备运行条件,系统若为之分配处理器便可运行。
 等待态(blocked):又称阻塞态,进程不具备运行条件,正等待某个事件的完成。
  •运行态→等待态:等待使用资源或某事件发生 ;
  •等待态→就绪态:资源得到满足或事件发生 ;
  •运行态→就绪态:运行时间片时间到或出现有更高优先权进程;
  •就绪态→运行态:被进程调度程序选中后,分配到处理器来运行。

3.5 进程创建

(1)分配一个唯一的进程标识号,申请一个空闲PCB
  (2)分配内存等资源
  (3)初始化PCB,设置优先级
  (4)将进程加入就绪队列
  (5)通知操作系统某些模块

3.6 进程原语

进程的控制是对系统中的所有进程实施有效的管理,具有进程创建、撤销已有进程、实现进程状态的切换。把进程控制用的程序段称为原语。 
  (1)执行期间不允许中断 
  (2)是一个不可分割的基本单位 
  (3)必须在管态下运行、常驻内存 
  (4)一般由系统进程调用

  3.7 进程的组织

进程程序块、进程控制块(PCB)、进程数据块、堆栈
  PCB:进程标识信息、处理器状态信息、进程控制信息

3.8 PCB是进程唯一标识

操作系统根据系统中是否有该进程的PCB而知道该进程的存在与否。系统在建立进程的同时就建立该进程的PCB,在撤销一个进程的同时也撤销其PCB。所以PCB是进程唯一标识。

3.9进程调度

进程由自己创建(×)
  进程由自己阻塞(√)
  进程由自己挂起(√)
  进程由自己解除挂起(×)
  进程由自己唤醒(×)
  进程由自己撤销(×)

 4  线程管理

4.1 线程概念

  线程是进程内一个相对独立的、可调度的执行单元。

4.2 线程与进程区别

  (1)进程是资源分配基本单位,线程是系统分配、调度的基本单位;
  (2)CPU创建、切换、撤销一个线程比进程的系统开销小;
  (3)进程可以并发运行,线程也可以并发;
  (4)进程是拥有资源的一个独立单位,而线程只拥有少量能保证其运行所必须的资源。

  4.3 引入线程原由

  (1)进程切换开销大
  (2)进程通信开销代价大
  (3)进程之间的并发性粒度较粗,并发度不高

  4.4 用户级与内核级线程

  (1)内核级线程(KLT)优点
  多处理器上,内核能同时调度同一进程中多个线程并行执行;进程中的一个线程被阻塞了,内核能调度同一进程的其它线程占有处理器运行;内核线程数据结构和堆栈很小,KLT切换快,内核自身也可用多线程技术实现,能提高系统的执行速度和效率。
  (2)内核级线程(KLT)缺点
  应用程序线程在用户态运行,而线程调度和管理在内核实现,在同一进程中,控制权从一个线程传送到另一个线程时需要用户态-内核态-用户态的模式切换,系统开销较大。
  (3)用户级线程(ULT)优点
  线程切换不需要内核特权方式、调度更灵活、由于线程库独立于内核,ULT能运行在任何OS上(4)用户级线程(ULT)缺点
  用户级线程执行系统调用时,不仅该线程被阻塞,且进程内的所有线程会被阻塞,削弱线程的并发性;纯ULT中,多线程应用不能利用多处理器的优点;很难实现不同进程中的线程并发。

 5 互斥与同步

 5.1 互斥与同步

   同步:进程间必须互相合作的协同工作关系,称为进程同步。
   互斥:进程间必须相互制约的工作关系,称为进程互斥。
   进程同步是进程之间的直接制约关系,进程互斥是进程之间的间接制约关系。

5.2 临界区与临界资源

临界区:访问临界资源的那段程序称为临界区。

临界资源:每次只允许一个进程访问的资源,称为临界资源。

竞争资源应解决:互斥、死锁、饥饿三个现象。

5.3 临界区使用原则

   忙则等待:如果有一个进程在临界区内执行,欲进入临界区的其他进程只能在临界区外等待进入。 
   有空让进:如果没有进程在临界区、且有进程希望进入临界区,那么应该立即允许其中的一个进程进入临界区。
   有限等待:进入临界区的进程,应在有限时间内完成并立即离开临界区,以便能够让其他的进程有机会进入临界区。
   让权等待:当进程不能进入自己的临界区时,应立即释放处理机,以免进程陷入“忙等”。

5.4 死锁

     死锁:在系统中的一组进程,由于竞争系统资源或由于彼此通信而永远阻塞,我们称这些进程处于死锁状态。

5.5 死锁产生的必要条件

     (1)互斥条件:一旦某个特定资源分配给了一个进程使用,那么该进程就独占使用这个资源,其他进程不得使用,直到它被释放为止。
     (2)不可抢占条件:已分配给进程的资源,别的进程不能强行夺取,只能由占用它的进程自己释放。
     (3)请求又保持,占有并等待条件:当进程由于申请不到所需资源而等待时,仍占据已分配到的资源。
     (4)循环等待条件:系统中存在两个以上的进程,它们组成一个环路,环路中的每个进程都在等待其他进程占用的资源。

5.6 死锁产生的原因

当某个进程提出申请资源后,使得有关进程在无外力协助下,永远分配不到必需的资源而无法继续运行,这就产生了一种特殊的现象——死锁。

5.7 死锁的预防

     破坏“互斥”条件:在系统里取消互斥
     破坏“请求又保持,占有并等待”条件-预先静态分配法:阻止进程在持有资源的同时申请其他资源
     破坏“不可抢占”条件 :允许对资源实行抢夺
     破坏“循环等待”条件—有序资源使用法 :将系统中的所有资源统一编号,进程可在任何时刻提出资源申请,但所有申请必须按照资源的编号顺序(升序)提出

5.8 死锁的避免——银行家算法

5.9 死锁检测、恢复

     死锁检测:即系统允许产生死锁,操作系统周期性地在进程和资源之间检测是否出现了循环等待的情形。每当检测到这种情形时,就认为可能会出现死锁,于是采取措施对系统进行恢复。
     死锁恢复:
     (1)利用抢占资源恢复:一个个地由进程手中抢占资源,直到不再发生死锁。
     (2)利用回退恢复:把每个死锁进程回溯到某个检查点,然后重新启动所有进程。
     (3)删除进程恢复:
     a.删除所有的死锁进程,这是死锁恢复中最常用的方法。
     b.一个个地删除进程,直到不再发生死锁。

6 实存管理技术

  6.1 固定分区与可变分区

     (1)固定分区:系统初启时将内存划分成n个分区(尺寸大小可以不等),系统运行过程中,分区的数量和大小保持不变,每个分区里只装入一个作业运行。
     (2)固定分区特点:静态重定位、基址寄存器和界限寄存器、存储分块表
     (3)内部碎片:固定分区中未使用的空闲部分又位于分区之内的碎片
     (4)可变分区:进程进入主存时,按该进程的大小建立分区,分给进程使用。
     (5)外部碎片:可变空闲分区小到无法装入一个进程而无法使用,成为外部碎片
     (6)可变分区特点:动态重定位、已分块表和空闲分块表
     (7)碎片的解决
                  【1】存储器的压缩:    

                  原理:把小碎片集中起来使之成为一个大分区 

                  方法:移动各用户分区中的进程,使他们集中于主存的一端(程序浮动,动态重定位)

 6.2 可变分区存储分配算法(原理)

     (1)最先适应:算法把最先找到的、满足存储需求的那个空闲分区作为分配的对象。
     (2)最佳适应:算法从当前所有空闲区中找出一个能满足存储需求的、最小的空闲分区作为分配的对象。
     (3)最坏适应:算法从当前所有空闲区中找出一个能满足存储需求的、最大的空闲分区作为分配的对象。 
     (4)下次适应:按最先适应每次找到合适的空闲区时就记住它的位置,以便下次从这个位置开始往下查找,而不是从头开始查找。

 6.3 简单分页

原理:主存等分(页框、页帧)、用户逻辑地址空间等分(页面、页)
实现方法
     1)块:把内存空间分成与页面相同大小的若干个存储块,称为(物理)块或页框。
     2)页表:系统又为每个进程建立了一张页面映像表,简称页表。在进程地址空间内的所有页(0~n),依次在页表中有一页表项,其中记录了相应页在内存中对应的物理块号。
    3)页面:将一个进程的逻辑地址空间分成若干个大小相等的片,称为页面或页;页面大小应为2的幂次,有利于计算地址结构。
 地址转换过程
      将CPU指令中的相对地址分解成数对(页号,页内位移),并将页号抽取出来;以页号为索引查页表,得到对应页帧号;由页帧号与页内位移拼出绝对地址去访问主存。
地址变换机构 

6.4 简单分段

      (1)基本原理:逻辑地址空间分段、主存以段为单位分配
      (2)引入分段目的:方便编程 、信息共享、信息保护、动态增长、动态链接
      (3)实现方法
      段表:为每个分段分配一个连续的分区,而进程中的各个段可以离散地移入内存中不同的分区中。为每个进程建立一张段映射表,简称 “段表”。
      分段:作业的地址空间被划分为若干个段,每个段定义了一组逻辑信息。段的长度由相应的逻辑信息组的长度决定,因而各段长度不等。整个作业的地址空间由于是分成多个段,因而是二维的。其逻辑地址由段号(段名)和段内地址所组成。在该地址结构中,允许一个作业最长有 64 K 个段,每个段的最大长度为 64 KB。  
      (4)转换机构


      (5)地址转换
      【1】从相对地址数对:[段号s,段内位移d]中提取出段号s,用来进行地址转换。
      【2】如果段号s大于段表长度,表示该地址越界出错;否则以此段号为索引查段表,得到该段在内存的基址。 
      【3】由段的基址和段内位移d拼装出所需的物理地址,实现对内存的访问。 

  6.5 分段与分页  

      共同点
      分页和分段都采用离散分配的方式,且都要通过地址映射机构来实现地址变换
      不同点
      (1)从功能上看,页是信息的物理单位,分页是为管理主存方便而划分,以消减内存的外零头,提高内存的利用率,即满足系统管理的需要,而不是用户的需要;而段是信息的逻辑单位,它含有一组其意义相对完整的信息,目的是为了能更好地满足用户的需要,对用户是可见的;
      (2)页的大小固定且由系统确定,而段的长度却不固定,决定于用户所编写的程序;
      (3)分页的作业地址空间是一维的,分段的作业地址空间是二维的;
      (4)段是信息的逻辑单位,便于存储保护和信息共享,页的保护和共享收到限制。

7  虚存管理技术

7.1 虚拟存储系统

      1、虚拟存储器:指具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统。
      2、虚拟地址:在虚存管理中,通常把一个运行进程可访问的地址称为虚拟地址,而把处理器可直接访问的主存地址称为物理地址。

7.2 请求页式存储管理     

1、硬件支持
      (1)页表机制 
      (2)缺页中断机构每当所要访问的页面不在内存时,便产生一缺页中断,请求 OS 将所缺之页调入内存。
      与一般中断相比:在指令执行期间产生和处理中断信号、一条指令在执行期间,可能产生多次缺页中断。
      (3)地址变换机构 

 7.3 请求分段存储管理

1、硬件支持

      (1)段表机制 
      (2)缺段中断机构每当发现运行进程所要访问的段尚未调入内存时,便由缺段中断机构产生一缺段中断信号,进入 OS 后由缺段中断处理程序将所需的段调入内存。
      (3)地址变换机构 

 7.4 断页式存储管理

1、基本技术
      等分主存、进程的地址空间分段、每一段分页、地址结构(s段号,p段内页号,d页内地址偏移)、段表,页表、段表地址寄存器
      2、地址转换

7.5 页面置换算法

  最佳置换算法、先进先出置换算法、最近最久未使用置换算法、时钟置换算法

7.6 各存储技术比较

      请求式分页与简单分页:简单分页,进程中的全部在主存中;请求分页,只是当前要用到的一部分页面在主存中。
      请求分段与简单分段:简单分段,进程中所有段都装入内存;请求分段,只是当前用到的段装入内存。 

8 设备管理

8.1 I/O子系统层次模式

      I/O子系统:对设备进行管理的那部分操作系统
      设备驱动接口层:
      设备驱动程序层:

8.2 I/O子系统执行I/O功能

      1)编程I/O
      2)中断驱动I/O
      3)直接存储访问(DMA)

8.3 磁盘访问时间  

寻道时间(最大)、旋转延迟时间、数据传送时间

8.4 磁盘调度算法

      先来先服务(FCFS)、最短寻道时间优先(SSTF)、扫描(SCAN)算法 、循环扫描(CSCAN)算法

8.5 虚拟设备

用一类物理设备模拟出的另一类物理设备,被称为“虚拟设备”。

8.6 DMA及工作过程

       DMA :“直接内存访问”
       组成:控制和状态逻辑、内存地址计数器、数据计数器、数据缓冲寄存器、设备
        工作过程:
      (1)CPU把含传输数据的源地址、目标地址、传输字节数等信息的命令信息块写入内存,并把该块的起址写入DMA控制器的有关寄存器中,启动DMA控制器工作。
      (2)DMA通过总线向磁盘控制器发送读盘请求,要它取得总线使用权,并把数据传输到指定的内存区域中。
      (3)磁盘控制器按照I/O要求,把内部缓冲区里的数据传输到内存。
      (4)数据传输完毕,磁盘控制器通过总线向DMA控制器发出应答信号,表示这一次传输已经结束。 
      (5)DMA控制器自动调整地址寄存器,减少字节计数寄存器的值。若该值仍大于0,表示所要求的I/O还没有最后完成,于是重复上述步骤。 
      (6)在字节计数寄存器为0时,整个I/O完成,DMA向CPU发出中断信号,请求进行I/O的结束处理。

8.7 设备驱动程序     

操作系统中与设备相关的设备管理软件是设备驱动程序,用于实现对具体设备的管理和操作;       
       与设备无关部分的设备管理软件是一些系统调用,用来把用户的I/O请求导向到具体的设备驱动程序。
       设备驱动程序通常又称为设备处理程序,它是 I/O 进程与设备控制器之间的通信程序。

  8.8 设备管理的基本功能

设备分配、设备处理、I/O缓冲区的管理、设备驱动、虚拟设备及其实现。
  

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值