操作系统基础
概念与特征
基础概念
操作系统(Operating System, OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配;以提供给用户和其他软件方便的接口和环境;它是计算机系统中最基本的系统软件
操作系统作为系统资源的管理者
提供的功能:处理机管理、存储器管理、文件管理、设备管理
目标:安全高效
操作系统向上层提供方便易用的服务
操作系统是最接近硬件的层次
操作系统特征
并发、共享
并发:指两个或多个事件在同一时间间隔内发生。宏观上同时发生,微观上交替发生
单核 CPU 同一时刻只能执行一个程序,各个程序只能并发地执行
多核 CPU 同一时刻可以同时执行多个程序,多个程序可以并发地执行
并行:指两个或多个事件在同一时刻同时发生
共享即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用
- 互斥共享方式:系统中的某些资源,虽然可以提供给多个进程使用,但一个时间段内只允许一个进程访问该资源
- 同时共享方式:系统中的某些资源,允许一个时间段内由多个进程"同时"对它们进程访问
虚拟:把一个物理上的实体变为若干个逻辑上的对应物
- 空分复用计数(如虚拟存储器技术)
- 时分复用计数(如虚拟处理器)
异步:在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停的,以不可预知的速度向前推进。只有系统拥有并发性,才有可能导致异步性
发展与运行机制
发展阶段
手工操作阶段
- 纸带机。缺点:人机速度矛盾
批处理阶段
单道批处理系统(引入脱机输入输出技术)
优点:缓解人机速度矛盾。缺点:资源利用率依然很低
多道批处理系统(操作系统开始出现)
优点:多道程序并发执行,资源利用率高。缺点:不提供人机交互功能
分时操作系统
以时间片为单位轮流为各个用户/作业服务
优点:提供人机交互功能。缺点:不能优点处理紧急任务
实时操作系统
- 硬实时系统:必须在绝对严格的规定时间内完成处理
- 软实时系统:能接受偶尔违反时间规定
其他操作系统
- 网络操作系统
- 分布式操作系统
- 个人计算机操作系统
运行机制
程序运行的过程就是 CPU 执行指令的过程。指令就是处理器(CPU)能识别、执行的最基本命令
OS的运行机制
- 两种程序
- 内核程序:整个系统的管理者,需要使用一些特权指令
- 应用程序
- 两种指令
- 特权指令
- 非特权指令
- 两种处理器状态
- 内核态/核心态/管态:此时跑的指令属于内核程序
- 用户态/目态
CPU 如何变态?
- 内核态 -> 用户态:一条修改 PSW 的特权指令
- 用户态 -> 内核态:由中断引起,硬件自动完成
内核态用户态
操作系统运行在内核态,接口程序与应用程序运行在用户态
- 内核态可以完全访问所有的硬件,也可以执行机器能够运行的任何指令
- 用户态只能执行一部分机器指令,对于那些会影响机器的控制或者可进行 I/O 操作的指令,在用户态中的程序是禁止的
用户态:是指应用程序在运行时 CPU 所处的状态,这个时候的 CPU 所处的状态级别特别低,不能直接访问某些机器指令,或者不能直接访问 I/O(读写磁盘)
内核态:是指操作系统在运行时 CPU 所处的状态,这个时候的 CPU 是可以执行任何一条的指令,包括特权指令,包括访问 I/O 指令等
中断与系统调用
中断
中断是让操作系统内核夺回 CPU 使用权的唯一途径。中断会使 CPU 由用户态变为内核态,使操作系统重新夺回对 CPU 的控制权
中断类型
- 内中断(异常、例外):与当前执行的指令有关,中断信号来源于 CPU 内部。CPU 在执行指令是会检查是否有异常发生
- 陷阱、陷入(trap)
- 故障(fault)
- 终止(abort)
- 外中断(中断):与当前执行的指令无关,中断信号来源于 CPU 外部。每个指令周期末尾,CPU 都会检查是否有外中断信号需要处理
- 时钟中断
- I/O 中断请求
中断机制基本原理
不同的中断信号,需要用不同的中断处理程序来处理。当CPU检测到中断信号后,会根据中断信号的类型去查询中断向量表,以此来找到相应的中断处理程序在内存中的存放位置
系统调用
应用程序通过系统调用请求操作系统的服务,来保证系统的稳定性和安全性
系统调用和库函数的区别:
- 系统调用是操作系统向上层提供的接口
- 有的库函数是对系统调用的进一步封装,有的库函数没有使用系统调用
什么功能要用到系统调用?
- 凡是与共享资源有关的操作(如存储分配、I/O操作、文件管理等),都必须通过系统调用的方式向操作系统内核提出服务请求,由操作系统内核代为完成
操作系统结构
操作系统内核
内核是操作系统最重要最核心的部分,实现操作系统内核功能的那些程序就是内核程序
操作系统内核
- 时钟管理:实现计时功能
- 中断处理:负责实现中断机制
- 原语
- 是一种特殊的程序
- 处于操作系统最底层,是最接近硬件的部分
- 这种程序的运行具有原子性——其运行只能一气呵成,不可中断
- 运行时间较短、调用频繁
- 对系统资源进行管理的功能
- 进程管理
- 存储器管理
- 设备管理
操作系统体系结构
- 大内核
- 将操作系统的主要功能模块都作为系统内核,允许在内核态
- 优点:高性能
- 缺点:内核代码庞大,结构混乱,难以维护
- 微内核
- 只把最基本的功能保留在内核
- 优点:内核功能少,结构清晰,方便维护
- 缺点:需要频繁地在内核态和用户态之间切换,性能低
操作系统结构
分层结构
模块化
操作系统引导
开机过程
虚拟机
虚拟机:使用虚拟化技术,将一台物理机器虚拟化为多台虚拟机器(Virtual Machine, VM),每个虚拟机器都可以独立运行一个操作系统
两种虚拟机管理程序对比