ch0
单道系统特点:自动性、顺序性、单道性
多道:多道性、无序性、调度性、复杂性
分时系统:多路性、独立性、及时性、交互性
实时系统:分时+可靠性
从磁盘读文件并执行的过程:
用户给出文件名,提出访问执行请求
文件系统通过按名访问,获取文件逻辑地址
磁盘驱动程序将逻辑地址转为物理地址
操作系统分给内存空间,将文件装入内存
CPU创建执行环境,CPU设置上下文环境,并跳转到程序的第一条指令
第一条指令执行,执行指令对应的库函数
ch1
什么是操作系统:
操作系统是用户与计算机硬件之间的接口(---命令行接口、图形用户接口、系统调用)
屏蔽控制硬件的细节,使应用开发更加简单高效
操作系统是计算机资源的管理者
操作系统设计的目标:方便用户,提高系统性能(时间性能,空间性能,资源利用率)
操作系统四大特征:
并发:多个事件在同一时间段内发生
共享:同时共享,互斥共享
虚拟
异步:进程的具体顺序、进度不可预知
并发性和共享性:失去并发性,共享性无意义;失去共享性,并发性无法实现
操作系统的功能:进程管理,文件管理,内存管理,设备管理,用户接口
ch2
进程的特征:
并发性:进程并发执行时的特点:间断性,失去封闭性,不可再现性
动态性:进程是进程实体的执行过程,是不断变化的
独立性:进程是运行和资源调度的基本单位
异步性
进程控制块PCB:
进程控制块是进程实体的一部分,是操作系统中最重要的记录型数据结构,PCB中记录了操作系统所需要的,用于描述进程情况及控制进程运行所需的全部信息。
进程的三种基本状态
就绪状态:进程一但获得CPU就可以投入运行的状态。
执行状态:进程获得CPU正在运行的状态。
阻塞状态:进程由于等待资源或某个事件的发生而暂停执行的状态。
进程的组织
当系统中有很多进程时,可以用队列把进程控制块组织起来,形成进程队列。把具有相同状态的进程放在同一个队列中,具有不同状态的进程就可形成不同的进程队列。处于就绪状态的进程构成的进程队列称为就绪队列,处于阻塞状态的进程构成的进程队列称为阻塞队列。
操作系统的内核:与硬件关系密切,使用频率高,常驻内存的功能
功能:
支撑功能:中断处理,时钟管理,原子操作
资源管理功能:进程管理,存储器管理,设备管理
中断:中断是改变CPU执行指令顺序的一种事件
引入中断机制后,CPU可以与其它设备并行工作,能提高CPU利用率,改善系统性能
中断类型:
内部中断:出错,调试
外部中断:IO引起中断,硬件故障中断
引起中断原因:程序错误,人为设置,IO设备,硬件故障。 (和上面的类型对应)
响应外部中断的条件:开中断
响应外部中断的时机:CPU每执行完一条指令
时钟
OS硬件时钟,时钟中断信号产生机制
中断处理程序/时钟驱动程序 功能:
系统调用:
系统调用是一组预先定义好的模块,它提供一条管道让应用程序或一般用户能由此得到核心程序的服务。系统调用是用户程序(用户态)与核心程序(核心态)之间的接口。
系统调用机制优点:屏蔽底层硬件细节,简易编程;提高系统安全性
ch3
为什么需要进程同步机制?
因为现代操作系统既要支持多进程(多线程)的并发执行,又要保证并发执行的程序结果是可再现的
进程同步保证各进程以互斥的方式访问临界资源---必须互斥访问的共享资源
同步机制应遵循的准则:空闲让进,忙则等待,有限等待,让权等待
标记
ch4
作业调度(高级调度):从后备作业队列的多个作业中选择一个作业进入内存的算法
进程调度(低级调度):从多个就绪进程中选择进程并为其分配CPU的算法
调度算法:
先来先服务FCFS
平均周转时间的计算:
也可以画折线图辅助
短作业优先
优先权调度算法:静态优先权,动态优先权
抢占式调度/非抢占式调度
时间片轮转调度算法:
时间片大小的确定:
如果时间片很大,进程的响应时间无法保证;如果时间片很小,则进程需要经过多次上下文切换和进程调度,增加了CPU的开销,影响系统的吞吐量和CPU利用率。
多级队列调度算法:
将就绪队列分成多个独立队列,根据进程的某些属性(如进程优先权),进程会被永久地分配到一个队列。每个队列都有自己的调度算法。不同的队列优先权不同,调度算法也可能不同。
多级反馈队列调度算法:
设多个优先权不同的就绪队列,允许进程在多个不同的就绪队列间移动
实时系统中的调度:
实现实时调度的前提条件:
提供必要的调度信息,系统处理能力强,抢占式调度,尽可能短的系统延迟
实时调度算法:
最早截止时间优先,最低松弛度优先
松弛度:如果一个任务的完成截止时间为T,当前时刻为Tc ,处理完该任务还需要的时间为Ts ,则松弛度计算式表示为:L= T- Tc - Ts
ch5
产生死锁的原因:进程竞争共享资源、进程推进顺序不当
产生死锁的必要条件
互斥条件,请求和保持条件,不剥夺条件,环路条件
预防死锁: 破除互斥条件外的任何一个条件
1摒弃请求和保持条件
进程一次性申请整个运行过程中的全部资源,得到全部资源,方可投入运行,运行期间不再提出资源要求。 缺点:资源严重浪费,进程延迟运行。
2摒弃不剥夺条件
一个已保持了某些资源的进程,当它再提出新的资源要求而不能立即得到满足时,必须释放它已经保持的所有资源。 缺点:实现复杂而且代价高 。
3摒弃环路等待
规定进程必须按一定顺序申请资源。 缺点:限制了新设备的增加,可能造成资源浪费,用户编程困难
避免死锁
安全状态:存在一个执行序列,使进程一定不会死锁
银行家算法:一个进程提出请求后先试分配,然后检测本次的分配是否使系统处于安全状态,安全则按试分配方案分配资源,否则不分配。
实例:
allocation:已分配资源 max:所需最大资源 need:还需要多少资源 available:当前可分配资源
缺点:银行家算法缺乏实用价值,因为很少有进程能够在运行之前就知道其所需资源的最大值,而且进程数不是固定的,往往在不断变化
记住银行家算法答题格式