1. 请解答下列问题。
    (1) 在一个使用多级反馈队列(如课程示例所示)的系统中,一个只使用CPU的进程的执行时间为40。如果第一个队列时间片为2,每级时间片增加5个时间单元,那么这个进程运行结束前会被中断多少次,结束时处于哪级队列?
答:
1:在第一队列(时间片为2,执行时间为2);
2:在第2队列(时间片为7,执行时间为2+7);
3:在第3队列(时间片为12,执行时间为2+7+12);因为只有三级队列,故在第三级队列轮转执行
4:在第3队列(时间片为12,执行时间为2+7+12+12);
5:在第3队列(时间片为12,执行时间为2+7+12+12+7)。故结束时中断了5次,处于第三级队列。

(2) 某进程调度程序采用基于优先数(priority)的调度策略,即选择优先数最小的进程运行,
进程创建时由用户指定一个nice作为静态优先数。为了动态调整优先数,引入运行时间
cpuTime和等待时间waitTime,初值均为0。进程处于执行态时,cpuTime定时加1,且
waitTime置0;进程处于就绪态时,cpuTime置0,waitTime定时加1。请回答下列问题。

(a) 若调度程序只将nice的值作为进程的优先数,即priority=nice,则可能会出现饥饿现象,为什么?
答:因为在进程运行过程中,不断有新的进程进入,若这些进程的优先级都很高,很可能导致一些低优先级的进程一直无法得到CPU资源,从而无法运行,出现饥饿现象。
(b) 使用nice、cpuTime和waitTime设计一种动态优先数计算方法,以避免产生饥饿现象,并说明waitTime的作用。

答:规定高优先数的优先级更高。
故:priority = nice - waitTime + cpuTimeWaitTime使得长时间等待的进程优先数减小使得优先级更高,从而避免饥饿现象。
  1. 请回答下列问题。
    (1) 为什么在操作系统中要引入线程?内核级线程与用户级线程的区别是什么?
 答:(1)由于进程是资源的拥有者,所以在创建、撤销、切换操作中需要较大的时空开销,限制了并发程度的进一步提高。而引入线程可以提高响应速度,并且还可以资源共享提高资源利用率,可扩展性也更强。
(2)内核级线程的创建、撇销、调度和管理都由OS依靠内核负责,并且在内核空间为每
一个内核支持线程设置了一个线程控制块,内核根据线程控制块感知线程的存在,并对其
加以控制用户级线程由用户应用程序建立的线程,并且由用户应用程序负责所有这些用
户、级线程的调度执行和管理工作,仅存在于用户空间,操作系统内核完全不知道这些
线、程的存在。

(2) Provide two programming examples in which multithreading does not provide better performance than a single-threaded solution.

答:
(1)任何一种顺序程序都不适合线程化。例如,一个几乎全是if while语句的程序。
(2) 另一个例子是“shell”程序,如C-shell。这样的程序必须密切监视自己的工作空间,如打开的文件、环境变量和当前工作目录。

(3) Under what circumstances does a multithreaded solution using multiple kernel threads provide better performance than a single-threaded solution on a single-processor system?

答:多核线程:当一个内核线程出现错误时,可以切换另一个内核线程,以便进程继续运
行。而单核线程出现错误时,整个进程的所有进程必须全部停下,无法继续运行。

(4) Can a multithreaded solution using multiple user-level threads achieve better performance on a multiprocessor system than on a single-processor system? Explain.

答:若多个用户级线程只能映射到一个内核级线程。则由多个用户级线程组成的多线程系
统不能同时使用多处理器系统中的不同处理器。操作系统只看到一个进程,不会在不同的
处理器上调度进程的不同线程。若多个用户级线程只能映射到多个内核级线程,则此时多
处理器系统处理该进程的效率要高于单处理器系统

(5) Consider a multicore system and a multithreaded program written using the many-to-many threading model. Let the number of user-level threads in the program be greater than the number of processing cores in the system. Discuss the performance implications of the following scenarios.
a. The number of kernel threads allocated to the program is less than the number of processing cores.
b. The number of kernel threads allocated to the program is equal to the number of processing cores.
c. The number of kernel threads allocated to the program is greater than the number of processing cores but less than the number of user-level threads.

答:a.当内核线程数小于处理器数时,一些处理器将保持空闲,因为调度器只将内核线程
映射到相应的处理器,此时利用率还没有达到最高,但已经高于单处理器系统。
b.当内核线程的数量正好等于处理器的数量时,就有可能同时使用所有处理器。但是,当
内核线程在内核内部阻塞时,相应的处理器将保持空闲,此时多处理器利用率进一步提
高。
C.当内核线程多于处理器时,一个被阻塞的内核线程可能会被替换掉,以支持另一个准备
好执行的内核线程,从而提高多处理器系统的利用率。

北京理工大学-操作系统原理 第2章作业2相关推荐

  1. 北京理工大学操作系统复习——习题+知识点

    文章目录 传送门 前言 ppt习题+课后习题汇总 第1章 操作系统概论 操作系统性能指标计算 第2章 进程管理 进程调度算法 课后2-9:最短作业优先 课后2-12:四种算法比较 课后2-13:轮转与 ...

  2. 数据库系统原理--第2章作业1--习题答案

    说明:数据库系统原理相关的习题答案都在"数据库系统原理"专栏 1.已知三个域:男人={李基,张鹏},女人={王方,刘玉 },子女={李键,张睿,张峰}.这一组域(男人,女人,子女) ...

  3. 计算机操作系统原理第四章习题

    计算机操作系统原理第四章习题 1.什么是静态链接.装入时动态链接和运行时的动态链接? 2.简述分页系统和分段系统的异同点 3.什么情况下需要重定位?为什么要引入重定位? 4.在具有快表的段页式存储管理 ...

  4. 操作系统原理第七章:死锁

    目录 1 死锁的基本概念 2 死锁的必要条件 3 死锁预防 3.1 抑制死锁发生的必要条件 4 死锁避免 4.1 资源分配图法 4.2 银行家算法 5 死锁的检测 5.1 每一种资源类型只有一个实例 ...

  5. 北京理工大学c语言实验报告实验6,北京理工大学微机原理实验报告一二三.docx...

    北京理工大学微机原理实验报告一二三 微机原理与接口技术硬件实验报告姓名:班级:学号:实验一8259中断控制器实验实验内容用单脉冲发生器的输出脉冲为中断源,每按一次产生一次中断申请,点亮或熄灭发光二极管 ...

  6. 操作系统原理第十一章:大容量存储

    目录 1 磁盘结构 2 磁盘调度 2.1 先来先服务(FCFS) 2.2 最短寻道时间优先(SSTF) 2.3 扫描算法(SCAN) 1 磁盘结构 文件是放在磁盘上的,因此磁盘的性能是对操作文件有很大 ...

  7. 操作系统原理——第2章 操作系统概述

    2.1 操作系统的目标和功能 操作系统是控制应用程序执行的程序, 并充当应用程序和计算机硬件之间的接口. 它有三个主要目标: 方便 有效 扩展能力 2.1.1 作为用户/计算机接口的操作系统 计算机接 ...

  8. 操作系统原理第六章:进程同步

    目录 1 进程同步背景 2 临界区 2.1 进程的互斥 3 信号量 4 哲学家问题 5 生产者消费者问题 6 读写问题 7 P,V操作总结 1 进程同步背景 对于之前所提到的生产者消费者问题,采用共享 ...

  9. 操作系统原理第五章:CPU调度

    目录 1 CPU调度基本概念 1.1 基本概念 1.2 CPU调度的时机 1.3 CPU调度方案 2 CPU调度算法 2.1 先来先服务(FCFS) 2.2 短作业优先(SJF) 2.3 优先级 2. ...

最新文章

  1. 【Android 应用开发】Android 网络编程 API笔记 - java.net 包相关 接口 api
  2. metric learning
  3. PyQt5 参考文档
  4. Serverless 时代前端避坑指南
  5. 备库设置read_only被阻塞
  6. 无需一行代码,完成模型训练和部署,这个AI工具开始公测
  7. Geatpy自定义初始种群
  8. 阿里软件测试工程师手把手教学——面试必问的 Linux 命令
  9. 初写数学建模论文 -- 摸鱼1
  10. 物流查询方法,一键导入单号自动识别快递公司
  11. [自动驾驶]高德的高精度地图
  12. 戴尔U2520DR型号显示器连接MacbookPro突然不亮了
  13. Java中资源文件获取源码浅析
  14. 系统入门(1):安卓系统bootloader模式是什么?如何进入bootloader
  15. 正则表达式去掉以 开头和结尾的
  16. Eclipse 4.2 SR1版悄悄发布
  17. 使用busybox快速制作initramfs
  18. Tableau-帕累托图制作
  19. 技术文摘5 发展 礼品
  20. BG架构-kerberos初步学习

热门文章

  1. 大型系统演进缩影(一)
  2. isdigit python函数什么意思_Python isdigit() 方法检测字符串是否只由数字组成
  3. 小程序适配之viewport
  4. Unity程序闪退与卡顿原因分析
  5. 63岁雅虎女掌门巴茨:爱爆粗口铁娘子
  6. Windows 计划任务定时重启java服务
  7. VESC操作入门(一)——控制霍尔电机、无感电机和AS5047P
  8. 尚融宝13-后台管理系统前端架构梳理
  9. 全球十大顶级运动户外第一自行车品牌FRW辐轮王骑车能延长寿命
  10. index.html修改,index.html