计算机操作系统——处理机调度算法

计算机操作系统——处理机调度算法


一、处理机调度的层次和调度算法的目标

1.处理及调度的层次
  1. 高级调度:(周期较长,大约几分钟一次) 又称为长程调度作业调度 调度对象:作业 功能:根据算法决定将外存中处于后备队列的作业调入内存,然后为它们创建进程(建立PCB)、分配必要的资源,使它们获得竞争处理及的权利,作业调度时会建立相应的PCB,作业调出时才撤销PCB。
    主要用于:多道批处理系统
  2. 中级调度: 又称为内存调度 调度对象:进程 功能:提高内存利用率和系统吞吐量,把内存中暂时不能运行的进程,调至外存等待,此时的进程处于挂起状态。当它们具备运行条件并且内存有空间时,中级调度来决定把外存的哪些就绪进程重新调入内存
  3. 低级调度:(最基本的调度,使用频率最高,分时系统在10~100ms进行一次进程调度) 又称为进程调度短程调度 调度对象:进程(或内核级线程) 功能:根据某种算法,决定哪个进程获得处理机,并由分派程序将处理机分配给被选中的进程
2.处理机调度算法目标
  1. 处理机调度算法的共同目标
    (1)资源利用率 CPU的利用率:在这里插入图片描述 (2)公平性:让所有进程获得合理的CPU时间,尽量不产生饥饿现象
    (3)平衡性
    (4)策略强制执行

  2. 批处理系统的目标
    (1)平均周转时间短
    周转时间=等待时间+执行时间=完成时刻-到达时刻
    平均周转时间=各进程周转时间之和/进程的个数
    带权周转时间=周转时间/CPU提供服务的时间
    (2)系统吞吐量高 吞吐量:单位时间内系统完成的作业数,它与批处理作业的平均长度有关
    (3)处理机利用率高

  3. 分时系统的目标
    (1)响应时间按快
    (2)均衡性

  4. 实时系统的目标
    (1)截止时间的保证
    (2)可预测性


二、 非抢占式调度算法

1.先来先服务调度算法(FCFS,First-Come-First-Served)

在这里插入图片描述

  • 算法规则:按照作业/进程到达的先后顺序进行服务
  • 优点:公平,实现简单
  • 缺点:带权周转时间长,对长作业有利,短作业不利

例题详解:(解题方式我习惯于用数轴表示,也可以画表格,但是感觉不如数轴看着形象)
在这里插入图片描述

2.短作业优先调度算法(SJF,Short-Job-First)

在这里插入图片描述

  • 算法规则:最短的进程/作业优先得到服务
  • 该算法也有抢占式
  • 优点:减少了平均等待时间和平均周转时间
  • 缺点:对短作业有利,长作业不利,容易产生饥饿现象;必须预知作业的运行时间;人——机无法实现交互;未考虑作业的紧迫程度,不能保证紧迫性作业及时得到处理。

例题详解:

在这里插入图片描述

3.高响应比优先调度算法(HRRN,Highest-Response-Ratio-Next)

在这里插入图片描述

- 算法规则:每次调度时先计算响应比,选择响应比最高的进行服务

  • 优点:避免了长作业饥饿的问题,集合了SJF和FCFS的优点

在这里插入图片描述

响应比大的优先调度(不值得等待的进程优先调度)
响应比越小,等得越值得

例题详解:
在这里插入图片描述


三、抢占式调度算法

进程调度的机制:(1)排队器(2)分派器(3)上下文切换器
进程调度方式:抢占式、非抢占式
抢占式的剥夺原则:(1)优先权原则 (2)短进程优先原则 (3)时间片原则


1.轮转调度算法(时间片轮转)

在这里插入图片描述

轮转调度算法:
(1)基本原理:将所有就绪进程按FCFS排成一个就绪队列,系统设置每隔一定时间便产生一次中断,去激活进程调度程序进行调度,把CPU分配给队首进程,并令其执行下一个时间片…
(2)切换机制:
a.若一个时间片尚未用完,正在运行的进程便已经完成,就立即激活调度程序,将它从就绪队列中删除,再调度就绪队列中队首的进程进行,并启动一个新的时间片。
b.在时间片用完时,如果进程尚未运行完成,调度程序将把它送往就绪队列的末尾。

时间片大小的确定:
(1)时间片太小:增加系统的开销
(2)时间片太大:时间片轮转便退化为FCFS算法,无法满足交互式用户需求

时间片轮转调度算法常用于分时操作系统,更注重“响应时间”,因而此处不计算周转时间
在这里插入图片描述


2.优先级调度算法

(分为抢占式和非抢占式)
优先级类型:
(1)静态优先级
(2)动态优先级
在这里插入图片描述


3.多级反馈队列调度算法

在这里插入图片描述

调度机制

  • 首先设置多级就绪队列
    每个就绪队列分配不同的时间片,优先级高的为第一队列,时间片最小,随着就绪队列级别的降低,时间片逐渐增大
  • 每个进程按照先来先服务调度算法
    一个进程就绪后进入第一级队列末尾
  • 当有一个优先级更高的进程就绪时,可以抢占CPU,被强占进程回到原来一级的就绪队列末尾。
  • 当第一级别队列空时,就去调度第二队列,…以此类推。
  • 当时间片结束后,进程放弃CPU,转入下一级队列。

多级反馈队列示意图:
在这里插入图片描述

  • 13
    点赞
  • 86
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
CH1 操作系统概论............................................................................................................................1 1.1 操作系统概观............................................................................................................................1 1.1.1 操作系统的定义和目标.....................................................................................................1 1.1.2 操作系统的作用与功能.....................................................................................................2 1.1.3 操作系统的主要特性.........................................................................................................4 1.2 操作系统的形成和发展............................................................................................................6 1.2.1 人工操作阶段.....................................................................................................................6 1.2.2 管理程序阶段.....................................................................................................................6 1.2.3 多道程序设计与操作系统的形成.....................................................................................8 1.2.4 操作系统的发展与分类...................................................................................................11 1.3 操作系统提供的服务和用户接口..........................................................................................18 1.3.1 操作系统提供的基本服务...............................................................................................18 1.3.2 操作系统提供的用户接口...............................................................................................19 1.3.3 程序接口与系统调用.......................................................................................................20 1.3.4 操作接口与系统程序.......................................................................................................22 1.4 操作系统的结构设计..............................................................................................................26 1.4.1 操作系统的构件...............................................................................................................26 1.4.2 整体式结构的操作系统...................................................................................................29 1.4.3 层次式结构的操作系统...................................................................................................29 1.4.4 虚拟机结构的操作系统...................................................................................................31 1.4.5 客户/服务器与微内核结构的操作系统..........................................................................32 1.4.6 操作系统功能的实现模型...............................................................................................35 1.4.7 实例研究:Windows 2000/XP 客户/服务器结构...........................................................37 1.5 流行操作系统简介..................................................................................................................41 1.5.1 DOS 操作系统...................................................................................................................41 1.5.2 Windows 操作系统............................................................................................................42 1.5.3 UNIX 操作系统家族.........................................................................................................44 1.5.4 自由软件和Linux 操作系统............................................................................................45 1.5.5 IBM系列操作系统...........................................................................................................47 1.5.6 其他流行操作系统...........................................................................................................49 1.6 本章小结.................................................................................................................................50 CH2 处理器管理..............................................................................................................................56 2.1 中央处理器..............................................................................................................................56 2.1.1 单处理器系统和多处理器系统.......................................................................................56 2.1.2 寄存器..............................................................................................................................57 2.1.3 机器指令与特权指令.......................................................................................................58 2.1.4 处理器状态.......................................................................................................................58 2.1.5 程序状态字寄存器...........................................................................................................59 V 2.2 中断技术.................................................................................................................................60 2.2.1 中断的概念.......................................................................................................................60 2.2.2 中断源分类.......................................................................................................................60 2.2.3 中断装置..........................................................................................................................61 2.2.4 中断处理程序...................................................................................................................63 2.2.5 中断事件的具体处理方法...............................................................................................63 2.2.6 中断的优先级和多重中断...............................................................................................68 2.2.7 实例研究:Windows 2000/XP 中断处理........................................................................69 2.2.8 实例研究:Solaris 中断处理..........................................................................................75 2.2.9 实例研究:Linux 中断处理.............................................................................................76 2.3 进程及其实现..........................................................................................................................79 2.3.1 进程的定义和属性...........................................................................................................79 2.3.2 进程的状态和转换...........................................................................................................80 2.3.3 进程的描述.......................................................................................................................83 2.3.4 进程切换与模式切换.......................................................................................................87 2.3.5 进程的控制.......................................................................................................................88 2.3.6 实例研究:UNIX SVR4 进程管理...................................................................................91 2.3.7 实例研究:Linux 进程管理.............................................................................................94 2.4 线程及其实现..........................................................................................................................97 2.4.1 引入多线程技术的动机...................................................................................................97 2.4.2 多线程环境中的进程与线程...........................................................................................98 2.4.3 线程的实现.....................................................................................................................103 2.4.4 实例研究:Solaris 的进程与线程................................................................................106 2.4.5 实例研究:Windows 2000/XP 的进程与线程..............................................................110 2.5 处理器调度............................................................................................................................116 2.5.1 处理器调度的层次.........................................................................................................117 2.5.2 高级调度.........................................................................................................................117 2.5.3 中级调度........................................................................................................................118 2.5.4 低级调度........................................................................................................................118 2.5.5 选择调度算法的原则.....................................................................................................119 2.6 批处理作业的管理与调度....................................................................................................119 2.6.1 作业和进程的关系.........................................................................................................119 2.6.2 批处理作业的管理.........................................................................................................120 2.6.3 批处理作业的调度.........................................................................................................121 2.6.4 作业调度算法.................................................................................................................121 2.7 低级调度................................................................................................................................124 2.7.1 低级调度的功能.............................................................................................................124 2.7.2 低级调度算法.................................................................................................................124 2.7.3 实时调度........................................................................................................................127 2.7.4 多处理器调度.................................................................................................................128 2.7.5 实例研究:UNIX SVR4 调度算法.................................................................................132 2.7.6 实例研究:Windows 2000/XP 调度算法......................................................................133 VI 2.7.7 实例研究:Linux 调度算法...........................................................................................140 2.8 本章小结................................................................................................................................143 CH3 并发进程................................................................................................................................151 3.1 并发进程................................................................................................................................151 3.1.1 顺序程序设计.................................................................................................................151 3.1.2 进程的并发性.................................................................................................................151 3.1.3 与时间有关的错误.........................................................................................................153 3.1.4 进程的交互(Interaction Among Processes):协作和竞争........................................155 3.2 临界区管理............................................................................................................................156 3.2.1 互斥和临界区.................................................................................................................156 3.2.2 临界区管理的尝试.........................................................................................................157 3.2.3 实现临界区管理的软件方法.........................................................................................158 3.2.4 实现临界区管理的硬件设施.........................................................................................160 3.3 信号量与PV 操作.................................................................................................................162 3.3.1 同步和同步机制.............................................................................................................162 3.3.2 记录型信号量与PV 操作..............................................................................................163 3.3.3 用记录型信号量实现互斥.............................................................................................166 3.3.4 记录型信号量解决生产者-消费者问题.......................................................................168 3.3.5 记录型信号量解决读者-写者问题...............................................................................170 3.3.6 记录型信号量解决理发师问题.....................................................................................172 3.4 管程.......................................................................................................................................172 3.4.1 管程和条件变量.............................................................................................................172 3.4.2 Hoare 方法实现管程.......................................................................................................175 3.4.3 Hanson 方法实现管程....................................................................................................178 3.5 进程通信................................................................................................................................184 3.5.1 信号通信机制.................................................................................................................184 3.5.2 共享文件通信机制` .......................................................................................................185 3.5.3 共享存储区通信机制.....................................................................................................188 3.5.4 消息传递通信机制.........................................................................................................189 3.5.5 有关消息传递实现的若干问题.....................................................................................192 3.6 死锁.......................................................................................................................................195 3.6.1 死锁的产生.....................................................................................................................195 3.6.2 死锁的定义.....................................................................................................................196 3.6.3 死锁的防止.....................................................................................................................197 3.6.4 死锁的避免.....................................................................................................................198 3.6.5 死锁的检测和解除.........................................................................................................206 3.7 实例研究:WINDOWS 2000/XP 的同步和通信机制...........................................................209 3.7.1 Windows 2000/XP 的同步和互斥机制...........................................................................209 3.7.2 Windows2000/XP 进程通信机制....................................................................................210 3.8 实例研究:LINUX 信号量机制.............................................................................................211 3.9 本章小结................................................................................................................................212 VII CH4 存储管理................................................................................................................................225 4.1 主存储器................................................................................................................................225 4.1.1 存储器的层次.................................................................................................................225 4.1.2 快速缓存(caching) ....................................................................................................226 4.1.3 地址转换与存储保护.....................................................................................................227 4.2 连续存储空间管理................................................................................................................227 4.2.1 单用户连续存储管理.....................................................................................................227 4.2.2 固定分区存储管理.........................................................................................................229 4.2.3 可变分区存储管理.........................................................................................................230 4.3 分页式存储管理....................................................................................................................235 4.3.1 分页式存储管理的基本原理.........................................................................................235 4.3.2 相联存储器和快表.........................................................................................................236 4.3.3 分页式存储空间的分配和去配.....................................................................................237 4.3.4 分页存储空间的页面共享和保护.................................................................................238 4.3.5 多级页表........................................................................................................................238 4.3.6 反置页表........................................................................................................................240 4.4 分段式存储管理....................................................................................................................241 4.4.1 程序的分段结构.............................................................................................................241 4.4.2 分段式存储管理的基本原理.........................................................................................241 4.4.3 段的共享........................................................................................................................243 4.4.4 分段和分页的比较.........................................................................................................243 4.5 虚拟存储管理........................................................................................................................243 4.5.1 虚拟存储器的概念.........................................................................................................243 4.5.2 请求分页虚拟存储管理.................................................................................................245 4.5.3 请求分段虚拟存储管理.................................................................................................261 4.5.4 请求段页式虚拟存储管理.............................................................................................262 4.6 实例研究:INTEL X86/PENTIUM 存储管理硬件设施...........................................................263 4.6.1 Intel x86/Pentium 段机制——段选择符和段描述符....................................................264 4.6.2 Intel x86/Pentium 运行模式选择....................................................................................265 4.6.3 Intel x86/Pentium 地址转换............................................................................................265 4.6.4 Intel x86/Pentium 页式或段页式地址转换....................................................................266 4.7 实例研究:WINDOWS 2000/XP 虚拟存储管理...................................................................268 4.7.1 进程地址空间布局.........................................................................................................268 4.7.2 用户空间内存分配.........................................................................................................269 4.7.3 内存管理的实现.............................................................................................................273 4.8 实例研究:LINUX 的存储管理.............................................................................................279 4.8.1 Linux 存储管理概述.......................................................................................................279 4.8.2 虚拟地址空间的组织和管理.........................................................................................279 4.8.3 物理内存空间的管理.....................................................................................................280 4.8.4 用户态内存的申请与释放.............................................................................................281 4.8.5 内存的共享和保护.........................................................................................................282 VIII 4.8.6 交换空间、页面的换出和调入.....................................................................................283 4.8.7 缓冲机制........................................................................................................................284 4.9 本章小结................................................................................................................................285 CH5 设备管理................................................................................................................................292 5.1 I/O 硬件原理..........................................................................................................................292 5.1.1 I/O 系统...........................................................................................................................292 5.1.2 I/O 控制方式...................................................................................................................293 5.1.3 设备控制器.....................................................................................................................297 5.2 I/O 软件原理..........................................................................................................................298 5.2.1 I/O 软件的设计目标和原则...........................................................................................298 5.2.2 I/O 中断处理程序...........................................................................................................299 5.2.3 设备驱动程序.................................................................................................................300 5.2.4 与硬件无关的操作系统I/O 软件.................................................................................300 5.2.5 用户空间的I/O 软件.....................................................................................................302 5.3 具有通道的I/O 系统管理.....................................................................................................302 5.3.1 通道命令和通道程序.....................................................................................................302 5.3.2 I/O 指令和主机I/O 程序................................................................................................304 5.3.3 通道启动和I/O 操作过程.............................................................................................305 5.4 缓冲技术................................................................................................................................306 5.4.1 单缓冲............................................................................................................................306 5.4.2 双缓冲............................................................................................................................307 5.4.3 多缓冲............................................................................................................................307 5.5 驱动调度技术........................................................................................................................308 5.5.1 存储设备的物理结构.....................................................................................................308 5.5.2 循环排序........................................................................................................................309 5.5.3 优化分布........................................................................................................................310 5.5.4 交替地址........................................................................................................................311 5.5.5 搜查定位........................................................................................................................311 5.5.6 独立磁盘冗余阵列.........................................................................................................313 5.5.7 提高磁盘I/O 速度的一些方法.....................................................................................316 5.6 设备分配................................................................................................................................316 5.6.1 设备独立性.....................................................................................................................316 5.6.2 设备分配........................................................................................................................317 5.7 虚拟设备................................................................................................................................318 5.7.1 问题的提出.....................................................................................................................318 5.7.2 SPOOLING 的设计和实现.............................................................................................319 5.7.3 SPOOLING 应用例子.....................................................................................................321 5.8 实例研究:WINDOWS 2000/XP 的I/O 系统........................................................................321 5.8.1 Windows 2000/XP I/O 系统结构和组件.........................................................................321 5.8.2 Windows 2000/XP I/O 系统的数据结构.........................................................................325 5.8.3 Windows2000/XP 设备驱动程序....................................................................................328 IX 5.8.4 Windows 2000/XP I/O 处理.............................................................................................331 5.8.5 Windows 2000/XP 高速缓存管理................................................................................333 5.9 实例研究:LINUX 设备管理.................................................................................................344 5.9.1 Linux 设备管理概述.......................................................................................................344 5.9.2 Linux 硬盘管理...............................................................................................................345 5.9.3 Linux 网络设备...............................................................................................................346 5.9.4 Linux 设备驱动程序.......................................................................................................347 5.10 本章小结..............................................................................................................................347 CH6 文件管理................................................................................................................................352 6.1 文件.......................................................................................................................................352 6.1.1 文件的概念.....................................................................................................................352 6.1.2 文件的命名.....................................................................................................................353 6.1.3 文件的类型.....................................................................................................................353 6.1.4 文件的属性.....................................................................................................................354 6.1.5 文件的存取方法.............................................................................................................355 6.1.6 文件的使用.....................................................................................................................356 6.2 文件目录................................................................................................................................357 6.2.1 文件目录与文件目录项.................................................................................................357 6.2.2 一级目录结构.................................................................................................................358 6.2.3 二级目录结构.................................................................................................................358 6.2.4 树形目录结构.................................................................................................................359 6.3 文件组织与数据存储............................................................................................................361 6.3.1 文件的存储.....................................................................................................................361 6.3.2 文件的逻辑结构.............................................................................................................361 6.3.3 文件的物理结构.............................................................................................................365 6.4 文件系统其他功能的实现....................................................................................................371 6.4.1 文件操作的实现.............................................................................................................371 6.4.2 UNIX/Linux 文件操作系统调用.....................................................................................372 6.4.3 文件卷的安装和使用.....................................................................................................375 6.4.4 文件共享........................................................................................................................377 6.4.5 层次式文件系统模型.....................................................................................................382 6.4.6 辅存空间管理.................................................................................................................383 6.4.7 内存映射文件.................................................................................................................385 6.4.8 虚拟文件系统.................................................................................................................386 6.5 实例研究:LINUX 文件管理.................................................................................................387 6.5.1 Linux 文件管理概述.......................................................................................................387 6.5.2 Linux 文件系统的安装和管理........................................................................................388 6.5.3 虚拟文件系统VFS.........................................................................................................389 6.5.4 文件系统管理的缓冲机制.............................................................................................392 6.5.5 系统打开文件表.............................................................................................................394 6.5.6 EXT2 文件系统...............................................................................................................395 X 6.6 实例研究:WINDOWS 2000/XP 文件系统...........................................................................397 6.6.1 Windows 2000/XP 文件系统概述...................................................................................397 6.6.2 Windows2000/XP 文件系统模型和FSD 体系结构.......................................................398 6.6.3 NTFS 文件系统驱动程序...............................................................................................401 6.6.4 NTFS 在磁盘上的结构...................................................................................................402 6.6.5 NTFS 可恢复性支持.......................................................................................................405 6.6.6 NTFS 安全性支持...........................................................................................................405 6.7 本章小结................................................................................................................................406 CH7 操作系统的安全与保护........................................................................................................411 7.1 安全性概述............................................................................................................................411 7.2 安全威胁及其类型................................................................................................................411 7.3 保护.......................................................................................................................................415 7.3.1 操作系统保护层次.........................................................................................................415 7.3.2 内存储器的保护.............................................................................................................415 7.3.3 面向用户的访问控制.....................................................................................................415 7.3.4 面向数据的访问控制.....................................................................................................416 7.4 入侵者...................................................................................................................................416 7.4.1 入侵技术.........................................................................................................................416 7.4.2 口令保护.........................................................................................................................417 7.4.3 入侵检测.........................................................................................................................420 7.5 病毒(恶意软件)................................................................................................................421 7.5.1 病毒及其威胁.................................................................................................................421 7.5.2 病毒的特性.....................................................................................................................423 7.5.3 病毒的类型.....................................................................................................................423 7.5.4 反病毒的方法.................................................................................................................423 7.5.5 电子邮件病毒.................................................................................................................425 7.6 保护的基本机制、策略与模型............................................................................................426 7.6.1 机制、策略与模型.........................................................................................................426 7.6.2 身份认证机制.................................................................................................................438 7.6.3 授权机制.........................................................................................................................442 7.6.4 加密机制.........................................................................................................................452 7.6.5 审计................................................................................................................................456 7.7 实例研究:WINDOWS 2000/XP 的安全机制.......................................................................457 7.7.1. Windows 2000/XP 安全性概述.......................................................................................457 7.7.2. Windows2000/XP 安全性系统组件................................................................................457 7.7.3. Windows2000/XP 保护对象............................................................................................458 7.7.4. 访问控制策略.................................................................................................................458 7.7.5. 访问令牌.........................................................................................................................459 7.7.6. 安全描述符.....................................................................................................................459 7.8 本章小结................................................................................................................................461 CH8 网络和分布式操作系统........................................................................................................465 XI 8.1 计算机网络概述....................................................................................................................465 8.1.1 计算机网络的概念.........................................................................................................465 8.1.2 数据通信基本概念.........................................................................................................467 8.1.3 网络体系结构.................................................................................................................468 8.2 网络操作系统........................................................................................................................474 8.2.1 网络操作系统概述.........................................................................................................474 8.2.2 几个流行的网络操作系统.............................................................................................475 8.2.3 网络操作系统实例.........................................................................................................475 8.3 分布式操作系统....................................................................................................................477 8.3.1 分布式系统概述.............................................................................................................477 8.3.2 分布式进程通信.............................................................................................................478 8.3.3 分布式资源管理.............................................................................................................484 8.3.4 分布式进程同步.............................................................................................................485 8.3.5 分布式系统中的死锁.....................................................................................................495 8.3.6 分布式文件系统.............................................................................................................497 8.3.7 分布式进程迁移.............................................................................................................502 8.4 实例研究:WINDOWS2000 网络体系结构和网络服务.......................................................504 8.4.1 Windows 2000 网络体系结构.........................................................................................504 8.4.2 WindowS 2000 的层次化网络服务.................................................................................518 8.5 本章小结................................................................................................................................522
对考试很有帮助的.......... 《计算机操作系统》期末复习指导 第一章 计算机操作系统概述 1、操作系统的概念 操作系统(Operating System,OS),是一种软件,属于系统软件; 1、科普的观点 操作系统是计算机系统的管理和控制中心,它依照设计者制定的各种调度策略组织和管理计算机系统资源,使之能高效地运行。 2、功能的观点 操作系统是一个计算机资源管理系统,它负责计算机系统的全部资源的分配、控制、调度和回收。 3、用户的观点 操作系统是计算机与用户之间的接口,用户通过这种接口使用计算机。 4、软件的观点 操作系统是程序和数据结构的集合。 5、管理的观点 操作系统是计算机硬件和软件资源的合理而协调的管理者。 6、 操作系统是一个大型的程序系统,它负责计算机的全部软、硬件资源的分配、调度工作,控制并协调并发活动,实现信息的存取和保护。它提供用户接口,使用户获得良好的工作环境。操作系统使整个计算机系统实现了高效率和高度自动化。 2、操作系统的生成和五大类型 生成:产生最适合自己工作环境的OS内核(kernel)。既方便用户,又使系统开销尽量小;生成的配置过程如UNIX中newconfig命令;DOS中config.sys文件;维护由系统管理员负责。 操作系统的五大类型是批处理操作系统、分时操作系统、实时操作系统、网络操作系统、分布式操作系统。 多道程序设计:即在系统内(内存)同时存放并运行几道相互独立的程序。 多道程序设计的基础:是将运行过程进一步细化成几个小的步骤,从而实现宏观上的并行。但从微观上看,内存中的多道程序轮流地或分时地占用处理机,交替执行。 多道程序系统 ≠ 多重处理系统 ≠ 多用户 ≠ 多终端 多道是指内存中驻留多个程序或一个程序的多个程序段,因此,多用户系统一定是采用多道技术。而多道系统不一定是多用户系统。多重处理系统一般指多CPU系统。当然,一个CPU的系统采用分时技术可以为多用户服务。多用户的关键技术是在用户之间要有保密保安措施。终端指用户使用的硬件设备,即使一个终端也可为多用户使用,例如,银行的自动取款机(ATM)。 •分时与实时 分时技术:把CPU的时间分成很短的时间片(例如,几十至几百毫秒)工作。随着时间片的时间减少,对换时间所占的比例随之增大。随着用户数目的不断增加,这种矛盾会越来越突出。 实时是指计算机对于外来信息能够以足够快的速度进行处理,并在被控对象允许的时间范围内做出快速反应。交互作用能力较差。 3、操作系统的五大功能 •作业管理:包括任务管理、界面管理、人机交互、图形界面、语音控制和虚拟现实等; •文件管理:又称为信息管理; •存储管理:实质是对存储“空间”的管理,主要指对内存的管理; •设备管理:实质是对硬件设备的管理,其中包括对输入输出设备的分配、启动、完成和回收; •进程管理:又称处理机管理,实质上是对处理机执行“时间”的管理,即如何将CPU真正合理地分配给每个任务。 4、表征操作系统的属性 主要有:响应比,并发性,信息的共享、保密与保护,可扩充性、可移植性、可读性、可“生成”性,安全可靠性,可测试性等。 第二章 用户与操作系统的接口 1、基本概念 作业(Job)是让计算机完成一件事或任务,可大可小,可多可少。 作业步(Job steps) :作业顺序执行的工作单元。 作业流(Job Stream) :作业步的控制流程。 作业类别:终端交互作业、批处理作业。 2、用户界面 三代用户界面: •第一代用户界面:操作命令和系统调用在一维空间(命令行界面); •第二代用户界面:图形界面在二维空间(图形界面); •第三代用户界面:虚拟现实在三维空间(虚拟现实的界面元素)。 3、传统的人机接口 •操作命令 联机(键盘操作命令)、脱机(作业控制语言) 用户组合自编(Shell语言):DOS Shell;UNIX ;BShell、CShell等 •系统调用(System Call) 4、作业输入输出方式 •输入输出方式:脱机、直接耦合(交互联机) •SPOOLing:联机外围同时操作,假脱机(排队转储,设备虚拟技术) 5、作业调度 •作业调度的功能: (1)采用JCB(作业控制块)表格,记录各作业状况; (2)按选定的算法,从后备作业队列中选出一部分(多道)或一个作业投入运行; (3)为被选中的作业做好运行前的准备工作。例如建立相应的执行进程和分配系统资源; (4)作业运行结束的善后处理工作。 •作业调度算法: (1)先来先服务(FCFS) 作业平均周转时间=∑(作业完成时刻i-作业提交时刻i)/n个作业 (2)最短作业优先:在作业内容参差很不均衡时有合理性 (3)“响应比”最高的优先 “响应(系数)比”:作业响应时间(等待和运行)/作业运行时间 (4)定时轮转法(按时间片):适合作业不定的情况 (5)优先数法:急事先办的原则 第三章进程及处理机管理 1、为什么要引入“进程” (1)进程调度属于低级处理机管理,即确定系统中哪个进程将获得CPU;而作业调度属于高级处理机管理,即确定系统中哪些作业将获得CPU。 (2)进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。 (3)引入进程的意义是描述多道程序设计系统中程序的动态执行过程。 2、进程的定义及特征 (1)程序和进程的区别 (2)进程的五个基本特征:动态性、并发性、独立性、制约性、结构性 3、进程调度 (1)进程的三个基本状态及转换 三个基本状态是等待、执行和就绪,在一定的条件下,进程的状态将发生转换。 (2)进程调度算法 主要有先来先服务(FCFS)、时间片轮转法、多级反馈轮转法、优先数法。 (3)进程控制块(PCB)是进程存在的唯一标志,它描述了进程的动态性。 4、进程通信 (1)进程的同步与互斥 一般来说同步反映了进程之间的协作性质,往往指有几个进程共同完成一个任务时在时间次序上的某种限制,进程相互之间各自的存在及作用,通过交换信息完成通信。如接力比赛中一组队员使用接力棒等。 进程互斥体现了进程之间对资源的竞争关系,这时进程相互之间不一定清楚其它进程情况,往往指多个任务多个进程间的通讯制约,因而使用更广泛。如打篮球时双方挣抢篮板球等。 (2)临界区 并发进程中与共享资源有关的程序段定义为临界区。进入临界区的准则是:①一次只准一个进程进入临界区;②本进程结束负责通知下一进程;③进程调度,不能阻塞。 (3)原语 原语是不可中断的过程。 •加锁/开锁(LOCK/UNLOCK)原语 优点是实现互斥简单;缺点是效率很低。 •信号量(Semaphore)及PV操作 PV操作能够实现对临界区的管理要求。它由P操作原语和V操作原语组成,对信号量进行操作,具体定义如下: P(S):①将信号量S的值减1,即S=S-1; ②如果S 0,则该进程继续执行;否则该进程置为等待状态,排入等待队列。 V(S):①将信号量S的值加1,即S=S+1; ②如果S>0,则该进程继续执行;否则释放队列中第一个等待信号量的进程。 信号量的数据结构为一个值和一个指针,指针指向等待该信号量的下一个进程。信号量的值与相应资源的使用情况有关。当它的值大于0时,表示当前可用资源的数量;当它的值小于0时,其绝对值表示等待使用该资源的进程个数。注意信号量的值仅能由PV操作来改变。 一般来说,信号量S 0时,S表示可用资源的数量。执行一次P操作意味着请求分配一个单位资源,因此S的值减1;当S<0时,表示已经没有可用资源,请求者必须等待别的进程释放该类资源,它才能运行下去。而执行一个V操作意味着释放一个单位资源,因此S的值加1;若S 0,表示有某些进程正在等待该资源,因此要唤醒一个等待状态的进程,使之运行下去。 •消息缓冲通信原语 高级通信原语,用于一组信息发送(Send)与读取(Read)。 5、死锁 (1)死锁的概念 死锁是两个或两个以上的进程中的每一个,都在等待其中另一个进程释放资源而被封锁,它们都无法向前推进,称这种现象为死锁现象。 产生死锁的原因是共享资源有限,多个进程对共享资源的竞争,而且操作不当。 (2)产生死锁的四个必要条件是资源互斥使用、保持和等待、非剥夺性、循环等待。 (3)解决死锁的方法 一般有死锁的预防,即破坏产生死锁的四个必要条件中的一个或多个,使系统绝不会进入死锁状态;死锁的避免,即在资源动态分配的过程中使用某种办法防止系统进人死锁状态;和允许系统产生死锁,然后使用检测算法及时地发现并解除它。 安全状态、安全系列、银行家算法等 第四章 存储管理 1、存储管理使用的基本概念 •逻辑地址与物理地址 在具有地址变换机构的计算机中,允许程序中编排的地址和信息实际存放在内存中的地址有所不同。前者叫逻辑(相对)地址,后者叫物理(绝对)地址。 •重定位:将逻辑地址转换为物理地址。 •虚拟存储管理 虚存是由操作系统调度,采用内外存的交换技术,各道程序在必需使用时调入内存,不用的调出内存,这样好象内存容量不受限制。 虚存的特点: (1)虚存容量不是无限的,极端情况受内存和外存可利用的总容量限制; (2)虚存容量还受计算机总线地址结构限制; (3)速度和容量的“时空”矛盾,虛存量的“扩大”是以牺牲CPU工作时间以及内外存交换时间为代价的。 •存储管理的目的及功能 目的是方便用户,提高内存资源的利用率,实现内存共享。 功能主要有内存的分配和管理、内存的扩充技术、内存保护技术 2、分区分配存储管理 分为固定分区、可变分区、可重定位分区、多重分区。 内存“扩充”技术: •交换:由操作系统做,用户不知道。 •覆盖:由用户控制,操作系统提供覆盖机制。 内存保护技术: ---保护系统工作区和用户作业区,特别是如何防止系统区被破坏。方法有存储保护键、界限寄存器 3、请求页式存储管理 (1)页式存储管理实现原理 基于程序在运行时不需要一开始都装入内存(局部性原理),更不应该把最近较长一段时间内不用的程序装入内存。 (2)页表的作用是将逻辑页号转换为物理块号。 (3)页面淘汰算法 先进先出算法(FIFO)、循环检测法、最近最少使用页面先淘汰(LRU)、最不经常使用的页面先淘汰(LFU)、最近没有使用页面先淘汰(NUR)、最优淘汰算法(OPT)等。 (4)页式存储管理的优、缺点 优点: •虛存量大,适合多道程序运行,用户不必担心内存不够的调度操作; •内存利用率高,不常用的页面尽量不留在内存; •不要求作业连续存放,有效地解决了“碎片”问题。与分区式相比,不需移动作业;与多重分区比,无零星碎片产生。 缺点: •要处理页面中断、缺页中断处理等,系统开销较大; •有可能产生“抖动”; •地址变换机构复杂,为提高速度采用硬件实现,增加了机器成本。 4、段式、段页式存储管理 段式、页式存储管理的对比。 段页式存储管理特点: •每一段分若干页,再按页式管理,页间不要求连续; •用分段方法分配管理作业,用分页方法分配管理内存; •兼有段式和页式管理的优点,系统复杂和开销增大,一般在大型机器上才使用。 第五章文件管理 1、文件管理任务与功能 任务:把存储、检索、共享和保护文件的手段,提供给操作系统本身和用户,以达到方便用户和提高资源利用率的目的。 功能: ---分配与管理外存 ---提供合适的存储方法 ---文件共享、保护,解决命名冲突 文件组织结构:文件、文件元素、文件系统 •文件系统 = 文件管理程序(文件和目录的集合)+ 它所管理的全部文件; •文件系统是用户与外存的接口; •为用户提供统一方法(以数据记录的逻辑单位),访问存储在物理介质上的信息。 2、文件分类 (1)按文件性质与用途分:系统文件、库文件、用户文件 (2)按操作保护分:只读文件、可读可写文件、可执行文件 (3)按使用情况分:临时文件、永久文件、档案文件 (4)按用户观点分:普通文件、目录文件、特殊文件 (5)按存取的物理结构分:顺序(连续)文件、链接文件、索引文件 (6)按文件的逻辑存储结构分:有结构文件、无结构文件 (7)按文件中的数据形式分:源文件、目标文件 3、文件的逻辑结构和物理结构 •文件的逻辑结构 ---从用户观点看 ---按文件名及记录号存取文件,是一维、连续的字符序列,方便存储、检索或加工 ---文件由若干个逻辑记录组成,并加以命名或编号 •文件的物理结构 又称文件的存储结构,是指文件在外存上的存储组织形式,是与存储介质的存储性能有关; 空闲空间的管理方法主要有:空闲表法、空闲(自由)链表法、成组链接法 4、文件目录 (1)文件目录分类:一级文件目录、二级文件目录、多级文件目录 (2)文件目录的管理 •目录做成文件,文件系统便于内部统一管理,目录文件在使用时调入内存; •在操作系统中,大量采用“表格”管理。 5、文件存取控制 •解决文件保护、保密和共享 •常用的文件存取控制方法有:存取控制矩阵、用户权限表、使用口令、使用密码 6、文件系统的数据结构和表示 UNIX或Linux操作系统中文件系统的主要特点 (1)操作系统文件的目录组织是一个树形结构,从根结点到叶子称为文件的全路径名,文件可以由其全路径名唯一确定; (2)文件本身是无结构的字符流; (3)把外部设备的特殊文件和普通文件以及目录文件都统一在文件这一概念上,对于一般文件的访问、共享和保护方式也可以适用于外部设备。 第六章 输入输出设备管理 1、设备管理的任务和功能 •设备管理的任务 (1)按用户需求提出的要求接入外部设备,系统按一定算法分配和管理控制,而用户不必关心设备的实际地址和控制指令; (2)尽量提高输入输出设备的利用率,例如发挥主机与外设以及外设与外设之间的真正并行工作能力。 •设备管理的功能 (1)分配设备 (2)控制和实现真正的输入输出操作 (3)对输入输出缓冲区进行管理 (4)在一些较大系统中实现虚拟设备技术 2、外部设备分类 (1)按系统和用户分:系统设备、用户设备 (2)按输入输出传送方式分(UNIX或Linux操作系统):字符型设备、块设备 (3)按资源特点分:独享设备、共享设备、虚拟设备 (4)按设备硬件物理特性分:顺序存取设备、直接存取设备 (5)按设备使用分:物理设备、逻辑设备、伪设备 •设备I/O方式:询问、通道、中断 •I/O设备分配算法:先来先服务(FCFS)、按优先级进行分配 3、设备管理技术 (1)I/O设置缓存理由 •解决信息的到达率和离去率不一致的矛盾; •缓存起中转站的作用; •使得一次输入的信息能多次使用; •在通道或控制器内设置局部寄存器作为缓冲存储器,可暂存I/O信息,以减少中断CPU的次数。这种情形可进一步推广,使得一次读入的信息可多次重复使用。 (2)虚拟设备的技术(SPOOLing) SPOOLing,即外围设备联机并行操作,它是关于慢速字符设备如何与计算机主机交换信息的一种技术,通常也叫做“假脱机技术”。是一种预输入、缓输出和转储的管理技术. SPOOLing系统的特点: •提高了I/O速度; •将独享设备改造为共享设备(典型例子是打印机的“共享”); •实现了虚拟设备功能。 4、设备处理程序编制内容 •设备驱动程序的功能 (1)将接收到的抽象要求转换为具体要求; (2)检查用户I/O请求的合法性,了解I/O设备的状态,传递有I/O关参数,设置设备的工作方式; (3)发出I/O命令,启动分配到的I/O设备,完成指定的I/O 操作; (4)及时响应由控制器或通道发来的中断请求,并根据其中断类型调用相应的中断处理程序进行处理; (5)对于设置有通道的计算机系统,驱动程序还应能够根据用户的 I/O请求,自动地构成通道程序。 •设备驱动程序的特点 (1)驱动程序主要是在请求I/O的进程与设备控制器之间的一个通信程序。 (2)驱动程序与I/O设备的特性紧密相关。 (3)驱动程序与I/O控制方式紧密相关。 (4)由于驱动程序与硬件紧密相关,因而其中的一部分程序用汇编语言书写,目前有很多驱动程序,其基本部分已经固化,放在ROM中。 •设备处理方式 (1)将抽象要求转换为具体要求 (2)检查I/O请求的合法性 (3)读出和检查设备的状态 (4)传送必要的参数 (5)方式的设置和I/O设备启动 难点分析 •如何理解操作系统在计算机系统中的地位? 操作系统是软件,而且是系统软件。它在计算机系统中的作用,大致可以从两方面体会:对内,操作系统管理计算机系统的各种资源,扩充硬件的功能;对外,操作系统提供良好的人机界面,方便用户使用计算机。它在整个计算机系统中具有承上启下的地位。 •系统调用与一般过程调用的区别。 系统调用在本质上是一种过程调用,但它是一种特殊的过程调用,它与一般过程调用的主要区别如下: (1)运行状态不同。一般的过程调用,其调用和被调用过程都是用户程序,它们都运行在同一系统状态下;而系统调用的调用过程是用户程序,它运行在用户态,其被调用过程是系统过程,运行在系统态。 (2)进入方式不同。一般过程调用可以直接通过过程调用语句将控制转移到被调用过程;而执行系统调用时,由于调用和被调用过程处于不同系统状态,必须通过访管中断进入。 (3)代码层次不同。一般过程调用中的被调用程序是用户级程序,而系统调用是操作系统中的代码程序,是系统级程序。 •下表给出作业l、2、3的提交时间和运行时间。采用先来先服务调度算法和短作业优先调度算法,试问平均周转时间各为多少?(时间单位:小时,以十进制进行计算。) 解:采用先来先服务调度策略,则调度顺序为l、2、3。  平均周转时间T=(8+11.6+12)/3=10.53 采用短作业优先调度策略,则调度顺序为l、3、2。  平均周转时间T=(8+8+12.6)/3=9.53 •试述文件管理系统设置打开文件、关闭文件命令的原因。 解:操作系统需要处理大量用户文件,而访问一个文件需要查询目录,有时甚至需要多次查询目录。由于文件目录与文件一起存放在辅存上,当存取文件时,必须先到辅存中读取文件目录信息,从中获得文件的存放地址,然后再去存取文件。这样一来,文件信息的存取将花费很多时间。如果将整个文件目录放入主存,虽然可以提高存取速度,但这需要占用大量主存空间,显然这也是不可取的。 实际上,在一段时间内使用的文件数总是有限的,因此只要将目录中当前要使用的那些文件的目录表目复制到内存中就可以了。这样既不占用太多的主存空间,又可显著提高查询文件目录的速度。为此,大多数操作系统中设置了两个文件操作:打开文件和关闭文件。 打开文件操作完成的功能是将文件的有关目录信息复制到主存活动文件表中,以建立用户和这个文件的联系。关闭文件操作的功能是用户宣布这个文件当前不再使用,系统将其在主存中的相应目录信息删去,因而也就切断了用户同这个文件的联系。 •有一个文件系统如图(a)所示,图中的框表示目录,圈表示普通文件。根目录常驻内存,目录文件组织成链接文件,不设文件控制块,普通文件组织成索引文件。目录表目指示下一级文件名及其磁盘地址(各占2个字节,共4个字节)。若下级文件是目录文件,指示其第一个磁盘块地址。若下级文件是普通文件,指示其文件控制块的磁盘地址。每个目录文件磁盘块最后4个字节供拉链使用。下级文件在上级目录文件中的次序在图中为从左至右。每个磁盘块有512字节,与普通文件的一页等长。 普通文件的文件控制块组织结构如图(b)所示,其中每个磁盘地址占2个字节,前10个地址直接指示该文件前10页的地址。第11个地址指示一级索引表地址,一级索引表中每个磁盘地址指示一个文件页地址;第12个地址指示二级索引表地址,二级索引表中每个地址指示一个一级索引表地址;第13个地址指示三级索引表地址,三级索引表中每个地址指示一个二级索引表地址。问: (1)一个普通文件最多可有多少个文件页? (2)若要读文件J中的某一页,最多启动磁盘多少次? (3)若要读文件W中的某一页,最少启动磁盘多少次? 答:(1)由题目中所给条件可知,磁盘块大小为512字节,每个磁盘地址占2个字节。因此,一个一级索引表可容纳256个磁盘地址。同样地,一个二级索引表可容纳256个一级索引表地址,一个三级索引表可容纳256个二级索引表地址。这样,一个普通文件最多可有页数为:10+256+256×256+256×256×256=16843018 (2)从图(a)中可以看出,目录文件A和目录文件D中的目录项都只有两个,因此这两个目录文件都不需要拉链。若要读文件J中的某一项,首先从内存的根目录中找到目录文件A的磁盘地址,将其读入内存(第1次访问磁盘)。然后再从目录A中找出目录文件D的磁盘地址,并将其读入内存(第2次访问磁盘)。从目录D中找出文件J的文件控制块地址,将文件J的文件控制块读入内存(第3次访问磁盘)。在最坏情况下,要访问页的磁盘地址需通过三级索引才能找到,这时要三次访问磁盘才能将三级索引表读入内存(第4、5、6次访问磁盘)。最后读入文件J中的相应页(第7次访问磁盘)。 由此可知,若要读文件J中的某一页,最多启动磁盘7次。 (3)从图(a)中可以看出,目录文件C和目录文件U中,目录项数目较多,若目录项数超过127(512/4-l=127),则目录文件的读入可能需要多次磁盘读(因目录文件组织成链接文件)。在最好情况下,所找的目录项都在目录文件的第一个磁盘块中。若要读文件W中的某一页,首先从内存的根目录中找到目录文件C的磁盘地址,将其读入内存(第1次访问磁盘)。在最好情况下,能从目录C的第一个磁盘块中找出目录文件互的磁盘地址,并将其读入内存(第2次访问磁盘)。从目录I中找出目录文件P的的磁盘地址,将其读入内存(第3次访问磁盘)。从目录P中找到目录文件U的磁盘地址,将其读入内存(第4次访问磁盘)。在最好情况下,能从目录U的第一个磁盘块中找出文件W的文件控制块地址,将文件W的文件控制块读入内存(第5次访问磁盘)。在最好情况下,要访问的页在前10页中,这时可直接得到该页的磁盘地址。最后读入文件W中的相应页(第6次访问磁盘)。 由此可知,若要读文件W中的某一页,最少启动磁盘6次。 •采用可变分区管理存储空间时,若主存中按地址顺序依次有五个空闲区,大小分别为15K、28K、10K、226K、110K。现有五个作业J1到J5,它们所需的主存空间依次是10K、15K、102K、26K、180K。问如果采用首次适应分配算法,能否把这五个作业按J1到J5的次序全部装入主存。使用哪种分配算法装入这五个作业,可使主存的利用率最高? 解:按首次适应分配算法,不能把这五个作业全部依次装入主存。这时J1、J2装入第1、2个空闲区,J3、J4装入第4、5个空闲区,J5有180K,无法装入仅有的10K空闲区。 能使主存利用率最高的是采用最佳适应分配算法。这时,这五个空闲块分别装入作业J2、J4、J1、J5、J3。 •某虚拟存储器的用户编程空间共32个页面,每页为1KB,内存为16KB。假定某时刻一用户页表中已调入内存的页面的页号和物理块号的对照表如下: 请计算逻辑地址0A5C(H)所对应的绝对地址。 解:页式存储管理的逻辑地址分为两部分:页号和页内地址。由已知条件“用户编程空间共32个页面”,可知页号部分占5位;由“每页为1KB”,1K=210,可知内页地址占10位。由“内存为16KB”,可知有16块,块号为4位。 逻辑地址0A5C(H)所对应的二进制表示形式是:000 1010 0101 1100 ,根据上面的分析,下划线部分为页内地址,编码 “000 10” 为页号,表示该逻辑地址对应的页号为2。查页表,得到物理块号是4(十进制),即物理块地址为:01 00 ,拼接块内地址10 0101 1100,得01 0010 0101 1100,即125C(H)。 •某采用页式存储管理的系统,接收了一个共7页的作业,作业执行时依次访问的页为:1、2、3、4、2、1、5、6、2、1、2、3、7。当内存块数量为4时,请分别用先进先出(FIFO)调度算法和最近最少使用(LRU)调度算法,计算作业执行过程中会产生多少次缺页中断?写出依次产生缺页中断后应淘汰的页。(所有内存开始时都是空的,凡第一次用到的页面都产生一次缺页中断。要求写出计算过程) 解:(1)采用先进先出(FIFO)调度算法,页面调度过程如下: 所以,共产生10次缺页中断,依次淘汰的页是1、2、3、4、5、6。 (2)采用最近最少使用(LRU)调度算法,页面调度过程如下: 因此,共产生8次缺页中断,依次淘汰的页是3、4、5、6。 •试述分页式存储管理系统和分段式存储管理系统的主要区别。 解:分页和分段有许多相似之处,比如两者都不要求作业连续存放。但在概念上两者完全不同,主要表现在以下几个方式: (1)页是信息的物理单位,分页是为了实现非连续分配,以便解决内存碎片问题,或者说分页是由于系统管理的需要。段是信息的逻辑单位,它含有一组意义相对完整的信息,分段的目的是为了更好地实现共享,满足用户的需要。 (2)页的大小固定,由系统确定,将逻辑地址划分为页号和页内地址是由机器硬件实现的。而段的长度却不固定,决定于用户所编写的程序,通常由编译程序在对源程序进行编译时根据信息的性质来划分。 (3)分页的作业地址空间是一维的。分段的地址空间是二维的。 •为什么说有了通道技术和中断技术才真正做到了CPU与外设的并行操作? 解:通道是负责外围设备与主存之间进行数据交换,能单独完成输入输出操作的处理机。有了通道,主存和外围设备之间的数据交换就不要CPU干预了,CPU可以做与输入输出无关的其他工作,从而使计算机系统获得了CPU与外围设备之间并行工作的能力。 I/O中断是通道和CPU协调工作的一种手段。如果没有中断技术,CPU就要不断去查询通道以及设备执行的情况,这样一来,CPU还是把大量的时间花在了查询上,不能很好地为其他进程服务。使用中断技术,CPU可以完全不管通道和设备的执行情况,因为无论操作正常结束或操作异常结束,通道都会发出中断,通知CPU来处理。 综上所述,通道技术和中断技术的出现,使得主存可以直接与外设交换数据,而CPU得以并行地工作,大大提高了CPU的使用效率。 •某分时系统的进程出现如图所示的状态变化。 试问:(1)你认为该系统采用的是何种进程调度算法? (2)把图中所示的六个状态变化的原因写出来。 解:(1)该分时系统采用的进程调度算法是时间片轮转法。 (2)①进程被选中,变成运行态;②时间片到,运行的进程排入就绪队列尾部;③运行的进程启动打印机,等待打印;④打印工作结束,等待的进程排入就绪队列尾部;⑤等待磁盘读文件工作;⑥磁盘传输信息结束,等待的进程排入就绪队列尾部。 •怎样理解操作系统的作业调度和进程调度的关系? 解:作业调度和进程调度都属于处理机调度。作业调度是处理机管理的高级形式,它的主要功能是审查系统是否能满足用户作业的资源要求以及按照一定的算法来选取作业。进程调度是处理机管理的低级形式,它的主要功能是根据一定的算法将CPU分派给就绪队列中的一个进程。 作业的状态及其转换 操作系统中作业的状态主要有:提交、后备、执行、完成,进程的状态主要有等待、就绪、执行。作业调度和进程调度的转换关系见下图。 •用PV操作实现进程间的同步与互斥应该注意什么? 解:用PV操作实现进程间的同步与互斥,应该注意以下四方面问题: (1)对每一个共享资源都要设立信号量。互斥时对一个共享资源设立一个信号量;同步时对一个共享资源可能要设立两个或多个信号量,要视由几个进程来使用该共享变量而定。 (2)互斥时信号量的初值一般为1;同步时至少有一个信号量的初值大于等于1。 (3)PV操作一定要成对调用。互斥时在临界区前后对同一信号量作PV操作;同步时则对不同的信号量作PV操作,PV操作的位置一定要正确。 (4)对互斥和同步混合问题,PV操作可能会嵌套,一般同步的PV操作在外,互斥的PV操作在内。 三、课程练习及参考解答 一、填空 1、设备I/O方式有如下三种:_________、__________和___________。 2、文件存取方式按存取次序通常分_________________、_______________,还有一类 ______________。 3、从用户观点看,UNIX系统将文件分三类:___________________、___________________和 _________________。 4、引起死锁的四个必要条件是 、________________、 和__________________。 5、进程的三个最基本状态是_____________、____________和_____________。 6、传统操作系统提供编程人员的接口称为________________。 7、三代人机界面的发展是指:______________、_________________和_______________。 8、常用的进程调度算法有_________________、_________________和___________________。 二、选择一个正确答案的序号填入括号中 1、计算机操作系统是一个( )。 A. 应用软件 B. 硬件的扩充 C. 用户软件 D.系统软件 2、操作系统程序结构的主要特点是( )。 A. 一个程序模块 B. 分层结构 C. 层次模块化结构 D. 子程序结构 3、面向用户的组织机构属于( )。 A. 虚拟结构 B. 逻辑结构 C. 实际结构 D. 物理结构 4、操作系统中应用最多的数据结构是( )。 A. 堆栈 B. 队列 C. 表格 D. 树 5、可重定位内存分区分配目的为( )。 A. 解决碎片问题 B. 便于多作业共享内存 C. 回收空白区方便 D. 摆脱用户干预 6、逻辑地址就是( )。 A. 用户地址 B. 相对地址 C. 物理地址 D.绝对地址 7、原语是( )。 A. 一条机器指令 B. 若干条机器指令组成 C. 一条特定指令 D. 中途能打断的指令 8、索引式(随机)文件组织的一个主要优点是( )。 A. 不需要链接指针 B. 用户存取方便 C.回收实现比较简单 D.能实现物理块的动态分配 9、几年前一位芬兰大学生在Internet上公开发布了以下一种免费操作系统核心( ),经过许多人的努力,该操作系统正不断完善,并被推广。 A. Windows NT B. Linux C. UNIX D. OS2 10.文件目录的主要作用是( )。 A. 按名存取 B.提高速度 C.节省空间 D.提高外存利用率 11、某进程在运行过程中需要等待从磁盘上读入数据,此时该进程的状态是( )。 A. 从就绪变为运行 B.从运行变为就绪 C. 从运行变为阻塞 D.从阻塞变为就绪 12、把逻辑地址转变为内存的物理地址的过程称作( )。 A.编译 B.连接 C.运行 D.重定位 13、进程和程序的一个本质区别是( )。 A.前者分时使用CPU, 后者独占CPU B.前者存储在内存,后者存储在外存 C.前者在一个文件中,后者在多个文件中 D.前者为动态的,后者为静态的 三、是非题,正确的在括号内划√,错的划×。 ( )1、进程间的相互制约关系体现为进程的互斥和同步。 ( )2、只有一个终端的计算机无法安装多用户操作系统。 ( )3、UNIX的最大特点是分时多用户、多任务和倒树型文件结构。 ( )4、常用的缓冲技术有双缓冲,环形缓冲和缓冲池。 ( )5、实时操作系统的响应系数最小,设备利用率最差。 ( )6、死锁是指两个或多个进程都处于互相等待状态而无法继续工作。 ( )7、具有多道功能的操作系统一定是多用户操作系统。 ( )8、一般的分时操作系统无法做实时控制用。 ( )9、多用户操作系统在单一硬件终端硬件支持下仍然可以工作。 ( )10、常用的缓冲技术是解决慢速设备与快速CPU处理之间协调工作。 四、回答题 1、试以生产者——消费者问题说明进程同步问题的实质。 2、以一台打印机为例,简述SPOOLing 技术的优点。 3、简述请求页式存储管理的优缺点。 4、虚拟存储器的基本特征是什么?虚拟存储器的容量主要受到什么限制? 5、现代操作系统与传统操作系统相比,设计中采用了哪些先进技术? 练习参考解答 一、填空 1、询问、中断、通道 2、顺序存取、直接存取、按键索引 3、普通(用户)、目录、特殊 4、互斥使用、保持和等待、非剥夺性、循环等待 5、准备(就绪)、执行、等待 6、系统调用 7、一维命令行、二维图形界面、三维虚拟现实 8、先来先服务、优先数法、轮转法 二、选择题 1、D 2、C 3、B 4、C 5、A 6、B 7、B 8、D 9、B 10、A 11、C 12、D 13、D 三、是非题 有错误的是第2、5、7题,其余均是正确的。 四、回答题 1、答:一个生产者,一个消费者和一个产品之间关系是典型的进程同步问题。设信号量S为仓库内产品,P-V操作配对进行缺一不可。生产者进程将产品放入仓库后通知消费者可用;消费者进程在得知仓库有产品时取走,然后告诉生产者可继续生产。 2、答:以一台打印机为例, SPOOLing 技术的主要优点是在多用户情况下,每一个用户使用打印机就好像自己拥有一台打印机。不会产生打印机“忙”而等待。 3、答:优点: (1)虛存量大,适合多道程序运行,用户不必担心内存不够的调度操作。动态页式管理提供了内存与外存统一管理的虚存实现方式。 (2)内存利用率高,不常用的页面尽量不留在内存。 (3)不要求作业连续存放,有效地解决了“碎片”问题。与分区式比,不需移动作业;与多重分区比,无零星碎片产生。UNIX操作系统较早采用。 缺点: (1)要处理页面中断、缺页中断处理等,系统开销较大。 (2)有可能产生“抖动”。 (3)地址变换机构复杂,为提高速度采用硬件实现,增加了机器成本。 4、答:虚存是由操作系统调度,采用内外存的交换技术,各道程序在必需使用时调入内存,不用的调出内存,这祥好像内存容量不受限制。但要注意: (1)虚存容量不是无限的,极端情况受内存、外存的可使用的总容量限制; (2)虚存容量还受计算机总线长度的地址结构限制; (3)速度和容量的“时空”矛盾,虛存量的“扩大”是以牺牲CPU工作时间以及内、外存交换时间为代价的。 5、答:现代操作系统是指网络操作系统和分布式操作系统,采用了网络地址方案、网络协议、路由技术和微内核等先进技术。
CH1 概论 1 1.1 操作系统的定义和目标 1 1.1.1 OS作为用户与计算机硬件之间的接口 2 1.1.2 OS作为计算机系统的资源管理者 2 1.1.3 OS作为虚拟计算机 2 1.2 操作系统的形成和发展 3 1.2.1 人工操作阶段 3 1.2.2 管理程序阶段 4 1.2.3 操作系统的形成 5 1.2.4 操作系统发展的主要动力 6 1.2.5 操作系统的发展 6 1.3 流行操作系统简介 9 1.3.1 DOS操作系统 9 1.3.2 Windows操作系统 9 1.3.3 OS/2操作系统 10 1.3.4 Unix操作系统 11 1.3.5 Macintosh操作系统 11 1.3.6 MINIX操作系统 12 1.3.7 Linux操作系统 12 1.3.8 MACH操作系统 12 1.4 操作系统的分类 13 1.4.1 批处理操作系统 13 1.4.2 分时操作系统 13 1.4.3 实时操作系统 14 1.4.4 网络操作系统 15 1.4.5 分布式操作系统 16 1.4.6 嵌入式操作系统 17 1.4.7 自由软件和Linux操作系统 18 1.5 操作系统的功能 19 1.5.1 处理机管理 20 1.5.2 存储管理 20 1.5.3 设备管理 20 1.5.4 文件管理 21 1.5.5 用户接口 21 1.6 操作系统提供的用户接口 21 1.6.1 联机用户接口——操作命令 21 1.6.2 脱机用户接口——作业控制语言 22 1.6.3 程序接口——系统调用 23 1.7 操作系统的主要特性和需要解决的主要问题 23 1.7.1 操作系统的主要特性 23 1.7.2 操作系统需要解决的主要问题 24 CH2 操作系统的运行环境 26 2.1 中央处理器 26 2.1.1 单机系统和多机系统 26 2.1.2 寄存器 26 2.1.3 程序状态字寄存器 26 2.1.4 机器指令 27 2.1.5 特权指令 27 2.1.6 处理器状态 28 2.2 中断技术 28 2.2.1 中断的概念 28 2.2.2 中断源 29 2.2.3 中断装置 29 2.2.4 中断事件的处理 30 2.2.5 中断的优先级和多重中断 33 2.2.6 实例研究:Windows 2000的中断处理 34 2.3 主存储器 41 2.3.1 存储器的层次 41 2.3.2 地址转换与存储保护 42 2.4 输入输出系统 42 2.4.1 I/O系统 42 2.4.2 I/O控制方式 42 CH3 进程与线程 45 3.1 多道程序设计 45 3.1.1 多道程序设计的概念 45 3.1.2 多道程序设计的实现 46 3.2 顺序性与并发性 47 3.2.1 程序执行的顺序性 47 3.2.2 程序执行的并发性 48 3.3 进程的基本概念 49 3.3.1 进程的定义和性质 49 3.3.2 进程的状态和转换 51 3.3.3 进程的描述 54 3.3.4 进程的控制 57 3.3.5 进程管理的实现模型 59 3.3.6 实例研究——Unix SVR4的进程管理 60 3.4 线程的基本概念 63 3.4.1 引入多线程技术的必要性 63 3.4.2 多线程环境中的进程与线程 65 3.4.3 线程的实现 69 3.4.4 实例研究:JAVA语言中的线程 71 3.5 实例研究:SOLARIS的进程与线程 78 3.5.1 Solaris中的进程与线程概念 78 3.5.2 Solaris的进程结构 79 3.5.3 Solaris的线程状态 80 3.5.4 Solaris的线程程序设计接口 81 3.6 实例研究:WINDOWS 2000的进程与线程 82 3.6.1 Windows 2000中的进程与线程概念 82 3.6.2 进程对象 82 3.6.3 线程对象 85 3.6.4 作业对象 87 CH4 处理机调度 89 4.1 处理机调度的类型 89 4.1.1 处理机调度的层次 89 4.1.2 高级调度 90 4.1.3 中级调度 91 4.1.4 低级调度 91 4.1.5 选择调度算法的原则 91 4.2 批处理作业的管理与调度 92 4.2.1 批处理作业的管理 92 4.2.2 批处理作业的调度 93 4.2.3 作业调度算法 93 4.3 进程调度 95 4.3.1 进程调度的功能 95 4.3.2 进程调度算法 96 4.3.3 实时调度 98 4.3.4 多处理器调度 99 4.3.5 实例研究——传统Unix调度算法 102 4.3.6 实例研究——Unix SVR4调度算法 103 4.3.7 实例研究——Windows NT调度算法 104 CH5 并发进程 106 5.1 并发进程 106 5.1.1 顺序性和并发性 106 5.1.2 与时间有关的错误 106 5.1.3 进程的交互(Interaction Among Processes)——协作和竞争 108 5.2 临界区管理 109 5.2.1 互斥和临界区 109 5.2.2 临界区管理的尝试 110 5.2.3 实现临界区管理的软件方法 111 5.2.4 实现临界区管理的硬件设施 113 5.3 信号量与PV操作 114 5.3.1 同步和同步机制 114 5.3.2 记录型信号量与PV操作 116 5.3.3 用记录型信号量实现互斥 117 5.3.4 记录型信号量解决生产者-消费者问题 119 5.3.5 记录型信号量解决读者-写者问题 121 5.3.6 记录型信号量解决理发师问题 123 5.3.7 AND型信号量机制 123 5.3.8 一般型信号量机制 125 5.4 管程 127 5.4.1 管程和条件变量 127 5.4.2 Hanson方法实现管程 130 5.4.3 Hoare方法实现管程 135 5.5 消息传递 138 5.5.1 消息传递的概念 138 5.5.2 消息传递的方式 139 5.5.3 有关消息传递实现的若干问题 140 5.5.4 管道和套接字 143
【资源说明】 Python实现处理机和进程调度算法及内存分配回收机制源码+项目说明+代码注释(附Vue前端源码).zip 多道程序系统中,进程与进程之间存在同步与互斥关系。当就绪进程数大于处理机数时,需按照某种策略决定哪些进程先占用处理机。在可变分区管理方式下,采用首次适应算法实现主存空间的分配和回收。 本程序模拟实现处理机调度和内存分配及回收机制,并通过可视化界面观察进程的运行流程与情况。为了实现算法与界面的解耦合,以及绘制更加优美的界面,本实验设计了前后端分离的架构,在后端使用Python的Flask框架实现相关算法并设计通信接口,在前端使用Vue.js框架及Element UI实现可视化界面,前后端通过Axios框架进行通信。 [操作系统课程设计Vue前端] --- - [操作系统课程设计——处理机和进程调度算法及内存分配回收机制](#操作系统课程设计处理机和进程调度算法及内存分配回收机制) - [起步](#起步) - [1. clone前端仓库](#1-clone前端仓库) - [2. 安装环境](#2-安装环境) - [3. 启动后端程序](#3-启动后端程序) - [4. 启动前端程序](#4-启动前端程序) - [5. 打开页面 http://localhost:8080/](#5-打开页面-httplocalhost8080) - [功能](#功能) - [结构](#结构) - [进程调度流程](#进程调度流程) - [1. 进程创建](#1-进程创建) - [2. 进程挂起](#2-进程挂起) - [3. 进程解挂](#3-进程解挂) - [4. 进程运行](#4-进程运行) - [5. 进程结束](#5-进程结束) - [内存调度算法——内存空间首次适应分配](#内存调度算法内存空间首次适应分配) - [1. 检查是否可分配内存空间](#1-检查是否可分配内存空间) - [2. 分配内存空间](#2-分配内存空间) - [3. 从主存空间中移除进程](#3-从主存空间中移除进程) - [4. 合并未分配内存空间](#4-合并未分配内存空间) - [5. 检查是否有可运行进程](#5-检查是否有可运行进程) - [处理机调度算法](#处理机调度算法) - [1. 处理进程运行](#1-处理进程运行) - [2. 从处理机中移除进程](#2-从处理机中移除进程) - [3. 为进程分配处理机](#3-为进程分配处理机) - [类设计](#类设计) - [1. PCB类](#1-pcb类) - [2. PCBQueue类](#2-pcbqueue类) - [3. BackupQueue类](#3-backupqueue类) - [4. HangingQueue类](#4-hangingqueue类) - [5. MainMemory类](#5-mainmemory类) - [6. Processor类](#6-processor类) ## 起步 ### 1. csdn下载源码(包含前端vue) ### 2. 安装环境 ```bash pip install flask pip install flask_cors ``` ### 3. 启动后端程序 ```bash cd <PREFIX_PATH>/OS_experiment python app.py ``` ### 4. 启动前端程序 ```bash cd <PREFIX_PATH>/os_experiment_vue npm install npm run serve ``` 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值