这个是跟着b站视频学了一遍所做的笔记,可供参考,如果也想看视频学习的话不妨就在其中添加一些内容,比自己重新做笔记应该轻松一些。
**
操作系统特征
1、并发性2、共享性:互斥共享 同时共享3、随机性“走走停停” 功能:进程管理、存储管理、文件、设备管理、用户接口 分类: 一、批处理系统 没有交互 自动化 资源利用率高 (作业控制说明书)SPOOLing假脱机技术 将独占设备改造成共享设备 (设备的虚拟分配)可以提高输入输出速度(设备工作时仍然可以提交 )输入井 输出井(磁盘上开辟)输入缓冲区输出缓冲区、输入进程和输出进程
二、分时系统。 交互。时间片轮转 (多路性、交互性、独占性、及时性)
三、实时系统。强调在规定时间内要。。。多路 独立 及时 交互 可靠! 四、嵌入式 精简专用多任务 五、个人计算机操作系统 友好方便 六、网络操作系统 网络管理功能 C/S和对等模式 七、分布式 八、智能卡 网络和分布式:主从关系的有无 共享的程度 协作的有无
结构:整体式(随意的互相调用) 层次式(也将大问题分解) 微内核(C/S)只剩最重要的功能 UNIX系统是多用户分时DOS OS/2 单用户
运行机制
一、CPU:运算器 控制器 访问寄存器最快 用户可见寄存器:数据、地址、条件码寄存器(运算溢出、符号等) 控制和状态寄存器:部分可用OS访问。程序计数器(指令的地址)、指令寄存器、程序状态字 处理器状态包含管态和目态 非特权指令(目态)。特权指令(管态) 引起处理器状态变换 目-管 中断 管-目PSW(修改程序状态字) 高速缓存在CPU和物理内存之间 利用程序局部性原理(将内存中某块数据附近的局部信息都提取到高速缓存里)使得高速指令处理和低速内存访问匹配
二、存储体系 1、层次结构 2、存储保护:界地址寄存器、存储键(键值对应)
三、中断与异常机制 使OS可以捕获用户程序发出的系统调用 处理中断请求 启动指定程序 特点:随机、可恢复、自动处理的 中断可以屏蔽,异常不行。 优处理优先级高的中断。 屏蔽就不中断了 硬件捕获。 软件处理 中断寄存器由若干个中断位组成 中断处理程序存储在中断向量表 根据中断码查找 I/O中断 时钟中断(时)硬件故障中断 程序性中断 系统调用中断
四、系统调用(管态)
五、I/O技术:通道 (I/O处理机)、DMA技术 (在内存和I/O之间!成块!传输数据)、 缓冲技术:单缓冲区、多缓冲区(Cache技术)一级、二级Cache
六、时钟:硬件提供 可分为硬件时钟、软件时钟。 绝对、间隔(相对)时钟(时钟寄存器实现) 源程序、目标代码属于流式文件
进程线程模型: 顺序执行的特征:顺序性、封闭、结果的确定性、结果的可再现性 多道程序系统特点:独立性、随机性、资源共享性 并发的特性:并发程序制约关系、程序与计算不在一一对应、结果不可再现 进程是正在执行的程序,动态、静态。程序是进程的一部分 进程的特性:并发、动态(前两种最基本)、独立、交往、异步性
进程的基本状态及转换:就绪状态(除了cpu外资源都获得了) 运行状态 (多处理器可多个运行状态)。等待状态(出现请求输入输出、申请额外空间等操作从就绪转变为等待) 在以上基础上进行扩展(创建状态,结束状态,挂起:把进程从内存放到外存 相对的 激活状态) 转换:新状态??就绪状态。 就绪状态??执行状态。 执行到阻塞(I/O等等)。执行到就绪(时间片或优先权低)。阻塞到就绪。 执行到终止。 一般没说明都是单处理环境
进程控制快(PCB) 进程:程序、数据、进程控制块 PCB表的组织方式:1、线性方式2、索引方式3、链接方式
进程控制:通过原语:创建、撤销、阻塞、唤醒
fork()函数: 父进程创建子进程,返回两个结果 PID 0 两个进程共享后面的代码
线程:进程的特点导致不能同时太多 限制并发性 将进程只作为资源分配和拥有的基本单位。 线程是进程调度的基本单位 线程之间也可以并发操作 增强并发性 线程可以访问属于进程的资源
线程的实现机制:用户级线程、内核级线程、混合式
Pthread线程包
进程调度
:高级(确定后备队列上那些作业调入内存)、中级(内存中处于等待的进程调至外存)、初级(进程调度 选一个给CPU)
调度算法设计原则:面向用户原则(快),面向系统(吞吐量)
进程、线程调度算法: 1、先来先服务(FCFS)调度算法。有利于长进程 不利于短进程 2、最短作业优先调度算法(SPF)不利于长进程。 降低平均等待时间 提高吞吐量 以上两种为非抢占式的 3、最短剩余时间优先调度算法(SRT) 4、时间片轮转调度算法(RR)适合于交互进程的调度。(或许可以理解为抢占式的) 5、最高优先级调度算符,可以抢占或非抢占。 仲裁规则:随机或先进先出。 静态或动态优先权 优先权由用户或者系统赋予 6、多级反馈队列调度算符(MLF)抢占或非抢占 仲裁规则是轮转或按时间先后 7、实时
并发与同步
相关进程与无关进程 进程互斥:共享资源的占用 进程同步:一个进程的执行以另一个进程的结束 进程互斥:资源共享程度分为三个层次:互斥、死锁、饥饿 临界资源:一段时间内只允许一个进程访问或使用。 进程同步机制应遵循的原则:1空闲让进2忙则等待(保证互斥的访问临界资源)3有限等待4让权等待 (不能进入临界区时要释放处理器)
进程互斥的软件方法:1、单标志算法(让两个进程轮流使用临界资源)2、双标志、先检查算法(可以多次使用临界资源,会出现同时访问临界资源的问题)。又改进 3、双标志、后检查算法(会出现饥饿) 又又改进4、先修改、后检查、后修改者等待算法 进程互斥硬件方法:1、TS指令。 2、Swap指令 以上两种是平等协商方法,下面由操作系统进行管理的方法 信号量:>0可用资源数目 <0被阻塞的进程数目 =0两个都没有 P V操作。 同步问题:几个进程几个信号量。同一对PV操作在不同进程里面 互斥的话按照临界资源数量。 进程中同时出现互斥与同步的P操作,需要先执行同步信号量的P操作(进程可以运行然后申请资源/先都竞争某一种资源,没有申请到第一种的不能申请第二种),V的顺序没有要求 进程的同步问题:生产者-消费者问题
管程:管程名称、共享数据的说明、对该数据进行操作的一组过程、对共享数据设置初始值的语句 (大量PV操作容易出现问题) wait原语:使处于阻塞。 signal原语:唤醒阻塞队列的首进程 特征:模块化、抽象数据类型(数据+代码)、信息屏蔽
进程通信:同步和互斥为低级通信。高级通信(管道通信) 通信方式:共享内存、消息机制(缓冲、信箱)、通过共享文件 管道通信系统用于实现共享文件,首创于UNIX系统 管道通信具有数据传输量大的特点,但缺点是速度较慢
存储管理:(讲的内存)
内存两个区域:系统区、用户区 存储器管理的主要任务:内存的分配和回收、存储共享、存储保护、权限保护 分配和回收的实现方法:1、位视图表示法(那些是空闲的)。2、空闲页面表(那些页是空闲的) 3、空闲块表 分配的方式:静态分配(执行速度快)、动态分配(允许申请额外空间/搬家)
存储共享:代码共享 数据共享 存储保护:1、地址越界保护2、权限保护3、存储键 扩充内存:虚拟存储技术(程序的一部分数据和指令放入内存即可运行)等交互技术
地址转换:逻辑地址转换为物理地址(重定位) 静态重定位:程序装入的时候就全部转化为绝对地址,不能再改变。快 动态重定位:每执行一条指令由硬件的地址转换机将逻辑地址转换为物理地址。 可以移动 逻辑地址+基址寄存器的值
固定分区(多道程序在内存中怎么放的)要求把作业全部装入一个连续的存储空间,一个作业只能装入一个作业,反之亦然;通过对分区分配表的改写(改写分区的状态)实现分配与回收。限制并发执行的作业数量。 另
可变分区 作业要求装入主存的时候动态地划分分区 使大小正合适 分区的大小和数目不固定 空闲表和分配表 分配算法?分区的分配和回收 进程也要全部装入连续存储空间 移动技术:碎片整理 移动会增加系统开销,且正在使用的数据和指令是不能移动的 采用的数据结构:已分分区表、空闲分区表(分区从小到大排序)。 先分配小地址、再大地址 常用的主存分配算法:(先小后大不太好): 1、最先适应分配算法(FF)从前往后找空闲分区表。容易产生主存碎片 地址递增顺序放分区 2、最优适应分配算法(BF)找能满足需求的最小分区 按空间长度递增顺序放分区 也容易产生主 存碎片。 尤其是小碎片。回收的时候开销大 3、最坏适应分配算法(WF)按长度递减的顺序放在空闲表中。影响大作业的分配。碎片少 4、下次分配算法
主存空间的回收:根据回收分区上下有无空闲分区分为四种情况。空闲区-1 上下都有空闲区。。。
覆盖技术:一个程序的若干程序段或几个程序的某个部分共享一个存储空间 交换技术: 页式存储管理:将作业地址分为若干个大小相同的区域,称为页面或页。主存空间分成大小相同的块,称为物理快或叶框。不用连续存放了。逻辑地址由叶号和业内地址组成。先找到块号,再确定物理地址,动态重定位。 全部装入 空间分配与回收:分配:1、数据结构:主存分配表(存页表首地址)、位示图(哪些使用了哪些没有,空闲块个数)、页表(页号对应的块号)。回收对应的 计算块数量的时候一个字节8位二进制
地址转换和块表:页号=长度/页长度;页内地址=长度mod/页长度 物理地址=。。+基址
页表:1、多级页表。2、散列页表。3、反置页表(多个进程共用一个页表)。 快表:对于页表,需要先访问内存中页表得到物理地址,在访问一次内存取数据。降低了速度 可以采用快表/两级页表的方法进行改进,主要说快表 快表存放在高速缓存里面,存放一部分常用的页表,第一次访问 同时找快表和页表。(计算选择题,共两次访问注意)
虚拟存储管理方式:仅装入一部分作业,最大容量与计算机地址线位数有关 2的根数次方的容量 物理容量也称为实际容量(前提最大容量要比你划分的物理容量大)
页式虚拟存储管理:增加了请求调页功能和页面置换功能(内存满了就置换)块数不等于页数 调入策略:(1)请求调页 只调一页(2)预调页 局部性原理。 置页策略:局部性原理 置换策略:1固定分配局部置换 2可变分配全局置换 3可变分配局部置换。可变即分配的块数可变。局部全局的意识:将内存中作业的一页调出去还是从内存空间挑一页调出去
页面置换算法:1、先进先出(FIFO)2、最近最久未使用算法(LRU)局部性原理 利用一个特殊的栈 3、最近最不经常使用算法(LFU)访问次数最少的走 4、理想页面置换算法5、最近未使用页面置换算法(NRU)分为四类按类淘汰 6、第二次机会页面置换算法(先进先出的改进,没被访问过又在队首的调出去) 7、时钟页面置换算法(第二次机会的改进)
段式存储管理方式:页式容易将逻辑上一段的内容分开 不利于信息共享 主程序段MAIN、子程序段X、数据段D、栈段S。 每一段长度不等 是二维的:逻辑地址由段号和段内地址组成
段页式存储管理方式:先分段再分页。先通过段表找到对应的那个页表,再找物理地址
文件管理
分类 操作系统中文件和相关目录的子系统统称为文件系统 文件按用途分类:系统文件、库函数文件、用户文件 按组织形式:普通文件、目录文件、特殊文件 还有保护方式、流向、存取时限、使用的介质类型 按组织结构:逻辑文件;物理文件:顺序、链接、索引文件
UNIX操作系统中文件分类:普通、目录、特殊文件
功能:1空间管理 分配回收 2按名存取 3共享 保护保密措施 4方便的接口 5提供与I/O的统一接口67
逻辑结构:用户直接看到并操作的。选择原则:查找快捷、修改方便、空间紧凑、易于操作
逻辑结构分为两类:有机构的记录式文件、无结构的流式文件
物理结构:外存上的组织结构。文件分配和传输的基本单位式物理块(物理记录)与物理设备有关与逻辑记录大小无关
物理结构的形式:1、顺序结构 逻辑上连续 物理上也连续 文件不能动态增长 分配内存慢 容易产生存储碎片。 可顺序存取/随机存取 2、链接结构 物理块不必连续 每一个块有指针指向下一个块 FAT使用的就是这一结构。只能顺序存取 但改指针实现动态扩充方便。存储碎片得以解决。磁盘磁头移动多,慢 3、索引结构。克服了上述缺点。索引:逻辑块号和物理块号的对应关系。寻道次数和寻道时间不太行。索引占用空间比较多。 管理索引的方式(解决索引太长的问题):1、索引表的链接模式 2、多级索引 I节点:多级索引。最早UNIX。前面几个直接对应物理块。然后一级索引,二级索引
文件的存储介质:1、顺序存储设备:磁带:从当前位置开始读区,物理块通过间隙区分;存取速度和信息密度与带速和间隙有关。容量比较大。 2、随机存储设备:可以存取任意物理块。磁盘。每个盘对应一个磁头。由磁道(同心圆 磁道号)、柱面(与中心距离相同距离的磁道的组合,所有磁头都在同一柱面上)、扇区(每个山区存放等量信息 扇区号)、磁头号(从上到下排序) 磁盘空间位置决定因素:柱面号、磁头号、扇区号。访问时间:寻道时间、延迟时间(旋转时间)、传输时间(数据的读写) 文件存取方式:顺序存储 、随机存储
文件目录:包含多条记录,每条记录为一个文件的文件控制块(FCB)最简单的记录包含文件名和文件的起始地址 目录项:FCB 目录文件:FCB的集合存储在外存 FCB:文件名、文件号、用户名、文件物理位置(对系统重要)、文件长度 文件目录的管理形式:一级目录(起始地址放的是索引表(逻辑块号和物理块号的对应)的位置)不便于实现文件共享,没有不同用户的概念,只适用于PC机单用户系统 二级目录:包含主文件目录(存用户文件目录)、用户文件目录。有用户的差别,适合于共享,可以实现保护和加密,只解决了不同用户(下面解决这个问题)之间同名问题 多级目录:UNIX DOS系统都采用了树型目录结构。主目录下面一级是用户目录。层次清楚,有利于文件的保护 ,解决了重命名问题,检索速度最快 根据路径检索的方法:全路径名(每次都从根目录开始)、相对路径名(从当前目录开始,本来就在内存 速度快) 文件目录的改进:目录项分解法(加快检索速度:先找符号目录项所在物理块,然后直接找到基本目录项):分为符号目录项(包含文件名、文件号)、基本目录项
存储空间的分配和回收:1、位图法2、空闲块表(序号 首空闲块号 空闲块表)适合顺序结构 3、空闲块链表 4、成组链接法
记录:通过关键字唯一标识 记录的成组和分解:逻辑记录的大小由文件决定,块大小根据存储介质特性。为了提高主存利用率引入。成组的时候需要用一下缓冲区
为了确保文件系统的安全性:1、建立副本(容量小)2、定时转储(用于容量较大的文件)3、规定文件的存取权限 文件的存取权限:1、存取控制矩阵 2、二级存取控制(把用户分组)
UNIX访问权限字母与数值的转换
文件保密:防止文件被窃取1、隐藏文件目录 2、设置口令(可靠性差) 3、使用密码(将文件信息翻译成密码形式保存) 文件系统的优化: 1、块高速缓存: 2、合理分配磁盘空间:把可能顺序存取的块放在一起 3、磁盘的驱动调度:服务顺序调整。减少磁头移动 磁盘调度算法:(1)先来先服务FCFS。会使磁头反复移动。移动跨度大 (2)最短寻道时间优先SSTF。经常改变方向,容易出现饥饿现象 (3)扫描算法(SCAN电梯算法):优先当前方向最近的 (4)循环扫描调度算法(C-SCAN):单向循环。会出现黏着现象(小范围移动) 旋转调度算法: RAID可以提高读取速度,实现并行操作。提高备份技术
Windows的FAT文件系统: FAT文件系统一簇为单位进行分配。12/16/32
UNIX文件系统:目录中为每个文件保留了一项,每个目录项包含文件名和I节点号。物理结构是三级目录结构
I/O设备管理:
按设备的使用特性分类:1、存储设备2、I/O设备(键盘 显示器 打印机) 按共享属性:1、独占设备 (打印机 SPooling技术 在外存上开辟输入井输出井 提交后由进程自动控制) 2、共享设备 (磁盘。宏观上多个进程进行访问)3、虚拟设备(虚拟打印机) 按信息组织方式:1、块设备(512B-4KB磁盘 磁带)。2、字符设备(键盘 显示器 打印机) I/O的硬件组成:中央是CPU和主存,通过总线与第二层的接口部分相连,第三层各种外围设备控制器,最外层是外围设备。缓冲放在控制器里面 I/O设备数据传送控制方式: 1、程序直接控制方式(忙——等待 需要控制程序一直检测设备状态) 2、中断控制方式:任何预期或者非预期的时间,CPU暂停处理工作。根据中断码找到相应的中断处理程序代码执行。一次传输的数据还是不多,大量数据时中断多次,也不太行 3、直接存储器存取控制方式(DMA):对输入输出设备的控制由DMA控制器完成,设备和主存可以成批的进行数据交换,不用CPU干涉。CPU告诉控制器怎么做。一块数据中断一次 4、通道控制方式:I/O通道是一种特殊的处理机 通道放在内存中 CPU干预的更少,实现CPU I/O 通道 输入输出设备三者之间的并行操作。适用于大量数据交换 通道分成三种(1)选择通道 每次只允许一个设备传输数据。速度快 (2)字节多路通道。多个子通道轮转使用主通道,适用于低速 (3)数组多路通道。数据成组传输。适合于多个高、中速设备
缓冲技术:1、单缓冲。单向传输2、双缓冲。可双向适合于输入输出速度差不多的时候3、多缓冲。费空间。4、缓冲池。属于系统操作空间 用户只能通过系统调用来使用它们
I/O性能常常称为性能瓶颈:1、缓冲技术。2、异步I/O技术(中断)3、DMA。4、虚拟设备
死锁:
活锁:数据资源释放时间不确定,导致某些事务长时间等待,得不到封锁的机会。(一直把某个资源批给别人,不给他)“相关进程没有阻塞,可被调度,但是没有进展” 得不到资源会到就绪(忙——等待。不放弃CPU 低效的 不停的查看。活锁)或者阻塞状态(主动放弃CPU高效的。饥饿) 死锁的原因:1、竞争资源。2、进程的推进顺序不合理。 产生死锁的必要条件:1、互斥条件(临界资源)2、不剥夺条件 3、请求和保持条件:请求得不到满足我也不释放资源4、循环等待条件
解决死锁的方法: 1、预防死锁:资源分配时加限制条件,会导致资源利用率下降 2、避免死锁:资源分配过程中对资源分配进行管理,限制较小,吞吐量较高。用的最多 3、检测死锁: 4、解除死锁:没有限制。实现难度大 死锁的预防: 破坏‘互斥条件’:让资源不被独占。难度大 破坏‘不剥夺’条件:申请得不到满足,释放已有资源。开销大,会出现多次释放 申请现象 ‘请求和保持’:一次性申请所有资源。有些稍微资源一用但是一直占用 ‘循环等待’:给资源排序赋予资源序号,资源数目最少的方在最前面,从前到后申请资源。申请到这个才能申请后面的不会再出现环路。 以上方法都不方便 死锁的避免:
安全状态和不安全状态:只要存在能顺利执行的资源分配顺序,就是安全状态。进入不安全状态才有可能发生死锁 银行家算法:Dijkstra 和Habermann 拿现有资源和每个进程的尚需资源比较,找到一个可以执行的,新的可用资源为原有+释放的。重复该过程
死锁的检测与解除机制: 死锁的解除:1、剥夺资源法。2、撤销进程法 资源分配图(发现死锁进程):箭头指向边框:我要用一个这种资源。 箭头指向框内某个资源:我要申请这个资源 死锁定理:资源分配图中没有环路,不会出现死锁;出现环路,可能会出现死锁 如果环路中每个资源的数目只有一个,则有死锁。不是只有一个,则可能。 资源分配简化法:不是完全可简化的,则有死锁
|