操作系统
概念:操作系统是指控制和管理整个计算机系统的硬件和软件资源,并合理组织和调度计算机的工作和资源分配,是最基本的系统软件。
特征∶并发、共享(两个最基本的特征)、虚拟、异步。
并发∶指同一时间间隔内发生,区别于并行。微观上分时地交替执行。
功能∶是计算机系统资源(处理机、存储器、文件、设备)的管理者
用户与计算机硬件系统之间的接口∶
①命令接口(允许用户直接使用)(1)联机(交互式)命令接口(适用于分时or实时)(2)脱机(批处理)命令接口
②程序接口(=系统调用命令)
③GUI(图形接口调用系统命令)
注∶ 在多道程序环境下,处理机的分配和运行都以进程(或线程)为单位。
系统调用是由操作系统提供给用户的,它只能通过用户程序间接使用。
操作系统的发展∶批处理—>分时一>实时—网络和分布式
①批处理(缺点∶没有交互能力)
单道批处理一>顺序性(CPU大量时间在空闲等待I/O)
多道批处理(失去封闭性)一>制约性、间断性、共享性
特点∶ 多道、宏观上并行,微观上串行。
②分时系统∶ (以时间片为单位)允许多个用户以交互的方式使用计算机
特点∶同时性、交互性、独立性、及时性
分时系统能较快、及时接收并处理命令,快速响应用户。
分时系统中,时间片一定时,用户数越多,响应时间越长。
③实时系统∶在某个时间限制内完成某些紧急任务而不需时间片排队
特点∶ 及时性、可靠性
④网络(网络资源共享)和分布式∶ 区别是在分布式中,若干计算机相互协同完成同一任务
Chapter Two进程管理
进程概念∶
进程(动态)是资源分配的一个独立单位。程序∶ 静态
进程的特征∶ 动态性(最基本)、并发性(重要特征)、独立性、异步性
进程实体由程序段、数据段、PCB三部分组成
注∶程序段(多个进程可运行同一程序)、 PCB是进程存在的唯一标志。
PCB描述进程的基本情况和活动过程,可以控制和管理进程。
主要包括∶进程描述信息(ID)、进程控制(优先级)和管理信息、资源分配和处理机相关。
二进制代码和常量放在正文段;动态分配的存储区在数据堆段;临时用的变量在数据栈段。
进程的三种基本状态∶就绪、阻塞、运行
注∶ 在可剥夺OS中,当有更高优先级的进程就绪时,调度程序将正在执行的进程一>就绪态,让更高优先级的执行。
就绪态∶ 进程已处于准备运行的状态(只缺CPU了!)
阻塞(等待资源)∶请求资源失败、等待某操作的完成、数据未到达、无事可做
唤醒(资源到达)∶I/O操作已完成or数据已到,调用唤醒原语
引起创建进程的操作∶终端用户登录系统、作业调度、系统提供服务、用户程序的应用请求
注∶ 用户进程被创建后,随着运行的正常或不正常结束而撤销。(进程是有一定生命周期的!)
进程的终止∶ ①异常结束∶存储区越界、保护错、非法指令、特权指令错、I/O故障②正常结束∶ 任务已完成 ③外界干预(人为、OS干预、父进程的请求or终止)
进程控制
对系统中所有的进程实施有效的管理。
原语
处于最底层;不可分割的指令序列;运行时间短,调用频繁
操作是一种低级的进程通信语言,由两个不可中断的过程组成,并非系统调用。
系统调用(运行在核心态)
用户程序凡是与资源有关的操作(存储分配、I/O、管理文件)都必须通过系统调用。
用户程序(用户自编or系统外层应用程序)工作在用户态;内核程序工作在核心态。
进程的通信
一个进程不能直接访问另一个进程的地址空间
①共享存储(互斥访问)∶
低级方式∶ 基于数据结构的共享;
高级方式∶ 基于存储区
②消息传递∶
直接通信方式∶ 接收进程从消息队列中取得消息;
间接通信方式∶将消息挂到某个中间实体(邮箱)
③管道通信∶利用一种特殊的pipe文件连接两个进程。
管道只能采用半双工通信,某一时间段内只能实现单向传输。如果要实现双向同时通信,则需设置两个管道。
线程
线程的引入∶ 减小程序的时空开销,提高程序并发执行的程度,提高系统效率线程是程序执行的最小单元,并不拥有任何系统资源(进程才有),是独立调度的基本单位。
同一进程中,线程的切换不会引起进程的切换;切换到另一进程中的线程才会切换。
同一进程或者不同进程内的线程都可以并发执行。
用户级线程∶ 所有工作都由应用程序完成,无需内核干涉。
内核支持线程:
多线程模型∶多对一模型∶缺点一>一个线程阻塞会导致整个进程都被阻塞
注∶ 线程包含CPU现场,可以独立执行程序。只有内核级线程才是处理机分配的单位!
CPU调度
①作业调度(高级DD)∶内存与辅存(外存)之间的DD;对于每个进程只调入调出一次。调入建立PCB,调出才撤销PCB。
②内存DD(中级DD)∶将暂时不运行的进程调至外存等待。引入中级DD为了提高内存利用率和吞吐量(调到外存等待的进程状态为挂起态)
③进程DD(低级DD)∶内存->CPU,是OS中最基本的一种DD;一般OS中必须配置,使用频率很高。
公式:周转时间、平均周转时间、等待时间、平均等待时间、系统吞吐量
周转时间=等待时间+服务时间(执行时间)
周转时间=完成时间 (时刻) - 提交时间(时刻)
调度算法∶
FCFS、SJF、优先级DD、高响应比优先、时间片轮转、多级反馈队列DD。
FCFS∶属于不可剥夺算法!
特点∶算法简单;有利于CPU繁忙型作业,不利于I/O繁忙型作业。
SJF∶ 会产生饥饿现象,是调度策略问题。(默认"非抢占",也有抢占式)
特点∶ 平均等待时间、平均周转时间最少!
优先级DD∶
①静态优先级∶优先级在创建进程时确定,整个运行期间不变
②动态优先级∶ 随着进程执行时间增加,其优先权下降。
高响应比优先∶ Rp=(waitT+ServeT)/ServeT
时间片轮转∶ 主要适用于分时系统;绝对可抢占;时间片过大时,相当于 FCFS
进程同步
临界资源(独占资源)∶一次仅允许一个进程访问使用的资源
(如∶打印机、共享变量、共享缓冲区、公用队列)
共享资源∶ 一次可供多个进程使用 (如∶磁盘存储介质)
临界区∶ 进程中访问临界资源的那段代码
同步机制遵循的原则∶ ①空闲让进②忙则等待③有限等待④让权等待
④∶ 当进程不能进入临界区时,应释放处理器
死锁
定义∶ 多个进程因竞争资源而造成的互相等待
原因∶①竞争系统资源(不可剥夺资源);独占资源分配不当
②进程推进顺序非法;
死锁的必要条件∶互斥;不剥夺;请求和保持;循环等待(任一条件不满足时则不发生死锁)
不剥夺∶未使用完之前不能被其他进程强行夺走,只能是主动释放!
请求和保持∶ 保持资源时又请求被其他进程占有的资源,对已获得的资源保持不放。
死锁的处理策略∶
①死锁预防(通过设立限制条件,破坏四个必要条件,但互斥无法破坏,超级少见!) SPOOLing技术∶ 把互斥资源改造为允许共享使用
包括∶采用静态分配法,一次申请完全部资源;采用顺序资源分配法,按编号…
②死锁避免∶在资源动态分配过程中,用一些算法防止系统进入不安全状态。包括∶ 银行家算法(Max、Allocation、Need、Available)
③死锁检测∶ 资源分配图(当不可完全化简时为死锁状态);死锁定理
④死锁解除∶ ①资源剥夺法(被动)②撤销进程 ③进程回退法(主动释放)
注∶出现环路不一定都会导致死锁。
饥饿不一定是死锁,但是至少一个进程被无限期推迟。
Chapter Three 内存管理
程序执行过程∶编译、链接、装入
链接(链接时形成逻辑地址)
①静态链接∶将各目标模块及库函数连城一个完整可执行程序,以后不再拆开
②装入时动态链接∶边装入,边链接(早期多道批处理)
③运行时动态链接∶需要用到时才链接(现代操作系统)
装入(将逻辑地址转换为物理地址)
①绝对装入∶编译时产生绝对地址。程序中逻辑地址与实际内存地址完全相同;只适用于单道程序环境
②可重定位装入(静态重定位)∶地址变换通常在装入时一次完成
特点∶ 一个作业进入内存,必须分配其要求的全部内存空间。在运行期间就不能再移动位置。没有足够内存时,不能装入作业!
装入时把逻辑地址变换为物理地址,装入后不能改变。
③动态运行时装入(动态重定位)∶不立即转换地址,真正要执行时才进行(需要重定位寄存器支持)
特点∶动态重定位在作业执行过程中进行。
程序运行前只装入部分代码即可运行。
运行期间动态申请分配内存,便于程序段的共享。
地址重定位(地址映射)
逻辑地址(又称相对/虚地址)一>物理地址(内存、绝对、实地址)
注∶ 物理地址可以直接寻址;不能直接用逻辑地址在内存中读取信息!不同进程可以有相同的逻辑地址,但是会映射倒不同的主存位置上。
交换∶把处于等待状态(或在CPU调度原则下被剥夺运行权利)的程序从内存移到外存(对应进程的中级调度),把内存空间腾出来。
连续分配——一个用户程序分配一个连续的内存空间
①单一连续分配∶ 内存中只有一道程序;实现简单;
缺点∶只适用于单用户、单任务的OS中;存储器利用率低
②固定分区分配∶ 最简单的一种多道程序存储管理方式,分区大小固定(可相等,也可不等),分区的大小由系统决定,有内部碎片。
③动态分区分配∶在装入时,根据进程的大小动态建立。产生外部碎片。
注∶
内部碎片∶分区大小固定,程序小于固定分区时也占用一个分区,内部浪费
外部碎片∶ 在所有分区外的存储空间会变成越来越多的碎片(可以用拼接、紧凑技术解决,需要动态重定位寄存器支持)
分配算法∶
①首次适应∶ 空闲分区以地址递增的次序链接,找大小满足要求的第一个分区
②最佳适应∶XX按容量递增XX
③最坏适应∶XX按容量递减XX
④循环首次适应算法:分配内存时,从上次查找结束的位置开始继续查找。
注∶首次适应(First fit)是最简单,最好,最快的。最佳适应(Best fit)性能通常很差,产生最多外部碎片。
非连续分配 (离散)—一个程序分散地装入不相邻的内存分区
分页存储∶ 有内部碎片;地址变换由硬件自动完成
基地址变换机构 ①有快表(高速缓冲寄存器)TLB②无快表
页表∶逻辑地址转换成物理地址,由页表项组成。
页表项∶页号P+物理内存中的块号
逻辑地址∶ 页号P+页内偏移
页表长度∶指的是这个页表中总共有几个页表项,即总共几个页;
页表项长度∶每个页表项占多大的存储空间;
页面大小∶ 一个页面占多大存储空间。
物理地址=物理内存中的块号+页内偏移
注∶ OS对内存采用页式存储管理时,所划分的页面大小必须相同。
页表全部放在内存中,则存取一个数据或一条指令至少要两次访问内存。
分段存储:
虚拟内存管理—>/逻辑上扩充内存
基于局部性原理(时间局部性、空间局部性)。(不必装入全部程序,基于非连续分配技术)
装入时,只需装一部分,其余留在外存就可以启动;执行时,当访问的信息不在内存,则用 OS将其调入内存,将暂时不用的换出至外存(内<一>外)
虚拟存储器三大特征 ∶ 多次性、对换性、虚拟性
请求分页管理方式∶虚拟存储器的实现,目前最常用
组成∶ ①页表机制 ②地址变换机构
③缺页中断机构∶页面不在内存时,产生一个缺页中断(属于内中断),请求OS将所缺页调入(一条指令在执行期间可产生多次缺页中断)
注∶ 页式虚拟存储管理的主要特点∶不要求将作业同时全部装入到主存的连续区域
抖动∶
刚换出的页面马上又要换入内存,刚换入的页面马上又要换出内存
频繁换入、换出使系统效率低下
原因∶淘汰算法不合理、物理页面太少
解决方案∶增加内存容量;撤销部分进程;换淘汰算法;减少多道程序的度数
注∶FIFO最易发生抖动,但所有页面调度策略都不可能完全避免抖动。
Chapter Four I/O管理
I/0设备分类∶
(按)传输速率∶低速(键盘鼠标)、中(打印机)、高(磁盘光盘)
(按)信息交换单位∶ 块设备、字符设备
块设备∶以数据块为单位存取(磁盘);传输速率高
字符设备∶ 以字符为单位传输(交互式终端机、打印机);传输速率低;在I/O时常采用中断驱动方式
I/O控制方式∶
①程序直接控制方式
②中断驱动方式
③DMA方式
④通道控制方式∶
工作过程∶向通道发一条I/O指令,给出通道程序的首地址和要访问的I/O设备,通道接到指令后,执行通道程序便可完成CPU指定的任务,数据传送结束向CPU发中断请求。 I/O通道∶专门负责I/O的处理机,实现CPU、通道、I/O三者并行工作
注∶ 通道用于实现内存与外设之间的信息传输。通道是一种特殊的处理器,属于硬件技术。
I/O层次结构(从上到下) ∶
①用户层
②与设备无关的软件层(设备独立性软件):
③设备驱动程序(与硬件直接相关)∶ 负责执行OS发出的I/O命令,因设备的不同而不同
④中断处理程序
⑤硬件
注∶ 设备独立性∶用户编程时使用的设备与实际使用的设备无关
在应用程序中,使用逻辑设备名来请求使用某类设备;而在系统实际执行时,必须将逻辑设备名映射成物理设备名使用
系统中每一台设备按某种原则统一进行编号
设备控制器要提供∶ 控制寄存器、状态寄存器和控制命令
设备控制器中用于实现对设备控制功能的是∶ I/O控制逻辑
设备分配时应考虑的因素∶
①设备的固有属性 (独占设备、共享设备、虚拟设备)
共享设备∶ 可随机访问。分配共享设备不会引起死锁(独占设备才可能)。
虚拟设备∶把一个物理设备变换成多个对应的逻辑设备
②设备分配算法
③设备分配中的安全性∶ 应防止发生进程死锁。
安全分配方式∶设备分配安全,但CPU和设备并行工作
不安全分配方式∶ 进程可同时操作多个设备,推进迅速; 但有可能产生死锁
逻辑设备表的设置∶
①整个系统只设置一张LUT∶ 不允许有相同逻辑设备名;主要适用于单用户系统
②为每个用户设置一张LUT
一个通道可控制多个设备控制器,每个控制器可以控制多个设备。一个设备分配成功,必须这三个都可用
SPOOLing技术(假脱机技术)—>用软件控制实质上是用户层软件
脱机技术∶为了缓和CPU的高速性与I/O设备低速之间的矛盾
SPOOLing系统的主要特点∶提高I/O速度;将独占设备改造为"共享"设备;实现了虚拟设备功能
SPOOLing系统的组成:(1) 输入井和输出井。
(2) 输入缓冲区和输出缓冲区。
(3) 输入进程和输出进程。
(4) 井管理程序。
引入缓冲区的主要目的∶
①缓和CPU与I/O间速度不匹配的矛盾(如果I/O所花时间比CPU处理时间短得多,则没必要设置缓冲区)
②减少对CPU的中断频率
③解决基本数据单元大小不匹配的问题
④提高CPU和I/O设备之间的并行性
缓冲区特点∶在缓冲区非空时,不能冲入数据,只能传出;当缓冲区为空时,可以冲入数据,但是要缓冲区充满后,才能传出。
单缓冲∶设备和处理机之间设置一个缓冲区。处理每块数据用时∶ Max(C,T)+M
双缓冲∶
缓冲池∶ 由多个系统公用的缓冲区组成。
四种工作缓冲区∶收容输入、提取输入、收容输出、提取输出
三种缓冲队列:空闲、输入、输出
Chapter Five 文件管理
从系统角度看,文件系统负责对文件的存储空间进行组织、分配,负责文件的存储并对存入文件进行保护、检索。
文件的逻辑结构∶是从用户观点出发看到的文件组织形式
文件逻辑上都可以看作连续的,但在物理设备上并不完全连续。文件的物理结构从实现出发。
无结构文件(流式文件)∶ txt
有结构文件(记录式文件)∶①顺序文件∶批量操作效率高;对单个(增删改查)较困难②索引文件∶成百上千倍提高访问速度 ③索引顺序文件
注∶ 索引表本身是定长记录的顺序文件
文件控制块(FCB)∶存放控制文件所需的各种信息的数据结构,实现"按名存取"。一个 FCB就是一个文件目录项,即本身就也被看成一个文件
目录结构—>目录管理要实现"按名存取";
①单级目录结构∶
在整个文件系统中只建立一张目录表,每个文件占一个目录项
特点∶ 不便于文件共享;按名存取; 文件不允许重名
②两级目录结构∶ 将文件目录分成∶ 主文件目录和用户文件目录
特点∶解决文件重名问题;
③多级目录结构(树型)∶ 方便分类,结构清晰;但增加了磁盘访问次数,影响查询速度;不便于实现文件的共享
绝对路径∶ 从根目录出发的路径。
相对路径∶进程对各文件的访问都是相对于当前目录进行的。当用户要访问某个文件时,使用相对路径标识文件。
文件的物理结构:文件如何存放在外存磁盘上。
文件的分配方式∶
①连续分配∶ 要求每个文件在磁盘上占有一组连续的块
特点∶ 支持顺序访问和直接访问;实现简单,存取速度快;文件长度不宜动态增加
②链接分配∶采用离散分配的方式
显式∶ 把用于链接文件各物理块的指针从块末尾提出,显式地放入内存的一张链表(文件分配表FAT一>该表在整个磁盘仅设—张)中。
③索引分配∶索引块应尽可能小(索引表->一个文件分配一张,要占一定空间)
文件的存储空间管理∶实际上是对空闲块的组织和管理
①空闲表法 ②空闲链表法③位示图法(要推算出盘块号与字号/位号相互转换) ④成组链接法
磁盘
扇区∶是磁盘可寻址的最小存储单位
一次磁盘读写操作时间由寻道时间、延迟时间和传输时间决定。
但实际上存取时间与磁盘调度算法密切相关。调度算法直接决定了寻道时间。 DD算法∶ ①FCFS ②SSTF∶ 会产生"饥饿"③SCAN(电梯算法)④循环扫描
注∶磁盘是共享设备,但在每一时刻,至多只能由一个作业启动它。