在大三学习操作系统时所做的总结,上传到论坛以备日后复习使用。

第一章操作系统概述

1)计算机软件是指程序和与程序相关的文档的集合
2)按功能可把软件分为“系统软件”和“应用软件”两部分
系统软件:操作系统语言处理程序,数据库管理系统
应用软件:各种管理软件,用于工程计算的软件包,辅助设计软件
3)发展的动力:
(1) 提高计算机资源的利用率的需要
(2) 方便用户使用计算机的需要
(3) 硬件技术不断发展的需要
(4) 计算机体系结构发展的需要
4)操作系统的定义:
操作系统是控制和管理计算机硬件和软件资源,合理地组织计算机工作流程,以及方便用户使用计算机的一个大型程序
5)操作系统的功能:
处理机管理:进程控制,进程同步,进程通信、调度、实施CPU分配
存储器管理:内存分配,内存保护,地址映射,内存扩充
设备管理:缓冲管理,设备分配,设备管理
文件管理:存储空间管理,目录管理,读写管理和保护
与用户有关的接口:用户接口,程序接口,人机交互
6)操作系统另一种定义:操作系统是一组能有效地组织和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的程序的集合
操作系统的种类:

  1. 单道批处理系统
    特点:单路性、独占性、自动性、封闭性、顺序性
    缺点:系统的资源得不到充分的利用
  2. 多道批处理系统
    发展动力是提高资源利用率和系统吞吐量。
    特点:多路性、共享性、自动型、封闭性、无序性、调度性
    好处:提高CPU的利用率,提高内存和I/O设备的利用率
    增加系统吞吐量
    缺点:平均周转时间长,无交互能力
  3. 分时系统
    推动其发展的动力是满足用户对人机交互的需求。
    分时系统是指在一台主机上连接了多个配有显示器和键盘的终端,由此所组成的系统,该系统允许多个用户同时通过自己的终端,以交互方式使用计算机,共享主机中的资源。采用了“时间片轮转”的处理机调度策略
    关键问题:是人机交互,即用户请求的及时接受和及时处理问题。
    解决措施:通过在系统中配置多路卡以连接多路终端从而实现用户请求的 及时接收,采用时间片轮转的进程调度算法实现用户请求的及时处理问题。
    特征:多路性、独立性、及时性、交互性
  4. 实时系统
  5. 以上操作系统共有的特征:并发、共享、虚拟、异步四个基本特征
  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. 如果新进程就绪队列能够接纳新进程,便将新进程插入就绪队列

  1. 引起进程阻塞和唤醒的四个事件:向系统请求共享资源失败、等待某种操作的完成、新数据尚未到达、等待新任务的到达
  2. 信号量机制:整型信号量(只有PV操作,但是没有阻塞和唤醒服务,因此不能解决让权等待问题) ,记录型信号量(相较于整型,增加了阻塞唤醒服务),AND信号量(将进程需要的资源一下子都赋予,当条件都满足时才能得到)
  3. 信号量的初值不能为负数,一般是大于等于0,其他情况可以是负整数
  4. 信息的传递方式:
    共享存储器系统:1.基于共享数据结构的通信方式 2. 基于共享存储区的通信方式
    管道通信系统:没发完的时候不能取,没取完的时候不能发,为了协调通信,管道通信应具有互斥、同步、确定对方是否存在的的能力
    消息传递系统:基于此通信方式的属于高级通信方式,1.直接通信方式,发送 方进程的消息挂在接收方进程的消息队列后边,消息队列属于临界资源 2.间接通信方式,通过中间实体(邮箱)的方式完成消息传递
    客户机-服务器系统:套接字(socket)、远程过程调用、远程方法调用
  5. 信号量的应用:
    利用信号量实现进程互斥关系,设置信号量初值为1,且PV操作成对的出现在一个进程中
    利用信号量实现前趋关系(同步),设置信号量初值为0(不一定),PV操作成对的分别出现在两个进程中,先执行的放V,后执行的放P
  6. 信箱的类型:a. 私用邮箱 b.公用邮箱 c. 共享邮箱
    利用邮箱通信时,发送进程和接受进程之间存在四中关系:一对一、多对一、一对多、多对多

第三章处理机调度与死锁

  1. CPU利用率=
    系统吞吐量=总共完成的多少道作业/总共花的时间 单位时间内完成的作业数量
    周转时间=作业完成时间—作业到达时间 衡量系统性能的指标
    平均周转时间=各作业周转时间之和/作业数
    带权周转时间=周转时间/作业实际运行时间

  2. 处理机调度的层次:
    A. 高级调度(长调度、作业调度):多用于多道批处理系统,不用于分时和实时系统,调度对象是作业
    B. 中级调度(内存调度):提高内存利用率和系统吞吐量,实现的是对换功能
    C. 低级调度:分配处理机给队列中的进程,在多道批处理、分时、实时系统中都有实现

  3. 作业调度经历:收容、运行、完成三个阶段,分别对应收后备、运行、完成三个状态
    后备状态作业在外存,运行状态在内存,运行状态包含了就绪状态

  4. 作业调度算法
    A 先来先服务算法(FCFS) 非抢占式 B 短作业优先(SJF) 会导致饥饿现象 可抢占 C 优先级调度算法 可抢占
    D 高响应比优先算法 非抢占式算法
    优先权=(等待时间+要求服务时间)/要求服务时间=响应时间/要求服务时间

  5. 常用的进程调度算法:
    a. 先来先服务调度算法
    b. 时间片轮转调度算法:时间片分的过大会导致响应时间加长,使算法退化为先来先服务,分的太小,会使进程切换的过于频繁,算法不会导致饥饿现象,抢占式算法
    c. 优先数调度算法:优先数高的先调度,若相同则先来先服务
    d. 多级队列调度算法:时间片调度和优先数调度算法的结合,抢占式算法,会导致饥饿

  6. 进程调度程序的主要功能
    a. 记录系统中所有进程的有关情况,比如进程的当前状态,优先数等
    b. 确定分配处理机的算法
    c. 完成处理机的分配
    d. 完成处理机的回收

  7. 为了对进程进行有效的管理和控制,操作系统要提供若干基本的操作以便能创建进程、撤销进程、阻塞进程、唤醒进程,把具有这种特性的程序称为“原语”,原语的不可分割性,通常利用屏蔽中断的方法

  8. 死锁:多个进程因竞争资源而造成的一种僵局,若无外力作用,这些进程将无法向前推进
    定义:即指系统中若存在一组(至少两个或以上)进程,它们中的每一个都占用了某种资源而又都在等待其中另一个所占用的资源,这种等待永远不会结束,这就是死锁

  9. 可抢占性资源:cpu、内存,抢占该类资源不会引起死锁
    不可抢占资源:磁带机、打印机、刻录机这种,不能一个正在用的时候别抢,不然会导致任务出错。

  10. 引起死锁的原因:
    a. 竞争不可抢占性资源引起死锁 b.竞争可消耗性资源引起死锁 c.进程推进顺序不当引起死锁

  11. 产生死锁的4个必要条件
    a. 互斥条件:进程对所分配的资源进行排它性使用,即在一段时间内,某资源只能被一个进程占用
    b. 请求和保持(占用并等待):进程由于申请不到所需要的资源而等待时,仍然占据着已经分配到的资源
    c. 不可抢占条件:已经分配给进程的资源,别的进程不能强行夺取资源,只能被占用它的进程自己释放
    d. 循环等待条件:在多个进程之间,由于资源的占有和请求关系,从而形成了一个循环等待的态势

  12. 处理死锁的方法:
    a. 预防死锁:破坏产生死锁的4个必要条件之一,使系统不具备产生死锁的条件
    b. 避免死锁:在资源的动态分配过程中,用某种方法防止系统进入不安全状态,从而可以避免死锁
    c. 检测死锁:无须事先采取任何限制性措施,允许发生死锁,然后采取措施将进程从死锁中解脱出来
    d. 解除死锁:当检测系统中已经发生死锁,就采取措施将进程从死锁状态中解除,如:撤销一些进程,回收它们的资源,将它们分配给已处于阻塞状态的进程,使其继续执行

  13. 预防死锁:
    a. 互斥条件是非共享设备所必须的,不仅不能改变,还应加以保证
    b. 破坏占用并等待条件:所有进程在开始运行之前,必须一次性地申请其在整个过程中所需要的全部资源,一次性分配
    c. 破坏“分剥夺条件”:当进程提出新的资源请求得不到满足时,它必须释放已经保持的所有资源,待以后需要时再重新申请
    d. 破坏循环等待条件:将系统中的所有资源进行统一编号,进程按编号的顺序,由小到大提出对资源使用的申请

第四章存储管理

  1. 计算机操作系统的存储器:CPU寄存器,主存(内存),辅存(外存)
  2. 在考虑计算机存储器的设计时,必须顾及
    a. 价格、容量、访问时间
    b. 存取时间越快,价格越高,容量越小
  3. 高速缓存:介于寄存器和存储器之间的存储器,主要用于备份主存中较常用的数据,以减少处理机对主存储器的访问次数,提高程序执行速度
    高速缓存容量远大于寄存器,比内存约小两到三个数量级左右
    为了缓和内存与处理机(CPU)速度的不匹配
  4. 字(字长):一次传送数据的长度{16、32、64…}依系统而定
    (主)内存储器和高速缓存之间是以“块”为单位传递数据的
    高速缓存与CPU之间则以“字”为单位传递数据
  5. 存储器管理的功能:
    a. 内存的分配与回收
    b. 存储的保护和共享
    c. 地址定位
    d. 存储扩充
  6. 内存储器由一个个存储单元组成,一个存储单元可存放若干个二进制的位(bit),8个二进制位被称为一个字节(byte)
  7. 在操作系统中,把用户程序指令中的相对地址变为所在绝对地址空间中的绝对地址的这个过程,称为地址重定位
  8. 程序在内存总变为一个可执行程序,需要经过编译、链接、装入,三个步骤
  9. 程序的装入方式:
    a. 绝对定位方式:是在程序装入内存之前,程序指令中的地址就已经是绝对地址,已经正确地反映了它将要进入的存储区的位置,不适用于多道程序设计环境
    b. 静态重定位(多道程序环境下)
    根据内存的具体情况将装入模块装入到内存的适当位置,会使装入模块中的所有逻辑地址与实际装入内存后的物理地址不同。
    这种地址重定位是在程序执行前完成的
    c. 动态重定位
    将地址重定位的时间推迟到程序执行时再进行
    所以装入内存的所有地址都仍是逻辑地址
    10)程序的链接方式
    A 静态链接方式 B 装入时动态链接 C 运行时动态链接
    连续分配存储方式 :
  10. 单一连续分配(静态重定位)
    a. 单道程序环境下,总体上把内存储器分为两个分区:系统区和用户区
    b. 系统总是把整个用户区分配给一个用户使用,把分配给了用户但未被使用的区域称为“内部碎片”
    c. 单一连续分区存储管理的缺点:
    a) 由于每次只能有一个进入内存,故它不适用于多道程序设计,工作效率不高,资源利用率低
    b) 只要作业比用户区小,在用户区里就会形成碎片,造成资源浪费
    c) 大作业无法在小内存中运行
    d. 为缓解大作业小内存的情况提出覆盖技术和对换技术
    a) 覆盖技术:允许一个作业的若干个程序段使用同一个存储区
    b) 对换技术:以辅助存储器作为内存的后援(硬盘)
  11. 固定分区存储管理(静态):分区数目固定,分区大小可以不同但预先固定
    a. 预先把内存储器中可供分配的用户区划分成若干个连续分区,每个分区的尺寸可以相同,可以不同。每个分区中只允许装入一个作业运行,系统可以为每一个分区设置一个后备作业队列,一个作业到达时,总是进入到“能容纳该作业的最小分区”的那个后备队列中去排队
    b. 分区的分配与释放方案:
    a) 在队列中挑选出第一个可容纳的作业进入
    i. 优点:选择效率高
    ii. 缺点:小作业->大内存
    b) 在这个队列中进行搜索,找到这个分区能够容纳的最大的那个作业,让它进入运行
    i. 优点:存储空间利用率高,产生内部碎片尽可能的小
    ii. 缺点:选择效率低
    c) 在系统中至少保留一个小的分区,以避免因为运行小作业而被迫分配打分去的发生
    d) 为具体管理各个分区,并建立一个“分区分配表”,其中包括每个分区的起始位置大小及状态
    c. 特点
    a) 它是最简单的,具有“多道”色彩的存储管理方案,提高资源利用率
    b) 当把一个分区分配给某个作业时,该作业的程序将一次性的全部装入到分配给他的连续分区里
    c) 静态重定位,在分区内的程序不能随意移动
    d. 缺点
    a) 进入分区的作业尺寸不见得与分区的长度相吻合,势必产生内部碎片,引起资源的浪费
    b) 如果到达作业的尺寸比任何一个分区的长度都大,它就无法运行
  12. 动态分区分配:
    分区的边界划分随作业的需求可变,分区的数目随着进入作业的多少可变,消灭了内部碎片(可能会产生内部碎片)。
    外部碎片是指无法分配给用户使用的存储区
    a. 基本思想:在作业要求装入内存储器时,如果当时内存储器中有足够的存储空间满足该作业的需求,就划分出一个与作业相对地址空间同样大小的分区,并分配给它
    b. 要解决的问题
    a) 采用一种新的地址重定位技术,动态地址重定位,以便程序能够在内存储器中随意移动,为空闲区的合并提供保证
    b) 记住系统中各个分区的使用情况
    c) 给出分区分配算法
    c. 地址动态重定位过程(在程序执行时动态完成)
    a) 为实施地址动态重定位,硬件要增加一个地址转换机构,这个机构一般由地址转换线路和一个定位寄存器(基址寄存器)组成
    b) 地址的静态重定位和动态重定位的比较
    i. 地址转换时刻:静态重定位是在程序运行之前完成地址转换的,而动态重定位是在程序执行时完成
    ii. 谁来完成任务:静态重定位是由软件完成地址转换工作的,而动态重定位则是由一套硬件提供的地址转换机构来完成
    iii. 完成的形式:静态重定位是在装入时一次性集中地把程序指令中所有要转换的地址加以转换;而动态重定位则是每执行一条执行时,就对其地址加以转换
    iv. 完成的结果:实施静态重定位,原来的指令地址部分被修改了,而动态重定位只是按照所形成的地址去执行这条指令,并不对指令本身做任何修改
    d. 分区的管理
    a) 表格法:一张已分配表,一张空闲表(分区号,分区大小,分区起始地址、状态)
    b) 单链表法:一个存放该分区的长度,另一个存放它下一个空闲分区的起始地址
    c) 双链表法:还存放上一个空闲区起始地址
    e. 空闲分区的分配算法
    a) 最先适应算法:要求空闲分区链以地址递增的次序链接(对大作业不利)
    b) 最佳适应算法:每次为作业分配内存时,总是把能满足要求,又是最小的空闲分区分配给作业,避免“大材小用”,按容量递增排列。
    c) 最坏适应算法:挑选一个最大的空闲区,从中分割一部分存储空间给作者使用,以至于存储器中缺乏大的空闲分区,照顾中小作业的需求
    d) 循环首次适应算法:从上次分配的位置之后开始查找
    f. 可变分区存储管理的特点
    a) 作业一次性的全部装入到一个连续的存储分区中
    b) 分区是按照作业对存储的需求划分的,所以不会出现内部碎片
    c) 为了确保作业能够在内存中移动,要有硬件的支持,实行指令地址的动态重定位
    g. 缺点:
    a) 仍然没有解决小内存裕兴大作业的问题,只要作业的存储需求大于系统提供的整个用户区,该作业就无法投入运行
    b) 虽然避免了内部碎片,但有可能出现极小的翻去暂时分配不出去的情形,引起了外部碎片,
    c) 为了形成大的分区,可变分区存储管理通过移动程序来达到分区合并的目的,然而程序的移动是很花费时间的,增加了系统在这方面的投入与开销
  13. 基于顺序搜索的动态分区分配算法 p130
  1. 首次适应算法(FF first fit):FF要求空闲分区链以地址递增的次序链接,依次寻找。算法每次从低址查找,会给地址带来大量碎片,高址反而有大的空区,查询时间也比较久
  2. 循环首次适应算法(NF Next Fit):该算法基于FF算法,不再链首开始查询,而是从上次找过的地方开始查找。算法使内存的空间使用的比较均匀,也减少了查找分区的开销,但是会导致没有大的分区。
  3. 最佳适应算法(Best Fit BF):算法要求所欲空闲分区按容量从小到大的顺序成链,将既满足要求又是最小的分区分配给作业。BF会产生一定的细小碎片
  4. 最坏适应算法(worst fit WF)与BF相反,WF总将最大的分区给作业,优点是不会产生过多的碎片,对中小作业有利
  1. 当内存空间不足时,可采用紧凑(拼接)、对换技术
  1. 紧凑技术,将细小的内存碎片整合,从而腾出足够用的内存空间,但是腾地方会导致原本存在内存中的数据位置发生变化,需要更新地址,这会耗费大量的资源,此时可采用前文提到的动态重定位、动态重定位分区分配算法解决
  2. 多道程序下的对换技术,具有对换功能的OS中,将磁盘空间分为文件区和对换区两部分,文件区管理空间考虑的是提高空间利用率,采用的是离散分配方式,对换区管理空间考虑的是访问速度,采用的是连续分配。
  1. :分页式存储管理:
    需要两次访问内存,目的是提高内存利用率
    a. 分页式储存管理是将固定分区方法与动态重定位技术结合在一起,需要硬件支持
    基本思想:首先把整个内存储器划分成大小相等的许多分区,每个分区称为“一块”
    b. 在分页式存储管理中,块是存储分配的单位
    a) 用户作业仍然是相对于“0”进行编址,形成一个连续的相对地址空间
    b) 用户程序相对地址空间中的每一个分区被称为“页”,用户相对地址空间中的每一个相对地址,都可以用(页号,页内位移)这样的数对来表示
    i. 物理地址=页的大小*页号+页内位移
    ii. 页号=相对地址/块尺寸
    iii. 页内位移=相对地址%块尺寸
    c. 页与块对应关系表称为“页表”
    a) 快速寄存器组单独起名为“相联寄存器”,简称“快表”
    b) 快表与页表联合工作,先查找快表,若无再查找页表并把数据写入快表
    c) (访问页表时间+访问一次内存时间)命中率+访问快表时间命中率=平均内存存取时间
    d) 页面尺寸大多选在512byte到64kb之间
    d. 特点:
    a) 内存储器实现被划分成相等尺寸的块,它是进行存储分配的单元
    b) 用户作业的相对地址空间按照块的尺寸划分成页,这是在系统内部进行的,用户感觉不到
    c) 相对地址空间中的页可以进入内存中的任何一个空闲块,并且分页式存储管理实行的是动态重定位,因此它打破了一个作业必须占据连续的存储空间的限制,作业在不连续的存储区里,也能够得到正确的运行
    e. 缺点:
    a) 平均每一个作业要浪费半页大小的存储块,会产生内部碎片
    b) 作业虽然可以不占据连续的存储区,但是每次仍然要求一次全部进入内存。因此,如果作业很大,其存储需求大于内存,仍然存在小内存不能运行大作业的问题
  2. 访问内存的有效时间
  1. 不带块表 EAT=T+T=2T
  2. 带快表的访问时间 EAT=t(访问快表的时间)a(命中率)+(t+T)(1-a)+T
  1. 分段式存储管理:
    a. 目的:方便用户使用编程,存储共享,存储保护,动态增长,动态链接
    b. 要求用户将自己的整个作业程序以多个相互独立的称为“段”的地址空间提交给系统,每个段都是一个从“0”开始的一维地址空间,长度不一,操作系统按照段长为作业分配内存空间
    c. 段表:段号、段长、该段在内存的基址(起始地址){段号,段内位移}
    a) 物理地址=段的起始地址+段内地址
    b) 逻辑地址=段号+段内地址
    d. 分段与分页的区别:
    a) 页是信息的物理单位,段是信息的逻辑单位
    i. 分页提高内存的利用率,仅仅是系统管理上的需要,用户不可见。段是信息的逻辑单位,它通常包括的是一组意义相对完整的信息,分段段的目的主要在于能更好地满足用户的需要
    b) 页的尺寸由系统决定,段的尺寸因段而异
    i. 段的长度取决于用户编写的程序,通常由编译程序在对源程序进行编译时根据信息的性质来划分
    c) 页的地址空间是一维的,段的地址空间是二维的
    i. 分页:用户必须通过链接编辑程序,把各程序段链接成一个相对于0编址的线性空间,程序中是通过地址编号来确定空间中的位置的。因此用户向系统提供的是一个一维的逻辑地址空间。
    ii. 分段:用户不把各程序段链接成一个相对于0进行编制的一维线性空间,各程序段之间是通过{段号,段内位移}进行访问的。因此,用户向系统提供的是一个二维的逻辑地址空间
  2. 段页式存储管理:(三次访问内存)
    a. 基本原理:分段和分页原理的结合,即先将用户程序分成若干个段,再把每个段分成若干个页,并为每一个段赋予一个段名。
    a) 作业地址空间结构:主程序段,子程序段,数据段
    b) 地址结构:段号,段内页号,页内地址
    b. 系统设置了位示图、段表和页表,记录主存的使用情况和作业分配情况
    a) 逻辑地址=段号+页号+页内位置
    b) 块号*块长+页内地址
    c. 虚拟存储器:是具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统,其逻辑容量由内存容量和外存容量之和所决定,其运行速度接近于内存速度。
    a) 特征:多次性、对换性、虚拟性、离散性
    d. 缺页中断与一般中断的区别 {缺页中断率=缺页次数/页面总数}
    a) 缺页中断是在执行一条指令中间时产生的中断,并立即去处理,一般中断则是一条指令执行完毕后,当发现有中断请求时,才去响应和处理
    b) 缺页中断处理完成后,仍返回到原指令去执行,因为那条指令并未执行;而一般中断则是到下一条指令去执行,因为上一条指令已经执行完毕了
    e. 影响缺页中断次数的因素:
    a) 分配给作业的内存块数
    b) 页面尺寸
    c) 程序的实现

第五章 虚拟存储器

  1. 请求分页式存储管理(需要硬件支持)
    以下是请求页表:
    页号 物理块号 状态位 P 访问字段A 修改为M 外存地址

是基于分页式存储管理的一种虚拟存储器“请求分页式”是指当程序运行中需要某一页时,再把它从辅助存储器里调入内存使用,解决了小内存与大作业的矛盾,但会产生内部碎片
缺页中断是指在指令执行期间,若发现所要访问的指令或数据不在内存时,便立即产生和处理缺页中断信号,以便能及时将所缺之页面调入内存
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. 设备处理方式:

  1. 为每一类设备设置一个进程,专门用于执行这类设备的I/O操作
  2. 在整个系统中设置一个I/O进程,专门用于执行系统中所有各类设备的I/O操作
  3. 不设置专门的设备处理进程,而只为各类设置相应的设备驱动程序,供用户或系统进程调用
    viii. 设备驱动程序的处理过程
  4. 将抽象要求转换为具体要求
  5. 对服务请求进行校验,即检查I/O请求的合法性
  6. 检查设备的状态
  7. 传送必要的参数
  8. 启动I/O设备
  9. 工作方式的设置
    I/O接口程序:是操作系统中与设备无关的软件,它从上层接收用户对设备提出的I/O请求,然后负责吧I/O请求转变成所需要的I/O命令,调用具体的设备驱动程序去执行
    系统都是用主设备号和次设备号组成“逻辑设备名”
    ix. 设备管理中的数据结构
    A 设备控制表DCT,用于记录设备的情况,有设备类型、标识符、状态等
    B 控制器控制表COCT,用于记录控制器情况,有控制器标识符、状态、指针等
    C 通道控制表CHCT,记录通道的信息,同上
    D 系统设备表SDT,记录了系统中全部设备的情况
    x. 输入输出管理步骤
  10. 用户在程序中使用系统提供的输入/输出命令发出I/O请求
  11. 输入输出管理程序接受这个请求
  12. “设备驱动程序”来具体完成所要求的的I/O操作
  13. 实现设备中断处理程序来处理这个请求
    设备的输入输出管理程序由3块内容组成:接受用户的I/O请求,组织管理输入输出进行,输入输出的善后处理
    设备控制:
    12.设备控制块DCB中存放的是一台具体设备的有关信息,找到一个设备的DCB,就得到了该设备的特性,各种参数,使用情况等,所以DCB是设备管理中最重要的一条数据结构
    13.独享设备中具有排他性,只能采取“静态分配”的策略
    a. 静态分配:用户作业开始之前,由系统一次分配给该作业所需的设备,控制器和通道,不会发生死锁
    b. 动态分配:在进程执行过程中进行的设备分配,可能造成死锁

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) 共享打印机:

  1. 在磁盘缓冲区中为打印请求申请一个空闲盘块,将要打印的数据送入其中暂存
  2. 为用户进程申请一张空白的申请打印表,将打印要求存入其中,在将该表挂在假脱机文件队列上
  3. 当打印机空闲时,执行队列中的打印请求
  1. SPOOLing系统由四部分组成
    a. 输入井和输出井
    在磁盘上开辟出来的两个存储区域,输入数据,输出数据
    b. 输入缓冲区和输出缓冲区
    在内存中开辟的两个缓冲区
    c. 输入进程和输出进程
    模拟外围控制机
    d. 井管理程序:提高了I/O的速度 将独占设备改造为共享设备 实现了虚拟设备的功能

第七章文件管理

  1. OS提供的文件操作:创建文件、删除文件、读写文件、设置文件读写的位置、打开文件(指在用户和指定文件之间建立一个连接)、关闭文件

  2. 逻辑文件存放在到存储介质上时,采用的组织形式是与( 存储介质特性 )有关的。

  3. 目标:提高外存储空间的利用率
    主要任务:对用户文件和系统文件进行管理,方便用户使用,并保证文件的安全性
    文件存储设备是以块为单位进行管理的

  4. 所谓“文件”是指具有完整逻辑意义的一组相关信息的集合,它是在磁盘上保存信息,而且能方便以后读取的方法,文件用符号名加以标识,这个符号名就被称为“文件名”

  5. 文件是指由创建者所定义的,具有文件名的一组相关元素的集合,可分为有结构文件和无结构文件两种。在有结构的文件中,文件由若干个相关记录组成,也称为记录式文件。而无结构文件则被看成是一个字符流,故也称为流式文件。文件在文件系统中是一个最大的数据单位,它描述了对象集
    文件属性:文件类型、文件长度、文件的物理位置、文件的建立时间(最后一次的修改时间)

  6. 文件名:在不同的系统之间,对文件名的规定是不同的。一个文件名是在创建该文件时由用户给出的,操作系统将向用户提供组成文件名的命名规则

  7. 文件被存在大容量的辅助存储器(外存)中,当用户需要使用时,就通过文件名把相应的文件读到内存

  8. “文件系统”是指操作系统中与文件管理有关的那部分软件,被管理的文件,以及管理文件所需要的数据结构(目录、索引表······)的总体

  9. 文件的逻辑结构
    a. 从用户使用的角度出发组织的文件,被称为是文件的逻辑结构,一类是有结构的文件,这是指由一个以上的记录构成的文件,故又称为记录式文件
    b. 从文件的组织方式来分,可以分为顺序文件,索引文件,索引顺序文件
    c. UNIX操作系统总是以流式作为文件的逻辑结构

  10. 文件的物理结构
    a. 文件按不同的组织方式在辅存上存放,就会得到不同的物理结构,文件的物理结构有时也称为文件的“存储结构”
    b. 文件在辅存(外存)上可以有3种不同的存放方式:连续存放、链接块存放以及索引表存放
    c. 对应地文件就有3种物理结构,分别叫做顺序结构,链接结构和索引结构,也叫作连续文件,串联文件,索引文件

  11. 存放方式
    a. 连续存放—连续文件
    不足之处:
     必须预先知道文件的最大长度
     会造成磁盘碎片
    b. 链接块存放—串联文件
    不会因为磁盘碎片而浪费存储空间,但使用的指针要占去一些字节,每个磁盘块存储数据的字节数不再是2的幂,从而降低了系统的运行效率
    c. 索引表存放—索引文件

  12. 文件的存取
    a. 顺序存取 b.随机存取

  13. 磁盘空间的管理
    a. 磁盘是以块为单位进行分配的
    b. 磁盘与内存之间是以磁盘块为信息传输的单位
    c. 选定了块的大小,还要对它们进行管理,即要记住哪些已经分配,哪些仍然空闲。
    d. 常采用的磁盘存储空间管理方案有:位示图,空闲块表,空闲块链

  14. 文件的操作:
    创建文件、删除文件、打开文件、关闭文件、读文件、写文件

  15. 系统是通过文件的目录来管理文件的
    文件目录也是一种数据结构,用于标识系统中的文件及其物理地址

  16. 为每一个文件开辟一个存储区,在它的里面记录着该文件的有关信息。
    我们把该存储区称为“文件控制块”(FCB) 也是一个目录项
    随系统的不同,一个文件的FCB中所包含的内容及大小也不尽相同

  17. 目录的层次结构
    如果把所有文件的FCB都登记在一个文件目录中,这样由文件名查文件目录项,直接就能够找到所需要的文件,那么就成这种文件目录为一级目录结构
    a) 优点:
    i. 简单,能实现目录管理中最基本的功能—按名存取
    b) 缺点:
    i. 查找速度慢,不允许重名,不便于实现文件共享
    二级目录结构:
    由“主目录”与“用户目录”二级构成,在主目录(根目录)中,每个目录项的内容只是给出文件主名以及它的目录所在的磁盘地址。在一个个用户目录中,才是由问价的呢FCB组成的目录,用户目录,实际上就是一级目录

  18. 两级目录结构的优点:
    a. 提高了检索目录的速度
    b. 在不同的文件目录中,可以使用相同的文件名
    c. 不同用户还可使用不同的文件名访问系统中的同一个共享文件

  19. 缺点:
    a. 若一个用户可以拥有很多文件,则查找时间仍然很长
    b. 用户无法对自己的文件进行再分类安排

  20. 文件的“共享”是指一个文件可以被多个授权用户共同使用
    分两种:
    任何时刻只允许一个用户使用共享文件
    允许多个用户同时使用同一个共享文件,只进行读操作
    17)外存的组织方式:
    a. 连续组织方式 :优点是顺序访问容易,顺序访问速度快
    b. 链接组织方式 :优点是1.消除了磁盘的外部碎片,提高外存利用率
    2.对插入,删除和修改都非常容易
    3.能适应文件的动态增长,无需事先知道文件的大小
    分为隐式链接、显式链接,隐式链接只适合顺序访问不适合随机访问
    c. 索引组织方式

  21.              命令接口—联机命令联机接口
    

接口类型 图形接口—图标
程序接口 –系统调用
19)文件存储空间的管理
A 空闲表法和空闲链表法,不适合用于大型文件系统
空闲表法采用连续分配方式,与内存的管理方法类似。
空闲链表法分为空闲盘块链和空闲盘区链,盘区包含若干个盘块。
B 位示图法
C 成组链接法

如图,成组链接法中,每块最上边有个数字100,表示本块还有几块空闲盘块,每组空闲盘块是按照堆栈的方式进行组织,如图中的S.free表示栈指针。第一组中是201300,其中201299链接的是可用的空闲盘块地址,而300,也就是每组的第一个块,存放的是下一组地址,如图看向箭头是从300开始的,一直到400,此时400中存放的也是下一组所有盘块的地址,而301~399中表示的是可用的空闲分区。

20)Unix系统的物理文件结构是混合索引文件,对文件存储空间管理的方法是成组链
Unix系统的一个目录占16个字节,其中14个字节是文件名,2个字节作为i指针,指针指向文件描述信息,所以一个1KB的盘块可以存64个目录项。

计算机操作系统知识点总结相关推荐

  1. 计算机考研:计算机操作系统知识点复习

    在考研大纲里,操作系统占了35分,次于数据结构和组成原理,但高于计算机网络.总的来说,操作系统实际上是四门考察课程里最简单的.除了PV操作这一大难点,基本没有其它特别难的原理或复杂的算法.重要的是区分 ...

  2. 【详细解读】计算机操作系统知识点总览

    1 解释一下什么是操作系统 操作系统是运行在计算机上最重要的一种软件,它管理计算机的资源和进程以及所有的硬件和软件.它为计算机硬件和软件提供了一种中间层 通常情况下,计算机上会运行着许多应用程序,它们 ...

  3. 试利用记录型信号量和pv操作写出_计算机操作系统知识点汇总

    1.基本特征 (1)并发:并发是指宏观上在一段时间内能同时运行多个程序,而并行则指同一时刻能运行多个指令.操作系统通过引入进程和线程使得程序能够并发运行: (2)共享:共享是指系统中的资源可以被多个并 ...

  4. 考研OR工作----计算机操作系统简答题及疑难知识点总结(第一章 操作系统引论)

    Everybody,阿婆主根据<计算机操作系统>(第四版.汤子瀛)这本书来对一些考研或者是工作上对计算机操作系统的知识疑难点进行了总结,有需要的朋友可以通过阿婆主总结的文章来进行学习或背记 ...

  5. 考研OR工作----计算机操作系统简答题及疑难知识点总结(第二章 进程的描述与控制)

    计算机操作系统从第二章开始内容会变得异常多,还是希望能够帮助到大家,在这一章阿婆主还会把书上的典型的PV操作题给打上来,给大家用作参考,如果有问题的地方,还请大家在文章下方留言,我好更正,或者你们有更 ...

  6. 《计算机操作系统(第四版)》知识点归纳

    大二期末要闭卷考计算机操作系统,于是自己总结归纳了一些内容,希望后来的同道之人可以省点时间~(做完归纳,考试就不怕了) 说明:一开始是少量知识点以"填空题"的形式记录,后面的内容是 ...

  7. 面试「计算机操作系统」知识点大集合!

    作者:CyC2018 链接:https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/计算机操作系统.md 一.概述 基本特征 1. 并发 ...

  8. Windows计算机操作系统基础知识点总结

    文章目录 计算机操作系统 冯诺依曼体系 cpu cpu处理过程 cpu物理构成 cpu功能构成 内存 内存的结构 存储器 磁盘 磁盘的物理结构 磁盘的构造 文件存储 I/O设备 总线 ip地址详解 简 ...

  9. 天津理工大学计算机操作系统期末知识点复习

    天理计算机中加专业期末操作系统复习 文章目录 天理计算机中加专业期末操作系统复习 第一章(操作系统导论) 第二章(进程管理) 第三章(处理机调度) 第四章(存储器系统) 第五章(设备管理) 学弟学妹们 ...

  10. 大学课程 | 《计算机操作系统》详细知识点总结

    文章目录 计算机操作系统 第一章 操作系统引论 1.1 操作系统的目标和作用 1.1.1 操作系统的目标 1.1.2 操作系统的作用 1.1.3 推动操作系统发展的主要动力 1.2 操作系统的发展过程 ...

最新文章

  1. 张亚勤谈数字化3.0:由物理与生物世界的数字化构成 | WIC
  2. SVM-支持向量机原理详解与实践之四
  3. 数组名与函数的结合使用注意项
  4. TS Interface(接口)
  5. vbyone接口引脚定义_USB3.1 Type-C 高速接口设计指南
  6. OPC 通讯 Demo
  7. 六大手机软件商店分析报告
  8. python数字信号处理pdf_数字信号处理
  9. 高斯勒让德数值积分公式
  10. win10 svn无法成功完成操作,因为文件包含病毒或潜在的垃圾软件
  11. php私人云,PHP源码Cloudreve乐云网盘私人云盘源码 资源下载不限速功能
  12. matlab求图像峰度与斜度,python中的图像偏斜和峰度
  13. 服务器安装字体库解决出现xx问题
  14. 电脑删除的文件去哪了?删除的数据恢复,居然有3个方法…
  15. \xe8\x83\xa5\xe5\xb8\x85\xe6\x9d\xb0转中文
  16. Linux系统下安装jdk及环境配置(两种方法)
  17. 星秒入选毕马威(KPMG)汽车科技新锐企业榜
  18. Linux ● 文件操作指令
  19. Android检测模拟器
  20. ERROR: cannot launch node of type [fake_localization/fake_localization]: fake_localization

热门文章

  1. 时不变线性系统和时变线性系统方程的对角化
  2. 拼多多笔试_探险家冒险和大数问题
  3. Python 网络爬虫与数据采集(一)
  4. 2021华为悦盒EC6110-T-M-拆机-强刷固件及教程
  5. keil编程和c语言,C语言编程及keil软件使用.ppt
  6. 沟通CTBS物业管理行业远程接入解决方案
  7. 对象转map工具类BeanUtil
  8. 二进制转格雷码c语言编程,格雷码简介及格雷码与二进制的转换程序
  9. 知识图谱-构建:知识图谱构建流程【本体构建、知识抽取(实体抽取、 关系抽取、属性抽取)、知识表示、知识融合、知识存储】
  10. matlab语法归纳