操作系统
- 第1章 OS概述
- 第1节 OS基本概念
- 第2节 OS发展与分类
- 第3节 OS运行机制和体系结构
- 1.3.1 操作系统的运行机制
- 1. 时钟管理
- 2. 中断机制
- 3. 原语
- 4. 系统资源管理或系统控制的数据结构及处理
- 1.3.2 中断和异常
- 1.3.3 系统调用
- 第2章 进程管理
- 第3章 内存管理
- 第4章 文件管理
- 第5章 IO管理
第1章 OS概述
第1节 OS基本概念
操作系统定义:控制管理计算机硬件、软件资源,合理组织调度计算机的工作和资源的分配,向用户和其他应用提供方便使用的接口和环境,是计算机系统中最基本的系统软件
操作系统功能和目标:
- 资源管理者:处理器管理(CPU管理,合理调度进程、线程)、存储器管理(内存管理)、文件管理(文件系统、磁盘管理)、其他设备管理(通过IO管理其他设备)
- 作为用户和计算机硬件直接的接口
- 命令接口
- 联机命令(交互式)
- 脱机命令(批处理)
- 程序接口:一组系统调用,供程序使用
- GUI:图形化界面
- 命令接口
- 扩充机器:覆盖了软件的机器称为扩充机器或虚拟机
操作系统的特征:
- 并发:多个事件在一段时间间隔内发生(并行,指多个事件在同一时刻发生)
- 共享:即资源共享,系统资源供多个并发进程同时使用
- 互斥共享:一段时间内,只允许一个进程访问资源
- 同时访问:微观上可能是多个进程交替使用资源,也可能是确实是同时访问资源
- 虚拟:没有并发,就不需要时分复用,因此也就没有虚拟特征
- 时分复用:虚拟处理器技术,通过使用多道程序设计技术,让用户感觉每个程序都在独占处理器
- 空分复用:虚拟存储器技术,从逻辑上扩充内存,例如 60G 的游戏运行在 4G 内存的电脑上
- 异步:多个程序并发执行,由于资源有限,程序执行不是一贯到底,而是走走停停,以不可预知的速度推进。没有并发,显然也没有异步。
并发和共享互为依存条件:没有并发,就不需要资源共享;如果系统不能很好的资源共享,就可能导致无法并发。并发和共享是操作系统的基本特征。
做题补充:
- 广义指令:系统调用
- 单道批处理系统,程序顺序执行;多道批处理系统,程序并发执行。
- 顺序执行:顺序性、封闭性、可再现性
- 顺序性:严格按照程序指令顺序执行
- 封闭性:程序在封闭的环境下运行,独占全机资源,资源状态只有其可以改变
- 可再现性:同一个环境下,可以得到相同的执行结果
- 并发执行:断续性(间断性,资源共享,受到其他程序的制约)、失去封闭性(环境可以被其他程序修改)、不可再现性
- 顺序执行:顺序性、封闭性、可再现性
- 库函数,用来为程序提供编写好的功能,方便使用;系统调用,用来向系统请求服务。库函数可能会使用系统调用,使用系统调用会陷入内核,需要保存现场,导致程序执行变慢,当库函数不适用系统调用时,程序完全在用户空间执行,速度更快。
第2节 OS发展与分类
手工操作阶段:
- 用户独占全机,资源利用率低
- 人工操作慢和处理器处理速度快,速度矛盾,导致资源利用率低
批处理阶段:
单道批处理系统,引入脱机输入输出到高速的磁带,用监督程序(OS雏形)控制作业输入输出处理器。自动(一批程序正常情况可以自动执行)、顺序(按进入内存顺序执行)、单道(同一时刻内存只有一个程序)。
- 优点:引入了高速磁带,一定程度缓解了人机速度差异
- 缺点:内存中只能有一个程序执行,执行完一个,才能输入下一个,处理器仍然需要等待 IO 时间
多道批处理系统:操作系统正式诞生,引入了中断,OS 负责管理程序执行。多道(内存中有多个程序)、宏观并行、微观串行。
- 优点:多道程序并发执行,共享资源,资源利用率大幅提升,系统吞吐量增大
- 缺点:没有人机交互功能,必须等到程序运行结束或者异常终止,用户响应时间长
分时操作系统:同时(多路,允许多个用户同时使用)、交互(人机交互)、独立(每个用户互不干扰,看不到别人)、及时(用户请求能在短时间内得到响应)
- 优点:解决了人机交互
- 缺点:不能处理紧急任务,完全公平,不区分任务优先级
实时操作系统:主要特点,及时、可靠。分为硬实时(严格遵守时限不能违反)、软实时(能够接受偶尔违反)
- 优点:能够响应紧急任务
网络操作系统:实现网络中资源共享和各台计算机之间通信
分布式操作系统:分布性和并行性,若干计算机并行、协同完成任务。
个人操作系统、嵌入式系统、服务器系统、手机系统等。
做题补充:
- 甘特图:横轴时间,纵轴程序,多种线段区分不同资源即可
- CPU 利用率:CPU运行时间除以总时间
第3节 OS运行机制和体系结构
指令:不是代码,而是一个 CPU 可以执行的具体操作,是二进制的机器语言。
- 特权指令:不允许用户执行直接使用的指令
- 非特权指令
CPU状态:使用程序状态字寄存器(PSW)的某一位表示当前处理器处于什么状态。
- 用户态(目态)
- 核心态(管态)
两种程序
- 内核程序:处于核心态,可以执行特权指令和非特权指令
- 应用程序:用户态,只可以执行非特权指令
计算机层次结构:
内核包括:
- 距离硬件最近的:时钟管理、中断处理、原语。
- 系统资源管理:进程管理、存储器管理、设备管理等
1.3.1 操作系统的运行机制
1. 时钟管理
- 时钟的第一功能是计时,向用户提供标准的系统时间。
- 通过时钟中断,实现进程的切换。常用在一些和时间相关的调度中(分片、实时调度)
2. 中断机制
中断的初衷:提高多道程序运行环境中的 CPU 利用率,主要针对外设。
中断机制中只有一小部分属于内核(这部分负责保护现场,转移控制权到中断处理程序以及恢复现场)
3. 原语
原语特点:
- 处于操作系统最低层,是最近接硬件的部分
- 具有原子性,操作一气呵成,不可中断
- 运行时间一般较短,且被频繁调用
定义原语:通过关中断实现。
4. 系统资源管理或系统控制的数据结构及处理
- 进程管理:进程状态管理,进程调度和分派、创建、销毁进程控制块(PCB)
- 存储器管理:分配回收、代码对换等
- 设备管理:缓存区管理,设备分配与回收
1.3.2 中断和异常
中断:
- 内中断(异常、陷入 trap)
- 自愿中断(指令中断)
- 强迫中断
- 硬件故障
- 软件中断
- 外中断(强迫中断)
- 外设请求
- 人的干预
中断处理过程:
- 关中断 (硬件完成)
- 保存断点(硬件完成)
- 中断服务程序寻址(硬件完成)
- 保存现场和屏蔽字 (中断程序完成)
- 开中断(中断程序完成)
- 执行中断服务程序(中断程序完成)
- 关中断(中断程序完成)
- 恢复现场(中断程序完成)
- 开中断,中断返回(返回到保存的断点处)(中断程序完成)
1.3.3 系统调用
系统中各个资源由 OS 管理,用户程序中凡是与资源有关的操作,都必须通过系统调用向 OS 提出服务请求。 用户程序通过陷入指令来发起系统调用,请求 OS 提供服务。(用户态可以执行陷入指令,因此陷入指令非特权指令)
系统调用按功能分为以下几类:
- 设备管理
- 文件管理
- 进程控制
- 进程通信
- 内存管理
用户态转向核心态的例子:
- 系统调用
- 中断
- 程序指令出现错误(除0,地址越界,算术溢出等)
- 用户程序企图执行特权指令(异常)