计算机操作系统第四版复习+部分课后题+习题

第一章

判断操作系统类型

操作系统按功能可以分为

  1. 批处理操作系统

    将选中的若干作业调入内存以多道方式投入运行。

    优点是系统吞吐量大,资源利用率高

    不具有交互性,这是其缺点。

  2. 分时操作系统 --------- 人机交互 共享主机

    采用“时间片”、动态优先数等方式使CPU轮流为多个用户终端或多个任务服务。

    主要特点:

    多路调制性 独占性 及时性 交互性

  3. 实时操作系统

    响应速度 ,可靠性要求

    更强调系统的 安全性可靠性

    不具备分时系统的强交互性。

    主要特点是:

    1. 对响应时间的实时要求(可高可低)。
    2. 系统可靠性和安全性放在第一位,系统效率放在次要地位,交互性差或根本没有交互性。
    3. 系统整体性强。很多实时系统同时又是分布式系统,具有分布式系统整体性强的优点。

    类型:工业武器控制系统、信息查询系统、多媒体系统、嵌入式系统

操作系统主要特征

并发性(进程)、共享性、虚拟性、异步性

操作系统主要功能

处理机管理、存储器管理、设备管理、文件管理

1.为什么说操作系统实现了对计算机资源的抽象?

OS首先在裸机上覆盖一层I/O设备管理软件,实现了对计算机硬件操作的第一层次抽象;在第一层软件上再覆盖文件管理软件,实现了对硬件资源操作的第二层次抽象。OS 通过在计算机硬件上安装多层系统软件,增强了系统功能,隐藏了对硬件操作的细节,由它们共同实现了对计算机资源的抽象。

2.实现分时系统的关键问题是什么?应如何解决?

关键问题是当用户在自己的终端上键入命令时,系统应能及时接收并及时处理该命令,
在用户能接受的时延内将结果返回给用户。
解决方法:针对及时接收问题,可以在系统中设置多路卡,使主机能同时接收用户从各个终
端上输入的数据;为每个终端配置缓冲区,暂存用户键入的命令或数据。针对及时处理问题,
应使所有的用户作业都直接进入内存,并且为每个作业分配一个时间片,允许作业只在自己
时间片内运行,这样在不长的时间内,能使每个作业都运行一次。

3.OS有哪几大特征?其最基本的特征是什么?

并发性、共享性、虚拟性和异步性四个基本特征;最基本的特征是并发性和共享性。

4.何谓微内核技术?在微内核中通常提供了哪些功能?

把操作系统中更多的成分和功能放到更高的层次(即用户模式)中去运行,而留下一个尽量小的内核,用它来完成操作系统最基本的核心功能,称这种技术为微内核技术。

在微内核中通常提供了进程(线程)管理、低级存储器管理、中断和陷入处理等功能。

第二章

进程

特征:动态性、并发性、独立性、异步性

程序没有建立PCB是不能参与并发执行的。

时间片:一个时间片就是一段很短的时间,系统规定每个作业每次只能运行一个时间片,然后暂停该作业的运行,调度下一个作业运行。

三种基本状态:就绪、执行、阻塞

在这里插入图片描述

五种状态:创建、就绪、执行、阻塞、终止

在这里插入图片描述

七种状态:创建、活动就绪、静止就绪、执行、活动阻塞、静止阻塞、终止

在这里插入图片描述

PCB的作用

  1. 作为独立运行基本单位的标志
  2. 能实现间断性运行方式
  3. 提供进程管理所需要的信息
  4. 提供进程调度所需要的信息
  5. 实现与其他进程的同步和通信
1.试说明进程在三个基本状态之间转换的典型原因
  • 就绪状态→执行状态:进程分配到CPU资源

  • 执行状态→就绪状态:时间片用完

  • 执行状态→阻塞状态:I/O请求

  • 阻塞状态→就绪状态:I/O完成

2.试说明引起进程阻塞或被唤醒的主要事件是什么?

a. 请求系统服务;b. 启动某种操作;c. 新数据尚未到达;d. 无新工作可做

3.为什么要在OS 中引入线程?

在操作系统中引入线程,则是为了减少程序在并发执行时所付出的时空开销,使OS具有更好的并发性,提高CPU的利用率。进程是分配资源的基本单位,而线程则是系统调度的基本单位。

4.线程控制块TCB中包含了哪些内容

线程控制符、一组寄存器(包括PC和状态寄存器和通用寄存器的内容)、线程运行状态(何种运行状态)、优先级(线程执行的优先程度)、线程专有存储区、信号屏蔽、堆栈指针

第三章

处理机调度的层次

  1. 高级调度

    长程调度or作业调度,调度对象是作业

    作业调入内存,创建进程分配资源;

    主要用于 多道批处理系统,分时or实时中不设置

  2. 低级调度

    进程调度or短程调度,对象是进程/内核级线程;

    决定哪个进程应获得处理机,将处理机分配给进程;

    最基本的调度;

    多道批处理、分时、实时都必须配置;

    运行频率最高

  3. 中级调度

    内存调度;

    提高内存利用率和系统吞吐量;

    把不能运行的进程调到外存等待;把可以运行的进程重新调入内存,修改状态为就绪

作业调度

批处理系统中,是以作业为基本单位从外存调入内存的;

周转时间 = 完成时间 - 到达时间;

带权周转时间 = 周转时间 / 服务时间;

P2- 20

进程调度的任务

  1. 保存处理机的现场信息
  2. 按某种算法选取进程
  3. 把处理器分配给进程

产生死锁的必要条件

任一条件不成立,死锁就不会发生:

  1. 互斥条件

    在一段时间内,某资源只能被一个进程占用,其他请求的资源只能等待。

  2. 请求和保持条件

    进程保持了至少一个资源,请求新资源的时候被阻塞,对自己已获得的资源保持不放

  3. 不可抢占条件

    进程已获得的资源在未使用完之前不能被抢占

  4. 循环等待条件

    进程-资源 循环链

产生死锁的根本原因:

系统资源不足

不产生死锁的最小资源数

设系统所拥有的资源总数为M,共享该资源的进程数为P,每个进程所需使用该资源的最大需求为N,则 M≥P(N-1)+1* 时 无论如何分配都不会产生死锁。

处理死锁的方法

  1. 预防死锁

    设置某些限制条件去破坏产生死锁的必要条件

  2. 避免死锁

    在动态分配的过程中用某种方法阻止系统进入不安全状态

  3. 检测死锁

    事前不采取措施,通过检测机构及时检测出死锁的发生,采取适当措施

  4. 解除死锁

    检测到死锁时采取相应措施,常用方法:撤销一些进程,回收资源,将它们分配给阻塞状态的进程

银行家算法

安全状态找到安全序列

  • 可利用资源向量Available,Available[j]=K,表示系统中现有j类资源K个
  • 最大需求矩阵Max,Max[i,j]=K,表示进程i需要j类资源的最大数目为K
  • 分配矩阵Allocationm,Allocation[i,j]=K,表示进程i当前已分得j类资源的数目为K
  • 需求矩阵Need,Need[i,j]=K,表示进程i还需要j类资源K个
  • Need[i, j]=Max[i, j]-Allocation[i, j]

Request i是进程Pi的请求向量,如果Request i[j]=K,表示进程Pi需要K个j类型的资源。当Pi发出资源请求后,系统按下述步骤进行检查:

  1. 如果Request i[j]≤Need[i,j],转向步骤(2); //所求的资源数必须小于总共宣布需要资源的最大数

    否则认为出错,因为它所需要的资源数已超过它所宣布的最大值。

  2. 如果Requesti[j]≤Available[j],便转向步骤(3);否则,表示尚无足够资源,Pi须等待。

  3. 系统试探着把资源分配给进程P i,并修改下面数据结构中的数值:

    Available[j]:= Available[j]-Request i[j];//可用的减少了

    Allocation[i,j]:= Allocation[i,j]+Request i[j];//已配分的增加了

    Need[i,j]:= Need[i,j]-Request i[j];//还需要的也减少了

  4. 执行安全性算法,安全了才正式分配资源,否则作废,让进程等待

安全性算法

  1. 设置两个向量:

    1. 工作向量Work,它表示系统可提供给进程继续运行所需的各类资源数目,它含有m个元素,在执行安全算法开始时,Work=Available。
    2. Finish,它表示系统是否有足够的资源分配给进程,使之运行完成。开始时先做Finish[i]:=false;当有足够资源分配给进程时,再令Finish[i]:=true。
  2. 从进程集合中找到一个能满足下述条件的进程:

    ① Finish[i]=false;//资源未分配

    ② Need[i,j]≤Work[j];//资源足够分配

    ​ 若找到,执行步骤(3),否则,执行步骤(4)。

  3. 当进程Pi获得资源后,可顺利执行,直至完成,并释放出分配给它的资源,故应执行

    Work[j]:= Work[j]+Allocation[i,j];//释放资源

    Finish[i]:=true;//设置完成标志

    go to step 2; //继续寻找下一个

1.何谓死锁?产生死锁的原因和必要条件是什么?

死锁是指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种僵持状态时,若无外力作用,它们都将无法再向前推进。

产生死锁的原因为竞争资源和进程间推进顺序非法。其必要条件是:互斥条件、请求和保持条件、不可抢占条件、循环等待条件。

2.请详细说明可通过哪些途径预防死锁
  • 破坏“请求和保持”条件,就是如果系统有足够资源,便一次性把进程需要的所
    有资源分配给它;只分配给进程初期所需要的资源,进程运行过程中再逐步释放用毕的资源,再请求新资源。
  • 破坏“不可抢占”条件,就是已经拥有资源的进程,当它提出新资源请求而不能立即
    满足时,必须释放它已保持的所有资源,待以后需要时再重新申请;
  • 破坏“循环等待”条件,就是将所有资源按类型排序标号,所有进程对资源的请求必须严格按序号递增的次序提出。
3.在银行家算法中,若出现下述资源分配情况,试问:
process Allocation Need Available
P0 0 0 3 2 0 0 1 2 1 6 2 2
P1 1 0 0 0 1 7 5 0
  • 14
    点赞
  • 120
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值