操作系统复习

第一部分 1-3章

Posted by XDong on December 13, 2021

第一部分 1-3章

第一章 操作系统概论

1.1 什么是操作系统

1.1.2 操作系统作为资源管理器

作用:

  1. 跟踪资源状态
  2. 分配资源
  3. 回收资源
  4. 保护资源

1.1.3 操作系统作为虚拟机

机器语言一级的体系结构:

  1. 指令系统
  2. 存储组织
  3. I/O和总线结构

操作系统为用户提供了两级接口:命令接口和编程接口

操作系统是控制和管理计算机系统的硬件和软件资源,合理地组织计算机工作流程及方便用户使用地程序和数据的集合

1.2 多道程序设计的概念

1.2.1多道程序设计的硬件支持

  • 中断系统
  • 通道技术

1.2.3 多道程序设计的实现

需要解决以下问题:

  1. 存储保护和和地址重定位
  2. 处理机管理和调度
  3. 资源的管理和分配

1.3 操作系统的功能和主要特征(不考)

1.3.1 操作系统的功能

操作系统作为计算机系统的资源管理器, 其主要任务是对系统中的硬件、软件实施有效的管理,以提高系统资源的使用率

操作系统作为一台虚拟机,从虚拟机的观点看,操作系统为用户提供了用户接口

处理机管理

  1. 进程控制
  2. 进程调度
  3. 进程同步
  4. 进程通信

存储管理

  1. 地址重定位
  2. 存储分配
  3. 存储保护
  4. 存储扩充

设备管理

  1. 缓冲管理
  2. 设备分配
  3. 设备处理
  4. 设备独立性和虚拟设备

文件管理

  1. 目录管理
  2. 文件读写管理
  3. 文件存取控制
  4. 文件存储空间的管理

用户接口

  1. 命令接口
  2. 程序接口
  3. 图形接口

1.3.2 操作系统的主要特征

  1. 并发性
  2. 共享性
  3. 虚拟性
  4. 不确定性

1.5 操作系统的分类(不考)

  • 单用户操作系统
  • 批处理系统
  • 分时系统
  • 实时系统
  • 网络操作系统
  • 分布式操作系统
  • 多处理机操作系统

1.6 小结

多道程序设计是操作系统的理论基础

第二章 用户与操作系统的接口

2.2 程序级接口

2.2.1 管态与算态

两类程序:系统程序与用户程序

为了使计算机系统能有条不紊的工作,保证计算机系统的安全,需在计算机运行过程中对两类程序规定不同的运行状态。我们让系统程序工作在管态,让用户程序工作在算态。管态也被称为核心态,算态也成为用户态

计算机程序运行的状态都反应在程序状态字寄存器中

第三章 进程管理

3.1 为什么要引进程序的概念

3.1.1 顺序程序设计

顺序执行具有如下特性:

  1. 当顺序程序在处理及上执行时,处理机严格的顺序执行程序规定的动作
  2. 一个程序在机器中执行时,它独占全机资源,除了初始状态外,只有程序本身规定的工作才能改变这些资源的状态
  3. 程序的执行结果与其执行速度无关

总结为程序的封闭性和可在观性

3.1.2 程序的并发执行与资源共享

所谓并发执行是指两个程序的执行在时间上是重叠的

程序并发执行和资源共享之间互为依存关系

3.1.3 程序并发执行的特性

失去了程序的封闭性

程序与机器执行顺序不再一一对应

并发程序间的相互制约:资源和程序的并发执行使得系统的工作情况变得相当错综复杂,尤其表现在系统中并发程序间的相互依赖和制约方面

3.1.4 进程概念

行为的一个规则叫做程序,程序在处理机上执行时间所发生的活动称为进程

3.2 进程的表示和调度状态

3.2.1 进程的表示

进程的组成:

  • 程序
  • 数据集合
  • 进程控制块(PCB)

进程控制块包含了进程的描述信息和控制信息

进程控制块:

  • 进程标识名和标识数
  • 位置信息
  • 状态信息
  • 进程的优先级
  • 进程的现场保护区
  • 资源清单
  • 队列指针和链接字
  • 其它

3.2.2 进程的调度状态

进程有三种基本调度状态

  • 运行状态
  • 就绪状态
  • 阻塞状态

图3.4 进程的基本调度状态及其转换

静止与活跃的含义:进程在内存中与进程在辅存中

3.3 进程的控制

3.3.2 进程控制原语

进程的建立:进程的创建顺序

3.4 进程的调度

3.4.1 进程调度程序

功能:

  1. 记住系统中所有进程的状态、优先数和资源需求情况
  2. 确定调度算法
  3. 分配处理机给进程

3.4.2 程序调度算法的设计

引起调度的时机

进程调度方式:非剥夺方式和剥夺方式

进程调度算法的选择:进程调度的主要任务就是按照一定的调度算法从就绪队列中选出一个进程,把CPU分配给它

进程队列的组织:线性表、链接表和进程队列

3.4.3 常用的进程调度算法

  • 静态优先级法
  • 动态优先级法
  • 时间片轮转法
  • 多队列轮转法

3.4.4 进程和程序的区别

  1. 进程是程序的一次执行
  2. 一个进程可以执行一个或几个程序,同一程序可能由几个进程同时执行
  3. 程序可以作为一个软件资源长期保留
  4. 进程具有并发性
  5. 进程是一个独立的运行单位

3.6 进程通讯

在某个节点需要交换信息:进程——进程,称为直接制约关系,即进程同步

两个进程要求使用同一资源,而且这一资源不允许两个进程同时使用:进程——资源——进程,称为间接制约关系

3.6.1 进程间的同步与互斥

3.6.2 信号量和p、v操作

公用信号量:用于实现进程之间的互斥,初值为1

私有信号量:用于实现进程间的同步,初值为0或为某个整数$n$

  • 司机售票员
  • 读卡机
  • 读者和写者

3.7 死锁

产生原因:由于多个进程的并发执行,改善了系统资源的利用率并提高了系统的处理能力,然而也带来了新的问题,即这样一种危险:当某些进程提出资源的使用要求后,使得系统中一些进程处于无休止的阻塞状态,在无外力的作用下,这些进程永远也不能继续前进

本质特征:在无外力的作用下,这些进程永远也不能继续前进

3.7.1 死锁的起因

死锁的起因:当两个或两个以上的进程同时对多个互斥资源提出使用要求时,有可能导致死锁

产生死锁的必要条件:

  1. 互斥控制
  2. 非剥夺控制
  3. 逐次请求
  4. 环路条件

不要以为多个进程要求使用多个资源就一定会产生死锁。资源竞争可能导致死锁,但死锁是进程在运行时对资源要求在时间上的冲突

3.7.3 对死锁采取的对策

  1. 鸵鸟策略
  2. 预防策略
  3. 避免策略
  4. 检测和解除

3.7.4 死锁的预防

为了破坏“逐次请求”和“环路”条件,可以采用资源静态分配法和资源顺序分配法

资源静态分配法:一次申请全部资源

资源顺序分配法:按编号增加的顺序申请资源,缺点是按资源编号增加顺序申请可能与实际使用资源的顺序不一致

3.7.5 死锁的避免

多种资源的银行家算法

3.7.8 死锁的解除

  • 删除法
  • 剥夺法