操作系统知识点总结

本文详细介绍了操作系统的基础知识,包括处理机管理、同步通信与死锁、存储管理(内存管理)以及设备管理。重点讲解了处理器调度、进程状态、线程、虚拟存储管理和I/O管理的相关概念与策略,涵盖了从简单的FCFS算法到复杂的虚拟存储管理机制,以及缓冲技术、设备驱动和SPOOLing技术等。此外,还讨论了文件系统,包括文件的逻辑结构、物理结构和共享方式。
摘要由CSDN通过智能技术生成

概论

  1. 计算机系统分为硬件层和软件层。

    1. 硬件层包括处理器、寄存器、内存、外存、各种I/O设备。
    2. 软件层包括系统软件、支撑软件、应用软件。
  2. 资源管理技术

    1. 复用:使多个进程共享物理资源。空分复用共享和时分复用共享。
    2. 虚拟:把一个物理资源转变成多个逻辑上的对应物,或者把多个物理资源转变成一个逻辑上的对应物。
    3. 抽象:通过创建软件屏蔽硬件资源的物理特性和实现细节,简化对硬件资源的操作、控制和使用。
  3. 基础抽象

    1. 进程抽象:进程是处理器的一种抽象。
    2. 虚存抽象:虚存是内存的一种抽象。
    3. 文件抽象:文件是磁盘及其他存储设备的一种抽象。
  4. 特征

    1. 并发:两个或多个事件在同一时间间隔内发生。
    2. 共享:系统中的资源可供内存中多个并发执行的进程共同使用。
    3. 虚拟:把若干物理实体转变成若干逻辑上的对应物。
    4. 异步:进程的执行是以不可预知的速度向前推进。
  5. 操作系统的功能

    1. 处理机管理:对进程的管理,包括进程控制、同步、通信、死锁处理、处理机调度等。
    2. 存储器管理:给多道程序的运行提供良好的环境,方便用户使用和提高内存利用率。包括内存分配、地址映射、内存保护与共享、内存扩充等。
    3. 文件管理:包括文件存储空间的管理、目录管理、文件读写管理和保护等。
    4. 设备管理:完成用户的I/O请求,方便用户使用设备和提高设备利用率。包括缓冲管理、设备处理和虚拟设备等。
  6. 用户接口

    1. 命令接口
    2. 程序接口
  7. 操作系统的分类

    1. 批处理阶段
      • 单道批处理系统:内存中始终只保持一道作业正在处理。
      • 多道批处理系统:允许多个程序同时进入内存并再CPU中交替运行,共享软硬件资源。
    2. 分时操作系统
      • 把处理器的运行时间分片,按时间片轮流把处理器分配给各联机作业使用。
    3. 实时操作系统
      • 计算机系统接收到外部信号后及时处理,在严格的时间限制内处理完接收的事件。
    4. 网络操作系统和分布式计算机系统
    5. 个人计算机操作系统

处理器(机)管理

处理器概念

  1. 特权指令:不允许用户直接使用的指令(仅在内核态下才能使用的指令),如I/O指令、置中断指令、清空内存等。

  2. 内核态和用户态:CPU状态可划分为内核态(管态)和用户态(目态)。

    • CPU处于内核态,可以执行特权指令。操作系统内核程序运行在内核态。
    • CPU处于用户态,只能执行非特权指令。
  3. 内核:计算机上配置的底层软件,提供支持进程并发执行的基本功能和基本操作,是计算机功能的延伸。内核具有的功能:中断处理、时钟管理、原语管理。

  4. 中断:在程序执行过程中遇到继续处理的事件,暂时中止当前程序在CPU上的运行,转而执行相应的事件处理程序,待处理完成后再返回断点或调度其他程序执行的过程。

    • 外中断也叫中断或异步中断,是指来自处理器之外的中断信号。
    • 内中断又称异常或同步中断,是指来自处理器内部的中断信号。
  5. 中断/异常的处理

    1. 发现中断源
    2. 保护现场
    3. 转向中断/异常事件处理程序
    4. 恢复现场
  6. 陷入指令:又叫访管指令、trap指令。用于发起系统调用,请求操作系统提供服务。

  7. 访管中断:由用户程序使用访管指令而引起的中断事件,将操作系统转为内核态。

  8. 处理器调度

    • 高级调度(作业调度、长程调度):从输入系统的一系列作业中挑选若干作业进入内存,分配所需资源并创建进程;在作业完成后还要做结束阶段的善后工作。
    • 中级调度(平衡调度、中程调度、内存调度):根据内存资源紧缺时,将暂时不能运行的进程从内存调入外存;当进程具备运行条件且内存资源充足时,再将进程重新调回内存工作。目的是提高内存利用率和系统吞吐率。
    • 低级调度(进程调度、线程调度、短程调度):选择就绪队列中的进程/线程获得处理器,并将处理器让出给它使用。低级调度是各类操作系统必备的功能。

进程概念

  1. 程序:一组计算机能识别和执行的指令,是一个静态实体。

  2. 进程:某个具有独立功能的程序在某个数据集合上的一次运行活动,是系统进行资源分配和调度/保护的基本单位。

    1. 具有如下基本属性:

      • 动态性——进程从创建到消亡是一个动态概念
      • 共享性——同一程序在不同数据集上运行构成不同进程
      • 独立性——每个进程是一个独立实体
      • 制约性——进程之间因共享资源和协同工作而相互制约
      • 并发性
    2. 进程状态变化:

      • 就绪态—>运行态:经过调度,进程获得CPU资源
      • 运行态—>就绪态:时间片用完或者被高优先级进程剥夺
      • 等待态—>就绪态:资源准备完毕,等待事件结束
      • 运行态—>等待态:需要资源,开始等待
    3. 进程控制:

      • 创建
      • 撤销/终止
      • 阻塞和唤醒
      • 挂起和激活
    4. 进程通信

      • 低级通信方法:PV操作
      • 高级通信方法:共享内存、消息传递、管道通信
  3. 线程

    1. 线程是进程的一个实体,进程的实际运作单位,是CPU调度和分派的基本单位。
      随着多线程机制的产生,进程从最初的调度单位逐渐演变成资源分配和保护单位。

    2. 优点:快速线程切换、提高并发能力、通信易于实现、减少管理开销

    3. 实现方式

      • 用户级方式:有关线程管理的所有工作都由应用程序完成,内核意识不到线程的存在。
      • 内核级方式:线程管理的所有工作由内核完成,应用程序没有线程管理的代码,只有一个到内核级线程的编程接口。
      • 组合方式:一个应用程序中的n个用户级线程被映射到m个内核级线程上( n ⩾ m n\geqslant m nm)。
  4. 三状态模型和七状态模型

    • 三态模型:运行态、等待态(阻塞态)、就绪态
    • 七态模型:
      • 增加了新建态和终止态
      • 考虑到内存资源不足或系统故障等原因,可能需要挂起,将进程对换到磁盘中,增加了挂起就绪态和挂起等待态。
      • 在挂起等待态的进程依旧可以在等待事件结束后进入挂起就绪态,但挂起就绪态的进程必须先被调入内存然后才能被调度执行。
  5. 进程映象:某时刻进程的内容及其状态集合。包括:控制块、程序块、数据块、核心栈。

  6. 进程上下文:进程物理实体和支持进程运行的环境,分为用户级上下文、寄存器上下文、系统级上下文。

  7. 进程控制块(PCB):进程的唯一标识,是操作系统用来记录和刻画进程状态及其环境信息的数据结构。

处理器调度

  1. 处理器调度:按照一定的算法把处理器分配给多个就绪进程运行。

  2. 作业:用户提交给操作系统计算的一个独立任务。

    • 作业是任务实体。
    • 进程是已提交完毕并选中运行的作业的执行实体。
  3. 调度算法的指标:

    1. 资源利用率。CPU的有效工作时间/CPU的空闲时间。
    2. 吞吐率。单位时间内CPU处理作业的个数。处理的长作业多则吞吐率低。
    3. 公平性。避免饥饿现象。
    4. 响应时间。分时系统和实时操作系统的重要指标之一。
    5. 周转时间。从作业提交开始到作业完成为止的事件间隔。
    6. 带权周转时间。作业周转时间/作业实际运行时间。
  4. 剥夺和非剥夺(抢占和非抢占式)

    1. 非剥夺调度方式
      • 当一个进程在处理机上执行时,即使有某个更重要或紧迫的进程进入就绪队列,仍然让当前进程继续执行,直到进程完成或者进入阻塞态,才把处理机资源分配给更重要或紧迫的进程。
      • 优点:实现简单、开销小、适用于大多数批处理系统
      • 缺点:不适用于分时操作系统和实时操作系统
    2. 剥夺式调度方式
      • 当一个进程在处理机上执行时,若有某个更重要或紧迫的进程进入就绪队列,则暂停当前进程,将处理机资源分配给更重要或紧迫的进程。
      • 优点:提高系统吞吐率和响应效率
      • 问题:需要遵循一定的原则,不可能任意剥夺
  5. 作业调度和低级调度算法
    作业调度是高级调度,进程/线程调度是低级调度。两者有相同的部分,也有不同的部分。
    不适用于作业调度的算法:优先级调度、RR、多级反馈队列调度

    1. 先来先服务算法(FCFS)
      • 非剥夺式
      • FCFS是解决饥饿的最简单的策略
    2. 最短作业优先算法(SJF)
      • 非剥夺式
      • 容易造成长作业的饥饿。
    3. 最短剩余时间优先算法(SRTF)
      • 剥夺式
      • 是对SJF的一种改进
    4. 最高响应比优先算法(HRRF,highest response ratio first)
      • 非剥夺式,每执行完一个作业,就计算一次响应比。
      • 响应比 = 作业周转时间/作业处理时间 = 1 + 作业等待时间/作业处理时间
      • 照顾短作业和先到达的作业。
    5. 优先级调度算法
      • 可以设置为剥夺式,也可以设置为非剥夺式
      • 优先级的规定:外部指定法->用户指定;内部指定法->系统综合考虑
      • 静态优先级、动态优先级。动态优先级可以避免饥饿问题。
    6. 轮转调度算法/时间片调度(RR)
      • 剥夺式
      • 时间片太小,会增大开销,降低效率;时间片太大,响应速度较低。
    7. 多级反馈队列调度算法(MLFQ,Multi-Level Feedback Queue)
      • 多个队列的优先级不同,处理器调度时优先调度高优先级队列中的进程。
      • 每个进程刚被创建时,进入第一队列,此后依次进入第二队列、第三队列···
      • 会导致饥饿问题(低优先级队列中的进程难以被执行)。

同步、通信、死锁

概念

  1. 并发:一组程序在执行时间上是重叠的。即多个程序处于都已开始执行但都未完成状态。
  2. 临界资源:一次仅允许一个进程使用的资源。或者说是共享变量所代表的资源。临界资源必须被互斥访问。
  3. 临界区:在每个进程中,访问临界资源的那段代码称为临界区。
    • 临界区的调度原则:互斥使用,有空让进;忙则要等,有限等待;择一而入,算法可行。
  4. 进程之间的两种基本关系:竞争和协作
  5. 互斥:若干并发进程因相互争夺独占型资源(临界资源)而产生的竞争制约关系。也叫间接制约关系。
  6. 同步:为完成共同任务的并发进程基于某个条件来协调其活动,因为需要在某些位置上排定执行的先后次序而等待、传递信号或消息所产生的协作制约关系。也叫直接制约关系。
  7. 进程同步机制:信号量、管程、自旋锁、消息传递。

经典同步问题

  • 生产者——消费者问题
  • 读写者问题
  • 吸烟者问题
  • 理发师问题
  • 哲学家进餐问题
  • 分水果问题

死锁

  1. 定义:如果一个进程集合中的每个进程都在等待只能由此集合中的其他进程才能引发的事件,而无限陷入僵持的局面称为死锁。
  2. 死锁产生的必要条件
    • 互斥条件。
    • 占有和等待条件。
    • 不剥夺条件。
    • 循环等待条件。
  3. 解决方法:死锁防止、死锁避免、死锁检测和恢复。
    • 死锁防止:破坏死锁产生的必要条件。
      • 破坏互斥条件。例如:只读文件。
      • 破坏占有并等待条件。采用静态分配,即进程在执行前必须先申请并获得需要的全部资源。
      • 破坏不剥夺条件。
      • 破坏循环等待条
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值