Chapter2 操作系统概述
2.1 操作系统的目标和功能
2.1.1 作为用户/计算机接口的操作系统
-
操作系统是应用程序和计算机硬件间的接口,三个目标:方便、有效、扩展能力
-
计算机软硬件结构
(1) 系统程序包括实用工具或库程序、操作系统等,操作系统是最重要的系统程序 (2) 计算机系统中的三种重要接口
1) 指令系统体系结构(ISA):定义了机器语言指令系统,是软硬件的分界线,可分为用户级ISA和系统级ISA
2) 应用程序二进制接口(ABI):定义了操作系统的系统调用接口
3) 应用程序编程接口(API):允许应用程序访问系统的硬件资源和服务
-
操作系统提供的服务
(1) 程序开发:提供应用程序开发工具
(2) 程序运行:把指令和数据加载到内存、初始化I/O设备等
(3) I/O设备访问:用户可使用简单的读写操作来访问I/O设备
(4) 文件访问控制
(5) 系统访问:控制对共享或公共系统的访问
(6) 错误检测和响应:对内部和外部硬件错误、软件错误等,提供响应以清楚错误条件,响应可以是终止引起错误的程序、重试操作或给应用程序报告错误
(7) 记账:收集对各种资源的利用率的统计数据
2.1.2 作为资源管理器的操作系统
-
计算机是一组资源,这些资源用于移动、存储和处理数据,操作系统管理这些资源
-
操作系统的控制机制
(1) 操作系统与普通计算机软件一样,都是由处理器执行的一组程序
(2) 操作系统会释放控制,且必须依赖处理器才能恢复控制
-
操作系统的一部分在内存中,包括内核程序(kernel/necleus)和当前使用的其他操作系统程序
2.1.3 操作系统的易扩展性
操作系统具有易扩展性的需求来自于,硬件升级和新型硬件的出现、新的服务、纠正错误等
2.2 操作系统的发展史
2.2.1 串行处理
-
主要问题
(1) 调度:用户预订机器时间,若提前完成工作会导致计算机闲置,若未在分配时间内完成工作,则在解决问题前会被强制停止
(2) 在程序运行前的准备工作需要花费大量的时间
2.2.2 简单批处理系统
-
简单批处理方案的中心思想:使用监控程序(monitor)软件。操作员将作业按顺序组织成批,再把批作业提供给监控程序, 每个程序完成作业后返回监控程序,监控程序自动加载下一个程序
-
监控程序控制事件的顺序
(1) 常驻监控程序(resident monitor),总是处于内存中并且可以执行
(2) 其他部分如实用程序、公用函数等,只在用户程序调用时载入
(3) 监控程序读取作业,放置在用户程序区域,控制权交给作业。作业完成后,控制权返回给监控程序,读取下一个作业
-
处理器角度
控制权交给作业,意味着处理器当前取的和执行的都是用户程序中的指令;控制权返回给监控程序, 意味着处理器当前从监控程序中取指令并执行指令
-
简单批处理系统的优点
(1) 监控程序完成了调度功能,完成作业后,处理器自动加载下一作业
(2) 监控程序改善了作业的等待时间,每个作业中的指令均以作业控制语言(Job Control Language, JCL)的基本形式给出
-
监控程序(批处理操作系统)的其他硬件功能
(1) 内存保护:用户程序运行时,不能改变包含监控程序的内存区域
(2) 定时器:防止一个作业独占系统,定时器时间到则停止用户程序
(3) 特权指令:特权指令只能由监控程序执行,如I/O指令
(4) 中断
-
运行模式
(1) 用户程序以用户模式(user mode)执行,受到内存保护和特权指令限制
(2) 监控程序以内核模式(kernel mode)执行,可执行特权指令和访问内存保护区域
-
批处理操作系统的系统开销
(1) 一部分内存交付给监控程序
(2) 监控程序消耗了一部分机器时间
2.2.3 多道批处理系统
- I/O设备相对于处理器而言速度太慢,处理器仍经常处于空闲状态
- 多道程序设计(multiprogramming)或多任务处理(multitasking):扩展存储器以保存多个程序,处理器在它们之间切换,当一个作业需要等待I/O时,切换到另一个并不在等待I/O的作业
- 多道批处理系统的依赖硬件:支持I/O中断和直接存储器访问(DMA)的硬件
- 多道批处理系统还必须有内存管理(memory management)和调度算法
2.2.4 分时系统
-
分时(time sharing)技术:多个用户分享处理器时间,操作系统控制每个用户程序在很短时间内交替执行,通过设计使得系统响应时间接近于专用计算机的响应时间
-
时间片技术:在固定的时间间隔内,当前用户被抢占,另一用户被载入
-
第一个分时操作系统:CTSS兼容分时系统
只有当新来的程序需要重写用户存储空间时,用户存储空间才被写出
-
分时和多道程序设计的问题
(1) 内存中有多个作业时,保护其不互相干扰
(2) 多个交互用户时,对文件系统进行保护
(3) 处理资源竞争问题
2.3 主要成就
- 操作系统开发的4个重要领域:进程、内存管理、信息保护和安全、调度和资源管理
2.3.1 进程
-
计算机系统发展的三条主线:多道程序批处理操作、分时和实时事务系统
(1) 多道程序批处理操作:处理器通过切换不同程序,使处理器和I/O设备同时保持忙状态
(2) 分时:同时支持多个用户,且及时响应每个用户的要求
(3) 实时事务处理系统:同时支持多个用户开始程序、执行作业及各种各样的应用程序,如多个用户同时对数据库进行查询和修改的航空公司预订系统
-
早期系统软件运行错误的常见原因
(1) 不正确的同步:信号丢失或接收到重复信号
(2) 失败的互斥
(3) 不确定的程序操作:程序调度顺序可能对某个程序的输出结果造成影响
(4) 死锁:多个程序相互挂起等待,等待对方释放自己想要的资源
-
进程的概念
(1) 一段可执行的程序
(2) 程序所需要的相关数据(变量、工作空间、缓冲区等)
(3) 程序的执行上下文(execution context),又称为进程状态(process state),是操作系统管理进程及处理器正确执行进程所需的所有信息,包括各种处理器寄存器的内容(程序计数器、数据寄存器)、操作系统使用的信息(进程优先级、进程是否在等待特定I/O事件的完成),(大部分)执行上下文和进程是分开存储的
-
进程管理方法
(1) 每个进程(程序、数据和部分上下文信息)分配一块存储器区域,并由操作系统维护的进程表记录
(2) 进程表:每个进程的表项,包括指向包含进程的存储块地址的指针、该进程的部分或全部执行上下文
(3) 保存进程执行上下文的重要寄存器1) 进程索引寄存器(process index register):当前正在控制处理器的进程在进程表中的索引
2) 程序计数器(program counter):指向该进程中下一条待执行的指令
3) 基址寄存器(base register):保存进程所在的存储器区域的开始地址
4) 界限寄存器(limit register):保存进程所在存储器区域的大小
-
一个分配了资源的进程可分解为多个并发的线程(thread)
2.3.2 内存管理
-
操作系统的5项存储器管理职责:
(1) 进程隔离:操作系统必须保护独立的进程,防止其互相干扰
(2) 自动分配和管理
(3) 支持模块化程序设计
(4) 保护和访问控制:操作系统允许一部分内存可由各种用户以各种方式进行访问的同时,保护其完整性
(5) 长期存储:在计算机关机后长时间地保存信息
-
文件系统
(1) 信息保存在文件对象中,文件系统实现了长期存储
(2) 对操作系统来说,文件是访问控制和保护的一个有用单元
-
虚存(virtual memory)机制
(1) 目的:为了满足有多个用户作业同时驻留在内存中的要求(2) 虚存机制允许程序以逻辑方式访问存储器,而不考虑物理内存上可用的空间数量
(3) 分页系统
1) 进程由许多固定大小的块,即页组成
2) 程序通过虚地址访问字,虚地址包括页号和页中的偏移量
3) 分页