在大三学习操作系统时所做的总结,上传到论坛以备日后复习使用。
1)计算机软件是指程序和与程序相关的文档的集合
2)按功能可把软件分为“系统软件”和“应用软件”两部分
系统软件:操作系统语言处理程序,数据库管理系统
应用软件:各种管理软件,用于工程计算的软件包,辅助设计软件
3)发展的动力:
(1) 提高计算机资源的利用率的需要
(2) 方便用户使用计算机的需要
(3) 硬件技术不断发展的需要
(4) 计算机体系结构发展的需要
4)操作系统的定义:
操作系统是控制和管理计算机硬件和软件资源,合理地组织计算机工作流程,以及方便用户使用计算机的一个大型程序
5)操作系统的功能:
处理机管理:进程控制,进程同步,进程通信、调度、实施CPU分配
存储器管理:内存分配,内存保护,地址映射,内存扩充
设备管理:缓冲管理,设备分配,设备管理
文件管理:存储空间管理,目录管理,读写管理和保护
与用户有关的接口:用户接口,程序接口,人机交互
6)操作系统另一种定义:操作系统是一组能有效地组织和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的程序的集合
操作系统的种类:
1 程序是一个在时间上严格有序的指令集合
2 在单道程序设计下,系统具有的特点:资源的独占性、执行的顺序性、结果的再现性
在多道程序设计环境下,系统具有:执行的并发性、相互的制约性、状态的多变性(不可再现性)
3. 并发、并行、串行
a. 从宏观上看是并行,同时在内存的多个程序都在执行着,互不影响
b. 从微观上看是串行,由于CPU在任何时刻只能执行一个程序,因此这些程序轮流占用CPU,交替执行着
c. 我们把“逻辑上相互独立的程序,在执行时间上相互重叠,一个程序的执行还没有结束,另一个程序的执行已经开始”的这种特性称为程序执行的并发性
4. 程序在顺序执行时的三个特征:顺序性、封闭性、可再现性 p34
5. 程序在并行执行时的三个特征:间断性、失去封闭性、不可再现性
6. 进程的定义:进程是进程实体的运行过程,是系统运行资源分配和调度的一个基本单位。
A 进程的特征:动态性、并发性、独立性、异步性
7. 对进程的描述
a. 进程是程序的一次执行过程
b. 进程的运行活动是建立在某个数据集合上的
c. 进程是在获得资源的基础上从事自己的运行活动
8. 程序和进程的区别
a. 程序是指令的有序集合,是静态的,进程是程序在处理机上的一次执行过程,是动态的。程序的存在时永久的,而进程是有生命周期的,它因创建而产生,因调度而运行,因撤销而消亡
b. 进程是程序的一次执行过程,程序是进程赖以存在的基础
c. 进程具有并发性,而程序并发执行会失去可再现性
d. 进程是系统分配和调度的独立单位,进程由程序、数据集合和进程控制块组成
9. 系统进程的使用级别高于用户进程
a. 一个进程从运行状态变为就绪状态,一定会引起另一个进程从就绪变为运行
b. 一个进程从运行状态变为阻塞状态,一定会引起另一个进程从运行状态变为就绪状态;这种因果变迁绝对不可能发生,因为一个CPU不可能真正同时运行两个进程
c. 一个进程从阻塞状态变为就绪状态,不一定会引起另一个进程从就绪状态变为运行状态
d. 一个进程被唤醒意味着进程状态变为就绪状态
10. 进程的三个组成部分:程序、数据集合、进程控制块(PCB)
11. 进程控制块是进程存在的唯一标示,且有如下功能:
a.作为独立运行基本单位的标志
b.能实现间断性运行方式
c.提供进程管理所需要的信息
d.提供进程调度所需要的信息
e.实现与其他进程的同步与通信
12. 进程控制块的组织方式:线性方式、链使方式、索引方式
13. 引起创建进程的事件:用户登录(分时系统)、作业调度(多道批处理系统)、提供服务、应用请求
14. 进程的创建过程:
a. 申请空白PCB,为新进程申请获得唯一的数字标识符
b. 为新进程分配其运行所需要的资源
c. 初始化进程控制块(PCB),包括:初始化标识信息、初始化处理机状态信息、初始化处理机控制信息
d. 如果新进程就绪队列能够接纳新进程,便将新进程插入就绪队列
CPU利用率=
系统吞吐量=总共完成的多少道作业/总共花的时间 单位时间内完成的作业数量
周转时间=作业完成时间—作业到达时间 衡量系统性能的指标
平均周转时间=各作业周转时间之和/作业数
带权周转时间=周转时间/作业实际运行时间
处理机调度的层次:
A. 高级调度(长调度、作业调度):多用于多道批处理系统,不用于分时和实时系统,调度对象是作业
B. 中级调度(内存调度):提高内存利用率和系统吞吐量,实现的是对换功能
C. 低级调度:分配处理机给队列中的进程,在多道批处理、分时、实时系统中都有实现
作业调度经历:收容、运行、完成三个阶段,分别对应收后备、运行、完成三个状态
后备状态作业在外存,运行状态在内存,运行状态包含了就绪状态
作业调度算法
A 先来先服务算法(FCFS) 非抢占式 B 短作业优先(SJF) 会导致饥饿现象 可抢占 C 优先级调度算法 可抢占
D 高响应比优先算法 非抢占式算法
优先权=(等待时间+要求服务时间)/要求服务时间=响应时间/要求服务时间
常用的进程调度算法:
a. 先来先服务调度算法
b. 时间片轮转调度算法:时间片分的过大会导致响应时间加长,使算法退化为先来先服务,分的太小,会使进程切换的过于频繁,算法不会导致饥饿现象,抢占式算法
c. 优先数调度算法:优先数高的先调度,若相同则先来先服务
d. 多级队列调度算法:时间片调度和优先数调度算法的结合,抢占式算法,会导致饥饿
进程调度程序的主要功能
a. 记录系统中所有进程的有关情况,比如进程的当前状态,优先数等
b. 确定分配处理机的算法
c. 完成处理机的分配
d. 完成处理机的回收
为了对进程进行有效的管理和控制,操作系统要提供若干基本的操作以便能创建进程、撤销进程、阻塞进程、唤醒进程,把具有这种特性的程序称为“原语”,原语的不可分割性,通常利用屏蔽中断的方法
死锁:多个进程因竞争资源而造成的一种僵局,若无外力作用,这些进程将无法向前推进
定义:即指系统中若存在一组(至少两个或以上)进程,它们中的每一个都占用了某种资源而又都在等待其中另一个所占用的资源,这种等待永远不会结束,这就是死锁
可抢占性资源:cpu、内存,抢占该类资源不会引起死锁
不可抢占资源:磁带机、打印机、刻录机这种,不能一个正在用的时候别抢,不然会导致任务出错。
引起死锁的原因:
a. 竞争不可抢占性资源引起死锁 b.竞争可消耗性资源引起死锁 c.进程推进顺序不当引起死锁
产生死锁的4个必要条件
a. 互斥条件:进程对所分配的资源进行排它性使用,即在一段时间内,某资源只能被一个进程占用
b. 请求和保持(占用并等待):进程由于申请不到所需要的资源而等待时,仍然占据着已经分配到的资源
c. 不可抢占条件:已经分配给进程的资源,别的进程不能强行夺取资源,只能被占用它的进程自己释放
d. 循环等待条件:在多个进程之间,由于资源的占有和请求关系,从而形成了一个循环等待的态势
处理死锁的方法:
a. 预防死锁:破坏产生死锁的4个必要条件之一,使系统不具备产生死锁的条件
b. 避免死锁:在资源的动态分配过程中,用某种方法防止系统进入不安全状态,从而可以避免死锁
c. 检测死锁:无须事先采取任何限制性措施,允许发生死锁,然后采取措施将进程从死锁中解脱出来
d. 解除死锁:当检测系统中已经发生死锁,就采取措施将进程从死锁状态中解除,如:撤销一些进程,回收它们的资源,将它们分配给已处于阻塞状态的进程,使其继续执行
预防死锁:
a. 互斥条件是非共享设备所必须的,不仅不能改变,还应加以保证
b. 破坏占用并等待条件:所有进程在开始运行之前,必须一次性地申请其在整个过程中所需要的全部资源,一次性分配
c. 破坏“分剥夺条件”:当进程提出新的资源请求得不到满足时,它必须释放已经保持的所有资源,待以后需要时再重新申请
d. 破坏循环等待条件:将系统中的所有资源进行统一编号,进程按编号的顺序,由小到大提出对资源使用的申请
是基于分页式存储管理的一种虚拟存储器“请求分页式”是指当程序运行中需要某一页时,再把它从辅助存储器里调入内存使用,解决了小内存与大作业的矛盾,但会产生内部碎片
缺页中断是指在指令执行期间,若发现所要访问的指令或数据不在内存时,便立即产生和处理缺页中断信号,以便能及时将所缺之页面调入内存
2) 页面淘汰(置换)算法:
页面淘汰是由缺页中断引起的,但缺页中断不见得一定引起页面淘汰
a. 先进先出页面淘汰(置换)算法(FIFO)
淘汰最先进入内存的页面 (3个内存块都为空,3次缺页中断)
b. 最近最久未用页面淘汰(置换)算法(LRU)
总是把最长时间未被访问过的页面淘汰出去(硬件支持需要寄存器和栈)
c. 最优(最佳)页面淘汰(置换)算法(OPT)
把以后不再使用的或最长时间内不会用到的页面淘汰出去(理论上,不会实现)
注:对于FIFO页面淘汰算法,有时增加分配给作业的可用内存块数,它的缺页次数反而上升,通常称为异常(BELADY)现象
3) 抖动:进程的大部分时间都用于页面的换进/换出,而几乎不能再去做任何有效的工作,从而导致发生处理机的利用率急剧下降并趋于0的情况,我们称此时的进程是处于“抖动”状态。
根本原因:同时在系统中运行的进程太多,由此分配给每一个进程的物理块太少。
4) 工作集:指在某段时间间隔t里,进程实际所要访问页面的集合。
5) 对分页管理和请求分页管理的理解:
分页或者说分段管理,都是对内存分配的一种管理方法,相较于最开始的连续分配策略,分页及分段是基于离散分配思想的。但是由于内存的空间不足,产生了请求分页管理,也就是虚拟存储思想。其本质是利用了程序执行的空间及时间上的局限性,动态的对内存进行分配。
分页管理中,进程的逻辑地址是存在PCB中的,在进程调入内存后,将PCB中的逻辑地址中包含的页号和偏移量放入页表寄存器中(页表寄存器是不在内存中的),之后再访问某个逻辑地址时,将逻辑地址与页表寄存器中的值进行比较判断,符合的就去查页表,不符合的发生中断。页表是存放在内存中的,页表有页号和物理块号,根据逻辑地址中的页号和偏移量结合物理块号,就能算出数据的实际地址,也就是外存里的地址。
1.设备独立性的概念和功能及数据结构
i. I/O系统的基本功能:
1.隐藏物理设备的细节 2.与设备的无关性 3.提高处理机和I/O设备的利用率 4.对I/O设备进行控制 5.确保对设备的正确共享 6.错误处理
ii. I/O软件的层次结构:
1.用户层I/O软件 2.设备独立性软件 3.设备驱动程序 4.中断处理程序
iii. “设备”泛指计算机系统中的各种外部设备,外设(即主机以外的其他所有设备)在众多的I/O设备中,并不是所有的设备都是可以共享的,可以借助于磁盘,把只能独享的设备变为共享,这就是所谓的“虚拟设备” {SPOOLing技术}
iv. 通道类型:1.字节多路通道 2.数组选择通道 3.数组多路通道
v. 计算机I/O系统的组织结构:
1 底层是具体的设备和硬件接口
2 中间是系统软件(与设备相关软件、与设备无关软件) (3)用户程序
vi. I/O设备一般是由执行I/O操作的机械部分和执行控制I/O的电子部件组成
1 执行I/O操作的机械部分就是一般的I/O设备
2 执行控制I/O的电子部件称为设备控制器或适配器
a) 为了能够使CPU设备控制器中的各个寄存器进行通信,通常采用“单独的I/O空间”和“内存映射I/O”两种方法
b) 设备控制器是CPU与外围设备之间的接口,是一个可编址设备,每一个地址对应一个设备
vii. 设备处理方式:
13.磁盘的调度算法
c. “先来先服务”FCFS调度算法(并不理想)(移臂调度,减少查找时间)
以I/O请求到达的先后次序作为磁盘调度的顺序
d. “最短查找时间”SSTF调度算法
把距离磁头当前位置最近的I/O请求作为下一次调度的对象,会发生饥饿现象
e. “电梯”调度算法(SCAN)
总是沿着此案移动臂的移动方向选择距离磁头当前位置最近的I/O请求,作为下一次调度的对象
f. “单向扫描”调度算法(循环扫描 CSCAN)
总是从0号柱面开始往里移动移动臂,遇到有I/O请求就进行处理,直到到达最后一个请求柱面,然后移动臂立即带动磁头不做任何服务地快速返回到0号柱面,开始下一次扫描
对I/O设备的控制方式(数据传输方式)
14) 程序循环测试方式(程序查询式)
是指用户进程使用start指令启动设备后,不断地执行test指令,去测试所启动设备的状态寄存器。只有在状态寄存器出现了所需要的状态后,才停止测试工作,完成输入/输出。
数据寄存器:用来存放传输的数据
状态寄存器:用来记录设备当前所处状态
15) 中断方式
所谓“中断”是一种使CPU暂时中止正在执行的程序而转去处理特殊时间的操作。
引起中断的时间称为中断源。
程序中产生的中断,由CPU的某些错误结果(如,计算机溢出)产生的中断称为“内中断”,由外部设备控制器引起的中断称为“外中断”
16) 直接存储器存取方式(DMA方式)
特点:能使I/O设备直接和内存储器进行成批数据的快速传输。(单位:块数据)
DMA控制器包括四个寄存器:数据寄存器,状态寄存器,地址寄存器,字节计数器
DMA控制器的组成:主机与DMA控制器的接口;DMA控制器与块设备的接口;I/O控制逻辑
17) 通道方式
通道方式能够使CPU彻底从I/O中解放出来。CPU进行善后处理和启动。
通道是一个独立于CPU的,专门用来管理输入/输出操作的处理机。
通道是通过执行通道程序并与设备控制器共同实现对I/O设备的控制的。
它规定了设备应该执行的各种操作的顺序。由一系列通道指令所构成,CPU对I/O请求只去做启动和善后处理工作,输入/输出的管理以及数据传输等事宜,全部由通道独立完成。通道由若干CCW组成
18) 加入缓冲的原因:
a. 缓和CPU与I/O设备间速度不匹配的矛盾
b. 减少对CPU的中断频率,放宽对CPU中断响应时间的限制
c. 解决数据粒度不匹配的问题
d. 提高CPU和I/O设备之间的并行性
19) 缓冲的实现
a. 采用专门的硬件寄存器,比如设备控制器里的数据寄存器,“硬件缓冲”
b. 在内存储器中开辟出n个单元,作为专用的I/O缓冲区,以便存放输入/输出的数据,这种缓冲区就是“软件缓冲”
c. 根据缓冲区的个数:单缓冲区、双缓冲区、多缓冲区、缓冲池
20) 为了加快输入输出速度,提高设备利用率,人们又引入了双缓冲区机制,也称为缓冲对换。
21) 缓冲区与缓冲池的区别:缓冲区仅仅是一组内存块的链表,而缓冲池则包含了一个管理的数据结构及一组操作函数的管理机制,用于管理多个缓冲区。
22) 缓冲池将具有相同类型的缓冲区链成一个队列:分为空白缓冲队列、输入队列、输出队列。
23) 缓冲区的四种工作方式:收容输入、收容输出、提取输入、提取输出
24) 虚拟设备
a. 通过多道程序技术可将一台物理CPU虚拟为多台逻辑CPU,需要硬件的支持。作为后援的硬盘(大容量),具有设备与CPU并行工作的能力
25) SPOOLing技术
a. 在主机的直接控制下,实现以前的脱机输入/输出功能,此时的外围操作与CPU对数据的处理同时进行,我们把这种在联机情况下实现的同时外围操作的技术称为SPOOLing技术,或假脱机技术
b. SPOOLing技术是对脱机输入/输出系统的模拟。SPOOLing系统建立在通道技术和多道程序技术的基础上,以高速随机外存(通常为磁盘)为后援存储器
26) 设备无关性:
应用程序中所用的设备,不局限于使用某个具体的物理设备。为每个设备所配置的设备驱动程序是与硬件紧密相关的软件。为了实现设备独立性,必须再在设备驱动程序上设置一层软件,称为与设备无关的I/O软件或设备独立性软件
27) 操作系统中实现虚拟设备的软件功能模块由3部分组成
a. 预输入程序
b. 缓输出程序
c. 井管理程序
28) 共享打印机:
OS提供的文件操作:创建文件、删除文件、读写文件、设置文件读写的位置、打开文件(指在用户和指定文件之间建立一个连接)、关闭文件
逻辑文件存放在到存储介质上时,采用的组织形式是与( 存储介质特性 )有关的。
目标:提高外存储空间的利用率
主要任务:对用户文件和系统文件进行管理,方便用户使用,并保证文件的安全性
文件存储设备是以块为单位进行管理的
所谓“文件”是指具有完整逻辑意义的一组相关信息的集合,它是在磁盘上保存信息,而且能方便以后读取的方法,文件用符号名加以标识,这个符号名就被称为“文件名”
文件是指由创建者所定义的,具有文件名的一组相关元素的集合,可分为有结构文件和无结构文件两种。在有结构的文件中,文件由若干个相关记录组成,也称为记录式文件。而无结构文件则被看成是一个字符流,故也称为流式文件。文件在文件系统中是一个最大的数据单位,它描述了对象集
文件属性:文件类型、文件长度、文件的物理位置、文件的建立时间(最后一次的修改时间)
文件名:在不同的系统之间,对文件名的规定是不同的。一个文件名是在创建该文件时由用户给出的,操作系统将向用户提供组成文件名的命名规则
文件被存在大容量的辅助存储器(外存)中,当用户需要使用时,就通过文件名把相应的文件读到内存
“文件系统”是指操作系统中与文件管理有关的那部分软件,被管理的文件,以及管理文件所需要的数据结构(目录、索引表······)的总体
文件的逻辑结构
a. 从用户使用的角度出发组织的文件,被称为是文件的逻辑结构,一类是有结构的文件,这是指由一个以上的记录构成的文件,故又称为记录式文件
b. 从文件的组织方式来分,可以分为顺序文件,索引文件,索引顺序文件
c. UNIX操作系统总是以流式作为文件的逻辑结构
文件的物理结构
a. 文件按不同的组织方式在辅存上存放,就会得到不同的物理结构,文件的物理结构有时也称为文件的“存储结构”
b. 文件在辅存(外存)上可以有3种不同的存放方式:连续存放、链接块存放以及索引表存放
c. 对应地文件就有3种物理结构,分别叫做顺序结构,链接结构和索引结构,也叫作连续文件,串联文件,索引文件
存放方式
a. 连续存放—连续文件
不足之处:
必须预先知道文件的最大长度
会造成磁盘碎片
b. 链接块存放—串联文件
不会因为磁盘碎片而浪费存储空间,但使用的指针要占去一些字节,每个磁盘块存储数据的字节数不再是2的幂,从而降低了系统的运行效率
c. 索引表存放—索引文件
文件的存取
a. 顺序存取 b.随机存取
磁盘空间的管理
a. 磁盘是以块为单位进行分配的
b. 磁盘与内存之间是以磁盘块为信息传输的单位
c. 选定了块的大小,还要对它们进行管理,即要记住哪些已经分配,哪些仍然空闲。
d. 常采用的磁盘存储空间管理方案有:位示图,空闲块表,空闲块链
文件的操作:
创建文件、删除文件、打开文件、关闭文件、读文件、写文件
系统是通过文件的目录来管理文件的
文件目录也是一种数据结构,用于标识系统中的文件及其物理地址
为每一个文件开辟一个存储区,在它的里面记录着该文件的有关信息。
我们把该存储区称为“文件控制块”(FCB) 也是一个目录项
随系统的不同,一个文件的FCB中所包含的内容及大小也不尽相同
目录的层次结构
如果把所有文件的FCB都登记在一个文件目录中,这样由文件名查文件目录项,直接就能够找到所需要的文件,那么就成这种文件目录为一级目录结构
a) 优点:
i. 简单,能实现目录管理中最基本的功能—按名存取
b) 缺点:
i. 查找速度慢,不允许重名,不便于实现文件共享
二级目录结构:
由“主目录”与“用户目录”二级构成,在主目录(根目录)中,每个目录项的内容只是给出文件主名以及它的目录所在的磁盘地址。在一个个用户目录中,才是由问价的呢FCB组成的目录,用户目录,实际上就是一级目录
两级目录结构的优点:
a. 提高了检索目录的速度
b. 在不同的文件目录中,可以使用相同的文件名
c. 不同用户还可使用不同的文件名访问系统中的同一个共享文件
缺点:
a. 若一个用户可以拥有很多文件,则查找时间仍然很长
b. 用户无法对自己的文件进行再分类安排
文件的“共享”是指一个文件可以被多个授权用户共同使用
分两种:
任何时刻只允许一个用户使用共享文件
允许多个用户同时使用同一个共享文件,只进行读操作
17)外存的组织方式:
a. 连续组织方式 :优点是顺序访问容易,顺序访问速度快
b. 链接组织方式 :优点是1.消除了磁盘的外部碎片,提高外存利用率
2.对插入,删除和修改都非常容易
3.能适应文件的动态增长,无需事先知道文件的大小
分为隐式链接、显式链接,隐式链接只适合顺序访问不适合随机访问
c. 索引组织方式
命令接口—联机命令
联机接口
接口类型 图形接口—图标
程序接口 –系统调用
19)文件存储空间的管理
A 空闲表法和空闲链表法,不适合用于大型文件系统
空闲表法采用连续分配方式,与内存的管理方法类似。
空闲链表法分为空闲盘块链和空闲盘区链,盘区包含若干个盘块。
B 位示图法
C 成组链接法
如图,成组链接法中,每块最上边有个数字100,表示本块还有几块空闲盘块,每组空闲盘块是按照堆栈的方式进行组织,如图中的S.free表示栈指针。第一组中是201300,其中201299链接的是可用的空闲盘块地址,而300,也就是每组的第一个块,存放的是下一组地址,如图看向箭头是从300开始的,一直到400,此时400中存放的也是下一组所有盘块的地址,而301~399中表示的是可用的空闲分区。
20)Unix系统的物理文件结构是混合索引文件,对文件存储空间管理的方法是成组链
Unix系统的一个目录占16个字节,其中14个字节是文件名,2个字节作为i指针,指针指向文件描述信息,所以一个1KB的盘块可以存64个目录项。