操作系统概述
操作系统
概念:操作系统是指控制和管理理整个计算机系统的硬件和软件资源,并合理理组织和调度计算机的⼯工作和资源分配,是最基本的系统软件。
特征:并发、共享(两个最基本的特征)、虚拟、异步。
并发:指同⼀一时间间隔内发⽣生,区别于并⾏行行。微观上分时地交替执⾏行行。 功能:是计算机系统资源(处理理机、存储器器、⽂文件、设备)的管理理者
⽤用户与计算机硬件系统之间的接⼝口:
①命令接⼝口(允许⽤用户直接使⽤用)(1)联机(交互式)命令接⼝口(适⽤用于分时or实时)
(2)脱机(批处理理)命令接⼝口
②程序接⼝口(=系统调⽤用命令)
③GUI(图形接⼝口调⽤用系统命令)
注:在多道程序环境下,处理理机的分配和运⾏行行都以进程(或线程)为单位。系统调⽤用是由操作系统提供给⽤用户的,它只能通过⽤用户程序间接使⽤用。
操作系统的发展:批处理—>分时—>实时—>网络和分布式
①批处理理(缺点:没有交互能⼒力力)
单道批处理理—>顺序性(CPU⼤大量量时间在空闲等待I/O) 多道批处理理(失去封闭性)—> 制约性、间断性、共享性特点:多道、宏观上并⾏行行,微观上串串⾏行行。
②分时系统:(以时间⽚片为单位)允许多个⽤用户以交互的⽅方式使⽤用计算机 特点:同时性、交互性、独⽴立性、及时性
分时系统能较快、及时接收并处理理命令,快速响应⽤用户。
(通常采⽤用优先级+⾮非抢占式调度算法)
分时系统中,时间⽚片⼀一定时,⽤用户数越多,响应时间越⻓长。
③实时系统:在某个时间限制内完成某些紧急任务⽽而不不需时间⽚片排队特点:及时性、可靠性
(通常采⽤用抢占式优先级⾼高者优先算法)
④⽹网络(⽹网络资源共享)和分布式:区别是在分布式中,若⼲干计算机相互协同完成同⼀一任务
系统调用(运行在核心态)(涉及设备、文件、进程、内存)
⽤用户程序凡是与资源有关的操作(存储分配、I/O、管理理⽂文件)都必须通过系统调⽤用。
过程:传递系统调⽤用参数—>执⾏行行陷⼊入(trap)指令(⽤用户态)—>执⾏行行系统调⽤用相应服务程 序(核⼼心态)—>返回⽤用户程序
系统调⽤用功能是操作系统向⽤用户程序提供的接⼝口注:系统调⽤用是⼀一种特殊公共⼦子程序
陷⼊入指令是唯⼀一⼀一个只能在⽤用户态执⾏行行,⽽而不不可在核⼼心态执⾏行行的指令。
⼴广义指令:也就是系统调⽤用命令(可能在⽤用户态调⽤用,但处理理必须在核⼼心态)
⽤用户程序(⽤用户⾃自编or系统外层应⽤用程序)⼯工作在⽤用户态;内核程序⼯工作在核⼼心态。 特权指令:只能在核⼼心态运⾏行行的指令
如:I/O指令、置中断指令、存取⽤用户内存保护的寄存器器、送程序状态字(可区分⽬目态、管 态)到程序状态字寄存器器。(包括系统调⽤用类、时钟类、中断和原语指令,清内存、分配系统资源、修改虚拟存储⾥里里的⻚页表段表、修改⽤用户访问权限等)
中断和异常:引入中断技术的初衷是提高多道程序运行环境中CPU的利用率
中断的分类:①内中断(异常、例例外、陷⼊入trap)(不不可被屏蔽!)
⾃自愿中断—指令中断:访管指令(只能⽤用户态使⽤用) 强迫中断—硬件故障(缺⻚页)
—软件中断(⾮非法操作码、地址越界、算数溢出、虚存系统缺⻚页以及
专⻔门的陷⼊入)
②外中断(强迫中断)
外设请求:I/O结束、时钟中断
⼈人的⼲干预:⽤用户按ESC or 退出键注:区分内/外中断看信号来源:CPU内部/外部。
访管中断:⽤用户程序在⽤用户态下要使⽤用特权指令(由访管中断引起)引起的中断。
⽤用户程序需要输⼊入/输出时(I/O),调⽤用OS提供的接⼝口,此时引起访管中断。 所有中断都是在核⼼心态下执⾏行行的!(进程切换、对资源的释放)
⽤用户态(发⽣生中断 or 异常)—>核⼼心态 (通过硬件、系统调⽤用、访管指令实现) 核⼼心态(使⽤用特权指令)—>⽤用户态 (通过中断返回指令)
注:中断系统(OS必需)和地址映射需要硬件⽀支持,进程调度不不需要。
原语
处于最底层;不不可分割的指令序列列;运⾏行行时间短,调⽤用频繁
PV操作是⼀一种低级的进程通信语⾔言,由两个不不可中断的过程组成,并⾮非系统调⽤用。
体系结构:
⼤大内核(⾼高性能;结构混乱)、微内核(内核功能少;在⽤用户态、核⼼心态之间切换频繁,性能低;结构清晰;添加系统服务时不不必修改内核;使系统更更可靠)
Chapter Two 进程管理理
进程概念:
进程(动态)是资源分配的⼀一个独⽴立单位。程序:静态
进程的特征:动态性(最基本)、并发性(重要特征)、独⽴立性、异步性、结构性(进程实 体(进程映像)由程序段、数据段、PCB三部分组成)
注:进程的组织(结构性):PCB、程序段(多个进程可运⾏行行同⼀一程序)、数据段
PCB是进程存在的唯⼀一标志。主要包括了了:进程描述信息(ID)、进程控制(优先级)和管理理信息、资源分配和处理理机相关(不不重要)。
⼆二进制代码和常量量放在正⽂文段;动态分配的存储区在数据堆段;临时⽤用的变量量在数据栈段。
进程的状态:运行、就绪、阻塞、创建、结束
运⾏行行—>阻塞(等待)主动阻塞阻塞—>就绪 被动唤醒
注:在可剥夺OS中,当有更更⾼高优先级的进程就绪时,调度程序将正在执⾏行行的进程—>就绪态,让更更⾼高优先级的执⾏行行。
就绪态:进程已处于准备运⾏行行的状态(只缺CPU了了!)
进程切换:(区别于调度!切换是执⾏行行⾏行行为,⽽而调度是决策⾏行行为):时间⽚片⽤用完、主动放弃 处理理机、被更更⾼高优先级的进程剥夺
注:进程切换的过程包括更更新PCB信息
引起创建进程的操作:终端⽤用户登录系统、作业调度、系统提供服务、⽤用户程序的应⽤用请求
注:⽤用户进程被创建后,随着运⾏行行的正常或不不正常结束⽽而撤销。(进程是有⼀一定⽣生命周期 的!)
进程的终⽌止:①异常结束:存储区越界、保护错、⾮非法指令、特权指令错、I/O故障 ②正常结束:任务已完成 ③外界⼲干预(⼈人为、OS⼲干预、⽗父进程的请求or终⽌止)
阻塞(等待资源):请求资源失败、等待某操作的完成、数据未到达、⽆无事可做等唤醒(资源到达):I/O操作已完成 or 数据已到,调⽤用唤醒原语
进程的通信
⼀一个进程不不能直接访问另⼀一个进程的地址空间
①共享存储(互斥访问):低级⽅方式:基于数据结构的共享;⾼高级⽅方式:基于存储区
②消息传递:直接通信⽅方式:接收进程从消息队列列中取得消息;间接通信⽅方式:将消息挂到某个中间实体(邮箱)
③管道通信:利利⽤用⼀一种特殊的pipe⽂文件连接两个进程。
管道只能采⽤用半双⼯工通信,某⼀一时间段内只能实现单向传输。如果要实现双向同时通信,则需 设置两个管道。(原理理:Chapter 5缓冲区)
注:从管道读数据是⼀一次性操作,数据⼀一旦被读取,它就从管道中被抛弃
线程
线程的引⼊入:减⼩小程序的时空开销,提⾼高程序并发执⾏行行的程度,提⾼高系统效率
线程是程序执⾏行行的最⼩小单元,并不不拥有任何系统资源(进程才有),是独⽴立调度的基本单 位。
同⼀一进程中,线程的切换不不会引起进程的切换;切换到另⼀一进程中的线程才会切换。同⼀一进程或者不不同进程内的线程都可以并发执⾏行行。
⽤用户级线程:所有⼯工作都由应⽤用程序完成,⽆无需内核⼲干涉。
多线程模型:多对⼀一模型:缺点—>⼀一个线程阻塞会导致整个进程都被阻塞 注:线程包含CPU现场,可以独⽴立执⾏行行程序。
只有内核级线程才是处理理机分配的单位!
CPU调度
①作业调度(⾼高级DD):内存与辅存(外存)之间的DD;对于每个进程只调⼊入/调出⼀一次。 调⼊入建⽴立PCB,调出才撤销PCB。
②内存DD(中级DD):将暂时不不运⾏行行的进程调⾄至外存等待。引⼊入中级DD为了了提⾼高内存利利
⽤用率和吞吐量量(调到外存等待的进程状态为挂起态)
③进程DD(低级DD):内存—>CPU,是OS中最基本的⼀一种DD;⼀一般OS中必须配置,使
⽤用频率很⾼高。
带权周转时间=作业周转T/作业实际运⾏行行T 不不能进⾏行行进程调度/切换的情况:
①处理理中断过程中
②进程在OS内核程序临界区—>需要独占式访问共享资源(不不能进⾏行行进程DD但还是能进⾏行行
CPU调度!前提:不不能破坏临界资源使⽤用规则)
③需要完全屏蔽中断的原⼦子操作(不不可分割!连中断都要屏蔽,DD更更别说了了)
(如:加锁、解锁、中断现场保护/恢复) 应该进⾏行行进程调度/切换的情况:
①发⽣生引起DD的条件且当前进程⽆无法继续执⾏行行下去(⾮非剥夺⽅方式)
②中断or trap处理理结束后,返回被中断进程的⽤用户态程序执⾏行行现场前,可以⻢马上进⾏行行DD与切换。(剥夺⽅方式)
调度方式:剥夺式(抢占)、非剥夺式(非抢占)
剥夺式:当某个更更紧急的进程要CPU时,⽴立即暂停正在执⾏行行的进程,先分给更更紧急的。(必 须遵循⼀一定规则,如:优先权、SJF or 时间⽚片)
优点:提⾼高系统吞吐率和响应效率
⾮非剥夺式:⼀一旦CPU分配给⼀一个进程,该进程保持CPU直到终⽌ 止 or 转换到等待态。特点:实现简单、系统开销⼩小;适⽤用于批处理理,不不能⽤用于分时 or 实时!
调度算法:
FCFS、SJF、优先级DD、⾼高响应⽐比优先、时间⽚片轮转、多级反馈队列列DD。
FCFS:属于不不可剥夺算法!
特点:算法简单;有利利于CPU繁忙型作业,不不利利于I/O繁忙型作业。
SJF:会产⽣生饥饿现象,是调度策略略问题。(默认”⾮非抢占”,也有抢占式) 特点:平均等待时间、平均周转时间最少!
优先级DD:①静态优先级:优先级在创建进程时确定,整个运⾏行行期间不不变
②动态优先级:随着进程执⾏行行时间增加,其优先权下降。
⾼高响应⽐比优先:Rp=(waitT+ServeT)/ServeT
时间⽚片轮转(队列列的思想):主要适⽤用于分时系统;绝对可抢占;时间⽚片过⼤大时,相当于
FCFS
注:I/O型作业优先权⾼高于计算型作业!I/O作业要及时完成,⽆无法⻓长期保存输⼊入/输出的数据。
处理理机DD算法不不影响作业执⾏行行或输⼊入/输出操作的时间,只影响作业在就绪队列列中等待所花的时间。(即DD算法优劣只需考虑等待时间)
进程同步
临界资源(独占资源):⼀一次仅允许⼀一个进程访问使⽤用的资源
(如:打印机、共享变量量、共享缓冲区、公⽤用队列列)
共享资源:磁盘存储介质、可重⼊入代码(⼀一次可供多个进程使⽤用,不不允许任何修改的代码—
>共享程序)
临界区:进程中访问临界资源的那段代码
注:进程处于临界区时,不不能进⾏行行进程DD,但是能进⾏行行处理理机/CPU调度!但要不不能破坏临界资源使⽤用规则
同步机制遵循的原则:①空闲让进②忙则等待③有限等待④让权等待
④:当进程不不能进⼊入临界区时,应释放处理理器器
实现临界资源互斥的基本方法:(以下都不满足”让权等待”!)
软件:①单标志法(只能按顺序进⼊入)②双标志法(同时进⼊入临界区)③双标后检测(可能造成饥饿)④Peterson’s 算法(双重,主动谦让,将”钥匙”送给对⽅方,最终只有⼀一个可通过)P73⽅方四⾏行行代码
硬件:TestAndSet(原⼦子操作) or Swap(简单了了解) 特点:实现简单;适⽤用于多处理理机;不不满⾜足”让权等待”
信号量
①整型信号量量:表示资源数量量 (不不满⾜足”让权等待”)
②记录型信号量量:s.value<0时(=0也不不算是等待!),|s.value|代表链表中已被阻塞的该信号进程的数⽬目(即等待进⼊入临界区的)遵循了了”让权等待”原则
信号量机制实现同步与互斥
①互斥:设置互斥信号量量mutex,初值为1。semaphore mutex=1;
②同步:必须保证”⼀一前⼀一后”(前V后P)执⾏行行的操作。设置同步信号量量S,初值为0。 注:同步:要为每⼀一对前驱关系各设置⼀一个信号量量。
P、V操作必须成对出现
题 型 :① 生 产 者 消 费 者 :semaphore mutex = 1; //互斥信号量
semaphore empty = n; //同步信号量,空闲缓冲区的数量
semaphore full = 0; //同步信号量,产品的数量(非空缓冲区的数量)
多生产者多消费者:P081吃苹果吃橘子
②吸烟者问题:P085
semaphore mutex = 1; //(桌子)互斥信号量—>但是此题不需要!semaphore offer1 = 0; //同步互斥量,桌子上组合1的数量semaphore finish = 0; //表示抽烟完成的信号
int i = 0; //对i取余然后V(offer),用于实现”轮流”抽烟(根据题目要求)
③读者写者:P082(读写公平法略繁)
semaphore mutex = 1; //对count==0时进行保护,实现第一个读者和第二个一起semaphore rw = 1; //保证读者写者互斥访问文件
int count = 0; //读进程的数量
④哲学家进餐
死锁
定义:多个进程因竞争资源⽽而造成的互相等待
原因:①竞争系统资源(不不可剥夺资源);独占资源分配不不当
②进程推进顺序⾮非法;请求和释放资源的顺序不不当 or 信号量量使⽤用不不当
死锁的必要条件:互斥;不不剥夺;请求和保持;循环等待(任⼀一条件不不满⾜足时则不不发⽣生死锁)
不不剥夺:未使⽤用完之前不不能被其他进程强⾏行行夺⾛走,只能是主动释放!
请求和保持:保持资源时⼜又请求被其他进程占有的资源,对已获得的资源保持不不放。
死锁的处理策略:
①死锁预防(通过设⽴立限制条件,破坏四个必要条件,但互斥⽆无法破坏,超级少⻅见!)
SPOOLing技术:把互斥资源改造为允许共享使⽤用
包括:采⽤用静态分配法,⼀一次申请完全部资源;采⽤用顺序资源分配法,按编号…
②死锁避免:在资源动态分配过程中,⽤用⼀一些算法防⽌止系统进⼊入不不安全状态。包括:银⾏行行家算法(Max、Allocation、Need、Available)
③死锁检测:资源分配图(当不不可完全化简时为死锁状态);死锁定理理
④死锁解除:①资源剥夺法(被动)②撤销进程 ③进程回退法(主动释放)
注:出现环路路不不⼀一定都会导致死锁。
死锁and饥饿(不不安全状态):都是由资源分配策略略不不当引起死锁发⽣生进程数>=2(互相等待)
饥饿不不⼀一定是死锁,但是⾄至少⼀一个进程被⽆无限期推迟。
Chapter Three 内存管理理
内存是用于存放数据的硬件。程序执行前需要先放到内存中才能被CPU处理。
内存管理:更好地支持多道程序并发执行,提升系统性能,通过虚拟技术从逻辑上扩充内存
注:1字节=2字
程序执行过程:编译、链接、装入
链接(链接时形成逻辑地址):
①静态链接:将各⽬目标模块及库函数连城⼀一个完整可执⾏行行程序,以后不不再拆开
②装⼊入时动态链接:边装⼊入,边链接(早期多道批处理理)
③运⾏行行时动态链接:需要⽤用到时才链接(现代操作系统)
装入:(将逻辑地址转换为物理地址)
①绝对装⼊入:编译时产⽣生绝对地址。程序中逻辑地址与实际内存地址完全相同;只适⽤用于单 道程序环境
②可重定位装⼊入(静态重定位):地址变换通常在装⼊入时⼀一次完成特点:⼀一个作业进⼊入内存,必须分配其要求的全部内存空间。
在运⾏行行期间就不不能再移动位置。没有⾜足够内存时,不不能装⼊入作业!装⼊入时把逻辑地址变换为物理理地址,装⼊入后不不能改变。
③动态运⾏行行时装⼊入:不不⽴立即转换地址,真正要执⾏行行时才进⾏行行(需要重定位寄存器器⽀支持) 特点:动态重定位在作业执⾏行行过程中进⾏行行。
程序运⾏行行前只装⼊入部分代码即可运⾏行行。
运⾏行行期间动态申请分配内存,便便于程序段的共享。
地址重定位(地址映射)
逻辑地址(⼜又称相对/虚地址)—>物理理地址(内存、绝对、实地址) 注:物理理地址可以直接寻址;不不能直接⽤用逻辑地址在内存中读取信息!不不同进程可以有相同的逻辑地址,但是会映射倒不不同的主存位置上。关系图(略略)P142
重定位寄存器器(⽤用来”+”的,⽤用来算物理理地址)整个系统仅设置⼀一个!界地址寄存器器(⽤用来”⽐比”,判断有⽆无越界的)
覆盖与交换——解决空间不足的问题,但并非物理上扩充,是从逻辑上扩覆盖:特点是打破了了必须将⼀一个进程的全部信息装⼊入主存后才能运⾏行行的限制。(对⽤用户不不透明,已成历史)
内存中能够更更新的地⽅方只有覆盖区的段,不不在覆盖区的段会常驻内存。
交换:把处于等待状态(或在CPU调度原则下被剥夺运⾏行行权利利)的程序从内存移到外存(对 应进程的中级调度),把内存空间腾出来。
注:交换技术主要在不不同进程(或作业)之间进⾏行行,⽽而覆盖技术则⽤用于同⼀一进程(或作业)。
连续分配——一个用户程序分配一个连续的内存空间
①单⼀一连续分配:⽆无需内存保护(内存中只有⼀一道程序,肯定不不会访问越界⼲干扰其他程 序);实现简单;⽆无外部碎⽚片;可采⽤用覆盖技术
注:换⽽而⾔言之,多进程要保证彼此互不不⼲干扰,OS需要通过内存保护来实现。 缺点:只适⽤用于单⽤用户、单任务的OS中;有内部碎⽚片;存储器器利利⽤用率低
②固定分区分配:最简单的⼀一种多道程序存储管理理⽅方式,有内部碎⽚片。
③动态分区分配:在装⼊入时,根据进程的⼤大⼩小动态建⽴立。产⽣生外部碎⽚片。 注:
内部碎⽚片:分区⼤大⼩小固定,程序⼩小于固定分区时也占⽤用⼀一个分区,内部浪费
外部碎⽚片:在所有分区外的存储空间会变成越来越多的碎⽚片(可以⽤用拼接、紧凑技术解决, 需要动态重定位寄存器器⽀支持)
分配算法:
①⾸首次适应:空闲分区以地址递增的次序链接,找⼤大⼩小满⾜足要求的第⼀一个分区
②最佳适应:XX按容量量递增XX
③最坏适应:XX按容量量递减XX
④邻近适应:循环⾸首次适应算法,分配内存时,从上次查找结束的位置开始继续查找。注:⾸首次适应(First fit)是最简单,最好,最快的。
最佳适应(Best fit)性能通常很差,产⽣生最多外部碎⽚片。分区分配内存管理理⽅方式的主要保护措施是:界地址保护编址空间⼤大⼩小取决于硬件的访存能⼒力力
非连续分配(离散)—一个程序分散地装入不相邻的内存分区
分⻚页存储:有内部碎⽚片;基地址变换由硬件⾃自动完成
基地址变换机构 ①有快表(⾼高速缓冲寄存器器)TLB ②⽆无快表
⻚页表:由⻚页表项组成。
⻚页表项:⻚页号P+物理理内存中的块号逻辑地址结构:⻚页号P+⻚页内偏移
⻚页表⻓长度:指的是这个⻚页表中总共有⼏几个⻚页表项,即总共⼏几个
⻚页;
⻚页表项⻓长度:每个⻚页表项占多⼤大的存储空间;⻚页⾯面⼤大⼩小:⼀一个
⻚页⾯面占多⼤大存储空间。
物理理地址=物理理内存中的块号+⻚页内偏移(理理解:P148便便利利贴) 注:OS对内存采⽤用⻚页式存储管理理时,所划分的⻚页⾯面⼤大⼩小必须相同。
若⻚页表全部放在内存中,则存取⼀一个数据或⼀一条指令⾄至少要两次访问内存。(若在快表中找到,则仅需⼀一次)—>涉及题型:快表命中率
快表的有效性基于局部性原理理。多级⻚页表:如N级⻚页表需访问N+1次
⻚页表管理理中,地址空间是⼀一维的;段式XX是⼆二维的。
分⻚页管理理⽅方式—>主要⽅方便便操作系统。通过硬件机制实现,提⾼高内存的利利⽤用率,提升性能, 对⽤用户透明
分段存储:有外部碎⽚片
分段管理理⽅方式—>考虑⽤用户和程序员。⽅方便便编程、信息保护和共享、利利于动态增⻓长和动态链接
地址空间要求段内连续,段间不不做要求。 注:内存保护需要由OS与硬件机构合作完成
段⻚页式管理理⽅方式:有内部碎⽚片。P154地址变换机构
⽤用分段的⽅方式来分配和管理理⽤用户地址空间;⽤用分⻚页的⽅方式来管理理物理理存储空间。 在进⾏行行地址变换时,进⾏行行⼀一次访问实际需要三次访问主存。有快表则两次。
在⼀一个进程中,段表只有⼀一个,⽽而⻚页表可能有多个。
虚拟内存管理—>从逻辑上扩充内存(只能基于非连续分配技术)
属于⾼高速缓存技术,基于局部性原理理。(即不不必装⼊入全部程序)
装⼊入时,只需装⼀一部分,其余留留在外存就可以启动;执⾏行行时,当访问的信息不不在内存,则⽤用
OS将其调⼊入内存,将暂时不不⽤用的换出⾄至外存(内<—>外)
局部性原理理:时间局部性、空间局部性(理理解)
注:虚拟存储器器的⼤大⼩小由计算机的地址结构决定(CPU地址线数),并⾮非简单的内外存相加。容量量与主存的实际⼤大⼩小没直接关系,由主存和辅存(硬盘)的容量量之和所确定。
在虚存的⻚页表项中,合法位决定是否会发⽣生缺⻚页故障。
虚拟存储器三大特征:多次性、对换性、虚拟性
请求分⻚页管理理⽅方式:虚拟存储器器的实现,⽬目前最常⽤用 组成:①⻚页表机制 ②地址变换机构
③缺⻚页中断机构:⻚页⾯面不不在内存时,产⽣生⼀一个缺⻚页中断(属于内中断),请求OS将所缺⻚页 调⼊入(⼀一条指令在执⾏行行期间可产⽣生多次缺⻚页中断)
注:⻚页式虚拟存储管理理的主要特点:不不要求将作业同时全部装⼊入到主存的连续区域
页面置换算法:
①最佳置换算法OPT(向后看)
②先进先出FIFO:基于队列列实现(会有Belady异常)
③最近最久未使⽤用LRU(向前看)
特点:是堆栈类算法。性能较好,但需寄存器器和栈的硬件⽀支持。(需要对所有⻚页进⾏行行排序)
④最近未⽤用NRU(CLOCK)
CLOCK置换:(改进型淘汰次序,性能接近LRU) 先未被访问(u=0),未被修改(m=0);
再未被访问(u=0),已被修改(m=1);
然后(u=1,m=0);最后(u=1,m=1)。注:LRU和OPT都不不可能发⽣生Belady异常
影响缺⻚页次数的因素:分配给进程的物理理⻚页⾯面数、⻚页⾯面本身的⼤大⼩小、程序编程的⽅方法、⻚页⾯面 淘汰的算法
⻚页⾯面分配策略略:固定分配局部置换(物理理块数⼀一定)、可变分配局部置换、可变分配全局置 换(是最易易于实现的物理理块分配和置换策略略)
驻留留集:指请求分⻚页存储管理理中给进程分配的物理理块的集合。(太⼩小会导致缺⻚页频繁)
⼆二种调⻚页策略略:预调⻚页:⽤用于进程⾸首次调⼊入时(运⾏行行前调⼊入)
请求调⻚页:易易于实现,虚存中⼤大多采⽤用此策略略。缺点为每次只调⼊入⼀一⻚页(运⾏行行时/期间调
⼊入)
抖动:刚换出的页面马上又要换入内存,刚换入的页面马上又要换出内存
频繁换⼊入、换出使系统效率低下
原因:淘汰算法不不合理理、物理理⻚页⾯面太少
解决⽅方案(提升系统性能、改进CPU利利⽤用率):增加内存容量量;撤销部分进程;换淘汰算法;减少多道程序的度数(所有增⼤大交换区的选项都不不要选!)
注:FIFO最易易发⽣生抖动,但所有⻚页⾯面调度策略略都不不可能完全避免抖动。
Chapter Four ⽂文件管理理
在⽤用户进⾏行行输⼊入、输⼊入中,以⽂文件为基本单位。
在系统运⾏行行时,计算机以进程为基本单位进⾏行行资源的调度和分配。
注:从系统⻆角度看,⽂文件系统负责对⽂文件的存储空间进⾏行行组织、分配,负责⽂文件的存储并对 存⼊入⽂文件进⾏行行保护、检索。
从⽤用户⻆角度看,操作系统引⼊入⽂文件系统的⽬目的是:实现对⽂文件的按名存取。
基本操作:创建文件、写文件、读文件、文件寻址、删除、截断
创建⽂文件步骤:①在⽂文件系统中为⽂文件找到空间 ②在⽬目录中为新⽂文件创建条⽬目
⽂文件的打开:①⾸首次打开:系统调⽤用open将指明⽂文件的属性从外存拷⻉贝到内存打开⽂文件⽬目录表的⼀一个表⽬目中 ②⾮非⾸首次:open根据⽂文件名搜索⽬目录(FCB调⼊入内存),并将⽬目录条⽬目复制到打开⽂文件表(包含所有打开⽂文件信息的表)。
⽤用户需要⼀一个⽂文件操作时,通过打开⽂文件表的索引指定⽂文件,省略略了了搜索。
⽂文件的关闭:OS从打开⽂文件表中删除某⼀一条⽬目,回收分配给⽂文件的内存空间资源,释放⽂文件的⽂文件控制块(FCB)。
⽂文件控制块(FCB):存放控制⽂文件所需的各种信息的数据结构,实现”按名存取”。⼀一个
FCB就是⼀一个⽂文件⽬目录项,即本身就也被看成⼀一个⽂文件(相似进程中的PCB)
文件的逻辑结构:是从用户观点出发看到的文件组织形式
⽂文件逻辑上都可以看作连续的,但在物理理设备上并不不完全连续。⽂文件的物理理结构从实现出 发。
⽆无结构⽂文件(流式⽂文件):最简单的⽂文件组织形式
有结构⽂文件(记录式⽂文件):①顺序⽂文件:批量量操作效率⾼高;对单个(增删改查)较困难
②索引⽂文件:成百上千倍提⾼高访问速度 ③索引顺序⽂文件 ④直接⽂文件和散列列⽂文件:没有顺序的特性。
注:索引表本身是定⻓长记录的顺序⽂文件
对于含有N个记录的顺序⽂文件,查找某关键字值的记录平均需要查找N/2次;在索引顺序⽂文件中,需要√N次。
索引⽂文件&索引顺序⽂文件都提⾼高了了存取速度,但因为配置索引表⽽而增加了了存储空间。
散列列⽂文件有很⾼高的存取速度,但是会引起冲突。
存放在磁盘上的索引结点称为磁盘索引结点,UNIX中的每个⽂文件都有⼀一个唯⼀一的磁盘索引 结点。
目录结构—>目录管理要实现”按名存取”;目录存取的效率直接影响系统性能
①单级⽬目录结构:在整个⽂文件系统中只建⽴立⼀一张⽬目录表,每个⽂文件占⼀一个⽬目录项特点:不不便便于⽂文件共享;按名存取;⽂文件不不允许重名
②两级⽬目录结构:将⽂文件⽬目录分成:主⽂文件⽬目录和⽤用户⽂文件⽬目录
特点:解决⽂文件重名问题;可以在⽬目录上实现访问限制;缺乏灵活性,不不能分类
③多级⽬目录结构(树型):⽅方便便分类,结构清晰;但增加了了磁盘访问次数,影响查询速度;不不便便于实现⽂文件的共享
绝对路路径:从根⽬目录出发的路路径。
相对路路径:进程对各⽂文件的访问都是相对于当前⽬目录进⾏行行的。当⽤用户要访问某个⽂文件时,使
⽤用相对路路径标识⽂文件。
④⽆无环图⽬目录结构:⽅方便便实现了了⽂文件共享。
注:仅当共享计数器器为0时才真正删除结点,否则仅删除请求⽤用户的共享链。(不不可删除⾮非空⽬目录)
文件共享:使多个进程共享同一份文件,系统中只需保留该文件的一份副本
①基于索引结点的共享⽅方式(硬链接) 索引结点中存放⽂文件的物理理地址和属性
⽂文件⽬目录中只存放⽂文件名和指向索引结点的指针
链接计数count:⽤用于表示链接到本索引⽂文件上的⽤用户⽬目录项的个数。 当⽤用户A创建⼀一个新的⽂文件时,count=1;B共享该⽂文件时,count=2。
若A不不需要此⽂文件,不不能将其直接删除,只能将count-1(此时B还能使⽤用此⽂文件);只有当
count=0,表示没有⽤用户使⽤用时,系统将其负责删除。(理理解)
②利利⽤用符号链实现⽂文件共享(软连接,类似快捷⽅方式):删除⽂文件时,Link还在
注:⽂文件共享是”软”+”硬”链接。硬链接就是多个指针指向⼀一个索引结点,保证只要还有⼀一 个指针指向索引结点,索引结点就不不会被删除;软连接就是把到达共享⽂文件的路路径记录起 来,访问时,根据路路径寻找⽂文件。(硬链接的查找速度⽐比较快)
文件保护—>口令保护、加密保护、访问控制
访问控制:为每个⽂文件和⽬目录增加⼀一个访问控制列列表(ACL) 特点:安全性较⾼高;灵活性低;⾮非系统实现
加密保护:防⽌止⽂文件被窃取;编码、解码需要时间;并没有控制⽤用户对⽂文件的访问类型特点:安全性较差;灵活性⾼高;由系统实现
注:对⼀一个⽂文件的访问通常由⽤用户访问权限和⽂文件属性共同控制。
对多级⽬目录结构的⽂文件保护:不不仅需保护单个⽂文件,还需保护⼦子⽬目录内的⽂文件,即需⽬目录保 护机制。
系统级安全管理理包括:注册和登录。
文件系统实现
⽂文件系统的层次结构:(当⽤用户请求访问某个⽂文件时)
⽤用户调⽤用接⼝口—>⽂文件⽬目录系统—>存取控制验证层(FCB⾥里里看是否有访问权限)—>(真正寻址,得到逻辑地址)逻辑⽂文件系统和⽂文件信息缓冲区—>(逻址变换物址)物理理⽂文件系统
文件实现——研究文件的物理结构
文件的分配方式:
①连续分配:要求每个⽂文件在磁盘上占有⼀一组连续的块
特点:⽀支持顺序访问和直接访问;实现简单,存取速度快;⽂文件⻓长度不不宜动态增加(类似于顺序表)
②链接分配:采⽤用离散分配的⽅方式
显式:把⽤用于链接⽂文件各物理理块的指针从块末尾提出,显式地放⼊入内存的⼀一张链表(⽂文件分 配表FAT—>该表在整个磁盘仅设⼀一张)中。没有碎⽚片问题;外存利利⽤用率⾼高;⽀支持随机访问 隐式:⽆无法直接访问盘块,只能通过指针顺序访问⽂文件。⽅方便便拓拓展;没有碎⽚片问题;外存利利
⽤用率⾼高;只⽀支持顺序访问,不不⽀支持随机,查找效率低。
③索引分配:索引块应尽可能⼩小(索引表—>⼀一个⽂文件分配⼀一张,要占⼀一定空间) 注:m级索引访问记录需访问磁盘m+1次
对⽂文件的存取:随机存取时,索引⽂文件速度快;顺序存取时,顺序⽂文件速度快。在磁盘上,最容易易导致存储碎⽚片发⽣生的物理理⽂文件结构是:顺序存放。
⽂文件的存储空间管理理:实际上是对空闲块的组织和管理理
①空闲表法 ②空闲链表法 ③位示图法(要推算出盘块号与字号/位号相互转换的公式:
P230) ④成组链接法
磁盘
扇区:是磁盘可寻址的最⼩小存储单位
⼀一次磁盘读写操作时间由寻道时间、延迟时间和传输时间决定。
但实际上存取时间与磁盘调度算法密切相关。调度算法直接决定了了寻道时间。
DD算法:①FSFS ②SSTF:会产⽣生”饥饿”
③SCAN(电梯算法):(只有到了了最边上的磁道才能改变磁头⽅方向!)要知道磁头当前位置和磁头移动⽅方向
④C-SCAN:只需要到达最远端的⼀一个请求即可返回
⑤LOOK和C-LOOK:只要到请求磁道的最边上。
注:磁盘是共享设备,但在每⼀一时刻,⾄至多只能由⼀一个作业启动它。 光盘、磁盘、U盘既可以顺序访问有可以随机访问。磁带只能顺序访问。
Chapter Five I/O管理理
I/O设备分类:
(按)使⽤用特性:⼈人机交互、存储、⽹网络通信
(按)传输速率:低速(键盘⿏鼠标)、中(打印机)、⾼高(磁盘光盘)
(按)信息交换单位:块设备、字符设备
块设备:以数据块为单位存取(磁盘)
基本特征:传输速率较⾼高;可寻址;可对他随机读/写任⼀一块
字符设备:⽤用于数据输⼊入/输出。以字符为单位传输;⽆无结构类型(交互式终端机、打印 机)
基本特征:传输速率低;不不可寻址;在I/O时常采⽤用中断驱动⽅方式
I/O控制方式:
①程序直接控制⽅方式 ②中断驱动⽅方式
③DMA⽅方式:DMA⽅方式是在I/O设备和主存之间建⽴立⼀一条直接数据通路路。
注:DMA交换⽅方式:I/O设备与存储设备进⾏行行数据交换不不经过CPU来完成。(CPU只参与预处理理和结束过程)
④通道控制⽅方式:
⼯工作过程:向通道发⼀一条I/O指令,给出通道程序的⾸首地址和要访问的I/O设备,通道接到指 令后,执⾏行行通道程序便便可完成CPU指定的任务,数据传送结束向CPU发中断请求。
I/O通道:专⻔门负责I/O的处理理机,实现CPU、通道、I/O三者并⾏行行⼯工作
注:通道⽤用于实现内存与外设之间的信息传输。通道是⼀一种特殊的处理理器器,属于硬件技术。
SPOOLing、缓冲池、内存覆盖都是在内存基础上通过软件实现。 字节路路通道:⽤用于连接⼤大量量低速、中速设备
I/O通道与⼀一般处理理机的区别:通道指令类型单⼀一;没有⾃自⼰己的内存,通道程序放在主机内 存中,与CPU共享内存
I/O通道与DMA⽅方式的区别:DMA:CPU控制传输的数据块⼤大⼩小、传输的内存位置;每个
DMA控制器器对应⼀一台设备与内存传递数据。通道:上述信息由通道控制,可控制多台设备与内存的数据交换。
注:通道技术指的是⼀一种硬件机制
磁盘设备的I/O控制器器主要是采取:DMA⽅方式
I/O层次结构(从上到下):P264具体例子理解
①⽤用户层 ②与设备⽆无关的软件层(系统调⽤用的处理理程序)
③设备驱动程序(与硬件直接相关):负责执⾏行行OS发出的I/O命令(如:计算磁头号、柱⾯面 号、扇区号),因设备的不不同⽽而不不同,⼏几类设备就配⼏几个设备驱动程序程序!
注:(对⽐比)系统调⽤用:OS提供给⽤用户程序的通⽤用接⼝口,不不会因为具体设备的不不同⽽而不不同
④中断处理理程序 ⑤硬件 •◌ू (ᵒωᵒ*̶̴̷ •◌ू ) )੭◌ु ⁾
注:设备独⽴立性:⽤用户编程时使⽤用的设备与实际使⽤用的设备⽆无关
在应⽤用程序中,使⽤用逻辑设备名来请求使⽤用某类设备;⽽而在系统实际执⾏行行时,必须将逻辑设 备名映射成物理理设备名使⽤用
I/O核心子系统:(I/O层次结构的②③④)
提供的服务主要有:I/O调度、缓冲与⾼高速缓存、设备分配与回收、假脱机SPOOLing 、设备保护和差错处理理等
引⼊入缓冲区的主要⽬目的(背):①缓和CPU与I/O间速度不不匹配的⽭矛盾
(如果I/O所花时间⽐比CPU处理理时间短得多,则没必要设置缓冲区)
②减少对CPU的中断频率 ③解决基本数据单元⼤大⼩小不不匹配的问题 ④提⾼高CPU和I/O设备之间的并⾏行行性
缓冲区特点:在缓冲区⾮非空时,不不能冲⼊入数据,只能传出;当缓冲区为空时,可以冲⼊入数据,但是要缓冲区充满后,才能传出。(管道通信中的”管道”也是缓冲区原理理)
单缓冲:设备和处理理机之间设置⼀一个缓冲区。处理理每块数据⽤用时:Max(C,T)+M 双 缓 冲 :处 理 理 每 块 数 据 ⽤ 用 时 :Max(C+T,M) M+C<T(传输慢),可以设备连续输⼊入;
M+C>T(处理理慢),CPU不不必等待设备输⼊入。缓冲池:由多个系统公⽤用的缓冲区组成。
四种缓冲区:收容输⼊入、提取输⼊入、收容输出、提取输出(过程P274理理解)
设备控制器器要提供:控制寄存器器、状态寄存器器和控制命令设备控制器器中⽤用于实现对设备控制功能的是:I/O控制逻辑
设备绝对号:⽤用于区分硬件和识别设备的代号。系统中每⼀一台设备按某种原则统⼀一进⾏行行编号
设备分配时应考虑的因素:
①设备的固有属性(独占设备、共享设备、虚拟设备)
共享设备:必须可寻址,可随机访问。分配共享设备不不会引起死锁(独占设备才可能)。在
⼀一段时间内允许多个进程访问,但在同⼀一时刻,只允许⼀一个进程访问。虚拟设备:把⼀一个物理理设备变换成多个对应的逻辑设备
②设备分配算法
③设备分配中的安全性:应防⽌止发⽣生进程死锁。⼀一般不不需要考虑及时性 安全分配⽅方式:设备分配安全,但CPU和设备并⾏行行⼯工作
不不安全分配⽅方式:进程可同时操作多个设备,推进迅速;但有可能产⽣生死锁
逻辑设备表的设置:①整个系统只设置⼀一张LUT:不不允许有相同逻辑设备名;主要适⽤用于单
⽤用户系统 ②为每个⽤用户设置⼀一张LUT(该表放⼊入进程PCB中)
注:”设备、控制器器、通道”的关系:树型(⼀一个设备分配成功,必须这三个都可⽤用)
⼀一个通道可控制多个设备控制器器,每个控制器器可以控制多个设备。
SPOOLing技术(假脱机技术)—>用软件控制
实质上是⽤用户层软件,但也归为I/O核⼼心⼦子程序
脱机技术:为了了缓和CPU的⾼高速性与I/O设备低速之间的⽭矛盾
SPOOLing系统的主要特点:提⾼高I/O速度;将独占设备改造为”共享”设备;实现了了虚拟设备功能