目录
一、操作系统概论(⭐)
1、操作系统的目标:配置OS,使计算机系统更加方便性、有效性、可扩充性、开放性。
2、操作系统的作用
- OS作用户和计算机硬件之间的接口
- OS作为计算机资源的管理者,提高计算机系统效率
- 改善人机界面,提供良好的工作环境
3、操作系统的特征:并发性、虚拟性、共享性、不确定性
4、操作系统的功能
- 处理机调度:进程控制、进程同步、进程通信、进程调度
- 存储管理:内存空间的管理、内存的分配、保护、扩充
- 文件管理:文件存储空间的管理、文件读/写管理和保护
- 设备管理:缓冲管理、设备分配、设备处理
- 作业管理:界面管理、人机交互
5、操作系统的类型
- 批处理操作系统:单批道处理OS、多批到处理OS
- 分时操作系统:轮流使用CPU工作片
- 实时操作系统:快速响应。实时控制系统、实时信息处理系统
- 网络操作系统:方便有效地共享网络资源
- 分布式操作系统:保持网络系统的全部功能,并且具有透明性、可靠性和高性能等特性
- 微机操作系统
- 嵌入式操作系统
6、计算机启动的基本流程为:BIOS -> 主引导记录 ->操作系统
7、操作系统通过文件目录和目录项来组织和管理外存中的信息
嵌入式系统:自底向上由三个主要环节组成(片级初始化—板级初始化—系统级初始化)
- 片级初始化:完成嵌入式微机处理器的初始化
- 板级初始化:完成嵌入式微机处理器以外的其他硬件设备初始化
- 系统级初始化:以软件初始化为主,主要进行操作系统的初始化
二、进程管理(⭐⭐⭐)
1、进程管理-(PV操作)
进程:是一个具有独立功能的程序(程序的一次执行),关于某个集合的一次运行活动(处理机上顺序执行的活动),是系统进行资源分配和调度的一个独立单位。
一、进程的结构
①控制块:进程的唯一标识(PCB的组织方式是索引方式)
②数据段:存放原始数据、中间数据
③程序段:存放文本区域,可被多个进程共享
进程资源图 (如下图)
- ▭→◯:表示请求资源,◯ →▭:表示分配资源
- P1、P2是阻塞节点,P3是非阻塞节点
- 可以化简的,其化简顺序为P3→P1→P2
二、进程状态
五态模型:
①阻塞:进程因发生某件事而暂停执行
②就绪:进程具备运行条件,但尚未运行
③运行:进程在处理机上运行
④创建:为新进程创建PCB,并填写必要信息,并把进程插入到就绪队列中
⑤终止:资源释放回收
三、进程的控制 (OS通过原语操作实现进程控制)
OS对进程实现有效的管理,包括:创建新进程、撤销已有进程、挂起原语、阻塞原语、唤醒原语。
原语:由若干指令组成,完成特定的功能。
- 执行过程不会中断
- 在管态、系统态、内核态下进行,常驻内存
- 是内核三大支撑功能(中断处理、时钟管理、原语操作)之一
四、进程间的通信
1、进程同步:协调进程间的相互制约关系,使他们按照预期的方式执行的过程。
- 直接相互制约关系(同步):进程间的合作,比如管带通讯
- 间接相互制约关系(异步):进程排斥性的访问共享资源,比如过独木桥
2、临界资源:多个进程需要互斥访问的共享资源(打印机、磁带机)
- 临界区:进程中对对临界资源实施操作的那段代码叫做临界区,若能保证多个进程互斥地访问自己的临界区就可实现互斥访问。
- 互斥临界区原则:空闲即进、忙则等待、有限等待、让权等待
3、信号量机制:(P操作:wait原语,进程等待)(V操作:signal原语,唤醒等待进程)
- PV操作是操作系统提供的具有特定功能的原语,实现了资源的互斥使用。
- 整型信号量:违背让全等待,会发生忙等
- 记录信号量:进程进入阻塞状态,不会发生忙等
4、信号量重点
互斥信号量:互斥信号量初值为1
同步信号量:同步信号量初值为0
信号量初值等于资源数,当n个进程共享x台打印机时,信号量范围为-(n-x)~x。
信号量小于0表示没有可用资源,其绝对值表示阻塞队列中等待该资源的进程数。
一、PV操作与信号量
2、管程和线程
一、管程
1、管程:由代表共享资源的数据结构和一组过程(进行PV操作的函数)组成的管理程序(封装)。(特殊的软件模块)(实现进程同步的工具)
2、管程的组成:
- 局部管程内部的共享数据结构
- 对该数据结构进行操作的一组过程
- 管程内共享数据的初始化语句
3、管程的特征:
- 局部于管程的数据只能被局部与管程的过程访问
- 一个进程只有通过调用管程内的过程(函数)才能进入管程访问共享数据
- 每次仅允许一个进程在管程内执行某个内部过程
二、线程
1、线程:进程的轻型实体,是一系列活动按事先预定好的顺序依次执行的过程(是一条执行路径,不能单独存在,必须包含在进程中),是一系列指令的集合。(提高OS的并发性)(OS运算调度的最小单位)
2、线程的属性:
- 轻型实体
- 独立调度和分配的基本单位
- 可并发执行:一个线程可以创建和撤销另一个线程
- 共享进程资源:线程基本不拥有自己的资源,只拥有运行中必不可少的资源(如:PC、寄存器、栈,但可共享进程全部资源)。
3、进程调度
1、调度方式:
- 可剥夺式调度:立即暂停当前进程,分配处理机给高优先级进程(原则:优先权、短进程优先、时间片原则)
- 不可剥夺式调度:必须等待进程运行完方可释放占用CPU(缺点:适用于批处理系统,不适用分时/实时系统)
2、调度算法:
1、先来先服务(FCFS):按到达顺序执行(非剥夺式调度)
- 有利于长作业,有利于CPU繁忙作业(充分利用资源)
- 不利于短作业,不利于I/O繁忙作业(耗时,其他饥饿)
2、短作业优先(SJF):所需时间最短的优先(剥夺式调度)
- 平均等待时间最少,长作业周转时间增加,估计时间不准,不能完成迫切任务
3、优先级调度(SPA):优先级最高的先调度(剥夺式调度)
- 优先级设置原则:系统>用户,交互性>非交互型,I/O型>计算机
- 低优先级可能出现饥饿
4、时间片轮转(RR):剥夺式调度,由时钟中断控制
- 按进程到达优先队列的顺序,轮流分配时间片执行
- 公平,响应快,适用于分时系统
- 时间片决定因素:系统响应时间、队列进程数量、系统处理能力
5、多级反馈队列调度:集前几个优点,相当于(SPA+RR)(剥夺式)
- 相对公平、快速响应、短作业优先、周期时间短
4、死锁
一、死锁的定义:
多个进程由于竞争资源而造成的阻塞现象,若无外力作用这些进程将无法继续前进。→(造成:资源的浪费,系统的崩溃)。产生的原因如下:
- 系统资源的竞争
- 进程推进顺序非法
二、死锁产生的必要条件(4个同时产生)
- 互斥条件:共享资源的排它性访问
- 请求保持条件:保持当前资源时,请求另一个资源
- 不剥夺条件:访问该共享资源时不会被其他进程剥夺
- 循环等待条件:存在共享资源的循环等待链
三、死锁的预防
- 破坏互斥条件(但不是所有资源都可改成共享)
- 破坏剥夺条件(但实现复杂,代价高,原进程无法推进)
- 破坏请求保持条件(但资源浪费、利用率低)
- 破坏循环等待条件(到限制新设备增加,限制用户编程)
四、死锁的预防
安全性算法→银行家算法(与死锁预防相比,增加利用率,也增加系统的开销)
五、死锁的检测→(死锁定理)
- ▭→◯:表示请求资源,◯ →▭:表示分配资源
六、死锁的解除:即死锁发生后的解除方法
- 资源剥夺
- 撤销进程
- 进程回报
三、存储管理(⭐⭐⭐)
存储管理目的:解决多个用户共同使用主存的问题
- 多层结构:(寄存器——CPU)(高速缓存、主存储器、硬件缓存——主存)(固态磁盘、可移动存储介质——辅存)
1、分区存储管理
1、分区存储管理:把主存的用户划分成若干个区域,每个区域分配给一个用户使用,并限定它们只能在自己的区域中运行。
- 按划分方式分为:固定分区、可变分区、可重定向分区
2、固定分区:(一种静态分区方式)在系统生成时已将主存划分成若干个分区,每个分区的大小可不等;(OS通过主存分配情况表管理主存)
- 缺点:已分配区中存在未用空间,程序不完全与分区大小相等,造成空间的浪费。
3、可变分区:(一种动态分区方式)存储空间的划分是在作业装入时进行的,故分区的个数可变,分区的大小刚好等于作业的大小。(OS通过已分配表、未分配表管理主存)
- 可变分区分配包括两种管理表格:已分配表,记录已分配分区的情况;未分配表,记录未分配区的情况。
- 请求和释放分区算法:最佳适应算法(找到最接近用户需求的分区),最差适应算法(转入最大的空的分区),首次适应算法(低地址开始的第一个空白区),循环首次适应算法(刚分配的空白区的下一个空白区)。
4、可重定位分区:是解决碎片问题简单而行之有效的方法
- 基本思想是:移动所有已分配好的分区,使之成为连续区域。(会导致地址发生变化会产生地址重定位问题)
5、分区保护的目的是防止未经核准的用户访问分区。分区保护有两种方式:
- 上界/下界寄存器保护
- 基址/限长寄存器保护:
2、分页存储管理
(高级程序语言使用逻辑地址,运行状态内存使用物理地址)
分页存储管理:第一次访问页表得到物理地址,第二次存取数据(两次访问内存)
- 页:将一个进程的地址空间划分成为若干个大小相同的区域
- 块:将主存空间划分成与页相同大小的若干物理块
页号(P)(12—31) | 页内偏移量(W)(0—11) |
1、地址结构:(组成:页号+页内地址(页内偏移量)=偏移量)
- 地址长度为32位。其中0~11位为页内地址,即每页大小为4KB,12~31位为页号,即最多允许2^20页存在。
2、页表:(实现→页号到地址块号的映射)(每个页在页表中占一个表项,记录程序中的某表在内存中对应的物理块号)
- 物理地址:(页号→块号)+偏移量
- 页号:逻辑地址/页面长度→P=A>>(n位)
- 偏移量:逻辑地址%页面长度→W=A&(L-1)
3、地址变换机构:利用页表将逻辑地址转换成物理地址
- 页表寄存器:用来存放页表的起始地址和页表长度
- 页表管理中地址空间是一维的,页表太大会降低内存利用率
4、快表: 存放访问最频繁的少数活动页的页号及相关信息。快表是将页表存于Cache中;慢表是将页表存于内存上
- 匹配成功:取块号+偏移量→形成地址
- 匹配失败:访问主存页表,并同步到快表
3、分段、段页式存储管理
一、分段存储管理
31 段号S 16 | 15 段内地址d 0 |
1、分段式存储管路:用户进程的地址空间进行划分,各段长度不等(允许一个作业最长64个段,每段最大长度为64KB)
2、段表
- 组成:段号、段长、基址
- 实现:从逻辑段到物理主存的映射
3、地址变换机构:在系统中设置段表寄存器,用于存放起始地址和段表长度。
4、分页和分段的区别:(相同:都采用离散分配方式)
- 页是信息的物理单位,段是信息的逻辑单位
- 分页是一维空间,分段是二维空间
- 分段更容易信息共享和保护
二、段页式存储管理
1、段页存储管理:结合分段、分页的优点,客服两者的缺点
- 原理:先将用户程序分成若干段,在把每个段分成若干页,并把每个段赋予一个段名。
2、管理方式:(先分锻再分页,1个进程→一个段表,一个段表项→一个页表,一个页表→多个物理块)。
- 段表起始+段号→段表项
- 页表起始+页号→页表项
- 内存块号+页内地址→物理地址
- 如果段表长度>段号→未越界
4、虚拟存储管理
1、虚拟存储器:将一个作业的部分内容装入主存便开始启动运行,其余部分暂时留在磁盘上,需要时再装入,有效地利用主存空间(扩大主存容量)。
2、局部性原理
- 时间局部性:(原因:程序中存在大量循环操作)
- 空间局部性:(原因:程序顺序执行)
3、虚拟存储器的实现(特性:离散性、多次性、对换性、虚拟性)
- 虚拟存储器具有请求调入功能和置换功能,其逻辑容量由主存和外存容量之和以及CPU可寻址的范围决定的。
- 三种实现方式:请求分页系统、请求分段系统、请求段页式系统
4、缺页中断和一般中断的区别:
- 缺页中断在指令周期执行期间产生和处理中断信号。而一般中断是在一条指令执行完,下一条指令开始执行前检查和处理中断信号。
- 发生缺页中断时,返回到被中断指令的开始重新执行该指令。而一般中断是返回到下一条指令执行。
- 一条指令在执行期间是返回到下一条指令执行。
5、页面置换算法:请求分页系统的核心问题是选择合适的置换算法。
- 最佳页面置换算法
- 最近最少使用算法
- 先进先出置换算法
1、 最佳页面置换算法
2、 最近最少使用算法
3、 先进先出置换算法
四、设备管理(⭐⭐⭐)
1、设备管理:(管理I/O操作的设备、设备控制器、I/O处理机等)
- 在计算机系统中,将负责处理管理设备和输入/输出的机构称为I/O系统
- I/O系统的组成:设备、控制器、总线、I/O软件
2、设备分类
- 按数据组织分类:块设备、字符设备
- 按设备的功能分类:输入、输出、存储、网络联网、供电设备
- 按资源分配角度分类:独占、共享、虚拟设备
- 按数据传输速率分类:低速、中速、高速设备
3、CPU硬件架构图
3、管理设备的目标和任务:提高设备利用率,提供方便统一界面
- 任务:保证在多道程序下,当多个进程使用设备时,按一定的策略分配和管理各种设备,控制设备的各种操作,完成I/O设备与主存之间的数据交换。
- 功能:动态掌握并记录设备状态、设备分配和释放、缓冲管理、实现物理I/O设备的操作,提供设备使用的接口,访问和控制、I/O缓冲调度。
4、I/O软件目标:设备独立性和统一性
- I/O设备管理软件一般分为4层(由下至上):中断处理程序、设备驱动程序、设备无关系统软件、用户级软件
5、设备管理采用的相关技术:
1、通道技术:使数据传输独立于CPU,使CPU从繁琐的I/O工作中解脱出来
- 根据信息减缓方式不同,通道分为:字节多路通道、数组选择通道、数组多路通道
2、直接存储访问方式(DMA方式):只需CPU在启动和结束时参与,其余不需CPU干涉,由DMA直接执行完成。
3、缓冲技术:提高外设利用率,尽可能使外设处于忙碌状态(分为:硬件缓存、软件缓存)引入缓存的原因:
- 缓和CPU与I/O设备间速度不匹配的矛盾
- 减少对CPU的中断频率,放宽对中断响应时间的限制
- 提高CPU和I/O设备间的并行性
4、Spooling技术: 缓和CPU高速性与I/O设备低速性的矛盾(脱机输入输出技术)。Spooling技术课可将一台物理I/O设备虚拟为多台逻辑设备,同时允许多个用户共享一台I/O设备(常见为多个电脑共享一台打印机)。Spooling组成:
- 输入井和输出井
- 输入缓存和输出缓存
- 输入进程和输出进程
- 井管理程序
6、单缓冲区——时间=(max(T,C)+M)×n+C
7、双缓冲区——时间=max(T,C+M)×n+M+C
五、文件管理(⭐⭐)
1、文件管理:(目的:管理外存储器上的信息,使用户高效、快捷、方便)
- 文件:以计算机硬件为载体的存储在计算机上的集合
2、文件的逻辑结构:从用户角度看到的文件组织形式。
- 无结构的流式文件:在处理前每个记录长度可知(以字节为单位,没有具体结构)(顺序访问,采用穷举法访问)
- 有结构的记录型文件:长度为定长和不定长两类
3、文件的物理结构:文件在物理存储设备上的存放方法。
- 连续结构(顺序结构):只知道文件起始物理地址块号和文件长度,方便地进行文件存取(顺序表)
- 链式结构(串联结构):只知道文件的第一个物理块号,按链表指针查找整个文件(链表)
- 索引结构:利用索引表,将逻辑上连续的文件信息,存放在不连续的物理上。
(0-9号为直接索引)(10号为一级间接索引)(11号为二级间接索引)(12号为三级间接索引)
①、文件的连续结构
②、文件的链式结构
③、文件的索引结构
4、文件目录:由文件控制块组成,专门用于文件检索
一、文件控制块(FCB):记录了系统文件所需的全部信息
- 基本信息类:文件名、文件物理地址等
- 存取控制信息类:文件的存取权限等
- 使用信息类:有关文件操作信息类、日期类等
二、目录结构:
- 一级目录:(线性结构)优点:结构简单。缺点:查找速度慢,不允许重名,不便于文件共享。
- 二级目录:(文件目录和用户及目录组成)。优点:检索素的快,解决重命名问题。缺点:不便于共享文件。
- 多级目录:(树形目录结构)DOS和UNIX均采用
5、文件属性
一:R(只读文件)A(存档文件)S(系统文件)H(隐藏文件)
- 文件名的组成:驱动器号(盘符)\路径\非文件名
- 绝对路径:从盘符开始的路径
- 相对路径:从当前开始的路径
二:文件存取的方法:读写文件存储器上的一个物理块方法
- 顺序读取、随机读取、按键读取
6、文件存储空间的管理
- 空闲区表:适用于连续文件结构
- 空闲块链法:由空闲物理块构成的一个链表
- 成组连接法:分成若干组,每组100个空闲块,每组的第一个空闲块记录下一组的全部信息(栈结构)。
- 位示图法:建立一张二维位示图,用0和1表示空闲和占有(位示图的大小由磁盘空间的大小决定)。
六、作业管理(⭐⭐)
作业管理:由程序、数据、作业说明书组成(作业是系统为完成一个用户的计算任务所做的工作总和)
1、作业控制
- 脱机控制:无需人工干预
- 联机控制:需要人工干预
2、作业状态及转换
3、作业控制块和作业后备队列
- 作业控制快:(JCB)记录与作业有关的各种信息登记表(作业后备队列由若干个JCB组成)
4、作业调度算法:先来先服务(FCFS)、短作业优先(SJF)、响应比优先(HRN)、优先级调度算法、均衡调度算法
5、性能衡量指标:用平均周转时间或平均带权周转时间衡量
6、用户界面:(用户接口、人机界面)实现用户与计算通信的软件和硬件的总额。