操作系统考试重点

声明:作者根据SCNU期末考试划重点制作而成,希望对有缘人有一丝丝帮助。 

题型

选择 10个 单选20分

填空 10个 20分

简答 4个 32分

应用题 3个 28分

操作系统的作用

可以从不同的观点来观察操作系统的作用。

(1)作为用户与计算机硬件系统之间的接口(从一般用户的观点)

(2)作为计算机系统资源的管理者(从资源管理观点)

(3)用做扩充机器

处理器管理
进程

定义:可并发执行的程序在一个数据集上的一次执行过程,它是系统进行资源分配的基本单位。

基本状态

就绪态、执行态、等待态

2.4进程的调度算法

(1)先来先服务调度算法

(2)优先数调度算法

(3)时间片轮转调度算法

(4)多级反馈队列调度算法

2.5线程

定义:线程是进程中的一个实体,是可独立参与调度的基本单位。一个进程可以有一个或多个线程,它们共享所属进程所拥有的资源。

特征:

(1)拥有资源方面

不管是在以进程为基本单位的操作系统,还是在引入线程的操作系统中,进程都是独立拥有资源的一个基本单位。它可以申请并拥有自己的资源,也可以访问其所属进程的资源。而线程只拥有一些在运行中必要的资源,如程序计数器、寄存器和栈。当然,它也可以访问其所属进程的资源(注意:资源仍然是分给进程的)。

(2) 调度方面

在引入线程的操作系统中,进程是作为独立拥有资源的基本单位,而线程是独立参与调度的基本单位。这样,引入线程的操作系统中存在着两级调度: 同一个进程内线程之间的调度、不同进程之间的调度 (由分属于不同进程的线程之间的调度引起)。同一个进程内的线程切换不会引起进程切换;而在由一个进程内的线程切换到另一个进程内的线程时,将引起进程切换。

(3) 并发性方面

在引人线程的操作系统中,不仅不同进程的线程之间可以并发执行,而且在同一个进程的多个线程间亦可并发执行,因而使系统具有更好的并发性。

(4)系统开销方面

相比于没有引人线程的操作系统,引人线程的系统其开销将显著降低。例如,在创建或撤销线程时,系统只需分配与回收很少的资源,而无须像进程创建或撤销那样花费开销来分配或回收如内存空间、I/0设备等资源。又如,在线程切换时,只需保存和设置少量的寄存器的内容,而无须像进程切换那样花费开销来保存和设置很多的现场信息。另外,同一个进程内线程之间的通信由于共享所属进程的存储空间,因此也比进程通信更加容易。

进程的互斥同步

2.7.3生产者消费者

死锁的必要条件

(1)互斥条件:资源互斥。

(2)占有且等待条件:一个进程请求资源得不到满足而等待时,不释放已占有的资源。

(3)不剥夺条件:已占有的资源只能由自己释放。

(4)循环等待条件:每一个进程要的资源都被其他进程占有。

死锁检测解除不考

第二章课后作业

25.若信号量S表示一种资源,则对S作PV操作的直观含义是什么?

在操作系统中,对信号量 S 进行 PV 操作(也称为 P 操作和 V 操作)具有以下直观含义:

P 操作(Proberen,也称为 Wait 操作):当一个进程需要使用资源时,它会执行 P 操作来请求该资源。如果资源可用,进程将获得该资源并继续执行后续操作。如果资源不可用,进程将被阻塞,等待资源的释放。 V 操作(Verhogen,也称为 Signal 操作):当一个进程使用完资源后,它会执行 V 操作来释放该资源,使其他等待该资源的进程可以获取到。V 操作会递增资源的计数器,并唤醒一个或多个等待资源的进程。

通过直观理解 PV 操作,我们可以将信号量 S 视为表示可用资源的计数器。当进程执行 P 操作时,它试图将计数器减少(占用一个资源),如果计数器为正,则成功获取资源;如果计数器为零,则进程必须等待。当进程执行 V 操作时,它释放了一个资源,将计数器递增,这样等待资源的进程就可以获取到该资源。 以一个实际的例子来说明,假设有三个进程 A、B、C 需要访问某个共享资源,而该资源的信号量 S 的初始计数器为 3:

进程 A 执行 P(S),计数器减一,变为 2。A 成功获取到资源。 进程 B 执行 P(S),计数器减一,变为 1。B 也成功获取到资源。 进程 C 执行 P(S),计数器减一,变为 0。C 等待该资源,由于计数器为零,C 被阻塞。 进程 A 执行 V(S),计数器加一,变为 1。A 释放资源,并唤醒一个等待资源的进程(即进程 C)。 进程 C 执行 P(S),计数器减一,变为 0。C 成功获取到资源。

通过 PV 操作,信号量 S 能够控制对资源的访问,并实现了进程间对资源的互斥访问和同步。P 操作保证了资源的合理分配,而 V 操作则使等待资源的进程能够及时被唤醒。这种机制可以帮助避免竞争条件和死锁等问题,确保系统的正确执行。

26.在信号量S上作PV操作时S的值发生变化,当S > 0,S = 0,S < 0时,它们的物理意义是什么?

当对信号量S进行PV操作时,S的值的物理意义如下:

当S > 0:

P操作:S的值减少1,表示资源的可用数量减少了一个。如果S仍大于0,表示还有可用资源,进程可以继续执行。 V操作:S的值增加1,表示释放了一个资源。这会唤醒一个或多个正在等待这个资源的进程,使它们可以继续执行。

当S = 0:

P操作:S的值减少1,表示资源的可用数量减少了一个。如果S变为0,意味着当前没有可用资源,进程需要等待,可能会被阻塞。 V操作:S的值增加1,表示释放了一个资源。如果有进程正在等待这个资源,它会被唤醒并获得该资源。

当S < 0:

P操作:S的值不能再减少,进程会被阻塞,无法继续执行。这种情况通常用于同步操作,确保资源的互斥访问。 V操作:S的值增加1,唤醒一个等待的进程。如果有多个进程在等待,只有一个进程会被唤醒。

总结起来,信号量S的值表示可用资源的数量或者资源的互斥访问状态。PV操作用于控制进程对资源的访问,保证资源的正确分配和同步操作。

27.有三个并发进程,R负责从输入设备读入信息并传送给 M,M 将信息加工后并传送给P,P再把加工后的信息打印输出。现有:

(1)一个缓冲区;

(2)两个缓冲区; 用 PV 操作写出这三个进程正确工作的程序。

//(1)
# 定义信号量
empty = 1  # 缓冲区为空的信号量
full = 0   # 缓冲区为满的信号量
mutex = 1  # 互斥信号量,用于对缓冲区的互斥访问

# 定义缓冲区和共享数据
buffer = None  # 缓冲区
data = None    # 共享数据

def R():
    global data, buffer
    data = 读取输入设备的信息()
    P(empty)   # 申请缓冲区空位
    P(mutex)   # 申请对缓冲区的访问权限
    buffer = data  # 将数据存入缓冲区
    V(mutex)   # 释放缓冲区访问权限
    V(full)    # 表示缓冲区已满

def M():
    global data, buffer
    P(full)    # 等待缓冲区非空
    P(mutex)   # 申请对缓冲区的访问权限
    data = buffer  # 从缓冲区中取出数据
    V(mutex)   # 释放缓冲区访问权限
    V(empty)   # 增加一个空位
    data = 加工数据(data)
    P(empty)   # 申请缓冲区空位
    P(mutex)   # 申请对缓冲区的访问权限
    buffer = data  # 将加工后的数据存入缓冲区
    V(mutex)   # 释放缓冲区访问权限
    V(full)    # 表示缓冲区已满

def P():
    global data, buffer
    P(full)    # 等待缓冲区非空
    P(mutex)   # 申请对缓冲区的访问权限
    data = buffer  # 从缓冲区中取出数据
    V(mutex)   # 释放缓冲区访问权限
    V(empty)   # 增加一个空位
    打印输出数据(data)

# 主程序
初始化信号量()
创建进程(R)
创建进程(M)
创建进程(P)
等待进程结束()

//(2)
# 定义信号量
empty1 = 1  # 缓冲区1为空的信号量
full1 = 0   # 缓冲区1为满的信号量
mutex1 = 1  # 互斥信号量,用于对缓冲区1的互斥访问
empty2 = 1  # 缓冲区2为空的信号量
full2 = 0   # 缓冲区2为满的信号量
mutex2 = 1  # 互斥信号量,用于对缓冲区2的互斥访问

# 定义缓冲区和共享数据
buffer1 = None  # 缓冲区1
buffer2 = None  # 缓冲区2
data = None     # 共享数据

def R():
    global data, buffer1
    data = 读取输入设备的信息()
    P(empty1)   # 申请缓冲区1空位
    P(mutex1)   # 申请对缓冲区1的访问权限
    buffer1 = data  # 将数据存入缓冲区1
    V(mutex1)   # 释放缓冲区1访问权限
    V(full1)    # 缓冲区1已满

def M():
    global data, buffer1, buffer2
    P(full1)    # 等待缓冲区1非空
    P(mutex1)   # 申请对缓冲区1的访问权限
    data = buffer1  # 从缓冲区1中取出数据
    V(mutex1)   # 释放缓冲区1访问权限
    V(empty1)   # 增加一个空位
    data = 加工数据(data)
    P(empty2)   # 申请缓冲区2空位
    P(mutex2)   # 申请对缓冲区2的访问权限
    buffer2 = data  # 将加工后的数据存入缓冲区2
    V(mutex2)   # 释放缓冲区2访问权限
    V(full2)    # 缓冲区2已满

def P():
    global buffer2
    P(full2)    # 等待缓冲区2非空
    P(mutex2)   # 申请对缓冲区2的访问权限
    打印输出数据(buffer2)
    V(mutex2)   # 释放缓冲区2访问权限
    V(empty2)   # 增加一个空位

# 主程序
初始化信号量()
创建进程(R)
创建进程(M)
创建进程(P)
等待进程结束()

28.用PV 操作解决生产者和消费者问题。假设有一个可以存放一件产品的缓冲器;有 m 个生产者,每个生产者每次生产一件产品放入缓冲器中;有n个消费者,每个消费者每次从缓冲器中取出一件产品。

29.系统有输入机和行式打印机各一台,有两个进程都要使用它们,采用 PV 操作实现请求使用和归还释放后,还会产生死锁吗? 若否请说明理由; 若会产生死锁则给出一种防止死锁的方法。

在该场景下,如果两个进程同时请求使用输入机和行式打印机,并采用PV操作进行资源的请求和释放,是可能会导致死锁的。 死锁是指系统中的进程被永久地阻塞,因为它们都在等待其他进程所持有的资源释放。在这个特定的情况下,可能出现以下情况导致死锁的发生:

进程1请求使用输入机,进程2请求使用行式打印机。 进程1获取了输入机的使用权,但同时要求行式打印机的使用权。 进程2获取了行式打印机的使用权,但同时要求输入机的使用权。

在这种情况下,两个进程相互等待对方所持有的资源,形成了一个死锁状态,导致系统无法继续执行。 为了避免死锁,可以使用以下方法之一来进行死锁的预防或解除:

资源有序分配:引入资源的优先级,确保每个进程按照一定的顺序请求和释放资源,避免循环等待条件的发生。 资源预先分配:在系统启动时,为每个进程分配所需的全部资源,确保每个进程都能顺利执行完成,避免发生资源竞争和死锁。 资源抢占:当一个进程获得一个资源后,请求新的资源时被拒绝,同时释放已经获取的资源,从而防止死锁的发生。 死锁检测与恢复:通过周期性地检测系统是否处于死锁状态,并采取适当的措施进行恢复,例如终止某些进程,释放它们占用的资源,以解除死锁状态。

这些方法可以在设计系统时考虑,以保证资源的合理分配和避免死锁的发生。

第三章 作业管理
作业调度算法

(1)先来先服务算法

(2)短作业优先算法

(3)响应比最高者优先算法

(4)优先数调度算法

(5)分类调度算法

周转时间:

是指作业被提交进入输入井开始到作业执行完成的这段时间间隔。

带权周转时间:

作业的周转时间与作业的运行时间之比。

响应比:

响应比 =(作业等待时间 + 作业运行时间)/ 作业运行时间 = 作业响应时间 / 作业运行时间

3.4 用户的接口
存储管理的功能

(1)主存空间的分配和去配

(2)实现地址转换

(3)主存空间的共享和保护

(4)主存空间的扩充

第四章 页式,段式,段页式

4.4 132页存储地址两部分,页号,页内地址,分完地址大小要算,一页是2的n次方,重点是这个地方

4.7虚拟存储管理

虚拟存储器:虚拟存储器是指一种实际上并不存在的虚假存储器,它是系统为了满足应对存储器容量的巨大需求而构造的一个非常答的地址空间。它使用户再编程时无需担心存储器容量不足,感觉有一个无限大的存储器供其使用一样。

特点:离散性、多次性、对换性和虚拟性。

页面置换算法 P145

(1)最佳置换算法

(2)先进先出置换算法

(3)最近最少用置换算法

(4)时钟置换算法

(5)最近最不常用置换算法

P150页 缺页中断率的分析及影响因素

f=F/A(A:作业执行中访问页面的总次数 F:访问的页面尚未装入主存的次数)

☆150页到153页都是重点,要会应用,理解

第四章课后习题,12 13 25 26 28

12.在具有快表的段页式存储管理系统中如何实现地址变换?

在具有快表的段页式存储管理系统中,地址变换的实现需要经过以下步骤:

1.根据给定的逻辑地址,将其分解成段号和页号。通常,段号用于定位段表,页号用于定位页表。

2.检查快表(Translation Lookaside Buffer,TLB),它是一个高速缓存,存储了最近的一些页表项的内容。如果快表中存在对应的页表项,则表示页表项已经在TLB中缓存,可直接进行地址转换,跳到步骤6。

3.如果快表中未找到对应的页表项,需要通过段号找到相应的段表。使用段号在段表中进行查找,并获取相应的段表项。

4.检查段表项的有效位,以确定逻辑地址对应的段是否存在。若段不存在,产生段错误异常,进程终止。

5.如果段表项有效,通过页号从段表项中获取对应的页表的物理地址。

6.检查页表项的有效位,以确定页是否存在。若页不存在,产生页错误异常,并进行页面调度。

7.如果页表项有效,从页表项中获取物理页框号。

8.通过将页框号与页内偏移地址相结合,组成物理地址。

9.将物理地址返回给CPU,进行实际的数据读取或写入操作。

10.如果进行了页表项的访问和更新,将相应的页表项内容保存到TLB中,以便快速访问。

这样,通过以上步骤,段页式存储管理系统就能够实现地址变换,将逻辑地址转换为物理地址,并实现内存的读取和写入。快表的存在可以提高地址转换的速度,减少对内存的访问次数,提高系统性能。

答:1011->3059   2148->1124   3000->1976   4000->7072   5012->无  

答:t1 时刻的工作集为:{ 1 , 2 , 3 , 6 , 7 , 8 , 9 }。t2 时刻的工作集为:{ 3 , 4 }。

 这题的答案有些不确定,有大佬可以帮忙解答下嘛,万分感谢!!!

 

设备管理5.3
缓冲技术,有哪些缓冲,缓冲的必要性

原因:(1)缓和CPU与I/O设备间速度不匹配的矛盾

(2)减少对CPU的中断频率,放宽对CPU中断响应时间的限制

(3)提高CPU和I/O设备之间的并行性

主要职责:组织好缓冲区并提供获得和释放缓冲区的手段。

类型:单缓冲、双缓冲、多缓冲、缓冲池

必要性:计算机系统中各部件速度的差异时显而易见的。为了缓解CPU与外围设备之间速度不匹配和负载不均衡的问题,为了提高CPU和外围设备的工作效率和系统中各部件的并行工作程度。

磁盘管理
5.5.3 磁盘的调度算法,驱动调度

(1)先来先服务调度算法

(2)最短寻找时间优先调度算法

(3)单向扫描调度算法

(4)双向扫描算法

(5)电梯调度算法

课后习题

答:

如果凌乱存放,则每块的传输时间为13×6+100+25=203ms,传输100块的文件时间为203×100=20300ms。

采取优化存放后,每块的传输时间为6×2+100+25=137ms,传输100块数据的时间为137×100=13700ms。

 答:

(1)20 * 10 + 4 = 204ms

(2)  不按顺序放,中间空两个,每个记录只需要20/10=2ms,处理需4ms,一共:(2 + 4) * 10 = 60ms

文件管理

文件的概念

文件是一组在逻辑上有完整意义的相关信息。

196页文件系统的层次和结构

三个层次:最底层的描述层、中间的管理层、最上面的接口层

198页 文件的逻辑结构

根据文件系统选择逻辑结构应遵循的原则,分为两类:无结构的文件和有结构的文件。

(1)无结构文件

无结构的文件又称流式文件。组成流式文件的基本信息单位是字节或字,文件是有逻辑意义、无结构的一串字符的集合,文件内的信息不可再划分,文件长度是文件中所含字节的数目。例如,大量的源程序、库函数及文本文件等采用的就是流失结构。

(2)有文件结构

是指由若干个相关的记录构成的文件,又称记录式文件。因此,一个记录式文件是由若干个逻辑记录组成的,每个逻辑记录都是逻辑上具有独立意义的基本信息单位。记录式文件中的逻辑记录可依次编号,其序号称为逻辑记录号(简称记录号)。因此,一般记录式文件适合于存储在各种高速块存储设备中,如磁盘。

6.4 辅存空间的管理

常用的辅存空间的管理方法:

(1)空闲块表法

(2)空闲块链法

(3)位示图法

(4)成组链接法

此外还需复习:处理进程同步 信号量 2.7进程同步 39页 互斥 pv操作

最后当然是送上诚挚的祝福,希望UU们考的全会,一次性过!

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

洋洋得意呀

您的鼓励是我最大的动力,谢谢您

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值