【操作系统复习】Unit1:操作系统概述
1.1 操作系统的基本概念
操作系统是一组管理计算机硬件资源的软件集合,它向计算机程序提供共性的服务。
操作系统是指控制和管理整个计算机系统的硬件与软件资源,合理地组织、调度计算机的工作与资源的分配,进而为用户和其他软件提供方便借口与环境的程序集合。
操作系统是计算机系统中最基本的系统软件。
- 控制计算机资源;
- 给用户提供接口或虚拟机
操作系统的特征:
- 并发:多个事件在同一时间间隔内发送
- 共享(两种资源共享方式)
- 互斥共享(一段时间内只允许一个进程访问该资源)
- 同时访问(一段时间内有多个进程“同时”访问)
- 虚拟:处理器的分时共享、虚拟存储器、SPOOLING
- 异步
- 由于资源等因素的限制,程序的执行通常都不可能“一气呵成”,而是以“停停走走”的方式运行。
操作系统的作用
- 提供用户与计算机硬件系统之间的接口(API/GUI)
- 是系统资源的管理者(处理机、存储器、文件、I/O设备等)
- 分配和控制处理机
- 分配和回收内存
- 负责I/O设备的分配(回收)与操纵
- 实现文件的存取、共享、保护
- 实现对计算机资源的扩充
- 没有任何软件支持的计算机称为裸机,覆盖了软件的及其称为虚拟机/扩充及其
1.2 操作系统发展历程
批处理(联机、脱机)
作业成批送入计算机,计算机能够自动地、成批地处理一个或多个用户的作业
在没有人工参与的情况下,顺序执行一系列的程序
特点:
- 无需人参与,节约人员排队时间
- 程序和数据保存在卡片上,自动化作业初始化过程
- 同一时刻只有一个软件执行
- 软件运行时,可以以独占的方式使用全部硬件资源
- 不支持多用户、多程序同时运行
分类:联机批处理系统:即作业的输入输出由CPU处理。 脱机批处理系统:即输入/输出脱离主机控制
联机批处理系统:
在主机与输入机之间增加一个存储设备——磁带。成批地把输入机上的用户作业读入磁带,再把磁带上的作业读入主机内存并执行,然后把结果向输出机输出。
优点:
- 监督程序不停地处理各个作业,从而实现了作业到作业的自动转接,减少了作业建立时间和手工操作时间,有效克服了人机矛盾,提高了计算机的利用率。
不足:
- 在作业输入和结果输出时,主机的高速CPU仍处于空闲状态,即等待慢速的输入/输出设备完成工作:此时主机处于“忙等”状态。
脱机批处理系统
增加一台不与主机直接相连而专门用于与输入/输出设备打交道的卫星机。
其功能:
- 从输入机读取用户作业并放到输入磁带上
- 从输出磁带上读取执行结果并传给输出机
优势:
- 主机不直接与慢速的输入/输出设备打交道,而是与速度相对较快的磁带机发生关系,有效缓解了主机与设备的矛盾。主机与卫星机可并行工作,二者分工明确,可以发挥主机的高速计算能力。
不足:
- 每次主机内存中仅存放一道作业,每当它运行期间发出输入/输出(I/O)请求后,高速的CPU便处于等待低速的I/O完成状态,致使CPU空闲。
单道批处理:内存中同时仅有一个作业
多道批处理:内存中同时可以有多个作业
多道程序系统
多个程序在CPU中交替运行,共享系统中的各种硬、软件资源。
优点:
- 充分利用CPU,改善I/O设备和内存的利用率,从而提高了整个系统的资源利用率和资源吞吐量,最终提高了整个系统的效率
缺点:
- 平均周转时间长,用户相应的时间较长
- 不能提供交互能力
单处理器系统中多道程序运行时的特点
- 多道:计算机内存中同时存放几道相互独立的程序;
- 宏观上并行:同时进入系统的几道程序都处于运行过程中,即它们先后开始了各自的运行,但都未运行完毕;
- 微观上串行:实际上,各道程序轮流地用CPU,并交替运行。
多道程序系统需要解决的问题
- 在一个连续的内存空间,同时驻留多道程序;处理机的争夺;I/O设备的分配;有效的组织不同程序的运行;系统对各种存储介质的管理
分时操作系统
多个用户分享使用同一台计算机。多个程序分时共享硬件和软件资源
将CPU处理时间分割为多个时间片,将时间片分给不同程序,达到多个程序“同时”运行的效果
特点:
- 多路性:多路连接;宏观上用户共享,微观上分时;
- 独立性:用户相互不干扰;
- 及时性:用户请求可以在很短时间内获得响应
- 交互性:人机对话。
缺点:不能优先处理一些紧急任务
实时操作系统
分为硬实时系统(某个动作必须在规定时间内完成)、软实时系统(能够接受一些无伤大雅的违反时间规定操作)
主要特点:及时响应、高可靠性和安全性
1.3 计算机硬件简介
主要的计算机硬件:CPU、Memory、Video controller、Keybo controller、USB controller、Hard disk controller
处理器
- 主要硬件单元
- CPU:运算器、控制器
- 通用寄存器
- 专用寄存器:程序计数器、堆栈指针、程序状态字
- 缓存:cache
- 每种CPU的指令集几乎都是不同的
- 主要过程:取指令→解码→执行
- TRAP指令:目态→管态
I/O设备
- 设备控制器
- 设备驱动程序(一般在内核态运行),通过设备寄存器与设备控制器通信
- CPU处理速度快,访问I/O设备慢,如何协调
- 忙等待;中断;DMA
1.4 用户态和内核态
计算机系统中,通常有两种程序:操作系统内核程序、用户应用程序
特权指令:不允许用户直接使用的指令,eg:I/O指令、置中断指令、存取用于内存保护的寄存器、送程序状态字到程序状态寄存器等的指令
非特权指令:允许用户直接使用的指令,它不能直接访问系统中的软硬件资源,仅限于访问用户的地址空间
CPU的运行模式划分为用户态(目态)、核心态(管态、内核态)
内核态 → \rightarrow →用户态:执行特权指令,置PSW(程序状态字寄存器)=1
用户态 → \rightarrow →内核态:由“中断”引发、硬件自动完成
OS的内核包括以下方面的内容
- 时钟管理:计时、实现进程的切换
- 中断机制:
- 中断是让操作系统内核夺回CPU使用权的唯一途径
- 没有中断就没有并发
- 中断机制中,只有一小部分功能属于内核,它们负责保护和恢复中断现场的信息,转移控制权到相关的处理程序。这样可以减少中断的处理时间,提高系统的并行处理能力。
- 原语
- 操作一气呵成;位于OS的最低层 最接近硬件;运行时间较短且调用频繁
- 系统控制的数据结构及处理
- PCB、设备控制块、各类链表、缓冲区、内存分配表等
1.5 中断和异常
软件和硬件都可以产生异常和中断
中断(interruption)也称外中断,指来自CPU执行指令外部的事件,通常用于信息输入/输出。主要由I/O设备、处理器时钟或定时器等硬件产生,可以被启用或禁用
- 可屏蔽中断:可通过改变屏蔽字从而实现多重中断
- 不可屏蔽中断:紧急的硬件故障,如电源掉电等
异常也称内中断,来自CPU执行指令内部的事件,异常也是不可屏蔽的。
- 故障Fault:指令执行引起的异常,eg:非法操作码、缺页故障、除数为0、运算溢出
- 自陷trap:用于在用户态下调用操作系统内核系统。陷阱(trap)帧:完整的线程描述表的子集,用于现场保护
- 终止Abort:出现了使得CPU无法继续执行的硬件故障,eg:控制器出错、存储器校验错等
系统调用 System call
系统调用是应用程序请求操作系统服务的唯一方式,系统调用也视作同步异常,或trap
trap指令/访管指令
系统中的各种共享资源都由操作系统统一掌管,因此在用户程序中,凡是与资源有关的操作(如存储分配、进行I/O传输及管理文件等),都必须通过系统调用方式向操作系统突出服务请求,并由操作系统代为完成。
这些系统调用主要有:设备管理(设备请求释放启动)、文件管理(读写创建删除)、进程控制(进程创建撤销阻塞唤醒)、进程通信、内存管理(内存分配回收、获取作业占用内存区大小及始址)
1.5 操作系统的功能
处理机管理
核心任务:如何分配CPU时间
- 进程管理
- 进程的调度:创建、挂起、激活
- 进程间的通信:同步、互斥、死锁
- 线程管理
主要功能:公平分配;保证非阻塞;按优先级分配
存储器(内存)管理
- 核心任务:管理缓存、主存、磁盘等所形成的多级存储架构,为多道程序的并发提供良好的环境
- 主要功能:
- 内存分配和存储无关性:方便用户
- 内存保护:互不干扰
- 内存扩充:虚拟存储器
设备管理
- 核心任务:管理输入/输出设备,屏蔽差异性,提供并发访问
- 主要功能:
- 设备无关性:逻辑设备->物理设备
- 设备分配:独享、共享和虚拟
- 设备的传输控制:中断、通道
文件系统管理
- 核心任务:将磁盘变成一个很容易使用的存储媒介提供给用户使用
- 主要功能:文件存储空间的管理、目录管理、文件读写管理、文件保护、向用户提供接口
作业控制
- 作业调度
- 作业控制:分为批量型作业和终端型作业
操作系统应解决的基本问题
1 提供解决各种冲突(资源竞争引起)的策略
- 处理机调度、进程调度、内存分配、设备分配等
2 协调并发活动的关系(提供流程控制和避免运行结果不确定性)
- 进程之间的通信,同步与互斥
3 保证数据的一致性
- 读写数据时,数据结构中的内容是否真实地记录了数据的实际情况
- 在分布式处理时的共享数据的不同副本是否一致
4 实现数据的存取控制
- 共享程度、隐私程度、安全程度的控制
1.6 操作系统结构
模块接口化、宏内核
- 内聚性、耦合性
- 优点:加速了操作系统的研制过程、增加了操作系统的灵活性、便于修改和维护。
- 缺点:接口定义困难,无序性
有序分层法
- 便于系统的调试和验证,易扩充和维护
- 合理定义隔层比较困难。依赖关系确定后不够灵活;效率较差
宏内核/单内核/大内核
- 系统的主要功能模块都作为一个紧密联系的整体运行在核心态
- 高性能、内核代码庞大、结构混乱难以维护
微内核结构
- 将内核中最基本的功能保留在内核,将不需要再核心态执行的功能移到用户态执行,从而降低内核的设计复杂度
- 内核中只包括中断处理、进程通信(IPC)、基本调度等
- 文件系统、网络功能、内存管理、设备管理等作为服务在微内核上运行
- 优点:
- 内核易于实现、可靠性高、可移植性好、配置灵活、适应分布式环境(本地内核与远程内核对服务同样的支持)
- 缺点:速度较慢,频繁在核心态和用户态之间切换
- “机制与策略分开”原理
虚拟机【王道P30】