1.1 基本概念
1.1.1 概念
控制和管理整个计算机系统的硬件和软件资源,并合理地调度和组织计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境的程序集合。
1.1.2 特征
- 并发:多个事件在同一时间间隔内发生
- 共享:资源共享,供内存中多个并发执行的进程共同使用。包括互斥共享和同时访问式共享。
以上二者是现代操作系统最基本的特征。此外还有:
- 虚拟:把物理上实体转为逻辑上对应物
- 异步:进程执行走走停停以不可预知的速度推进。
1.1.3 目标和功能
计算机资源的管理者
- 处理器管理:以线程为基本单位,避免冲突、合理共享。
- 储存器管理:为多道程序的运行提供良好环境。
- 文件管理:操作系统中该部分称为文件系统,包括空间、目录管理以及保护等
- 设备管理:完成用户的IO请求,提高设备利用率
用户和计算机硬件之间的接口
- 命令接口:分为联机(交互式)和脱机(批处理)
- 程序接口:由系统调用组成。用户使用这些系统调用命令实现系统服务。
- 扩充机器:裸机+软件=扩充机器(虚拟机)
习题记录
B C D D D
B DxC D B CxB
CxA AxC A A A
BxD C D D
库函数和系统调用的区别:前者属于应用程序,后者属于操作系统。前者可以调用后者,但是不调用的情况下效率更高(因为会产生用户态和核心态的转换)。
1.2 发展和分类
1.2.1 手工操作
1.2.2 批处理阶段
- 单道批处理:自动性、顺序性、单道性。
- 多道批处理:宏观上并行,微观上串行。主要用于充分使用I/O设备,避免占用时的等待。
1.2.3 分时操作系统
关键是实时性,通过优先级和可抢占式的算法实现,基于时间片轮转。
- 同时性、交互性、独立性
1.2.4 实时操作系统
及时性、可靠性。
1.2.5 网络操作系统、分布式系统
若干台计算机相互协同完成同一任务。
习题记录
D D C B CxA
AxD CxB AxC DxB D
C CxB C B BACD
1.3 运行环境
1.3.1 运行机制
操作系统分为用户态(目态)和核心态(管态)。
内核的主要作用为:
- 时钟管理:提供标准系统时间、实现进程切换(如分时系统的时间片轮转、实时系统按截止时间控制运行)
- 中断机制:只有一小部分功能属于内核,负责保护和回复终端现场的信息以及转移程序控制权。
- 原语:即最底层、具有原子性且调用频繁且用时很短的程序,如CPU切换、进程通信等。
- 系统控制的数据结构及处理,通过系统中用来等级状态信息的数据结构(进程控制块PCB、设备控制快、各种缓冲区等)来实现基本管理,如进程管理、存储器管理、设备管理。
1.3.2 中断和异常
用户态和核心态的切换主要通过中断和异常实现,底层硬件实现,如硬件标志位置位(用户态1)和复位(核心态0)
- 中断Interruption:外中断,由外部设备发出,一般与当前运行程序无关,强制中断
- 异常Exception:内中断、例外、Trap,分自行中断和强迫中断
1.3.3 系统调用
- 主要包括:设备管理、文件管理、进程控制和通信、内存管理等。系统调用运行在核心态。
- 主要步骤:用户进程执行(用户态)-进行系统调用-自陷-执行系统调用(核心态)-从系统调用返回
- 常见从用户态转向核心态的情况:系统调用、发生中断、程序出错、程序试图执行特权指令。(特别的,访管指令是在用户态使用的,不属于特权指令)
- 从用户态转向核心态,堆栈也会从用户堆栈转向系统堆栈
- 从核心态转向用户态的情况:一般由中断返回指令(属于特权指令)进行。
1.4 操作系统体系结构
1.4.1 大内核、微内核
- 大内核操作系统主要功能模块作为一个整体运行在核心态,包括进程管理、虚拟内存、IO设备管理、文件系统等,具有模块化特点,但代码复杂难以维护
- 微内核操作系统将内核中最基本的功能保留在内核,将其他不需要在和心态至新的功能移动到用户态执行,从而降低内核设计复杂性。