第一章
0x01 操作系统的目标:方便性、有效性(提高资源的利用率和吞吐量)、可扩充性、开放性(应用环境从单机变为网络)
0x02 操作系统的作用:
OS作为用户与计算机硬件系统的接口(命令、系统调用、图标窗口)
OS作为计算机系统资源的管理者(硬/软件资源(处理机、存储器、I/O设备、文件(程序和数据)))
OS实现了对计算机资源的抽象
0x03 操作系统的基本特性:并发、共享、虚拟、异步
0x04 操作系统的主要功能:
处理机管理功能
存储器管理功能
设备管理功能
文件管理功能
操作系统与用户之间的接口
0x05
单道批处理系统到多道批处理系统的动力:提高系统资源利用率和系统吞吐量
多道批处理系统到分时系统:满足人机交互需求
特征:多路性、独立性、交互性、及时性
操作系统是一组有效地组织和管理计算机硬件和软件资源,对各类作业进行调度,方便用户使用的程序的集合
第二章(PV操作)
0x06 进程的概念:
进程是程序的一次执行
进程是程序及其数据在处理机上顺序执行所发生的活动
进程是具有独立功能的程序在一个数据集合上运行的过程,是系统进行资源分配和调度的一个独立单位
进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位
0x07 进程的特征:动态性、并发性、异步性、独立性
0x08 进程的状态:就绪状态、执行状态、阻塞状态、创建状态、终止状态
0x09 状态转换:
就绪到执行:调度程序选择某个进程并分配处理机
执行到就绪:时间片用完,高优先级的进程处于就绪状态–剥夺
执行到阻塞:要等待事件发生
阻塞到就绪:等待的事件发生
创建状态:进程所需的资源尚未满足
活动就绪到静止就绪(静止就绪不被调度执行):没有活动阻塞进程,必须释放内存
静止就绪到活动就绪:内存中没有就绪的进程
活动阻塞到静止阻塞:
静止阻塞到活动阻塞:
执行到静止就绪:中断请求暂停–研究其运行情况
静止阻塞到静止就绪:等待的事件发生
创建到静止就绪:内存不足,安置在外存,不参与调度,创建工作未完成
执行到终止:进程已完成任务或出现无法克服的错误或被OS其他进程终结
0x0A 进程控制块:
系统为了管理进程设置的专门的数据结构,存放了用于描述该进程情况和控制进程运行所需的全部信息
PCB是系统感知进程存在的唯一标志
PCB与进程一一对应
0X0B PCB的作用:
是独立运行基本单位的标志
实现了间断式运行方式
提供了进程管理所需的全部信息
提供了进程调度所需的全部信息
实现了与其他进程同步和通信
0x0C 进程同步:多个相关进程在执行次序上的协调
0x0D 进程互斥:在多道程序环境下,每次只允许一个进程对临界资源进行访问
0x0E 进程通信:进程之间的信息交换
0x0F 通信方式:共享存储器系统、管道通信系统、消息传递系统、客户机-服务器系统
0X10 临界资源:一次仅供一个进程使用的资源
0X11 临界区:在进程中涉及到临界资源的程序段
0X12 相关临界区:多个进程访问同一资源的临界区
0X13 PV操作:
同步P操作与互斥P操作在一起时,同步P操作在互斥P操作前,而两个V操作无关紧要
0X14 前趋图:有向无循环图
第三章(实时任务、银行家算法、检测死锁、解除死锁)
0x15 高级调度:
作业调度–用于多道批处理系统
根据某种算法,决定将外存上处于后备队列的哪几个作业调入内存,为其创建进程,分配必要的资源,放入就绪队列
0x16 中级调度:
内存调度–提高系统吞吐量和内存利用率
将暂时不能运行的进程部分或全部换出到外存上,为当前运行进程的执行提供所需的内存空间,将当前进程所需部分换入到内存中,指令和数据必须在内存中才可被处理机访问–激活挂起操作
0x17 低级调度:进程调度–决定就绪队列中的哪个进程获得处理机
0x18 实时任务开始、截止时间
实时系统中满足任务的开始截止时间和完成截止时间
0x19 死锁的定义:
如果一组进程中的每一个进程都在等待仅由该组进程中其他进程才能引发的事件,多个进程因竞争共享资源而造成的一种僵局,若无外力作用,这些进程都将永远不能再向前推进
0x1A 产生死锁的原因:竞争系统资源、进程推进的顺序不当
0x1B 死锁的必要条件:互斥条件、请求和保持条件、不可抢占条件、循环等待条件
互斥条件是非共享设备所必须的,不仅不能改变,还应加以保证
0x1C 预防死锁:(破坏必要条件)资源一次性分配、可剥夺资源、资源有序分配
0x1D 避免死锁:资源动态分配过程中,防止系统进入不安全状态,以避免发生死锁
0x1E 调度算法(不考虑实时):
先入先出算法
最短CPU运行期优先调度算法
轮转调度算法
优先级调度算法
多队列调度算法
多级反馈队列调度算法
0x1F 进程调度的任务:
将处理机的现场信息保存在PCB中
按照某种算法选取进程
将处理机分配给进程
0x20 安全状态:
系统能按照某种进程推进顺序为每个进程分配所需资源,直至满足所有进程对资源的最大需求
0x21 银行家算法
第四章
0x22 计算机系统存储层次示意:
CPU寄存器:寄存器(CPU内部)
主存: 高速缓存(CPU内部)
主存储器
磁盘缓存
辅存: 固定磁盘
可移动存储介质
磁盘缓存不是实际存在的存储器,是利用主存中部分存储空间暂时存放从磁盘中读出或写入的信息,若某一存储单元被使用,则在一定时间内,与该存储单元相邻的单元可能被使用
0x23 局部性原理(时间+空间):
程序执行时,有很多的循环和子程序调用,一旦进入这样的程序段,就会重复存取相同的指令集合,在一段时间内一个程序的执行往往呈现出高度的局部性
对数据存取也有局部性,在较短的时间内,稳定地保持在一个存储器的局部区域,一条指令被执行了,则在不久的将来它可能再被执行
0x24 程序的编译含义:由编译程序将用户源程序进行编译,形成若干个目标模块
0x25 程序的链接含义:
由链接程序将编译后形成的一组目标模块以及它们所需的库函数链接在一起形成一个完整的装入模块
0x26 程序的装入含义:由装入程序将装入模块装入内存
0x27 相对地址含义:
用户的程序经过汇编或编译后形成目标代码,目标代码通常采用相对地址的形式,其首地址为0,其余指令中的地址都相对于首地址而编址,不能用逻辑地址在内存中读取信息
0x28 绝对地址含义:内存中存储单元的地址,可直接寻址
绝对装入方式:用户程序经编译后产生绝对地址–单道程序环境
可重定位装入方式–静态重定位:
装入时对目标程序指令和数据地址进行修改,地址变换
动态运行装入方式:
装入内存后的所有地址仍是相对地址,地址转换推迟到程序真正执行时才进行,需要重定位寄存器的支持
0x29 存储管理方式:
推动变化的动力:提高内存利用率
连续分配存储管理方式:
单一连续分配:
用户区+系统区–单道程序环境
固定分区分配:
预先把可分配的主存储器空间分割成若干个连续区域,称为一个分区,每个分区的大小可以相同也可以不同,但分区大小固定不变,每个分区装一个且只能装一个作业
动态分区分配–基于顺序搜索:
首次适应算法
循环首次适应算法
最佳适应算法
最坏适应算法
动态可重定位分区分配:
动态分区分配+紧凑
分页存储管理方式–离散分配:
页面大小是2的幂,1KB-8KB
两级页表:
离散分配空间存储页表项,尚未解决页表所占内存空间
解决方法:
仅把当前需要的一批页表调入内存
分段存储管理方式:
段是信息的逻辑单位
0x2A 三种管理方式优缺点(连续、分页、分段):
连续存储分配方式–分区式存储管理方式:
优点:
便于动态分配内存
便于共享内存
便于动态链接
缺点:
碎片
内存利用率低
受实际内存容量限制
分页存储管理方式:
优点:
便于动态申请内存
内存利用率高
缺点:
内碎片
不利于共享内存
不利于信息保护
分段存储管理方式:
优点:
便于动态申请内存
便于共享内存
便于动态链接
管理和使用统一化
缺点:
外碎片
0x2B 地址映射计算
第六章(控制方式、缓冲区)
0x2C I/O系统4种控制方式(以输入输出为例)
轮询的可编程I/O方式:
1.把启动位置1
2.反复测试完成位,为0转2,为1转3
3.把数据从数据缓冲区中读走
中断的可编程I/O方式(打印机、键盘):
1. 把启动位置1,本进程(A)变为等待状态,转进程调度,调度另一进程B
2. 输入完成时,控制器发出中断,中断B,通过中断进入中断处理程序
3. 在中断处理程序中把数据缓冲寄存器中的数取走,放入内存特定位置M,唤醒等待进程A,中断返回到B的断点继续执行
4. 在以后的某个时刻OS调度要求输入的进程A。A从M取数处理
直接存储器访问方式(DMA)(磁盘、光盘):
1.当进程要求输入时,把要求传送的内存始址(M)和要传的字节数送入DMA的内存地址寄存器和传送字数寄存器
2.把启动位置1。设备开始工作。进程(A)挂起。调度另一进程(B)
3.一批数据输入完成后,DMA中断B,转向中断处理程序。
4.中断处理程序唤醒A,返回B的断点继续执行。
5.以后OS调度A运行时,A从M处取数据处理。
I/O通道控制方式:
1.系统调用进入操作系统,系统首先为I/O操作分配通道和外设
2.按I/O请求生成通道程序并存入内存,把起始地址送入通道的首地址寄存器(CAW)
3.CPU发出启动通道的指令
4.执行完毕后,发出中断信号通知CPU通道程序已执行完成
尽量减少主机对I/O操作的干预
0X2D 讲清楚缓冲方式有几种,怎么使用
1.单缓冲:
对于输入:设备先将数据送入缓冲区,OS再将数据传给进程
对于输出:进程先将数据传入缓冲区,OS再将数据送到设备
2.双缓冲:
设置两个缓冲区buf1和buf2。读入数据时,首先输入设备向buf1填入数据,然后进程从buf1提取数据,在进程从buf1提取数据的同时。输入设备向buf2中填数据。当buf1取空时,进程又从buf2中提取数据,与此同时输入设备向buf1填数。如此交替使用两个缓冲区,使CPU和设备的并行操作的程度进一步提高
3.环形缓冲:
IN指向可接收数据的空闲缓冲区的首址,OUT指针指向装好数据且未取走的缓冲区首址
系统初启时,指针被初始化为IN和OUT与首指针START相等,即START=IN=OUT
对于输入信息而言,设备接收信息时,信息输入到IN指向的缓冲区,当一个缓冲区装满后,IN指针指向下一个空闲缓冲区
当从缓冲区中提取信息时,提取由OUT指向的缓冲区中的信息,提取完毕,将OUT指针指向下一个装满信息的缓冲区
系统必须考虑到这种方案的约束条件,即IN<>OUT( 初始状态除外)
从设备输入信息的操作和提取信息的操作共用环形缓冲时有一定的同步关系:OUT<IN。当OUT到达IN时,处理数据的进程必等待
当IN到达OUT时,从设备输入信息的操作也必须等待
4.缓冲池:
缓冲池中各缓冲区可用于输出信息,也可用于输入信息,并可根据需要组成各种缓冲区队列
0X2E 设备驱动程序的含义:
是一种低级的系统例程,必须和系统的输入输出硬设备相互通信,使用特权I/O指令来访问硬件,通常是用汇编语言或系统编程语言写的
0X2F设备独立性的含义:
用户在编制程序时,使用逻辑设备名,由系统实现从逻辑设备到物理设备(实际设备)的转换,用户能独立于具体物理设备而方便的使用设备
0x30 SPOLLING技术的含义:
在联机情况下实现的同时外围操作称为SPOOLing,也称为假脱机操作
工作原理:
作业执行前预先将程序和数据输入到输入井中
作业运行后,使用数据时,从输入井中取出
作业执行不必直接启动外设输出数据,只需将这些数据写入输出井中
作业全部运行完毕,再由外设输出全部数据和信息
0x31 磁盘调度算法描述过程:
原则:公平、高效
先来先服务算法
最短寻道时间优先算法
扫描算法—电梯算法
单向扫描算法
第七章
0x32 文件类型(划分依据)
按照文件的用途分类:系统文件、库文件、用户文件
按照文件的操作保护分类:只读文件、读写文件、不保护文件
按照文件的性质/组织和处理方式分类:普通文件、目录文件、特别文件
按照文件的数据形式分类:源文件、目标文件、可执行文件
按照存取控制属性分类:只执行文件、只读文件、读写文件
按照逻辑结构分类:记录式文件、流式文件
0x33 文件的逻辑结构:
流式文件:基本单位是字节或字,节省存储空间,无需额外信息
记录式文件:基本单位是记录,需要额外记录长度信息,浪费存储空间
0x34 物理结构(连续、链接、索引):
文件在物理存储介质上的结构
连续结构:文件全部信息存储在外存连续物理块
优点:
简单
支持顺序存取和随机存取
顺序存取速度快
所需的磁盘寻道次数和寻道时间最少
缺点:
文件不易动态增长
不利于文件插入和删除
外部碎片问题
链接结构:非连续结构,顺序存取
优点:
提高了磁盘空间利用率,不存在外部碎片问题
有利于文件插入和删除
有利于文件动态扩充
缺点:
存取速度慢,不适于随机存取
链接指针占用一定的空间
可靠性问题,如指针出错
索引结构:索引表,若干不连续的物理块
优点:
保持了链接结构的优点,又解决了其缺点。
既能顺序存取,又能随机存取。
满足了文件动态增长、插入删除的要求。
能充分利用外存空间
缺点:
索引表本身带来了系统开销
0x35 给FAT(链接结构的变形)说明如何查找第几块