操作系统架层次结构:硬件之上,应用程序之下(系统软件)
第一章
一、操作系统的功能
系统资源的管理者——安全、高效
处理机管理
存储器管理
文件管理
设备管理
向用户提供服务
用户接口还包括GUI图形界面
对硬件机器的扩展
二、操作系统的特征
并发:计算机系统同时存在多个运行的程序(一段时间内),需要OS管理和调度。并行是同一个时间点(区别)
共享:”同时“访问/互斥共享,系统资源可供内存中多个并发进程共同使用
虚拟:把一个物理上的实体变为若干个逻辑上的对应物(虚拟技术中的空分、时分复用技术)
异步:程序的执行不是一管到底,而是走走停停,速度不可知。但运行环境相同,程序结果也相同
三、操作系统的运行机制和体系结构
操作系统内核
内核时计算机上配置的底层软件,是操作系统最基本最核心的部分
微内核:时钟管理、中断处理、原语(结构清晰、方便维护但效率低)
大内核:进程管理、处理器管理、内存管理(性能高但结构混乱、难以维护)
四、中断和异常
中断机制实现了多道程序并发执行
本质:发生中断就需要操作系统介入,开展管理工作。(中断可以使CPU从用户态切换为核心态)
中断分为内中断(与当前执行指令有关)和外中断(与当前执行指令无关)
内中断分为自愿中断和强迫中断
外中断分为外设请求和人工干预
对于外部中断信号的处理:
在每个指令执行完时,都需要检查是否有外部中断信号
若检测到了,需要先保护被中断进程的CPU环境
根据中断信号类型转入相应的中断处理程序
恢复环境,退出中断,返回原进程
五、系统调用
按功能分类(在核心态下进行):
设备管理
文件管理
进程管理
进程通信
内存管理
系统调用和库函数的区别:有的库函数会涉及系统调用,有的不涉及
第二章
一、进程的定义、组成、组织方式、特征
定义:进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位,由程序段、数据段和PCB组成,PCB是进程存在的唯一标志。
组织:链接方式、索引方式
特征:动态性、并发性、独立性、异步性、结构性
二、进程的状态和转换
五种进程的状态:
进程状态的转换:
三、进程控制
进程控制就是实现进程状态的转换
用原语实现进程控制,原语的特点是执行期间不允许中断(开关中断指令是特权指令)
四、进程通信
共享存储:使用共享空间来实现通信(互斥访问)
1. 基于数据结构的共享
2. 基于存储区的共享(高级通信)
管道通信:
管道采用半双工通信(互斥访问),没有写满就不允许读,没读空就不允许写
消息传递:类似于计算机网络的报文,直接通信和间接通信(信箱通信方式)
五、线程概念和多线程模型
线程是基本的CPU执行单元,是程序执行流的最小单位
用户级线程:所有的线程管理工作由应用程序负责
内核级线程(处理机分配的单位):线程管理工作由操作系统内核完成
多线程模型(用户级线程映射到内核级线程):多对一(并发度低)、一对一(开销大)、多对多
六、处理机的调度
七、进程调度的时机、切换与过程、方式
进程切换:
对原来运行进程各种数据的保存
对新的进程各种数据的恢复
进程的切换是有代价的,频繁进行进程调度、切换会导致效率降低。
八、调度算法评价指标
**1.CPU利用率 **
利用率 = (忙碌时间/总时间)
2. 系统吞吐量
系统吞吐量 = (总共完成了多少道作业/总共花的时间)
3. 周转时间
从作业被提交给系统开始到作业完成为止所花费的时间
平均周转时间:周转时间之和/作业数
带权周转时间:作业周转时间/作业实际运行时间,同理也有平均带权周转时间
4. 等待时间
处于等待处理及状态时间之和
5. 响应时间
用户提交请求到首次产生响应所用的时间
九、FCFS SJF HRRN调度算法(交互性糟糕)
1. 先来先服务(FCFS)
按照作业/进程到大的而先后顺序进行服务
2. 短作业优先(SJF)
最短的作业/进程优先得到服务,有抢占式和非抢占式(默认)两种
3. 高响应比优先(HRRN)
计算响应比,(等待时间+要求服务时间)/要求服务时间
十、时间片轮转、优先级调度、多级反馈队列(适用于交互式系统)
1. 时间片轮转
如果时间片太大,算法会退化为FCFS,时间片太小,频繁切换会降低效率
2. 优先级调度
3. 多级反馈队列
十一、进程同步、进程互斥
十二、进程互斥的软件实现方法
1. 单标志法
违背了空闲让进的原则
2. 双标志先检查法
违背了忙则等待原则
3. 双标志后检查法
违背了空闲让进和有限等待原则
4. peterson算法
十三、进程互斥的硬件实现方法
1. 中断屏蔽方法
** 2. TestAndSet指令**
3. Swap指令
十五、 信号量机制
用一个整型信号量,用来标识系统中某种资源的数量(不满足让权等待原则)。
记录型信号量:一个记录型数据结构表示
十六、用信号量实现进程互斥、同步、前驱关系
互斥信号量初始化为1 , 同步信号量初始化为0
十七、生产者-消费者问题(互斥、同步的综合问题)
** 实现互斥的P操作,一定要在实现同步的P操作之后(引发死锁)**
V操作的顺序不会造成进程阻塞
十八、多生产者-多消费者
缓冲区大小大于1时,需要设置互斥信号量来实现互斥访问缓冲区。
十九、吸烟者问题
二十、读者-写者问题
上述算法由于源源不断的读进程会导致写操作等待时间过久,饿死的问题。
使用count计数器,来判断进程是否是第一个和最后一个读进程,从而做出不同的处理,再通过互斥信号量来实现代码执行一气呵成的问题。
二十一、哲学家进餐问题
二十二、管程
由于信号量机制的编写困难,容易出错
二十三、死锁
死锁的概念:并发环境下,各进程互相等待对方手里的资源,导致各进程都阻塞,无法向前推进。
死锁产生的必要条件:
互斥条件:只有对必须互斥使用的资源争抢,才会导致死锁。
不剥夺条件: 进程获得资源未使用完前,不能被其他进程强行夺走,只能主动释放。
请求和保持条件:进程已经保持了至少一个资源,有提出了新的资源请求,进程阻塞,又对已有资源不放。
循环等待条件:存在一个进程资源的循环等待链。
什么时候会发生死锁:
死锁的处理策略:
预防死锁(静态策略):
破坏互斥条件:使用SPOOLing技术将独占设备在逻辑上改造成共享设备。
破坏不剥夺条件:处理机资源强行剥夺给优先级更高的进程(适用于易保存和恢复状态的资源)。
破坏请求和保持条件:使用静态分配,运行前一次申请完所需所有资源。
4.. 破坏循环等待条件:顺序资源分配法,给资源编号,进程必须编号递增的顺序请求资源。
避免死锁(动态策略):
处于不安全状态有可能会发生死锁。使用银行家算法来预判此次分配是否会防止系统进行不安全状态。
** 死锁的检测和解除:**
二十四、内存的基础知识
内存是存放数据(快速)的硬件,程序执行前需要先放到内存中才能被CPU处理。
三种连接模式(形成完整的逻辑地址):
三种装入方式(形成物理地址):
绝对装入(适用于单道程序环境):
静态重定位:
动态重定位(现在使用):
二十五、内存管理的概念
二十六、覆盖与交换
覆盖技术(程序大小超过物理内存总和):
** 交换技术:**
注意:PCB不会被换出外存
二十七、连续分配管理方式(内存空间的分配与回收)
连续分配:系统为进程分配的内存必须连续。
单一连续分配:
** 固定分区分配:**
动态分区分配:
对于分区的分配和回收需要需要对分区表或者分区链进行改变。
可以通过紧凑技术来解决外部碎片。
二十八、动态分区分配算法
首次适应算法
最佳适应算法
但这种分配方式会产生很多的外部碎片。
最坏适应算法
** 邻近适应算法**
二十九、基本分页存储管理的基本概念
三十、基本地址变换机构
三十一、具有快表的地址变换机构
三十二、二级页表
三十三、基本分段存储管理
分段、分页管理的对比:
分段比分页更容易实现信息的共享和保护(页面不是按照逻辑模块划分)。
三十四、段页式管理方式
分页 、分段管理的优缺点:
段页式管理结构
三十五、虚拟内存的基本概念
传统存储管理方式的特征、缺点:
虚拟内存的定义和特征:
** 请求分页管理方式:**
页面置换算法:
最佳置换算法(OPT)——淘汰以后永不使用的页面,或者再最长时间内不被访问的页面。
先进先出置换算法(FIFO):淘汰最早进入内存的页面。(实现简单,算法性能差)
最近最久未使用置换算法(LRU):逆向扫面,淘汰最久未使用的页面。
缺点:需要专门的硬件支持,实现困难,开销大。
时钟置换算法(CLOCK):
页面分配策略:
第四章
一、文件的逻辑结构
无结构文件:由一系列二进制流或字符流组成。
有结构文件:由一组相似记录组成,每条记录由若干数据项组成,
顺序文件
索引文件
** 索引顺序文件**
** 多级索引顺序文件**
二、文件目录
三、文件的物理结构(文件分配方式)
文件的数据应该怎样存在外存中??
连续分配
要求每个文件在磁盘上占有一组连续的块。
支持顺序访问和直接访问(随机访问)。
连续分配的文件在顺序读写时,速度最快。
物理上采用连续分配的文件不方便扩展,并且连续分配存储空间利用率低,会产生难以利用的磁盘碎片。
链接分配—隐式链接
但方便文件拓展,且不会产生磁盘碎片。
链接分配—显式链接
通过文件分配表来表示磁盘块的链接(文件分配表需要占用一定存储空间)
索引分配
** 链接方案**
多层索引
混合索引
四、文件存储空间管理
空闲表法(适用于连续分配)
** 空闲链表法**
位示图法
成组链接法(UNIX)
五、文件的基本操作
六、文件共享
让多个用户共享使用同一个文件。
基于索引结点的共享(硬链接)
** 基于符号链的共享(软链接)— 访问速度比硬链接慢**
七、 文件保护(口令保护、加密保护、访问控制)
** 八、文件系统的层次结构**
九、磁盘的结构
磁盘表面由一些磁性物质组成,用磁性物质来记录二进制数据。
十、磁盘调度算法
一次磁盘读写需要的时间:
操作系统的磁盘调度算法是为了优化寻道时间。
先来先服务算法(FCFS)— 根据请求访问磁盘的先后顺序进行调度
最短寻找时间优先(SSTF)— 优先处理的磁道是与当前磁头最近的磁道
扫描算法(SCAN)— 只能到最外侧才能往内移动,移动要最内侧再往外移动
LOOK调度算法 — 在SCAN算法基础上,加了一个观察,如果移动方向没有请求,就掉头
循环扫描算法(C-SCAN)— 在SCAN算法基础上,返回时直接快速移动到起始端而不处理任何事
还有C-LOOK算法同C-SCAN在SCAN上的改进,不过多介绍。
十一、减少磁盘延迟时间的方法
将目标扇区转到磁头下方的时间
十二、磁盘的管理
第五章
一、I/O 控制器
CPU和I/O设备机械部件之间的“中介”
二、I/O 控制方式
程序直接控制方式
采用轮询的方式不断检查状态寄存器状态,CPU干预频率高,每次读/写一个字。
中断驱动方式
DMA方式
数据传送单位为块
数据的流向可以直接从设备到内存,内存到设备
仅在传送一个或多个块开始和结束时,才需要cpu干预
通道控制方式
总结
二、I/O 软件层次结构
三、I/O 核心子系统
在I/O 软件层次结构中,红色的三个结构为I/O 核心子系统
假脱机技术
脱机— 脱离主机的控制进行的输入/输出操作
**设备的分配与回收 **
设备的分配:
安全分配方式 —— 为进程分配一个设备后会被阻塞
不安全分配方式 —— 分配设备后不会被阻塞
静态分配 —— 进程运行前为其分配全部所需资源,运行结束后归还资源
动态分配 —— 进程运行过程中动态申请资源
缓冲区管理
缓冲区的作用
缓和CPU和I/O 设备之间的速度不匹配问题
减少CPU的中断频率
解决数据粒度不匹配问题
提高CPU和I/O 设备间的并行性
版权归原作者 逮到647了 所有, 如有侵权,请联系我们删除。