目录
第一章:操作系统引论
第二章:进程的描述与控制
未完待续。。。。。接
第三章:处理机调度与死锁
第四章:存储器管理
第五章:虚拟存储器
第六章:第八节 磁盘存储器的性能和调度
第一章:操作系统引论
操作系统的目标:方便性、有效性、可扩充性、开放性
操作系统的三个作用:
(1)操作系统(OS)作为用户与计算机硬件系统之间的接口
(2)操作系统(OS)作为计算机系统资源的管理者
(3)操作系统(OS)实现了对计算机资源的抽象
推动操作系统发展的主要动力:
- 不断提高计算机资源利用率
- 为什么方便用户
- 器件的不断更新迭代
- 计算机体系结构的不断发展
- 不断提出新的应用需求
操作系统的发展过程
- 为什么提出多道批处理?为了进一步提高系统资源的利用率和系统吞吐量;
- 为什么提出分时系统?为了满足用户对人-机交互的需求;
- 为什么提出实时系统?保证系统的可靠性。
操作系统的基本特性:并发、共享、虚拟、异步
- 并行 与 并发 的区别:并行性:指两个或多个事件在同一时刻发生。并发性:指两个或多个事件在同一时间间隔内发生。
- 为什么引入并发的概念?为了提高资源利用率。
- 怎么实现并发?引入进程。
- 为什么引入进程?为了使得程序能够并发的执行。
- 共享的两种方式:
- 互斥共享方式
- 同时访问方式
并发和共享是四个特性中最基本的两个特征;虚拟:对资源进行逻辑上的抽象、虚拟化;异步:程序(进程)以不可预知的速度进行推进
第二章:进程的描述与控制
程序的执行方式:顺序执行、并发执行
顺序执行的特征:
- 顺序性:处理机按照程序所规定的顺序进行执行;
- 封闭性:程序运行时独占全机资源,资源的状态(除初始状态外)只有本程序才能改变,程序一执行,执行结果不受外界影响;
- 可再现性:只要程序执行时的环境和初始条件一致,程序重复执行,都可得相同的结果。
并发执行的特征:
- 间断性:程序“走走停停”
- 失去封闭性:程序并发执行,征用资源
- 不可再现性:因为程序要并发执行征用资源,导致运行结果可能不一样,即运行结果不可再现性;
- 为了实现结果可再现性,所以要对并发执行加以控制,如何加以控制?------->进程
进程的定义
- 进程是程序的一次执行;
- 进程是一个程序及其数据在处理机上顺序执行时所发生的活动;
- 进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。
进程的特征
- 动态性
- 独立性
- 并发性
- 异步性
(在内存中)进程的三种基本状态(重点)(三种状态的切换)
- 就绪状态(Ready)
- 执行状态(Running)
- 阻塞状态(Block)
(在外存中)进程的状态:创建状态和终止状态
进程中的挂起操作
- 挂起:将一个进程从内存转到外存
- 激活:将一个进程从外存转到内存
- 挂起操作引入的原因:
- 终端客户的需要
- 父进程请求
- 负荷调节的需要
- 操作系统的需要
引起创建进程的事件:
(1)用户登录 (2)作业调度 (3)提供服务 (4)应用请求
引起进程终止的事件:
(1)正常结束 (2)异常结束 (3)外界干预
引起进程阻塞和唤醒的事件:
- 向系统请求共享资源失败;
- 新数据尚未到达;
- 等待某种操作的完成;
- 等待新任务的到达。
进程的阻塞是自己阻塞自己,唤醒要靠别的唤醒
进程同步(重点)
- 进程同步的基本概念:对多个相关进程在执行次序上进行协调、使并发执行的诸进程之间能按照一定的规则共享系统资源,并能很好地相互合作,从而使程序的执行具有可再现性。
- 进程之间的关系:
- 间接相互制约关系:互斥竞争
- 直接相互制约关系:同步合作
什么是临界资源?许多硬件资源如打印机、磁带机等都属于临界资源。
什么是临界区?每个进程中访问临界资源的那段代码。
访问临界资源的循环进程描述为:
while(TURE){
进入区 //资源检查
临界区 //资源访问
退出区 //释放资源
剩余区 //剩余资源
}
同步机制应遵循的原则:
(1)空闲让进 (2)忙则等待 (3)有限等待 (4)让权等待
信号量机制
(1)整型信号量 (整型信号量定义为一个用于表示资源数目的整型量S,除初始化外,仅能通过两个标准的原子操作Wait(S)和Signal(S)来访问。这两个操作被分别称为P、V操作。)
(2)记录型信号量 (多个进程等待访问同一临界资源的情况)
(3)AND型信号量(要么把它请求的资源全部分配到进程,要么一个也不分配。)
(4)信号量:(用于表示资源数目)对资源的描述(若信号量初始值为一个非负的整数,代表当前系统中可利用的空闲资源的总数,信号量一旦定义了初始值之后,信号量就只能通过PV操作来改变它的值,对于信号量的初值通过PV操作不断地去改变之后,信号量的值还是一个非负的整数,还是代表当前可利用的空闲资源的总数;如果信号量的值是一个负值,负值的绝对值就代表当前系统中等待这个资源的进程数量,比如:经过一系列的PV操作之后,信号量S的值为-3,那就说明当前系统中等待这个资源的进程数有3个)
(5)P操作:申请资源,如果申请到了资源,就批准,如果不能申请到资源,就阻塞(比如说有个进程通过P操作去申请资源,没有申请得到资源,就阻塞自己)
(6)V操作:释放资源、唤醒进程,使得资源的数量加一,如果当前系统正好有进程在等待这个资源,就可以唤醒这个正在等待资源的进程
经典的同步问题(大题第一题,写出PV操作)
生产者-消费者问题
解:
缓冲区1:full1 = 0,empty1 = 1
缓冲区2:full2 = 0,empty2 = 1
PA(){ PB(){
磁盘读一个记录 P(full1);
P(empty1); 从缓冲区1中取记录
将记录放入缓冲区1中 v(empty1);
V(full1); p(empty2);
} 将缓冲区1中的内容复制到缓冲区2中
V(full2);
}
PC(){
P(full2);
从缓冲区2中取记录
V(empty2);
打印记录;
}
未完待续。。。。。接
第三章:处理机调度与死锁
第四章:存储器管理
第五章:虚拟存储器
第六章:第八节 磁盘存储器的性能和调度
一、性能衡量指标:
1、磁盘的寻道时间
(1)一个扇区默认512字节
(2)柱面数 = 磁道数
(3)磁盘容量 = 磁头数+磁道(柱面)数+每道扇区数+每扇区字节数
(4)磁盘的类型:
(5)磁盘的访问时间:
① 寻道时间(与读取数据量无较大关)
② 旋转延迟时间(与硬件有关)
③ 传输时间
(6)早期的磁盘调度算法
① 先来先服务(FCFS)根据进程的请求访问磁盘的先后次序(进程数不多用)
② 最短寻道时间优先(SSTF)要求访问的磁道与当前磁头所在的磁道距离最近,以使每次的寻道时间最短,可能导致优先级的进程发生“饥饿”现象,为了解决这个问题,提出了基于扫描的磁盘调度算法
③ 基于扫描的磁盘调度算法
- 扫描算法(SCAN)考虑欲访问的磁道与当前磁道的距离,更优先考虑磁头当前移动的方向(从外向里->从里向外->从外向里)(大中小型机器和网络)(编号小的在最外层)
- 循环扫描算法(CSCAN)(从外向里->从外向里)(最里面编号最大)
- NStepSCAN算法(防磁壁粘着)(N很大时,)
- FSCAN算法(磁道请求队列被分成两个长队列)
2、磁盘I/O速度
3、磁盘系统的可靠性