- 单用户单任务操作系统(CP/M、MS-DOS)
- 单用户多任务操作系统(Windows98以及以前版本的Windows)
- 多用户多任务操作系统 (UNIX、Windows XP以及以后版本的Windows)
从宏观上来看,任务共行是指系统中有多个任务同时运行
从微观上来看,任务共行是指单处理器系统中的任务并发或多处理系统中的任务并行
从宏观上看,资源共享是指多个任务可以同时使用系统中的软硬件资源
从微观上看,资源共享是指多个任务可以交替互斥地使用系统中的某个资源
并发性和共享性是操作系统的两个最基本特征,二者互为存在条件。
大多数现代OS其总体结构包含两类子系统:1.用户接口子系统;2.基础平台子系统;它们之间具有单向性。
进程:是资源分配的和独立运行的基本单位。
线程:是系统调度的基本单位。
进程是程序在一个数据集合上的运行过程,是系统进行资源分配和调度的一个独立单位。
扩:进程实体:程序段+数据段+PCB
程序是指令的有序集合,是静态的,其存在是无生命周期的,而进程由程序段、数据段、PCB组成,是动态的,有生命周期的。
- 二状态模型
Running
Not-Running- 三状态模型
Running
Ready
Block- 五状态模型
Running
Ready
Block
New
Exit- 七状态模型
Running
Ready
Block
Ready,Suspend
Block,Suspend
New
Exit
挂起需要用到Swapping技术;
用户登录、作业调度、提供服务、应用请求
正常、异常、外界干预
阻塞是主动的,唤醒是被动的
挂起是由进程自己或其父进程调 Suspend 原语完成。激活是由父进程或用户进程请求激活指定进程,系统利用 Active 原语将指定进程激活。
是指对多个相关进程在执行次序上进行协调,他的目的是使系统中诸进程之间能有效地共享资源和相互合作,从而使程序的执行具有可再现性。
硬件机制、信号量机制、管程机制
临界资源是一次只允许一个进程使用的资源,需要进程采用互斥方式访问;访问临界资源的那一段代码叫做临界区(CS区)。
操作:P、V操作
原语:wait、signal(必须成对存在)
类别:资源信号量、互斥信号量
资源信号量:申请/归还资源,可以初始化为一个正整数(>=0 表示可用资源数 <0表示被阻塞的进程数)
互斥信号量:申请/释放使用权,常初始化为1
注意事项:两个wait操作相邻的话,顺序很重要!同步wait必须在互斥wait前面!wait,signal成对出现,当为互斥操作时,处于同一进程,否则不在同一进程;使用PV不当,会产生死锁;
定义:一个数据结构和在该数据结构上能被并发进程所执行的一组操作,这组操作能使进程同步和改变管程中的数据。
管程规定每次只准许一个进程执行,从而实现了进程互斥,保证了管程共享变量的数据完整性。
资源信号量:full=0、empty=n(分别表示满缓冲区的数目、空缓冲区的数目)
互斥资源量:mutex=1
核心算法表示:
高级调度 外《----》内
中级调度 外《----》内 但PCB在内
低级调度 内存之中
批处理调度、分时调度、实时调度、多处理机调度
C P U 利 用 率 = C P U 有 效 工 作 时 间 / 有 效 时 间 + 空 闲 等 待 时 间 CPU利用率=CPU有效工作时间/有效时间+空闲等待时间 CPU利用率=CPU有效工作时间/有效时间+空闲等待时间
周转时间:驻外存等待调度时间+驻内存等待调度时间+执行时间+阻塞时间=结束时间-到达时间
平均周转时间= 1 n ∑ i = 0 n T i \frac{1} {n} \displaystyle \sum^{n}_{i=0} T_i n1i=0∑nTi
平均周转时间可以衡量不同调度算法对相同作业流的调度性能。
带权周转时间= 1 n ∑ i = 0 n T i T s \frac{1} {n} \displaystyle \sum^{n}_{i=0} \frac{T_i} {T_s} n1i=0∑nTsTi
带权周转时间越小越好
Job是指,计算机用户在一次上机过程中要求计算机系统为其所做的工作的集合;作业中的每项相对独立的工作称为作业步;
一个典型的作业可分为三个作业步:1.编译作业步 2.连结装配作业步 3.运行作业步
基本思想:按进程(作业)进入就绪(后备)队列的先后次序来分配处理机(为其创建进程)。
调度方式:非剥夺
优点:简单、有利于CPU繁忙型作业
缺点:I/O不利、短作业不利
基本思想:从后备作业中选择一个或若干个估计运行时间最短的作业,将他们调入内存运行
调度方式:非剥夺
优点:有效降低作业的平均等待时间、提高了吞吐量
缺点:长作业不利、不考虑紧迫性、作业执行时间、剩余时间仅为估计
基本思想: 既考虑了作业的等待时间,也考虑了作业的运行时间,是一种动态优先级调度算法。
优先权=等待时间+要求服务时间/要求服务时间
基本思想:它总是选择预期剩余时间最短的进程。只要新进程就绪,且有更短的剩余时间,调度程序就可能抢占当前正在运行的进程
方式:抢占式
优点:抢占
缺点:必须记录过去的服务时间,从而增加了开销。
基本思想:系统将所有就绪进程按FCFS的原则,排成一个队列依次调度,把 CPU 分配给队首进程,并令其执行一个时间片,通常为
10-100ms。时间片用完后,系统的计时器发出时钟中断,该进程将被剥夺 CPU并插入就绪队列末尾。
优点:非常公平
进程切换时机:
基本思想:算法是根据任务紧急(或松弛)的程度,来确定任务的优先级。任务的紧急度越高,其优先级越高,并使之优先执行。
方式:抢占式
松弛度 = 必须完成时间 - 本身剩余运行时间 - 当前时间
死锁是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态,这些永远在互相等待的进程称为死锁进程。
扩:饥饿是指一个进程一直得不到资源4
算法描述:
自然语言描述:
系统提出请求后,先判断请求是否合法,如果合法,则尝试修改,判断修改后是否存在安全状态,如果存在则确认修改。
如何判断是否存在安全状态:
当前系统可用资源分配给某个进程后,可以完成该进程,并释放该进程资源。循环直至全部完成;
作用:将用户地址空间中的逻辑地址变换为内存空间中的物理地址。实现逻辑地址向物理地址的转换(页号 ⇒ 块号)。地址变换借助页表来完成。
引入的必要性:方便编程、信息共享、信息保护、动态增长、动态链接
所谓任务(Task)是指,计算机在某个资源集合上所做的一次相对独立的计算过程。 ↩︎
所谓模式,简单地说,就是程序在运行过程中使用的、由硬件体系结构提供的CPU特权模式。 ↩︎
由若干条指令组成的,用于完成一定功能的一个过程。是一个不可分割的基本单位,执行过程中不许中断。 ↩︎
资源分类 可重用资源和消耗性资源、可抢占资源和不可抢占资源 ↩︎
安全状态指在某一时刻,系统能按某种进程顺序 (p1,p2,…,pn) 来为每个进程 Pi 分配其资源,直到满足每个进程对资源的最大需求,使每个进程都可顺利地完成,则称此时的系统状态为安全状态,称序列 (p1,p2,…,pn) 为安全序列。若某一时刻系统中不存在这样一个安全序列,则称此时的系统状态为不安全状态。 ↩︎
重定位:由于一个作业装入到与其地址空间不一致的存储空间所引起的,需对其有关地址部分进行调整的过程就称为重定位(实质是一个地址变换过程/地址映射过程)。分为静态、动态两种方式;静:软件实现,动:软硬(寄存器支持)结合。 ↩︎
内零头是指分配给作业的存储空间中未被利用的部分。 ↩︎
外零头是指系统中无法利用的小存储块。 ↩︎