第一章 操作系统引论
操作系统的目标
- 方便性:操作系统使计算机更易于使用。
- 有效性:操作系统允许以更有效的方式使用计算机系统资源。
- 提高系统资源利用率
- 提高系统的吞吐量
- 可扩展性:在操作系统中,允许有效地开发、测试和引进新的系统功能。
- 开放性:实现应用程序的可移植性和互操作性,要求具有统一的开放的环境。
操作系统的主要功能
操作系统应具有五个方面的功能
-
处理机管理(CPU)
-
存储器管理
-
设备管理
-
文件管理
-
方便用户使用的用户接口——
-
为了让用户方便、快捷、可靠的操作计算机硬件并执行自己的程序,操作系统提供了用户接口
-
操作系统提供的接口分为两类:
命令接口和程序接口
-
命令接口
:用户可以直接
使用的,利用这些操作命令来组织和控制作业的执行 -
程序接口
:用户通过程序间接
使用的,编程人员可以使用它们来请求操作系统服务
-
-
第二章 进程调度
进程控制
进程的创建
当子进程被撤消时,应将其从父进程那里获得的资源归还给父进程。
在撤消父进程时,也必须同时撤消其所有的子进程。
调用进程创建原语Creat ( )按下述步骤创建一个新进程:
-
申请空白PCB。
-
为新进程分配资源。
-
初始化进程控制块。包括:
①初始化标识信息。
②初始化处理机状态信息。
③初始化处理机控制信息。
-
将新进程插入就绪队列。
进程的阻塞
引起进程阻塞的事件:
-
请求系统服务:提出I/O服务时,并不立即满足该进程的要求时,转变为阻塞状态来等待
-
启动某种操作:当进程启动某种操作后,在该操作完成之后才能继续执行。
-
新数据尚未到达:对于相互合作的进程而言。
-
无新工作可做。如发送进程。
进程同步
信号量机制
整型信号量
定义为一个整型量,仅能通过两个标准的原子操作wait(S)和signal (S)来访问。又称为P、V操作。
AND型信号量
AND同步机制的基本思想:将进程在整个运行过程中需要的所有资源,一次性全都地分配给进程,待进程使用完后再一起释放。只要尚有一个资源未能分配给进程,其它所有可能为之分配的资源,也不分配给他。
信号量集
Swait(Sn,tn,dn)
Sn:空闲资源 tn:资源下限量(Sn >= tn 才分配) dn:需求量
应用
经典进程同步问题
生产者、消费者问题
生产者与消费者是一个广义的概念,可以代表一类具有相同属性的进程。
生产者和消费者进程共享一个大小固定的缓冲池。生产者生产数据,并将生产的数据存入缓冲池;消费者从缓冲池中取数据
mutex:使诸进程互斥地访问缓冲区(n个缓冲区)
empty、full:空、满缓冲区数量
哲学家进餐问题
读者、写者问题
读进程可共享同一对象
写进程不可共享同一对象
记录型信号量解决
信号量集解决
处理机调度
1.高级调度
-
调度对象:作业
-
又称作业调度、长程调度、接纳调度
-
实现:作业管理程序
-
将外存作业调入内存,创建PCB等,插入就绪队列。
-
主要用于批处理系统
2.中级调度
- 又称内存调度
- 对象︰挂起的进程
- 功能:把外存上那些已经具备运行条件的就绪进程重新载入内存。从静止就绪到活动就绪。
- 实现:内存管理中的对换进程
- 应用范围:具有对换功能的操作系统
3.低级调度
- 又称进程调度或短程调度
- 对象:就绪进程(或内核线程)
- 功能:决定就绪队列中的那个进程应获得处理机,并将处理机分配给选中的进程。
- 实现者∶分派程序(dispatcher)
- 应用范围:主要用于交互式系统
调度算法
-
先来先服务—FCFS
-
短作业优先—SJF
-
高响应比优先—HRRN
以上既可用于作业调度也可用于进程调度
-
时间片轮转—RR
-
分时系统的需求
每个进程仅运行一个时间片即被抢占CPU
-
轮转算法原理:
FCFS策略+时钟中断+时间片原则
-
进程切换时机
时间片内进程结束,进程结束事件激活进程调度,新进程可运行一个时间片。
时间片用完,时钟中断激活调度,旧进程到就绪队列尾,队头进程投入运行一个时间片。
-
-
优先级调度算法
- 抢占式
- 非抢占式
-
多级反馈队列调度算法
调度机制:
设置多个就绪队列,并为各个队列赋予不同的优先级。
优先级愈高的队列的进程的执