系列文章
第一章 概述
1.1 目标与功能
1.1.1
操作系统:
- 控制应用程序的程序
- 应用程序和硬件间的接口
三大目标:
- 方便:用户使用
- 有效:使用系统资源
- 扩展:开发、测试、引入新的系统功能
计算机中硬件以上的第一层软件,是应用软件、系统软件的基础。
服务:
1. 程序开发:提供编辑器、调试器等应用程序开发工具
2. 程序运行:程序的加载、空间分配等工作
3. I/O访问:隐藏I/O细节,统一I/O接口
4. 文件访问:隐藏物理介质细节,保护访问
5. 系统访问:控制对共享系统的访问,避免资源冲突
6. 错误检测和响应:检测、响应错误并清除错误条件
7. 记账:记录资源利用率和性能
以上七条是面向操作系统第一个目标:方便
1.1.2 OS作为资源管理器
一台计算机是一组资源,这组资源由OS管理
OS与普通软件功能相同,都是处理器执行的一段程序或一组程序
OS常释放控制(完成调度),这时CPU停止运行OS程序,转去执行更有用的工作(单核),之后OS再恢复控制
作为资源管理器
- 分配、管理内存(分页、分段)
- I/O访问(互斥等)
- 对文件资源的访问控制和使用
- 对处理器的分配
OS一部分在内存:内核程序
另一部分在外存:控制I/O访问
1.1.3易扩展性
适应硬件升级(如分页需硬件支持),修复错误,新服务等
故而采用模块化设计:便于添加和修改模块功能
1.2 OS 历史
1.2.1串行处理(处理机制)
此时尚无操作系统,用户按顺序访问计算机。
问题:硬拷贝(用本子记)预定机器时间造成浪费;程序运行前的编译、加载、链接也花费大量时间。
1.2.2简单批处理
第一个操作系统是批处理系统,诞生于20世纪50年代中期
监控程序(早期操作系统):一次处理一批程序(歌单,一次播放一组歌,但一个一个播放)
程序完成处理后返回监控程序,监控程序自动加载下一个程序
监控程序功能:
- 作业的自动续接
- 内存保护:保护监控程序所在的内存区域
- 定时器:防止某作业独占系统
- 特权指令:只可由监控系统执行的指令
- 中断
正是内存保护和特权指令的出现引入了运行模式,不同模式的访问权限不同
简单批处理的缺点:处理器常处于空闲状态,因为I/O对于处理器而言速度太慢
1.2.3多道批处理
当一个作业等待I/O时,可以先执行另一个作业
由于待运行作业需要保存在内存中,所以需要内存管理
多道程序设计可以现主提高系统设备利用率:
- 内存中存放多个作业
- 多个作业可并发执行
- 作业调度程序
硬件支持:支持I/O中断和DMA的硬件
多道批处理特点:多道性、调度性、无序性、无交互能力
并发与并行:并发是在一段时间内有多个程序同时进行,但可能仍然是一个运行完另一个运行,若多核情况下同时运行成为并行,并发包括并行
1.2.4 分时系统(分享处理器时间)
为实现人机交互,由多终端共享主机
分时系统:
- 采用多道程序设计
- 多个用户共享处理器
- 多个用户通过不同终端同时访问系统,由OS控制每个用户在很短的时间内交替执行(快于人的反应时间)
分时系统特点:多路性,独立性,及时性,交互性
系统 | 多道批处理 | 分时系统 |
---|---|---|
目标 | 充分利用cpu | 人机交互 |
指令源 | 作业 | 用户 |
第一个分时系统:CTSS
一句话做题:
- 写入的比已有的占空间大:已有的写出
- 写入的小,腾出空间给写入的,但一部分仍留存在其中
时间片技术:系统时钟固定产生中断,中断处OS恢复控制权,将处理器分配给一个新用户,而当前用户被抢占
实时系统
系统能及时响应外部请求,在规定时间内开始或完成对某事件的处理,并控制所有实时任务协调运行
实时系统应用:航空军事、工业控制
实时系统特点:可确定性,可响应性,用户控制,可靠性,故障弱化能力
1.3 OS主要成就(四个重要理论进展)
1.3.1 进程
剧本是程序的话,演出就是进程
进程
- 一个正在运行的程序
- 计算机中正在运行的程序的一个实例
- 可分配给处理器并由处理器执行的一个实体
- 由一个单一顺序线程、一个当前状态和一组相关资源所表征的活动单元
进程三大组成部分:
- 一段可执行程序
- 程序所需要的相关数据
- 程序的执行上下文(进程状态)
进程上下文包括:进程状态和OS用于管理和控制进程所需的数据
1.3.2 内存管理
文件是一个有名称的对象,是基本单元
文件系统:用于长期文件存储
虚拟存储:以逻辑方式访问存储器
- 换入与换出:作业部分驻留内存,缺页时安排换入换出
分页:进程分为大小相同的块——页
- 虚地址:由页号、页内偏移量组成,用于映射一个物理地址
1.3.3 信息保护和安全
四类典型安全问题
1.3.4 调度和资源管理
调度策略:公平、有效、有差别(区分进程长短)
1.4现代OS特征(重点)
-
微内核
- 给内核分配一些基本功能:地址空间、通信、基本调度
- 基于C/S架构,可定制服务程序,称为“服务器”
- 系统结构更灵活
- 优点:简化了实现,提供了灵活性,适合于分布式环境
-
单体内核
- 大内核作为一个进程实现,共享地址空间
- OS提供的功能大都由此内核提供
-
多线程
- 把执行一个应用程序的进程划分为可同时进行的多个线程(线程为工作单元)
- 进程:一个或多个线程和相关资源的集合
- 调度单元:线程
- 资源单元:数据
-
对称多处理(SMP,多个处理器)
- 多个线程和进程可以并行运行
- 具有多个处理器,对用户透明,OS负责多个进程的同步
- 优于多道程序设计:可用多个cpu运行同一个进程/一次可执行多个不同进程,即可同时执行多个不同进程
- 可通过减少cpu降低性能,也可反过来提升性能
- 优点:
- 可用性:单个处理器失效不会导致机器停止
- 渐增性:性能随添加cpu逐渐增高
- 扩展性:厂商依据性能定价
- 与多线程的不同:多线程在单处理器计算机仍然有用,而SMP对非 线程化的进程同样有效,这两个方式形成互补
-
分布式OS
- 给用户错觉:用户只有自己一个(其实是多个) - 分布式尚落后于单核和SMP
-
面向对象技术
- OS基于对象的结构有利于程序员定制 - 可给内核增加模块化的拓展而不破坏完整性 - 让分布式更容易实现(基于对象,引用更方便)
1.5 容错性 (容错率)
系统或部件发生错误时仍可继续运行的能力
提高容错性的方法:
- 进程隔离
- 并发控制(进程通信、协作)
- 虚拟机(应用隔离)
- 检测点和回滚机制
1.6 多处理器和多核OS设计考虑因素
多道程序设计+SMP
关键:线程和进程并发、调度、同步、内存管理、可靠性、容错性
并行能力的三个层次:
1. 指令级并行
2. 程序并行
3. 应用程序并行
虚拟机
为一个进程分配一个或多个核,让这些cpu专门为该进程服务