一、操作系统
1.1 概述
操作系统 是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境,它是计算机系统中最基本的系统软件。
- 负责管理和协调硬件、软件等计算机资源的工作
- 处理机管理
- 存储器管理
- 文件管理
- 设备管理
- 为上层的应用程序、用户提供简单易用的服务
- 命令接口(允许用户直接使用)
- 联机命令接口=交互式命令接口
- 脱机命令接口=批处理命令接口
- 程序接口(由一组 系统调用 组成,允许用户通过程序间接使用)
- GUI
- 命令接口(允许用户直接使用)
- 操作系统是系统软件,而不是硬件
中间件:提供系统软件和应用软件之间链接的软件
1.2 操作系统的特征
并发
- 【指两个或多个事件在同一事件间隔内发生。这些事件宏观上是同时发生的,但微观上是交替发生的。】
并行
:同一时刻同时发生。操作系统的并发性
:计算机系统中同时存在多个运行着的程序。- 并发与共享互为存在条件
- 并发和共享是操作系统的两个最基本的特征
共享
- 【指系统中的资源可供内存中多个并发执行的进程共同使用】
- 共享方式:
- 互斥共享方式
- 同时共享方式
虚拟
- 【指把一个物理上的实体变为若干个逻辑上的对应物】
- 虚拟技术:
- 空分复用技术(如虚拟存储技术)
- 时分复用技术(如虚拟处理器)
异步
- 【指多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行走走停停,速度不可预知】
- 只有系统拥有并发性,才可能导致异步性。
1.3 操作系统的发展
- 手工操作阶段
- 【人机速度矛盾导致资源利用率极低,用户独占全机】
- 批处理阶段–单道批处理系统
- 【引入
脱机
输入/输出技术,并监督程序负责控制作业的输入/输出】
- 【引入
- 批处理阶段–多道批处理系统
- 【引入中断技术】
- 优点:【多道程序并发执行,共享计算机资源。资源利用率大幅提升】
- 缺点:【用户响应时间长,没有人机相互功能】
- 分时操作系统
- 【计算机以时间片为单位轮流为各个用户/作业服务】
- 优点:【用户请求可以被及时响应,解决了人机交互问题】
- 实时操作系统
- 优点:【能够优先响应一些紧急任务】
- 主要特点:及时性,可靠性
脱机
:外围控制机+更高速的设备(磁带)作用
:缓解设备与CPU速度矛盾,实现预输入、预输出
1.4 操作系统的运行机制
- 两种指令:
- 特权指令
- 【
指令
就是CPU能识别、执行的最基本的命令】
- 【
- 非特权指令
- 特权指令
- 两种处理器状态
- 核心态
- 用户态
- 两种程序:
- 内核程序
- 应用程序
内核
是计算机上配置的底层软件,是操作系统最基本、最核心的部分。
实现操作系统内核功能的那些程序就是内核程序。
- 时钟管理
- 中断管理
- 原语
- 【是一种特殊的程序,其执行具有原子性】
- 对系统资源进行管理的功能
1.5 操作系统的体系结构
- 大内核
- 【将操作系统的主要功能没款作为系统内核,运行在核心态】
- 优点:高性能
- 缺点:代码庞大,难以维护
- 微内核
- 【只把最基本的功能保留在内核】
- 优点:方便维护
- 缺点:需要频繁在核心态和用户态切换,性能低
1.6 中断和异常
CPU收到计时部件发出的中断信号,切换为核心态对中断进行处理。
用户态
-> 核心态
,中断是唯一途径核心态
-> 用户态
,通过执行一个特权指令
- 中断的分类
- 内中断
- 自愿中断(指令中断)
- 强迫中断(硬件中断,软件中断)
- 外中断(外设请求、人工干预)
- 内中断
系统调用【是操作系统向上层提供的接口】
- 设备管理
- 文件管理
- 进程控制
- 进程通信
- 内存管理
系统调用的过程:
传递系统调用参数执行 ->
陷入指令执行系统 ->
调用相应服务程序 ->
返回用户程序
- 应用程序通过系统调用来请求操作系统的服务
- 系统调用发生在用户态,对系统调用的处理发生在核心态
- 执行陷入指令会产生内中断,使处理器从用户态
->
核心态
二、进程管理
2.1 进程
进程实体(进程映像)的组成:
PCB
- 进程描述信息(进程标识符
PID
,用户标识符UID
) - 进程控制和管理信息(进程当前状态,进程优先级)
- 资源分配清单(程序段指针,数据段指针,键鼠)
- 处理机相关信息(各种寄存器值)
- 进程描述信息(进程标识符
- 数据段
- 程序段
系统为每个运行的程序配置一个数据结构,称为 进程控制块(PCB),用来描述进程的各种信息(如程序代码存放位置).
一般情况下,把进程实体简称为进程。
所谓创建进程,实质上是创建进程实体中的PCB;而撤销进程,实质上是撤销进程实体中的PCB。
PCB是进程存在的 唯一标志
- 进程是程序的
一次执行过程
- 进程是【进程实体的运行过程,是系统进行资源分配和调度的一个独立单位】(进程是 动态 的)
进程的组织方式:
- 链接方式
- 按照进程状态将PCB分为多个队列
- 组成:执行指针、就绪队列指针、阻塞队列指针
- 索引方式
- 按照进程状态的不同,建立几张索引表
- 组成:执行指针、就绪表指针、阻塞表指针
进程的特征:
- 动态性(进程是动态地产生变化消亡的)
- 并发性(各进程可并发执行)
- 独立性(进程是资源分配、接受调度的基本单位)
- 异步性(各进程按各自独立的、不可预知的速度向前推进)
- 结构性(每个进程都会配备一个PCB)
进程的状态:
- 运行态(在CPU上运行)
- 就绪态(已具备运行条件)
- 阻塞态(等待某一事件的发生)
- 创建态(操作系统为其分配资源,初始化PCB)
- 终止态(操作系统回收资源,撤销PCB)
进程状态的切换,就是进程控制,用原语实现。
挂起态
:进程暂时换出外存进行等待。
进程通信【进程之间的信息交换】:
- 共享存储
- 【要互斥地访问共享空间】
- 基于数据结构的共享【低级】
- 基于存储区的共享【高级】
- 消息传递
- 直接通信方式
- 间接通信方式
- 管道通信
- 【一个管道只能实现半双工通信】
2.2 线程
线程
是一个基本的CPU执行单元,也是程序执行流的最小单元。
线程,可以理解为轻量级进程。
- 引入线程后:
- 进程只作为除CPU外系统资源的分配单元。
- 线程是资源调度的基本单位。
- 进程内的各线程也可以并发,提高了并发度。
- 进程内线程切换,减小系统开销。
- 线程的实现方式:
- 用户级线程
- 内核级线程
- 【操作系统只”看得见”内核级线程,因此只有内核级线程才是处理机分配的单位】
一些说明:
进程
与作业
:一个作业通常包括几个进程,几个进程共同完成一个任务,即作业。进程
与线程
:做个简单的比喻,进程=火车,线程=车厢- 线程在进程下行进
- 同一进程下不同线程间,数据容易共享
进程 ➡ 资源分配的基本单位
线程 ➡ 独立调度的基本单位
2.3 处理机调度
- 【从就绪队列中按照一定的算法选择一个进程并将处理机分配给它运行,并实现进程的并发执行】
- 三个层次:
- 高级调度(作业调度)
- 对进程状态的影响:无
->
创建态->
就绪态 - 是外存与内存之间的调度
- 对进程状态的影响:无
- 中级调度(内存调度)
- 对进程状态的影响:挂起态
->
就绪态 - 【决定哪个处于挂起状态的进程重新调入内存】
- 对进程状态的影响:挂起态
- 低级调度( 进程调度 )
- 最基本的一种调度,发生频率最高
- 对进程状态的影响:就绪态
->
运行态 内容
【按照某种算法从就绪队列中选择一个进程为其分配处理机】方式
- 非剥夺调度方式【只允许进程主动放弃处理机】
- 剥夺调度方式【又称抢占方式,可优先处理紧急进程】
- 高级调度(作业调度)
挂起
和 阻塞
都是暂时不能获得CPU的服务,但 挂起
是将进程映像调到外存去了。
调度算法的评价指标:
- CPU利用率 = 忙碌的时间 / 总时间
- 系统吞吐量:单位时间内完成作业的数量
- 周转时间 = 作业完成时间 - 作业提交时间
- 等待时间:指进程/作业处于等待处理机状态时间之和
- 响应时间:从用户提交请求到首次产生响应所用时间
调度算法:
- 先来先服务(FCFS)
- 短作业优先(SJF)
- 高响应比优先(HRRN)
- 时间片轮转调度算法(RR)
- 优先级调度算法
- 多级反馈队列调度算法
临界资源:一个时间段内只允许一个进程使用。
- 进程同步
- 【并发性带来了异步性,有时需要进程同步来解决异步问题】
- 进程互斥
- 【对临界资源的访问,需要互斥地进行】
- 四个部分
- 进入区【检查并进入临界区,需要“上锁”】
- 临界区【访问临界资源地代码】
- 退出区【负责“解锁”】
- 剩余区【其余代码部分】
- 遵循原则:
- 【空闲让进】【忙则等待】【有限等待】【让权等待】
- 软件实现方法:
???
- 单标志法
- 双标志先检查
- 双标志后检查
- Peterson算法
- 硬件实现方法:
???
- 中断屏蔽方法
- TestAndSet(TS指令/TSL指令)
- Swap指令(XCHG指令)
用户进程可以通过使用操作系统提供的一对原语对信号量
进行操作,从而方便实现进程互斥、同步。信号量
是种表示系统资源的变量。wait
、signal
原语的操作简称 PV操作
三、内存管理
逻辑地址:相对地址;物理地址:绝对地址
从写程序到程序运行
:
- 编辑源代码文件
- 编译
- 【由源代码生成目标模块,高级语言->机器语言】
- 链接
- 【由目标模块生成装入模块,链接后形成完整的逻辑地址】
- 装入
- 【将装入模块装入内存,装入后形成物理地址】
内存管理
:
- 内存空间的分配与回收
- 内存空间的扩充(实现虚拟性)
- 覆盖技术
- 【将程序分为多个段,常用的段常驻内存,不常用的段在需要时调入内存】
- 缺点:对用户不透明,增加了用户编程负担。
- 交换技术
- 【进程在内存与磁盘之间动态调度,但PCB会常驻内存】
- 虚拟内存
- 【程序不需装入即可运行,运行时根据需要动态调入数据,若内存不够,还需换出一些数据】
多次性
:允许作业多次调入内存对换性
:允许作业运行过程中,将作业换入、换出虚拟性
:从逻辑上扩充了内存的容量- 实现方式:
- 请求分页存储管理
- 请求分段存储管理
- 请求段页式存储管理
- 覆盖技术
- 地址转换
- 【操作系统负责实现逻辑地址到物理地址的转换】
- 三种方式:
- 绝对装入【编译器负责地址转换】(单道程序阶段)
- 可重定位装入【装入程序负责地址转换】(早期多道批处理系统)
- 动态运行时装入【运行时进行地址转换】(现代操作系统)
- 存储保护
- 【保证各进程在自己的内存空间内运行】
- 两种方式:
- 设置上下限寄存器
- 利用重定位寄存器、界地址寄存器进行判断
内存空间的分配与回收:
- 连续分配管理方式
- 单一连续分配
- 固定分区分配
- 动态分区分配
- 非连续分配管理方式
- 基本分页存储管理
- 基本分段存储管理
- 段页式存储管理
页表机制的地址变换过程 ???
页面置换算法、页面分配策略 ???
四、文件管理
4.1 文件系统的结构
文件系统(由上至下):
- 用户接口
- 文件目录系统
- 存取控制模块
- 逻辑文件系统和文件信息缓冲区
- 物理文件系统
文件的逻辑结构:
- 无结构文件
- 【文件内部的数据就是一系列二进制流或字符流,如
txt
文件】
- 【文件内部的数据就是一系列二进制流或字符流,如
- 有结构文件
- 顺序文件
- 索引文件
- 索引顺序文件
目录
本身就是一个有结构文件,由一条条记录组成;每条记录对应一个在该目录下的文件。
文件的物理结构(文件分配方式):
- 连续分配
- 【每个文件在磁盘上占有一组连续的块】
- 链接分配
- 隐式链接
- 【磁盘块含有指针,对用户透明,只能顺序访问】
- 显式链接
- 【把用于链接文件各物理块的指针显式地存放在一张表中,即
FAT
(file allocation table)】 - 【一个磁盘仅设置一张
FAT
,开机时将FAT
读入内存,并常驻内存。】
- 【把用于链接文件各物理块的指针显式地存放在一张表中,即
- 隐式链接
- 索引分配
- 【系统为每个文件建立一张索引表,索引表记录了文件地各个逻辑块对应的物理块】
4.2 文件存储空间管理
- 存储空间的划分和初始化
划分
【将物理磁盘划分为一个个文件卷(逻辑卷,逻辑盘)】初始化
【将各个文件卷划分为目录区、文件区】
- 管理方法:
- 空闲表法
- 空闲链表法
- 位示图法
- 成组链接法
文件的基本操作:create
delete
read
write
open
close
系统调用
create
:分配外存空间,创建目录项- 进程打开文件表时特有属性:读写指针、访问权限
- 文件共享:
- 基于索引结点的共享方式(硬链接)
- 【各个用户的目录项指向同一个索引结点】
- 基于符号链的共享方式(软链接)
- 【相当于创建索引结点的快捷方式】
- 基于索引结点的共享方式(硬链接)
- 文件保护:口令保护,加密保护,访问控制
磁盘
由表面涂有磁性物质的圆形盘片组成,每个盘片被划分为一个个磁道,每个磁道又划分为一个个扇区。
磁盘的物理地址:(柱面号,盘面号,扇区号),磁盘的调度算法???
五、设备管理
5.1 I/O设备
- 【将数据输入输出计算机的外部设备】
- 按使用特性分类:
- 人机交互类设备(数据传输速度慢)
- 存储设备(数据传输速度快)
- 网络通信设备
- 按信息交换的单位分类:
- 块设备(传输快,可寻址)
- 字符设备(传输慢,不可寻址,常采用中断驱动方式)
- 组成:
- 机械部件
- 电子部件(I/O控制器)
5.2 I/O控制器
- 主要功能:
- 接受和识别CPU发出的命令(控制寄存器)
- 向CPU报告设备的状态(状态寄存器)
- 数据交换(数据寄存器)
- 地址识别(由I/O逻辑实现)
- 组成:
- CPU与控制器间的接口
- I/O逻辑
- 控制器与设备间的接口
- 寄存器编址方式:
- 内存映射I/O
- 控制器中的寄存器与内存同一编制
- 寄存器独立编址
- 需要设置专门的指令来操作控制器
- 内存映射I/O
5.3 I/O控制方式
- 程序直接控制方式
- 在等待I/O完成的过程中需要CPU不断轮询检查
- 优点:实现简单
- 缺点:CPU利用率低
- 中断驱动方式
- 优点:CPU和I/O设备可并行工作
- DMA方式(direct memory access)
- 数据的传送单位是块
- 通道控制方式
- 识别并执行一系列通道指令
- 优点:CPU、通道、I/O设备可并行工作,资源利用率很高
- 缺点:实现复杂,需要专门的通道硬件支持
5.4 I/O软件的层次
- 用户层软件【实现了与用户交互的接口】:
- 功能:【假脱机技术】
- I/O系统【属于操作系统的内核部分】:
- 设备独立性软件
- 功能:【I/O调度、设备保护、设备分配与回收、缓冲区管理】
- 设备驱动程序
- 中断处理程序
- 设备独立性软件
假脱机技术
,又称SPOOLing技术
,用软件的方式模拟脱机技术。
在内存中建立缓冲区,在磁盘中建立输入/输出井。