第一章 引论
- 计算机系统由硬件子系统和软件子系统组成。1. Computer system consists of hardware subsystem and software subsystem
- 按照应用的观点,软件可分为系统软件,支撑软件,应用软件2. From the perspective of application, software can be divided into system software, support software and application software
- 操作系统的目标:方便性,有效性,可扩充性,开放性.3. Objectives of operating system: convenience, effectiveness, expandability and openness
- 单道批处理操作系统monoprograming operating system:可以把一批的顺序一个一个处理。道:在内存中程序的个数。自动性,顺序性,单道性
- 多道批处理操作系统Multiprograming operating system:多道性,无序性,调度性(作业调度和进程调度)提高了CPU的利用率,提高了内存和I/O设备的利用率,增加了系统吞吐量.缺点:平均周转时间长,无交互能力
- 分时系统Time-sharing system:解决人机交互问题。时间片轮转调度算法。时间片大小与用户数量成反比。The time slice size is inversely proportional to the number of users
- 实时操作系统8. Real time operating system
- 推动操作系统发展的动力:(1)不断提高计算机资源利用率的需要(2)方便用户(3)器件的不断更新换代。电子管到晶体管到集成电路(4)计算机体系结构不断发展11. Driving force for the development of operating system: (1) the need to continuously improve the utilization rate of computer resources (2) to facilitate users (3) the continuous upgrading of devices. Electron tube to transistor to integrated circuit (4) The computer architecture is developing continuously
- 计算机系统资源管理的观点12. Viewpoint of computer system resource management
- 用户与计算机硬件系统之间接口的观点13. Viewpoint of interface between user and computer hardware system
- 虚机器的观点14. View of virtual machine
- 通用操作系统:具有批处理系统,分时系统,实时系统的操作系统12. General operating system: operating system with batch processing system, time-sharing system and real-time system
- 操作系统的功能:处理机管理,存储器管理,文件管理,设备管理,用户接口16. Functions of operating system: processor management, memory management, file management, device management User interface
- 操作系统的特征:并发Concurrency(并发是在同一间隔内发生,并行parallel是同一时刻发生),共享shared,虚拟virtual,异步性Asynchrony。
第二章 操作系统的硬件环境
- CPU的组成:运算器,控制器,一系列的寄存器,高速缓存CPU composition: arithmetic unit, controller, a series of registers, cache。
- CPU里比较重要的寄存器:PC(Program Counter),IR(Instruction register),PSW(Program status word)
- 特权指令Privileged instruction,非特权指令Non privileged instruction
- CPU状态:管态supervisor state(能运行所有指令,特权态,特态,系统态)与目态object state(只能运行非特权,普通态,普态,用户态)
- 存储器的层次结构按照容量,速度,成本Capacity, speed, cost把存储系统组成了一个金字塔形结构
- 缓冲技术:解决部件之间速度不匹配问题
- 用于处理机和内存之间的缓冲叫cache
- 中断interrupt过程:保存CPU现场环境,识别中断源,识别中断类型,执行相应中断处理程序,恢复CPU现场
第三章 进程与进程管理
- 前趋图procedence graph定义:前趋图是一个有向无环图
- 程序执行的两种方式:顺序执行Sequential execution,并发执行Concurrent execution
- 一切程序顺序执行时都有以下特征:顺序性,封闭性,执行结果的确定性,结果的可再现性
- 并发具有结果可再现性的条件:(1)没有共享资源(2)对共享资源只读(3)互斥访问共享资源
- 进程process:引入进程原因:让程序能够并发执行
- 资源分配和独立运行/调度的基本单位是进程
- 进程实体/组成:程序段Program segment,数据段Data segment,进程控制块Process control block
-
进程定义
- (1)进程是具有独立功能的可并发执行的程序在一个数据集合上的运行过程,(2)是系统进行资源分配和调度的独立单位,(3)进程是进程实体的运行过程(1) Process is the running process of concurrent executable programs with independent functions on a data set, (2) it is the independent unit of the system for resource allocation and scheduling, and (3) it is the running process of process entities
- 线程是CPU调度基本单位,进程是拥有资源的单位。
- 进程间的通信方式:管道,信号,消息队列,共享内存10Pipeline, signal, message queue, shared memory
- 一个进程可以执行一个或几个程序:编译11. A process can execute one or several programs: compile
- 进程的特征:动态性,并发性,独立性,异步性,结构特征12. Dynamic, Concurrent, Independent, Asynchronous, Structural Features
-
进程的状态:就绪状态Ready state,执行状态Running status,阻塞状态Blocking status
- 3种转换:
- PCB:进程控制块,记录了进程的相关信息。重要性:PCB是进程存在的唯一标志PCB is the only sign of process existence
-
进程控制块的信息
- (1)进程标识符Process identifier:内部标识符internal identifier,外部标识符;External Identifier
- (2)处理机状态Processor status:由处理机各种寄存器组成,包括通用寄存器,指令计数器,程序状态字PSW,用户栈指针;Consists of various registers of the processor, including general registers, instruction counters, program status words, and user stack pointers
- (3)进程调度信息Process scheduling information:进程状态,进程优先级,进程调度所需的其他信息,事件(阻塞事件);Process status, process priority, other information required for process scheduling, and events (blocking reason);
- (4)进程控制信息Process control information:程序和数据地址,进程同步和通信机制,资源清单,链接指针Program and data address, process synchronization and communication mechanism, resource list, link pointer
- PCB的组织方式:链接方式Link Mode(顺序访问),索引方式Indexing method(随机访问)
- 进程控制是由操作系统内核(kernel)进行的
- 原子操作:Atomic operation
- 进程图,描述进程的家族关系(1)子进程可以继承父进程所拥有的资源The child process can inherit the resources owned by the parent process(2)撤销父进程时,也必须撤销其所有的子进程When the parent process is revoked, all its child processes must also be revoked
-
进程创建create()
- (1)申请空白PCB(2)为新进程分配资源(3)初始化进程控制块(4)将新进程插入到就绪队列22. (1) Apply for a blank PCB (2) Assign resources to the new process (3) Initialize the PCB(4) Insert ready queue
- 引起进程终止的事件:正常结束,异常结束,外界干预(前两个是在进程结束后,后面的不确定)
-
终止过程destroy()
- (1)在PCB里找到该进程的PCB,读出进程状态Find the PCB of the process in the PCB and read the process status(2)如果进程处于执行状态,应立即终止该进程的执行并设置调度标志为真If the process is in the execution state, immediately terminate the execution of the process and set the dispatch flag to true(3)如该进程还有子进程,终止它所有的子进程If the process has child processes, terminate all its child processes(4)将全部资源归还给父进程或系统Return all resources to the parent process or system(5)释放release进程PCB
- 阻塞block():(1)立即停止当前进程的执行(2)将PCB里现行状态由执行改为阻塞,(3)插入到阻塞队列主动行为Active behavior
- 唤醒wakeup():(1)将阻塞进程从等待该事件的阻塞队列中移出(2)将PCB的现行状态由阻塞改为就绪(3)将进程插入到就绪队列中被动行为Passive behavior
- 一个进程从提交开始直到完成,往往要经历下述三级调度。进程调度scheduling:高级调度high level:决定将哪些在外存上处于后备状态的作业调入内存;低级调度(进程调度)low level:决定就绪队列中哪个进程将获得处理机;中级调度mid-level:在内存和外存之间进行进程对换
- 调度方式:剥夺方式,非剥夺方式Deprivation method,Non deprivation method
-
进程调度算法
- 先进先出FIFO:
- 最短处理机运行期优先调度算法/短进程优先Shortest process priority(调度时间最短):平均周转时间最小,最容易出现进程饥饿现象
- 最高响应比Response ratio优先调度算法
- 响应比计算=(等待时间+要求服务的时间)/要求服务的时间,坏处:有一定的系统开销
- 优先级调度算法priority scheduling:静态优先级,动态优先级。动态优先级:确定依据:按照它占据CPU的时间,越长,优先级就越低;等待时间越长,优先级越高
- 时间片轮转Round Robin:时间片time slice
- 线程thread:是进程的一个实体,是被系统独立调度和分派的基本单位。进程是拥有资源的单位。为了更好的并发
- 线程引入:提高系统内程序并发执行的程度,从而进一步提高系统的吞独立单位吐量。
- 线程&进程:进程是拥有资源的独立单位。A process is an independent unit that possesses resources.引入线程后,线程是系统独立调度和分配的基本单位。After the introduction of threads, threads are the basic unit of independent scheduling and allocation in the system.
- 线程的实现机制:用户级线程User level threads(操作系统内核不知道)独立调度的单位还是进程。及内核支持线程Kernel Support Threads
-
进程与线程的比较
- 切换速度:用户级高于内核支持级(不经过系统调用)
- 系统调用*:当传统的用户进程调用一个系统调用时,要由用户态转为核心态,用户进程将阻塞。当内核完成系统调用时才将该进程唤醒继续执行。一个用户级线程发生阻塞会阻塞该进程,内核支持级仅阻塞该线程。
- 线程执行时间:用户级以进程为单位,内核支持级以线程为单位
第四章 进程同步与通信
- 进程间的联系:资源共享关系Resource sharing relationship,相互合作关系Mutual
- 进程同步process synchronization的主要任务就是保证诸进程能互斥的访问临界资源。
- 临界资源Critical resource:同一时刻只允许一个进程访问
- 临界区critical section:访问临界资源那块代码
-
同步机制应遵循的四个准则
-
Four principles that synchronization mechanisms should follow:空闲让进free to let in,忙则等待busy to wait,有限等待limited to wait,让权等待(释放CPU等待)Release CPU waiting
- 同步机制:信号量机制,管程
- 信号量机制Semaphore mechanism:记录型信号量机制Recording semaphore mechanism,信号量集机制Semaphore set mechanism
- 记录型信号量机制:资源信号量,互斥信号量。Wait(),signal()原子操作
- 信号量集机制:AND型信号量集机制,一般信号量集机制
- Swait()当唤醒后需要再次执行Swait操作,Ssignal()唤醒所有阻塞进程,原子操作
- AND型信号量集机制:解决某一个进程在运行时候需要多种临界资源,在多种临界资源分配时采用原子分配方法
- 一般信号量集机制:引入测试值,空闲资源数量大于等于测试值,我们才进行资源分配
- 特殊:
- Swait(s,d,d):测试值与要求分配的资源数相同
- Swait(s,1,1):相当于记录型信号量,只分配1个资源
- Swait(s,1,0):开关量,开关取决于s,s大于0开
-
经典进程同步问题
1.生产者消费者问题
变型:一家人吃水果,吸烟进程,仓库
注意:先资源后互斥
用and信号量集机制做成原子操作
2.读者写者问题
读者优先
猴子爬杆,单行道,独木桥
桥墩的话,就加了一个条件:只允许RN个读者同时读
写者优先
读进程前面加了一个开关量
写进程需要判断是不是第一个(取得开关量)/最后一个写(打开开关量)
加了writer count
3.哲学家进餐问题
-
4.嗜睡的理发师问题
没有资源会离开,而不是阻塞,所以设置了waiting也就是凳子数量
变型:阅览室,银行取钱
- 引入管程(monitor)目的:解决信号量机制大量的同步操作分散,不利于管理,因同步操作使用不当导致的死锁问题Solving the problem of deadlock caused by improper use of synchronization operations in the semaphore mechanism, which results in a large number of scattered synchronization operations and is not conducive to management
- 条件变量:condition,只表示资源,不表示数量及使用情况
- Wait阻塞,signal唤醒。管程可以并发,在每一个管程中只能有一个进程处于非阻塞状态,不必进行共享变量的互斥
-
进程通信
- 高级通信机制可归结为三大类Advanced communication mechanisms can be categorized into three main categories:共享存储器系统Shared memory system,消息传递系统Message passing system,管道通信系统Pipeline communication system
- 共享存储器系统:通过内存的某些区域来进行两个寄存器间的互相交换
- 消息传递系统:通过系统所提供的一组原语命令
- 管道通信:是一个共享文件pipe文件
- 进程通信有关的存储在PCB中的进程控制信息模块
-
死锁
- 一组进程中的每一个进程均无期限地等待被该组进程中的另一个进程所占有且永远不会释放的资源。20. Each process in a group of processes will wait indefinitely for the resources that are occupied by another process in the group and will never be released.
-
产生死锁的原因
- 竞争资源Competitive resources:竞争可剥夺和非剥夺性资源;竞争临时性资源
- 进程推进顺序不当Improper progress sequence:进程推进顺序合法,进程推进顺序非法
-
产生死锁的四个必要条件
- 互斥条件(1) Mutually exclusive condition
- 请求和保持条件(2) Request and hold conditions
- 不剥夺条件(3) Non deprivation condition
- 环路等待条件(现象)Loop waiting condition
-
解决死锁的方法
- 预防死锁prevent:打破前三个条件
- 摒弃“请求和保持条件”:资源原子分配或静态分配法
- 摒弃“不剥夺”条件
- 摒弃“环路等待”条件:线性分配法
- 避免死锁Avoid
安全状态(一定不产生死锁,有安全序列)和不安全状态(有可能产生死锁)
银行家算法
- Need=max-allocation
- 判断request是不是小于need
- 判断request是不是小于available
- 试探分配,修改相应数据结构
- 运行安全性算法
- 若安全,则正式分配
- 若不安全,试探分配作废,恢复原状态
安全性算法:设置了work和available
不等式:n*(m1-1)+1<=m2,肯定不会产生死锁
n进程数量,m1每一个进程对资源最大的需求,m2现在系统中所拥有的的资源数量
2.检测死锁 Detect :要有现在资源的申请和分配情况(资源分配图);还要有提供检测算法(资源分配图的简化方法)【死锁定理】S为死锁的充分条件是:当且仅当S状态资源分配图是不可完全简化的
3.解除死锁 release:剥夺资源Deprivation of resources,撤销进程destroy process
第五章 存储器管理
- 存储体系:内存Memory,外存disk
- 存储管理的任务:地址转换:逻辑地址Logical address,物理地址Physical address
- 程序的链接link:静态Static链接方式,装入(内存,边装入边链接)时动态链接load-time dynamic linking,运行时动态链接Runtime dynamic linking(链接推迟到程序执行时)
- 以下三种方式区别:逻辑地址转换为物理地址时间不同the conversion time from logical address to physical address is different
- 程序的装入:绝对装入方式Absolute Loading Mode:发生在编译时。可重定位装入方式relocatable loading mode:发生在装入内存时。动态运行时装入方式Loading mode during dynamic operation:发生在执行时。(支持紧凑compact,开始地址在PCB中得到,存储区的起始地址在重定位寄存器中)
- 连续存储管理方式:
- 单一连续分配
- 分区分配
- 固定分区Fixed partition:固定分区分配表
- 可变分区Variable partition碎片问题严重:空闲分区表,已分分区表;空闲分区链
- 分区分配算法
- 首次适应算法First adaptation algorithm:从链首开始查找
- 循环首次适应算法Cyclic first algorithm:从上一个找到的空闲分区继续往下找
- 最佳适应算法Best adaptation algorithm:找既能满足要求有最小。(最容易形成内存碎片)
- 最差适应算法worst adaptation algorithm:既能满足要求又最大
- 分区分配算法
7.紧凑:开销大
8.什么时候需要紧凑:
- 分段虚拟存储管理方式也用的紧凑
- 分页用的位示图
- 分段是可变分区
9.交换技术
关键是减少每次交换的信息量,以提高速度
特点是打破驻留性
10.页表的作用:实现了页号到物理块号的映射
进程的逻辑空间分成大小相同的片段:页面或页(page)
内存空间分成大小与页面相同的片段:物理块或页框(frame)
11.进程页表的起始地存放在进程的PCB中
12.计算地址转换,切记越界判断。两次访问内存,一次越界判断
13.快表TLB:两次访存,一次判断,计算命中率,引入前后的时间
14.两级和多级页表:三次访存
离散用位示图 Bit map,连续用空闲链表法
位示图 Bit map:用一位来表示内存块,某位为“1”状态表示相应快已经占用,为“0”状态则对应的物理块是空闲块。
分配方法:根据进程的页数得到所需的物理块数没检查空闲物理块总数是否足够,不能满足则分配失败,能满足该进程的需求,则查位示图为“0”的位,计算出物理块号,并写入进程的页表,位示图中第i个字的第j位对应的物理块号为:块号=i*位示图中的字长+j
15.分段存储管理方式:实现逻辑段到物理内存区域的映射
两次访存,两次判断
16.分页与分段的区别
(1)页是信息的物理单位,段是信息的逻辑单位,
(2)页的大小是固定的,段的大小是不固定的
(3)从用户角度看,分页的地址空间是一维的,段的地址空间是二维的
17.段页式:三次访存,两次判断
第六章 虚拟存储器管理
1.虚拟存储技术理论基础:局部性原理Theoretical Foundation of Virtual Storage:locality principle
2.虚拟存储器定义
(1)把程序的一部分装入内存便可运行程序的存储器系统
(2)具有请求调入功能和置换功能
(3)能从逻辑上对内存容量进行扩充
3.缺页中断
(1)在指令执行期间产生和处理中断信号
(2)一条指令在执行期间,可能产生多次缺页中断
(1) Generate and process interrupt signals during instruction execution
(2) During the execution of an instruction, multiple page fault interrupts may occur
4.页面置换算法P169
5.最少物理块数:能保证进程正常运行所需的最少物理块数
6.物理块分配策略:
(1)固定分配局部置换Fixed allocation local permutation
(2)可变分配全局置换Variable allocation global permutation
(3)可变分配局部置换Variable allocation local permutation
7.调页策略
请求调页策略,预调页策略(减少缺页中断产生)
8.预防抖动的方法
- 采用局部调换策略
- 利用工作集算法防止抖动
- 利用“L=S”准则调节缺页率
- 挂起某些进程
9.分段虚拟存储:缺段中断处理过程看明白P177
动态连续分配,最多三次缺页中断,因为段是信息的逻辑单位,所以不可能出现一条指令被分割在两个段内At most three page fault interrupts. Because the segment is the logical unit of information, it is impossible for an instruction to be divided into two segments
10.段的共享中,可重入代码又称纯代码(pure code)不允许任何进程对他进行修改
第七章 用户接口管理
1.用户接口三类:命令接口,程序接口,图形接口Command interface and program interface and graphic interface
2.命令接口根据控制方式的不同又分为联机命令接口和脱机命令接口
3.程序接口由一系列的系统调用组成The program interface consists of a series of system calls
4.系统调用包含特权指令,所以只能运行在管态下 all except trap instructions(操作系统)
5.系统调用与一般调用的区别
(1)系统调用通过软中断进入
(2)运行在不同的处理机状态
(3)处理机状态的转换
(4)返回问题
(5)嵌套调用
6.系统调用的过程
(1)设置系统调用号和参数
(2)系统调用命令的一般性处理
(3)系统调用命令处理程序做具体处理
第八章 文件管理
1.文件的结构
逻辑结构(从用户角度看待文件),物理结构(从系统角度看待文件)File structure: logical structure, physical structure
2.逻辑结构有两类:记录式文件,流式文件Record file,stream file
3.物理结构又称文件的存储结构,常用的存储介质(磁带,磁盘)存取设备:顺序存储设备(磁带机),直接存取设备(磁盘机)
磁带:(magnetic)tape磁带机顺序存储设备
磁盘:(magnetic)disk 磁盘机直接存储设备(随机存储设备)
4.磁带上只有一种物理结构:顺序结构(磁盘上可以有顺序和链接,索引,链接)
- 计算FAT大小
- 计算混合索引支持文件最大长度
- 操作系统是用文件目录来管理文件9. The operating system uses directories to manage files
- 文件控制块包含的File Control Block,FCB:(1)文件存取控制的信息(2)文件结构的信息(3)文件管理的信息
- 目录的改进
- 位示图:bit map
2.文件的使用
1.文件的共享:绕道法,连接法,利用符号链实现文件共享,基于索引节点的共享方式。知道基本概念
2.影响文件系统安全性的主要因素
- 人为因素
- 系统因素
- 自然因素
3.防止人为因素造成的文件不安全性
隐藏文件和目录;密码;文件加密;指定访问权限
4.防止系统因素和自然因素
坏块管理;磁盘容错技术也称系统容错技术(system fault tolerance SFT)
SFT-I低级磁盘容错技术,主要用于防止磁盘表面发生缺陷所引起的数据丢失
- 份目录和双份文件分配表
- 热修复重定向和些后读校验
SFT-II中级磁盘容错技术(了解原理),主要用于防止磁盘驱动器和磁盘控制故障所引起的系统不能正常工作
- 磁盘镜像Disk mirroring
- 磁盘双工Disk Duplex
- 廉价磁盘冗余RAID
SFT-III高级磁盘容错技术
5.自然因素
备份 Bick up
- 提高文件系统的性能有以下几种方法:块高速缓存,合理分配磁盘空间,磁盘调度。
- 块的高速缓存逻辑上属于磁盘,实际上属于内存
- 对于采用移动磁头的磁盘要访问某特定的物理块时,所用时间包括三部分When a disk with a moving head needs to access a specific physical block, the time it takes includes three parts:
查找时间,等待时间,传输时间Search time, waiting time, transmission time
-
磁盘的移臂调度算法
- 先来先服务调度算法(First Come First Served FCFS)
- 最短查找时间优先算法(Shortest Seek Time First SSTF)
-
扫描算法
- 扫描算法SCAN(电梯调度算法Elevator scheduling algorithm)
- 循环扫描策略CSCAN
- N步扫描策略 NSCAN
- FSCAN算法,实质是N步SCAN算法的简化。
第九章 设备管理
- 现代计算机I/O系统的三级结构:设备,设备控制器,通道(图)
- I/O通道是一种特殊的处理机
- 解决通道瓶颈:增加通路
- I/O控制方式
- 程序查询方式,i/o中断方式,直接存储器访问方式(DMA),i/o通道方式
- 在I/O控制方式的发展过程中,宗旨是:尽量减少主机对I/O操作的干预,把主机从繁忙的i/o操作中解放出来
-
引入缓冲的原因
- 缓和CPU与i/o设备间速度不匹配的矛盾
- 减少对CPU的中断频率,放宽对中断响应时间的限制
- 提高CPU和i/o设备的并行性
- 设备处理程序/设备驱动程序,是I/O进程与设备控制器之间的通信程序。又由于它常以进程的形式存在,所以也简称设备驱动程序。
-
设备驱动程序功能
- 将接受到的抽象要求转换为具体要求
- 检查用户i/o请求的合法性,了解i/o设备的状态,传递有关参数,设置设备的工作方式
- 发出i/o命令,启动分配到的i/o设备,完成指定的i/o操作
- 及时响应由控制器或通道发来的中断请求,并根据其中断类型调用相应的中断处理程序进程处理
- 对于设置有通道的计算机系统,驱动程序还应能够根据用户的i/o请求自动的构成通道程序
- 设备分配由操作系统来完成Device allocation is completed by the operating system
- 不考虑设备独立性Not considering device independence:SDT(系统设备表)->DCT(设备控制表)->COCT(控制器控制表)->CHCT(通道控制表)
- 为了提高操作系统的可适应性和可扩展性,现在操作系统实现了设备独立性。
- 设备独立性含义:应用程序独立于具体使用的物理设备。
- 为了实现设备的独立性,在操作系统中引入了逻辑设备名和物理设备名两个概念。
- 实现设备独立性的系统中,I/O进程以逻辑设备名申请的。
- 共享打印机的工作流程
- spooling技术是一种虚拟设备技术,可以把一台独占设备改造为虚拟设备。