希望能坚持。
操作系统的三个目标:
它提供了下面的服务:
三种重要接口是 ISA, ABI, API.
由于计算机可以看作是一组资源, 因此操作系统可以看作是资源管理器, 控制计算机的基本功能, 但是是一种不同寻常的控制:
因此 OS 需要完成的资源管理包括:
内存的分配管理
I/O的访问控制
对文件的访问控制和使用
对处理器的分配
操作系统通过接口向用户提供服务.
操作系统因下面的特性而不断发展:
监控程序的功能:
作业的自动续接
两种运行模式:
1: 为什么要有两种运行模式(user mode 和 kernel mode)?
答: 为了安全性(保护操作系统重要的数据结构, 防止在用户模式下访问到关键的内存执行到关键的指令, 而对操作系统造成破坏)/错误隔离/性能优化.
2: 如何知道当前是哪种模式?
答: 通过特殊的处理器状态标志(存在寄存器中)以及硬件机制来判断. 类似的有状态字寄存器PSW.
batch processing 指的是一批作业要能自动处理完成, 也就是完成一个作业之后要能够自动续接.
简单批处理系统通过串行处理, 是 读-执行指令-写 的串行序列(处理器必须等待I/O完成后才能继续处理), 实际利用的时间只有执行指令的时间, 其他时间都在等I/O, 而执行指令的速度非常快, 导致系统利用率非常低.
多道批处理(batch processing)系统就是并发处理, 处理器在空闲时间去执行其他指令. 这其中比较重要的硬件是I/O中断和DMA. 除此之外, 由于需要并行处理, 因此需要将待执行的若干作业存储起来, 需要内存管理, 也需要设计合适的调度算法(作业调度程序负责).
1: 并发和并行的区别:
- 并发指的是在一段时间内可以同时执行若干作业.
- 并行指的是某一时刻可以同时执行.
并行可以看作是并发的子集.
2: 为什么在多道批处理中需要有中断和DMA的支持?
- 中断: 当I/O完成后操作系统会正在进行I/O操作的进程发出I/O中断, 处理器被中断, 操作系统接管对处理器的控制权.
- DMA: 由于作业存在存储器中, 因此需要频繁地直接访问存储器, 而DMA可以允许外设直接访问系统内存, 不需要CPU接入, 可以大大提高数据传输的效率.
计组没学好是这样的😭
分时系统:
分时与多道的联系是什么? 分时是在多道的基础上设计的, 都是为了提高处理器利用率.
1: 什么是进程?
可以看到进程是一个动态的概念.
什么是线程?
答: 线程是计算机程序中的一种执行单元,它是进程的一部分。一个进程可以包含多个线程,每个线程独立执行特定的任务。与进程不同的是,线程共享相同的内存空间,可以直接访问进程的资源和数据。
什么叫做表征? 什么叫做活动单元?
答: 表征就是表示的意思.
2: 为什么要有进程? (实际上是类似于数据库中事务的特性) 可能会存在下面的问题:
3: 进程的组成.
线程是什么?
什么是进程挂起?
操作系统使用
来实现下面的功能:
分页机制用来解决因进程大小不一致难以将进程紧密地压入内存的问题, 同时:
提供了虚地址和物理地址之间的动态映射
进程由若干固定大小的页组成
程序通过虚地址访存字, 虚地址由页号和页中的偏移量(类似在词典查阅单词的方式)组成
四类典型安全问题:
任何资源分配和调度策略都必须考虑三个因素:
线程是什么? 线程和进程的区别是什么?
优点:
容错性指系统或部件发生软硬件错误时, 能够继续正常运行的能力. 操作系统采用下面的技术提高容错性:
什么八股文, 不想写了.
进程都有什么状态? 进程的这些状态是如何互相转换的? 产生这些转换的原因是什么? 操作系统管理控制进程都需要哪些信息?
进程的两个基本元素: 程序代码与和代码相关的一组数据, 除此之外还有进程控制块(PCB), 进程控制块:
进程执行的任意时刻, 都可以 用 标识符, 状态, 优先级, 程序计数器, 内存指针, 上下文数据, I/O状态信息, 记账信息(处理器时间总和, 使用的时钟数总和, 时间限制, 记帐号等) 这些元素来表征, 这些元素存在 PCB 中.
可以说 PCB 集合定义了操作系统的状态。
进程的基本特征:
异步是什么意思?
进程和程序的区别是什么?
答: 进程=进程控制块+程序+相关数据. 进程动态而程序静态, 注意进程和程序之间不存在一一对应关系(一个应用程序可以对应多个进程的执行, 在 Windows 的任务管理器中可以看到例子).
如何描述进程? 列出进程执行的指令序列, 可以描述单个进程的行为, 这样的指令序列被称为进程轨迹(trace).
定义进程的轨迹后, 可以用多个进程执行的轨迹来描述处理器的行为, 分派器可以将处理器从一个进程切换到另一个进程.
进程有运行态和非运行态.
进程的创建和终止
将非运行态分为两个状态: 就绪态(ready)和阻塞态(blocked), 一共是五个状态:
这部分关注的信息是, 操作系统要控制并管理资源, 需要哪些信息? 用什么结构来控制和管理? 如果这个资源是进程, 信息具体是什么呢? 管理进程的具体结构是什么?
进程的物理存在是: 进程的位置和进程的属性, 操作系统通过这两点管理和控制进程.
PCB, Data, Stack, Code 的集合称为进程映像(process image).
PCB 控制的元素包括:
进程标识信息, 典型的是标识符(ID), 包括
用来对进程索引, 在做某些事的时候指明和区分每个进程.
处理器状态信息, 主要是一些寄存器, 包括:
进程控制信息: 操作系统控制和协调各种活动进程所需的额外信息.
这部分探讨的问题是, 操作系统是如何具体管理和控制进程的? 这包括进程的创建和切换, 是如何创建的? 因为什么发生了进程切换? 以及:
- 进程创建时操作系统和进程会出现哪些变化?
- 进程切换时操作系统和进程会出现哪些变化?
使用两种模式的原因是保护操作系统和重要的操作系统表(如PCB)不受用户程序的干扰.
模式切换的原因是系统调用或者中断:
中断出现
模式切换不一定导致进程切换, 比如 I/O 中断来了之后, 处理完 I/O
中断还会继续处理原进程. 还有 getpid()
.
如果当前的进程状态变化(就绪或阻塞), 则回进程切换.
进程切换的步骤:
1. 保存处理器上下文环境, 保存到PCB中.
2. 更新当前处于运行状态的PCB.
3. 将进程的PCB已知相应队列
4. 选择另一个进程执行
5. 更新PCB的信息(原来的进程信息改成切换成的新的进程的信息)
6. 更新内存管理数据结构
7. 恢复被选择进程的上下文环境
用文字描述上图的状态转换.
fork()
一个进程使用系统调用 fork
来创建一个新的进程,
新的进程称为子进程, 其内存内容与调用它的进程(称为父进程)相同.
在父进程中, fork
返回子进程的PID, 在子进程中,
fork
返回零. 子进程会复制父进程的 image,
拥有一份独立的 copy.
调用 fork()
之后, 从 fork
所在的语句开始,
下面的所有语句将同时在父子进程中执行.
1 |
|
上面这段代码中, 即使 global
是全局变量, 但是子进程中对
global
的改变不会影响父进程中 global
的值.
由于进程的两个特点(资源所有权, 调度/执行)是相互独立的, 为了区分这两个特点:
多线程是指在操作系统在单个进程内支持多个并发执行路径的能力.
1: 线程与特征极为相似, 线程所具有的特征为:
2: 进程中所有的线程共享该进程的状态和资源.
3: 线程的优点是各方面的速度更快, 包括
4: 在支持线程的操作系统中, 调度和分派是在线程基础上完成: 挂起/终止进程会挂起/终止进程内所有的线程(因为所有线程共用一个地址空间).
5: 类似于进程, 线程的主要状态为 运行/就绪/阻塞, 与线程状态相关的基本操作为 派生/阻塞/解除阻塞/结束(这些都是动词, 宾语为线程):
6: 线程同步指的是, 一个进程内的线程:
1: 用户级线程 (ULT) 优点:
缺点:
2: 内核级线程 (KLT) 中, 应用程序没有线程管理的工作.
优点:
缺点: 将控制权从一个线程切换到另一个线程时, 需要切换到内核模式.
可以用混合方法.
1: 调度就是把进程分配到处理器上执行的方式, 一个好的调度算法要满足响应时间快, 吞吐量大, 处理器效率高.
2: 调度的类型包括长程调度, 中程调度, 短程调度, 它们在计算机中有对应的程序, 这些程序的作用分别是:
可以看出短程调度执行得最为频繁, 当导致当前进程阻塞或被抢占的事件发生时就需要调用短程调度程序.
3: 与调度规则相关的概念:
在周转时间的基础上, 可以定义带权周转时间
在所有系统中, 面向用户的规则都非常重要, 而在单用户系统中, 面向系统的重要性就要低一些.
4: 调度的决策模式包括
5: 调度的选择函数: 可以理解为进程的优先级的计算方式. 设
进程的饥饿指的是进程长时间得不到执行或者是执行速度非常缓慢导致长时间无法执行完毕.
SRT 的到达时抢占是指在任意时刻处于运行状态的都是剩余时间最短的进程,如果进程 A 运行的过程中某个时刻进程 B 的剩余时间成为最短的,那么 B 就会抢占 A.
调度规则, 调度的决策模式, 调度算法, 实时系统和实时调度
需要学会画 round-robin 的调度图, 搞清楚进程在队列之间的切换就好.
各种调度的特点:
1: 实时任务分类
2: 实时操作系统特点
3: 实时调度:
4: 实时调度的调度方法
并发指的是系统在同一段时间内可以执行多个作业, 定义比并行要弱一些.
在单处理器多道程序系统中, 虽然在任意时刻只能有一个进程占用处理器, 但是由于时间片机制的存在, 在一段时间内, 从外部看来好像是多个进程一起执行, 因此可以认为单处理器多道程序系统中也存在并发.
并发的原理部分主要介绍单处理器多道程序系统是如何在交替执行进程的同时保证不发生错误, 这些错误可能包括:
- 死锁
- 饥饿
- 忙等
- 同时访问或修改共享资源
这一部分很像数据库中事务的执行, 要保证事务的ACID特性, 进程同样有类似的特性.
原子性, 一致性(), 隔离性(互斥), 持久性.
1: 如果需要保护共享的全局变量, 唯一的方法是控制访问该变量的代码.
2: 进程间的关系包括:
进程之间的感知程度都有哪些? 对应的进程关系是什么? 在该关系下, 可能会存在哪些问题?
互斥的要求(即访问临界区的原则):
爱斯基摩人的小屋只能容纳一人, 当小屋有人时, 在门口竖旗表示有人. (用厕所好像也能举例子).
Dekker 算法和 Peterson 算法.
硬件方法:
中断禁用不能用在多处理器中, 而且代价比较高, 会导致程序效率大幅度下降.
1: 信号量值的含义:
信号量小于零时, 它的绝对值表示被阻塞的进程个数.
描述:
生产者需要的资源为缓冲区剩余空间个数, 消费者需要的资源为缓冲区的数据个数.
保证:
注意:
当缓冲区的空间数不小于 2 时, 除了使用缓冲区的互斥信号量外, 还需要两个资源信号量(空间资源信号量和数据资源信号量).
当缓冲区的空间数仅为 1 时, 只用一个缓冲区的互斥信号量是不够的, 因为这样可能会发生死锁
1: 死锁是一组相互竞争系统资源或进行通信的进程间的永久阻塞.
2: 一种引发死锁的原因是资源的竞争, 首先对资源分类:
可重用资源. 一次仅供一个进程安全使用且不因使用而耗尽的资源.
比如处理器, 内存和外存, I/O通道等.
可消耗资源. 可被创建(生产)和销毁(消耗)的资源, 且消费进程得到可消耗资源后, 该资源就不再存在.
如中断, 信号, 消息, 以及I/O缓冲区中的信息.
对于进行通信的进程, 当双方都等对方先发消息而不主动发消息, 就会导致沉默, 是一种死锁.
3: 死锁的必要条件:
充分条件:
4: 通过资源分配图可以判断是否存在死锁, 称为资源分配图的化简. 对于一个资源分配图, 找到全部请求都能满足的进程, 删去该进程的分配边和请求边(进程的request和资源的held by), 重复执行, 只扫不能化简. 若存在非孤立点, 则存在死锁.
通过防止充分条件或必要条件的发生来阻止死锁的发生.
必要条件的互斥不能禁止, 禁止互斥可能会引发错误(如同时写).
死锁预防 | 死锁避免 | 死锁检测 | |
---|---|---|---|
防止占有且等待: 要求进程一次性地申请所有需要的资源, 当要求无法满足时, 就阻塞该进程, 知道能申请到所有需要的资源.
防止不可抢占. 若一个占有某些资源的进程在申请其他资源的时候被拒绝, 则
防止循环等待. 给资源定义优先级, 即定义一个请求资源的顺序.
允许三个必要条件, 并动态地进行检查是否会导致死锁. 需要预知资源的请求.
定义
死锁检测算法.
定义
检测到死锁后, 有下面的解决方法:
优先对哪些死锁的进程执行上述方案?
- 消耗处理器时间少
- 输出少
- 分配资源少
- 剩余执行时间长
- 优先级最低
等等.
程序存储在外存或 cache 中, 内存管理的主要操作是处理器把程序装入到内存中执行, 因此不同程序(进程)在内存中的组织和分配方式是首先要考虑的, 最朴素的方法是将内存划分为若干区域, 每次给要装入到内存的程序分配一整块, 根据块的特点有:
固定分区: 将内存划分为大小固定的块 (因此数量确定), 这些块大小相等或大小不等.
动态分区:
外部碎片: 在分区外的存储空间变成了越来越多的碎片.
放置算法: 对于要装入内存的程序
性能:
Buddy System. 一种二分的策略. 整个内存大小为
基本分页方式中, 页框大小等于页号
这类似于字典, 每一页白纸可以看作是页框, 某个单词的实际页数+行数可以视作其物理地址. 以
开头的单词是中间的若干页, 某个以 为开头单词的逻辑地址为该单词相对于第一页以 为开头的单词的页数+行数. 比如逻辑地址为 的单词, 页表中有 , 那么物理地址为 .
设内存为
掌握:
UNIX 文件类型
索引节点 Inode 的结构
混合索引方式相关计算
UNIX 路径解析
FreeBSD 系统最小的块大小为 4KB 时, 块地址项长度为 8B,
则每一块可以存放
每个块可存
个地址项, 则
给定字节偏移量
求物理地址, 设块的大小为 .
- 首先计算其所在逻辑块号为
, 以及块内偏移量为 . - 根据
的大小判断该逻辑块为直接块/一级/二级/三级, 对 进行拆分. 对于 350000, 计算其所在的块数(逻辑块号)为
, 且 , , 且 , 则在二级间接块的第 0 个一次间接块的第 75 个表项中, 其中的盘块号为 333, 则物理地址为盘块号 333 中的第 816 字节.
1.归纳整理操作系统的基本功能。
作为资源管理器, 包括内存的分配管理, I/O的访问控制, 对文件的访问控制, 对处理器的分配.
2.论述批处理、分时和实时三种操作系统的基本特征。
批处理: 有监控程序, 对一批程序进行自动处理, 分为简单批处理和多道批处理
- 简单批处理: 处理器必须等待I/O指令完成才能继续处理, 处理器经常处于空闲状态
- 多道批处理: 多道性, 调度性, 无序性, 无交互能力
分时: 多路性, 独立性, 及时性, 交互性
实时: 可确定性, 可响应性, 用户控制, 可靠性, 故障弱化能力
3.为什么会有进程?分析理解进程的概念、上下文的含义。
进程存在的原因是, 系统中在同一时间会有许多作业在运行, 为了防止不正确的同步/失败的互斥/不正确的程序操作/死锁等情况的发生, 需要设计系统级的机制来监控各个作业的运行.
4.论述现代操作系统的特征。
5.解释单体内核和微内核的区别。
6.进程调度程序、时钟中断处理程序和命令解释程序在哪种模式下执行?
进程调度程序和时钟中断程序: 内核模式
命令解释程序: 用户模式 (比如shell中的命令)
7.分析系统调用时的模式切换过程?
需要注意题目前的论述二字, 一定要详细说明.
1.论述程序、进程、线程的区别与联系
2.论述进程控制块(PCB)的作用、存储内容
3.论述进程的基本特征。
4.以图为例,分析五状态进程模型
5.为什么引入挂起状态,其与阻塞状态的本质区别是什么?
6.论述进程切换与模式切换的区别。什么情况下会发生进程切换,什么情况下会发生模式切换。
7.什么是中断?中断的处理过程如何?
8.什么是系统调用?
9.比较不同类型线程的优缺点。
10.说明fork()函数的作用,并举例说明。
可能会考的其他问题:
进程的轨迹是什么? 如何描述处理器的行为?分派器的作用是什么?
进程可以由什么内容来表征?这些内容存在PCB的哪一部分?
进程实体/进程映像是什么?包含哪些典型元素?
进程都有哪些状态?每个状态代表着什么含义?这些状态是如何相互转换的(或者说什么事件会触发这些状态之间的转换)?
操作系统可能因为哪些原因创建进程?操作系统创建进程的具体过程的步骤是什么?创建进程时若资源不足会发生什么?
进程可能因为哪些原因或事件而终止?操作系统终止进程的过程是什么?
进程在什么条件下会被阻塞?进程的阻塞和唤醒的具体过程是什么?
分析进程的七状态模型。
进程可能因为哪些原因被挂起?挂起的进程有哪些特点?挂起进程所需的代理的作用是什么?
操作系统的控制结构的作用是什么?操作系统都有哪些控制结构?
操作系统在管理和控制进程时必须知道进程的位置和进程的属性,这被称为进程的物理存在,进程的物理存在具体包含哪些内容?
为什么要使用用户模式和控制模式两种模式?
保护操作系统和重要的操作系统表(比如PCB)不受用户程序的干扰。
叙述进程切换的步骤。
为什么要引入线程?叙述线程的优点。
叙述用户级线程、内核级线程以及混合方法的内容。
1.周转时间和响应时间有什么区别?
2.高响应比优先调度算法的主要优点是什么?
3.为什么说多级反馈队列调度算法能较好地各种用户需求?
4.进程A、B、C、D和E到达时间、服务时间如下表所示,试计算分别采用FCFS、RR(q=1)、RR(
进程 | 到达时间 | 服务时间 |
---|---|---|
A | 0 | 3 |
B | 2 | 6 |
C | 4 | 4 |
D | 6 | 5 |
E | 8 | 2 |
信号量部分伪代码规范:
- 信号量用
semaphore
声明, 读者写者问题中的conut
就用int
声明即可.- 所有进程的函数返回值类型都为
void
.- 记得加分号.
- 主函数按照下面的写法:
1
2
3 void main(){
parbegin(p1,p2,p3); // 所有同时执行的进程
}
1: 什么是临界资源、临界区,临界区的使用原则有哪些?
2: 简述信号量的含义及作用。
3: 请用P、V操作描述下列过程
4: 图书馆有N个座位,一张登记表,要求(1)阅读者进入时登记,取得座位号;(2)出来时注销。请用P、V操作描述一个读者的使用过程。
5: 4个并发执行的进程P1、P2、P3和P4合作解决数据计算问题:
(1)P1不断产生随机数并放入的缓冲区A中;
(2)P2、P3分别读取缓冲区A中的数据并计算其平方值、立方值,然后分别放入缓冲区B、C中;
(3)P4读取缓冲区B、C中的数据,将其相加,并输出;
(4)缓冲区A、B、C的容量为1。
用P,V操作实现其同步过程。
下面的代码是错误的, 因为要求 P2, P3 取的是同一个数, 而下面 P2 和 P3 取的不是同一个数:
Wrong Answer pA
,
pB
, pC
分别表示生产者对三个缓冲区使用(存数)的信号量, cA
,
cB
, cC
分别表示消费者对三个缓冲区使用(取数)的信号量. 伪代码如下:
1 | pA=1 |
Correct Answer
P1 需要等 P2 和 P3 都取数后才能再生产数, 注意没有要求 P2, P3 对 A 互斥访问.
1 | gotA_2 = 1; // 表示P2是否从A中取过数 |
注意 P4 不要写成
1 | P(full_B); |
这样效率会低, 无需同时取数再算和, 分别取即可.
6: 桌上有一空盘,最多允许存放一只水果。爸爸可向盘中放一个苹果或放一个桔子;儿子专等吃盘中的桔子,女儿专等吃苹果。用P、V操作实现爸爸、儿子、女儿三个并发进程的同步。
7: 用P、V原语实现过独木桥问题,独木桥最大承重为N人。
8: 某寺庙,有小、老和尚若干,有一水缸,由小和尚提入水缸供老和尚饮用。水缸可容10桶水,水取自同一井中。水井径窄,每次只能容一个水桶取水,水桶总数为3个。每次入、取缸水仅为1桶,且不可同时进行。试给出有关老和尚从缸取水和小和尚打水、入水的算法描述。
9: 有3个进程P1、P2、P3,P1负责生产螺杆,并放入工作台A中;P2负责生产螺母,并放入工作台B中;P3负责从工作台A中取出1个螺杆、从工作台B中取出2个螺母,并组装后输出。工作台A、B的容量分别为10和20,不允许多个进程同时使用同一工作台,且每次操作只能放入或取出一个元件(螺杆或螺母)。请基于信号量机制实现P1、P2、P3间的互斥和同步活动,要求用伪代码描述。
10: 3位参赛者(performer)参与脱口秀表演,现场有5个评委(judge),每次只能一个人表演,每当表演结束,各个评委开始评判,将分数输入系统,每次仅允许一个评委输入,仅当5个评委都完成打分,下一次表演才能开始。请用信号量机制实现以上角色的互斥和同步活动,并给出相关信号量的定义和主程序main(),要求用伪代码描述。
Solution 注意先确定进程的数目, 生产者为 3, 消费者为 5, 则
1 | semaphore empty[5]={1,1,1,1,1}; // 评委打过分(即消费者是否消费过生产者产生的资源) |
生产者/消费者问题例三例四.
读者和写者问题示例3.
11: 元宵节爸爸组织兄妹两人猜灯谜,爸爸每出一个谜面,兄妹俩猜答,每人只答一次,出于礼貌,兄妹俩不能同时回答,当两人都回答以后,爸爸公布灯谜答案,然后始出下一个谜面,重复.上述猜谜活动。请用信号量方式,实现爸爸和子女之间的互斥同步流程,注意给出相关信号量定义和注释,要求用伪代码描述。
1 | guess_son=0 // 儿子能否猜谜 |
生产者和消费者的动作也要详细写捏, 否则会扣分的捏.
1.分别举例说明什么是可重用资源和可消耗资源?
2.请论述产生死锁的充分必要条件。
3.如何防止占有且等待条件?
4.如何防止防止循环等待条件?
5.死锁避免、检测和预防之间的区别是什么?
6.什么是安全序列、安全状态?
7.根据伪代码,画出资源分配算法流程图,包括其中银行家算法流程。
8.请简要论述死锁检测流程。
最大资源需求 | 已分配资源数量 | |||||
---|---|---|---|---|---|---|
P1 P2 P3 P4 P5 | 5 5 4 4 4 | 5 3 0 0 2 | 9 6 11 5 4 | 2 4 4 2 3 | 1 0 0 0 1 | 2 2 5 4 4 |
系统采用银行家算法实施死锁避免策略,试根据问题7的流程分析如下问题:
① T0时刻是否为安全状态?若是,请给出安全序列。
② T0时刻若进程P2请求资源(0,3,4),是否能实施资源分配?为什么?
③ T0时刻若进程P4请求资源(2,0,1),是否能实施资源分配?为什么?
简述存储管理的基本功能?
2.什么是重定位,为什么需要重定位?
3.逻辑地址和物理地址之间有什么区别?
4.页和页框之间有什么区别?
5.页和段之间有什么区别?
6.系统使用简单分页,内存大小为
a. 逻辑地址有多少位?
b. 一个页框有多少字节
c. 物理地址中的多少位是页框号?
d. 页表中有多少个表项?
分页系统,页面大小为 256 字节,页表中页框号是页号的四分之一
分段系统,分段的大小为1K,段表中该段的基址 = 22 + 4096 * 段号
在一个简单的分段系统中,包括如下段表:
段号 | 起始地址 | 长度(字节) |
---|---|---|
0 | 660 | 248 |
1 | 1752 | 422 |
2 | 222 | 198 |
3 | 996 | 604 |
对如下的每一个逻辑地址,确定其对应的物理地址或者说明段错误是否发生:
a.0, 198 b.2, 156 c.1, 530 d.3, 444 e. 0, 222
1.简单分页和虚拟分页有何区别?
2.什么是抖动?怎么解决
3.为何在使用虚拟内存时,局部性原理至关重要?
4.在虚拟分页存储管理中,页表项有哪些典型元素?
5.驻留集和工作集有何区别?
6.假设页面大小为4KB,页表项大小为4B。要映射64位的地址空间,如果顶级页表能在一页中存储,需要多少级页表 ?
7.完成PPT中3.6.2二级页表示例3,请采用十进制方式,并与
参考答案比较,自判(此题不提交)。
7.考虑如下的页面访问序列:7,0,1,2,0,3,0,4,2,3,0,3,2
假设系统为该进程分配了3个页框,并采用局部置换策略。请分别采用先进先出算法、最近最少使用算法、时钟算法和最佳置换算法,画出类似图8.14的图形,并计算每种算法的缺页中断次数和缺页率?只计算页框初始填满后发生的缺页中断,访问总次数从初始页框填满后开始计算。
8.某计算机采用32位段页式虚拟存储器,按字节编址,每个段最多可以有4K页,页大小为8KB,物理主存容量为1024MB。请回答以下问题: (1) 给出逻辑地址结构并说明理由。 (2) 计算逻辑地址0X4EB9FDE3的段号,段内页号及页内偏移值(最后计算结果须用十六进制表示)。
9: 32位系统页式管理,多级页表。页面1KB,页表项4字节。某进程的页表内容如下页图所示,最外层页表基址为106496。计算逻辑地址201852553的物理地址。
有哪几种基本I/O控制方式,分别适用于哪些场合?
试说明DMA的工作流程。
引入缓冲的主要原因是什么?
逻辑I/O和设备I/O有什么区别?如何实现设备的独立性?
何谓虚拟设备?
试说明SPOOLing系统的组成。
面向块和面向流的设备有何区别,举一些例子
磁盘读或写时有哪些延迟因素?
一个磁盘的参数如下:每个扇区512字节,每道96个扇区,每面110道,共8个面可用,计算存储300000条120字节长的逻辑记录需要多少磁盘空间(扇区、磁道和盘面),忽略文件头记录和磁道索引,并假设记录不能跨越两个扇区。
考虑第9题中的磁盘系统,假设磁盘转速是360rpm,处理器处理一次I/O中断的时间是2.5µs。
(1)处理器采用中断驱动I/O方式从磁盘读一个扇区,每个字节中断一次,则处理器用于处理I/O中断的时间占数据传输时间的百分比是多少?
(2)如果采用DMA方式从磁盘读数据,假设每个扇区中断一次,则处理器用于处理I/O中断的时间占数据传输时间的百分比是多少?
设计和实现一个基本的用户级线程库, 完成包括线程的创建, 撤销, 调度等基本功能, 对外提供接口, 同时设计测试用例, 对相关功能加以验证.
一、简答题
PCB主要存储内容是什么?为什么说PCB是操作系统感知进程存在的唯一依据?(20分)
什么是死锁,死锁的预防与死锁的避免有什么区别。(20分)
二、 分析题
1 | Next at t=5245917341 |