🗒️笔记-操作系统
00 分钟
2023-9-18
2023-9-23
type
status
date
slug
summary
tags
category
icon
password

相关资料

推荐路线

PPT + 王道视频 + 期末复习考题 + 真题

参考资料

林老师复习笔记

PPT重点整理

思维导图源文件:

1. 概述

notion image

2. 体系结构

notion image

3. 进程管理

notion image

4. 内存管理

notion image

5. 文件管理

notion image

期末考点整理

1. 概述

  1. 操作系统的定义
    1. 从用户角度:资源分配器 | 从硬件角度:控制程序 | 从程序员角度:内核程序
      操作系统是控制和管理计算机硬件和软件资源,合理组织计算机工作流程以及方便用户的程序集合。
  1. 操作系统的设计目标
    1. 方便、有效
      OS特征:并发性、共享性、异步性、虚拟性
      发展规律:由底层硬件、软件技术和上层应用需求的发展所推动的。每一步都是权衡的结果。
  1. 操作系统的组成部分与设计目的
    1. 进程管理—负责进程管理活动:创建和删除、挂起和继续、同步、通信等
    2. 辅存管理—负责硬盘管理:空闲空间分配、调度,让文件便于查找
    3. 主存管理—负责记录内存块使用状况、替换、分配与释放,让CPU高效利用内存
    4. I/O管理—管理I/O设备
    5. 文件管理—管理磁盘上的文件:创建/删除、读写、文件映射、备份、提供操作文件与目录的原语
    6. 保护系统—控制程序、进程与用户可访问的计算机资源的机制
    7. 联网—通信、共享资源
    8. 命令解释系统—用来接收和解释控制语句(例:PowerShell)
    9. a-e为功能模块
      f-g为性能模块
      OS的5大功能:文件管理、处理机管理、存储器管理、设备(IO)管理、提供用户与硬件系统之间的接口
  1. 内核技术的发展
    1. 大内核→微内核→分层结构【不能跨层调用】→模块化→外核
      notion image
  1. 微内核
    1. 精心设计的、能实现现代OS核心功能(内存管理、CPU管理、设备管理、文件管理系统用户进程的形式,中断、原语、进程通信放入内核)的小型内核,通过消息传递来通信。
      不是完整的操作系统,提供构建OS的基础
  1. 同时性(并发和并行的区别)
    1. 并发:同一时刻发起,每个时刻交替执行(时间间隔)
      并行:同一时刻发起,每个时刻一起执行(时刻)
  1. 批处理等操作系统的特点:
    1. 操作系统发展阶段:手工->批处理->分时->平台(并行/分布)、分时(PC)、实时
      速度低下->资源利用率|交互->处理紧急任务
      notion image
      notion image
  1. 任务-进程-线程的关系
    1. 单个任务(作业)可分为多个进程,单个进程可以分为多个线程,同个进程的不同线程之间共享PCB和进程资源。

2. 体系结构

  1. IO方式(硬件平台)
    1. notion image
      可编程I/O(PIO):轮询检查IO状态
      中断:交互时向处理器发出物理信号,不用轮询,适合少量数据
      直接内存存取(DMA):通过DMA控制器数据交换,不需要CPU切换上下文, 适合大量数据
      通道技术:独立于CPU,专门负责数据IO传输的处理机,单边进出
  1. 微内核结构(软件平台)
    1. 以微内核为OS核心,以客户/服务器为基础,采用面向对象程序设计特征,是当今最有发展前途的OS结构。
      结构内容:
      notion image

3. 进程管理

  1. 为什么引入进程,为什么引入线程?从调度性、并发性、有用的资源和系统开销等方面如何区分和比较进程和线程、作业和线程?
    1. 线程是独立调度的基本单位,进程是资源分配的基本单位。
      什么是进程:进程是执行中的程序/程序的执行,进程的执行有顺序要求。
      进程的组成:PCB、程序(文本)、数据、栈。
      引入进程:要求对各种程序提供更严的控制和更好的划分,以实现加载多个程序到内存来并发执行。
      引入线程:为了减少类似任务创建进程的开销,将资源分配和处理机调度管理分开。可分为内核级线程和用户级线程,其对应关系为内1-用N,内核级线程的调度对用户是透明的。同时CPU资源N-内核N。
      调度性:在无线程的OS中,进程为处理机调度的基本单位和资源分配的基本单位;在引入线程的OS中,进程仅作为资源调度的基本单位,而处理机调度的基本单位为线程。
      并发性:进程之间可以并发,线程之间也可以并发
      拥有的资源:进程拥有其对应的代码文本、栈、寄存器、数据;
      而线程除了必要的栈和寄存器,几乎不占用系统资源,只存取所属的进程的资源
      系统开销:进程的创建、调度、删除需要进行资源的重新调度,而线程不需要,因此进程的管理操作的开销比线程大。
      在本教材,进程和作业的概念接近。
  1. 进程状态迁移图
    1. 进程的5个状态:
      notion image
      notion image
      创建:创建PCB,未分配资源
      就绪:资源分配完成,仅剩CPU资源未分配
      等待:中断,失去CPU资源,等待一部分非CPU资源到位
      运行:得到CPU资源,生成进程
      终止:进程执行完毕,释放内存资源
      等待状态分为阻塞(在内存中等待)和挂起(在外存中等待)

      就绪->运行:调度程序调度新的进程进入运行,一般因为调入前的运行进程中断/需要结果/优先级低于就绪状态进程/时间片消耗完毕。
      运行->就绪:时间片结束/低优先级被调出。
      以上为调度操作(进程选择+上下文切换)
      运行->等待:原运行的进程缺少了资源
      等待->就绪:原等待的进程具备了除CPU以外的所需资源
  1. 进程的组成和PCB
    1. 进程的组成:PCB+栈、寄存器、数据、文本(程序代码段)
      PCB:用于记录进程状态、CPU调度信息、寄存器、内存信息等进程相关信息的数据结构。
  1. 进程间的关系;临界区;临界区的互斥访问
    1. 进程间关系:(竞争指的是竞争CPU,不是竞争其他资源;协作包括互斥和同步、通信)
      notion image
      1. 竞争:进程间互相不感知,彼此无影响
      1. 共享协作:间接作用感知,一个进程依赖另一进程的结果
      1. 通信协作:直接作用感知,一个进程依赖另一个进程发出的信息
      1. 间接作用(互斥):进程之间通过某种中介发生联系,是无意识的。
      1. 直接作用(同步、通信):进程间的联系是被程序刻意安排的。
      1. 相交进程(协作):指多个进程之间在逻辑上存在某种联系
      1. 无关进程(竞争):即多个进程之间在逻辑上没有联系

      同步、互斥:指行为,而不是状态。
      同步:共享彼此的私有资源而导致
      互斥:共享公有资源导致
      临界区:一次仅允许一个进程使用的资源为临界资源,进程中访问临界资源的那段代码称为临界区
      涉及到信号量为1,即一次只能被一个进程占用的公有资源(临界资源)的程序段。也被称为互斥区。
      临界区的访问原则:
      有空让进、无空等待、多中择一、有限等待、让权等待
  1. P/V操作的含义;信号量的含义;如何定义信号量的初值;如何利用P/V操作实现进程间的互斥和同步?例如单个缓冲区的读写问题和生产着消费者问题
    1. P操作:申请一个信号量,S=S-1,修改后,S>=0则继续;S<0则将该进程加入阻塞队列。
      V操作:释放一个信号量,S=S+1,修改后,S<=0则引起阻塞进程的重启;S>0则无重启。
      信号量:表示资源的实体,一个与队列有关的整型变量。
      信号量只能被初始化和P/V原语访问,访问信号量的进程不会被进程调度中断(意思是对信号量的修改是原子性的,不是说整个进程是原子性的)
      信号量的含义:
      S>0:表示还有S份资源可分配
      S<0:表示有abs(S)个进程在队列中等待
      S=0:表示无资源可分配
      公用信号量初值1,私有信号量初值0或N
      P/V必须成对出现:互斥则必须在同一个进程内成对;同步则必须在关联的不同进程内出现。
  1. 高级通信方式中,理解send()和receive()的工作过程
    1. 高级通信方式:能够传输任意数量的数据,分类:共享存储区、管道、消息传递系统消息传递系统:
      Send()与Receive()可以是同步/异步的
    2. 直接通信:
      1. Send(P,M)-Receive(P,M):其中P为进程标识,M为message。此机制下,Send和Receive之间不存在消息队列。
    3. 间接通信:
      1. Send(A,M)-Receive(A,M):其中A为邮箱,M为message。此机制下,需要相互通信的进程之间共享邮箱。
        邮箱可以属于操作系统或者进程,因此进程可以创建/删除邮箱,创建者默认为邮箱拥有者,系统调用可以传递拥有权和接收权给其他进程。
        多进程接收消息的解决机制(有三种):
      2. 允许一个邮箱只能允许两个进程的关联
      3. 允许一次最多一个进程执行Receive()
      4. 允许操作系统随机选择一个进程执行Receive()
  1. 常用的进程调度算法;引起进程调度的事件有哪些?多级反馈队列调度算法的分析?
    1. 常用的进程调度算法:
    2. FCFS算法(类似队列,先到先处理)→有空让位、无空等待
    3. SJF算法(检测任务大小,最短的先处理)
    4. 优先级调度算法→让权等待
    5. RR算法(轮转调度算法)→有限等待
    6. 多级队列算法
    7. 多级反馈队列算法
    8. 引起进程调度的事件:
      1. 处于running的进程中断(由于同步、互斥、时间片、优先度等原因)
      1. 时间片启用、优先级高的进程就绪
      多级反馈队列调度:
      如何定义:
      1. 队列数量
      1. 各队列使用的调度算法
      1. 用以处理进程何时升级到高优先级队列中的条件
      1. 用以处理进程何时降级到低优先级队列中的条件
      1. 用以处理进程创建时放入什么优先级的队列中的条件
  1. 死锁的四个特征?如何针对这四个特征克服死锁?如何用资源分配图的方法判定死锁?
    1. 四个特征克服方式:
    2. 互斥(资源)→几乎不能动,因为总有资源是共享的
    3. 持有并等待(进程)→要求进程在申请资源时不可占用其他资源,或者进程申请资源时直接分配给该进程所有资源。前者允许申请部分资源,后者允许提前占有其他资源。问题:资源利用率低且容易发生饥饿
    4. 非抢占(资源)→要求进程在占用资源时申请无法立即分配的资源时,将该进程持有的资源隐式地进行释放(即转变为都可被抢占状态),适用于状态可以保存和恢复的资源。一般不适用于互斥锁和信息量。
    5. 循环等待(可用资源分配图反映)→给资源编号,要求进程按照编号顺序申请资源(在申请成功时需要先释放所有已有资源)
    6. 死锁避免(通过要求进程声明所需资源量,分配前判定是否会出现死锁来回避持有并等待)
      死锁恢复(直接中止一个或多个进程来释放资源/抢占其他进程的资源)
      资源分配图判定:
    7. 图中无环则一定不死锁
    8. 图中有环,则
      1. 环内各个资源只有一个实例,那么必定死锁
      2. 环内各个资源存在若干个实例,那么可能死锁
  1. 三个层面的调度(高级调度、中级调度、低级调度)之间的区别
    1. 高级调度:也被称为作业调度/宏观调度。时间尺度一般是分钟、小时或天,发生频率低。高级调度的单位为作业。外存->内存。
      中级调度:涉及内外存双向调度,调度的单位为进程,频率居中。
      低级调度:也称为微观调度,涉及CPU(处理机)和内存之间的双向调度,发生频率高。
  1. 同步、互斥、通信的概念
    1. 同步:由于进程之间拥有共享的私有资源,彼此间需要等待对方的执行结果/消息
      互斥:由于进程之间共享公有资源,彼此间对公有资源有竞争
      通信:允许进程间交换信息与数据的机制,有两种——共享资源/消息传递
      通信是同步完成的方式。

4. 内存管理

  1. 在动态分区分配中,分配算法有?如何实现?
    1. 基本原理:将内存分为一个个区(页),一个区分配给一个或多个进程。动态分区则是可以动态创建内存分区。问题:存在外碎片(固定分区则存在内碎片)
      算法:
    2. 最先适配:每次从头开始查找分区,选择第一个适配的分区
      1. 优点:分配简单,合并空闲区也方便
        缺点:每次从头开始,低地址空闲空间不足,查找次数过多(开销大)
    3. 循环最先适配:每次从上次选择的分区开始查找第一个适配的分区,如果查到最后一个分区则从头重新开始查找。
      1. 优点:分配和释放合并的效率高,空闲空间分配均匀
        缺点:大的空闲区难以保留
    4. 最佳适配:在所有大于等于要求分配的长度的分区内选择最小的分区,实现方式为将空闲空间管理表使用从小到大的排序。
      1. 优点:大的空闲区容易保留
        缺点:合并与释放需要查表,开销上升
    5. 最坏适配:分区时选择所有空闲区中最大的一块。
      1. 优点:分配时只需要查找一次
        缺点:大空间无法保留,不能装载大程序
  1. 什么是虚拟存储器?特征?其容量是如何确定的?
    1. 虚拟存储器:将用户逻辑内存和物理内存分开,利用外存的一部分空间作为物理内存的扩展,以此扩展逻辑内存的空间,方便大程序的执行和更多程序的并行,易于开发。
      特征:
      不连续性——物理内存分配不连续+虚拟地址空间使用的不连续性
      部分交换
      大空间
      容量:不超过物理内存和外存交换区的总和
  1. 请求分页机制中的页面置换算法有哪些?具体过程是?
    1. FIFO:替换建立最早的页面,问题:性能差,抖动,Belady现象
    2. OPT:选择未来不再使用或距离当前执行位置最远的页面替换,最理想的算法
    3. LRU:选择距离过去N个页中最久不被使用的页进行替换
    4. LFU:选择最久不被使用的页进行替换,每次使用页时访问计数器+1,调页时选最小的计数器的页替换。
    5. Clock:每页添加标志位(use),访问时置1;置换时使用一个指针,从当前位置开始检查各页,找到第一个use=0的页作为替换页,并将过程中扫描到的use=1置0,最后指针停留在替换页的下一页。
  1. 什么是快表?其中内容是?什么是页表?其结构是?
    1. 快表:即相联存储器,为缩短查找时间,可将页表从内存住装入到TLB(转换表缓冲区,联想寄存器),按内容查找。内容为键值对:页码-帧码(虚拟页号-物理页号)
      页表:
      1. 进程页表:系统为每个进程建立的表,用以存放逻辑页号和物理内存块号相应的关系,属于进程的现场信息(上下文)。
      1. 物理页面表:整个系统唯一的物理页面表,描述物理内存空间的分配使用状况。
      1. 请求表:整个系统唯一,描述各个进程页表的位置和大小。
      页表结构:(请求页机制下)
      页号+中断位+内存块号+外存地址+访问位+修改位
  1. 缓冲池

5. 文件管理

  1. 什么是文件、文件系统?文件系统的设计目标是?
    1. 文件:以硬盘为载体的储存在计算机上的信息集合
      文件系统:对文件进行管理的操作系统的构成之一
      目标:统一管理文件的存储空间,实施存储空间的分配与回收
  1. 什么是文件的逻辑结构、物理结构?文件的物理结构有哪些?怎么实现?有什么特点?
    1. notion image
  1. UNIX的综合索引方式是怎么实现的?优点是?
    1. 直接间接->三级索引
      灵活性:综合索引方式允许文件系统高效地管理不同大小的文件,从非常小到非常大。
      存储效率:小文件只使用直接指针,这意味着没有浪费空间来存储不必要的间接块。
      扩展性:对于大文件,使用间接、双间接和三间接指针可以支持非常大的文件。
      随机访问:由于i-node结构为文件的每个块提供了一个指针,因此可以快速随机访问文件的任何部分,而无需遍历整个文件。
      元信息集中存储:所有关于文件的元信息(如权限、所有者、时间戳等)都存储在i-node中,使得元信息的访问和修改都非常高效。
      独立于文件名:由于i-node不存储文件名,因此文件的重命名和移动操作可以在不修改i-node的情况下完成。这也支持了UNIX中的硬链接功能,允许多个文件名引用相同的i-node。
  1. 磁盘空闲空间的管理方法?图示成组链接法?其优点是?
    1. 管理方法:位示图或成组链接法
      成组链接法:适用于大的外存,将空闲空间块链成链表,可以建立多级空闲空间的目录
      优点:可扩展性强,适用于大的外存。
  1. 什么是目录文件的组成?目的是?目录的改进方法和性能比较;常用的目录结构?
    1. 把所有FCB组织在一起,就构成了文件目录【FCB即目录项】。
      为实现对文件目录的管理,通常将文件目录以文件形式保存在外存,这个文件就叫目录文件
      改进:目录项分解为主部【除次】和次部【名字、号】
      高效性、重命名、逻辑组
      notion image
  1. RAID的概念是?关键技术?
    1. RAID:廉价磁盘冗余阵列
      技术(SFT-III)特点:并行交叉存取
      SFT-II:磁盘镜像&磁盘双工
      SFT-I:双份目录和双份文件分配表、热修复重定向
      SFT-I到III统称为磁盘容错技术,分别从低到高。
  1. 文件操作中open函数的实现过程和完成的内容
    1. Open(文件路径,打开方式)过程:
    2. 根据文件路径查目录,找到FCB主部分
    3. 根据打开方式、共享说明和用户身份检查访问合法性
    4. 根据文件号查系统文件表,用以更新系统文件表:若已存在于系统文件表,则共享计数+1;否则利用FCB创建系统文件表的新项,并将共享计数置为1.
    5. 找FCB主部、检测访问合法性、查看系统文件打开表
  1. 影响磁盘访问的因素有?列举几种磁盘调度算法和磁盘调度的时间
    1. 磁盘读取时间的影响因素:寻道时间、旋转延迟、数据传输
      磁盘的存取时间:
      一次访盘时间=寻道时间+旋转延迟时间+存取时间
      磁盘调度:
      目的:公平、高效
      算法:FCFS、SSTF、SCAN、单向SCAN

评论
Loading...