《现代操作系统》第十二章习题答案

  1. 计算机硬件的改进主要归功于更小的晶体管。一些限制因素包括:(a) 光的波动性可能限制传统光刻技术制造集成电路的能力,(b) 固体中个别原子的迁移性可能导致非常薄的半导体、绝缘体和导体层的性能退化,(c) 背景辐射活性可能破坏分子键或影响非常小的储存电荷。当然还有其他因素。

  2. 对于高度交互式的程序,事件模型可能更好。其中,只有 (b) 是交互式的。因此,(a) 和 (c) 是算法驱动的,(b) 是事件驱动的。

  3. 不是。差异更多地与 DNS 服务器缓存并且以分级方式组织有关。路径可以很容易地按自顶向下的顺序给出,但倒序的惯例现在已被广泛接受。

  4. 可能 stat 是多余的。可以通过 open、fstat 和 close 的组合来实现。对于其他操作,模拟将非常困难。

  5. 如果将驱动程序放置在线程之下,那么驱动程序无法像 MINIX 3 那样独立运行。它们必须作为某个其他线程的一部分运行,更类似于 UNIX 风格。

  6. 是可能的。所需的是一个管理信号量的用户级进程,也就是信号量服务器。要创建信号量,用户向其发送一条消息,请求一个新的信号量。要使用它,用户进程将信号量的标识传递给其他进程。然后,它们可以向信号量服务器发送请求操作的消息。如果操作阻塞,不会发送回复,从而阻塞调用者。

  7. 模式是 8 毫秒的用户代码,然后 2 毫秒的系统代码。通过优化,每个周期现在是 8 毫秒的用户代码和 1 毫秒的系统代码。因此,一个周期从 10 毫秒减少到 9 毫秒。将这样的周期乘以 1000,一个 10 秒的程序现在只需要 9 秒。

  8. 外部名称可以任意长度且可变长。内部名称通常是 32 位或 64 位长度,且总是固定长度。外部名称不需要唯一。例如,UNIX 文件系统中的链接可以指向同一对象。内部名称必须唯一。外部名称可以是分层的。内部名称通常是表的索引,因此形成一个扁平的命名空间。

  9. 如果新表的大小是旧表的 2 倍,它不会很快填满,从而减少需要升级表的次数。另一方面,可能不需要这么多空间,因此可能会浪费内存。这是经典的时间与空间的权衡。

  10. 这样做是有风险的。假设 PID 正好在最后一个条目上。在这种情况下,退出循环会使 p 指向最后一个条目。然而,如果未找到 PID,则 p 可能指向最后一个条目或超出最后一个条目,这取决于编译代码的细节,启用了哪种优化等等。在一个编译器上可能行得通,但在另一个编译器上可能失败。设置一个标志更好。

  11. 可以这样做,但不是一个好主意。一个 IDE 或 SCSI 驱动程序可能很长。如此长的条件代码会使源代码难以跟踪。最好将每个驱动程序放在单独的文件中,然后使用 Makefile 来确定应该包含哪个文件。或者至少可以使用条件编译来包含一个驱动程序文件或另一个。

  12. 是的。它会使代码变慢,而且更多的代码意味着更多的错误。

  13. 不容易。同时进行的多个调用可能会干扰彼此。如果静态数据由互斥锁保护,可能是可能的,但这意味着对简单过程的调用可能会意外阻塞。

  14. 是的。每次调用宏时,代码都会被复制。如果调用多次,程序会变得非常庞大。这是典型的时间和空间的权衡:一个更大,更快的程序而不是一个更小,更慢的程序。然而,在极端情况下,较大的程序可能无法适应 TLB,导致抖动,从而运行更慢。

  15. 从将单词的低 16 位和高 16 位进行异或运算得到一个 16 位整数 s 。对于每一位,有四种情况:00(结果为 0),01(结果为 1),10(结果为 1)和 11(结果为 0)。因此,如果 s 中 1 的个数是奇数,则奇偶校验为奇数;否则为偶数。创建一个包含 65,536 个条目的表格,每个条目包含一个字节和奇偶校验位。宏的定义如下:
    #define parity(w) bits[(w & 0xFFFF) ^ ((w>>16) & 0xFFFF)]

  16. 没有情况可以。" 压缩 " 后的颜色值大小与原始值一样大,而且可能需要一个庞大的调色板。这完全没有意义。

  17. 8 位的调色板包含 256 个条目,每个条目占用 3 个字节,总共 768 字节。每个像素的节省是 2 个字节。因此,对于超过 384 个像素的图像,GIF 会获胜。16 位的调色板包含 65,536 个条目,每个条目占用 3 个字节,总共 196,608 字节。在这里,每个像素的节省是 1 个字节。因此,超过 196,608 个像素的图像,16 位压缩会获胜。假设宽高比为 4:3,平衡点是一个 512\times 384 像素的图像。对于 VGA ( 640\times 480 ),16 位颜色所需的数据量比真实的 24 位颜色要少。

  18. 对于在路径名缓存中的路径,它没有影响,因为绕过了 i-node。如果没有读取它,则它是否已经在内存中并不重要。对于不在名称缓存中但涉及固定的 i-node 的路径,固定 i-node 可以帮助,因为它消除了磁盘读取的需求。

  19. 记录最后修改日期、大小,可能还有一个计算出的签名(如校验和或 CRC)可以帮助确定文件自上次引用以来是否发生了变化。警告:远程服务器可能提供有关文件的虚假信息,可能需要本地重新生成计算出的签名。

  20. 可以给文件赋予版本号或校验和,并将这些信息与提示一起存储。在访问远程文件之前,将检查版本号或校验和是否与当前文件一致。

  21. 文件系统通常会尝试将新数据写入紧随上次使用过的最近可用的磁盘块。如果两个文件同时被写入,这可能导致数据块在磁盘上交错排列,从而导致两个文件都被碎片化,从而更难以读取。可以通过在内存中缓冲数据以最大化写入大小,或将数据写入临时文件,然后在程序终止时将每个输出复制到永久文件来减轻这种效果。

  22. Brooks 谈论的是在大型项目中程序员之间的沟通会减慢一切速度。这个问题在一个单人项目中不会出现,因此生产力可能会更高。

  23. 如果一个程序员可以以 10 万美元的成本生成 1000 行代码,那么一行代码的成本为 100 美元。Windows 8 由 5000-1 亿行代码组成,这相当于 50-1000 亿美元。这似乎非常庞大。可能微软已经通过使用更好的工具提高了程序员的生产力,使得一个程序员每年可以生成数千行代码。此外,Windows 8 的许多部分未经修改地从 Windows 7 中取出,因此 Windows 8 中新代码的数量只是其总体规模的一小部分。另一方面,微软的年收入约为 700 亿美元,所以在 Windows 8 上花费数十亿美元是可能的。

  24. 假设内存每 GB 成本 10 美元(与当前价格对比)。那么一个具有 100GB 硬盘的低端机器需要价值 1000 美元的 RAM。如果 PC 的其他部分成本为 500 美元,则总成本为 1500 美元。这对于低端市场来说太贵了。

  25. 嵌入式系统可能只运行一个或少数几个程序。如果所有程序都可以一直保持加载到内存中,可能就不需要内存管理器或文件系统。此外,仅需要驱动程序用于少数几个 I/O 设备,编写 I/O 驱动程序作为库程序可能更有意义。库程序可能会更好地编译为独立程序,而不是共享库,消除了对共享库的需求。在特定情况下,可能可以消除许多其他功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/588503.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ARCGIS PRO SDK GeometryEngine处理独立几何图形

1、面积类:pol为Polygon 1).Area:获取几何图形的面积。这是使用二维笛卡尔数学来计算面积的平面测量 double d GeometryEngine.Instance.Area(pol) 2).GeodesicArea:获取几何图形的椭球面积 …

【Redis-08】Redis主从复制的实现原理

在Redis中,可以通过slaveof命令或者设置slaveof选项实现两台Redis服务器的主从复制,比如我们有两个Redis机器,地址分别是 127.0.0.1:6379 和 127.0.0.1:6380,现在我们在前者上面执行: 127.0.0.1:6379 > SLAVEOF 12…

DDD系列 - 第8讲 仓库Repository - JPA篇(二)

目录 三、领域层定义仓库Repository接口3.1 ID生成策略3.2 内置方法的使用3.3 关于Specification的使用3.4 通过方法名定义查询3.5 自定义SQL(跨聚合)3.5.1 @NameQuery & @NamedNativeQuery3.5.2 @Query3.5.3 @Query.nativeQuery3.5.4 @Query & @Modifying3.5.5 @Que…

图片预览 element-plus 带页码

vue3、element-plus项目中&#xff0c;点击预览图片&#xff0c;并显示页码效果如图 安装 | Element Plus <div class"image__preview"><el-imagestyle"width: 100px; height: 100px":src"imgListArr[0]":zoom-rate"1.2":max…

Oracle字符串-日期转换

一、TO_CHAR日期转换为字符串 1、取得当前日期是本月的第几周 。 select to_char(sysdate,YYYYMMDD W HH24:MI:SS) from dual; select TO_CHAR(SYSDATE,YY) from dual; select to_char(sysdate,W) from dual; SQL> select to_char(sysdate,YYYYMMDD W HH24:MI…

[蓝桥杯 2018省赛]回家路费

回家路费 题目描述 本题为填空题&#xff0c;只需要算出结果后&#xff0c;在代码中使用输出语句将所填结果输出即可。 小明被不明势力劫持。后莫名其妙被扔到 X 星站再无问津。小明得知每天都有飞船飞往地球&#xff0c;但需要 108108 元的船票&#xff0c;而他却身无分文。…

菜鸟学习vue3笔记-vue hooks初体验

import { ref } from "vue"; export default function () {let a1 ref(1);let a2 ref(5);let c ref(0);function add() {a1.value;a2.value;}return {add,a1,a2,c,}; }<template><div><p>第一个数字{{ a1 }}</p><p>第二个数字{{ a2…

公共用例库计划--个人版(一)

1、公共用例库计划 1.1、目标 在公司测试管理体系的演变过程中&#xff0c;从禅道过渡到devops再到云效平台&#xff0c;我们已经实现了对bug和用例的有效集中管理。然而&#xff0c;在实际操作中发现&#xff0c;尽管用例管理得到了初步整合&#xff0c;但在面对不同系统和测…

离线语音识别 sherpa-ncnn 尝鲜体验

文章目录 1、ubuntu 编译运行依赖安装下载与编译模型下载运行 2、树莓派 4B 编译运行确认树莓派 4B 环境交叉编译交叉编译模型下载与运行模型对比测试树莓派 4B 运行大模型 Sherpa-NCNN 是一个基于 C 的轻量级神经网络推理框架&#xff0c;是 kaldi 下的一个子项目&#xff0c;…

Python高级并发编程的实例详解

更多Python学习内容&#xff1a;ipengtao.com Python中的高效并发编程&#xff0c;有几个重要的概念和工具可以帮助大家充分利用多核处理器和提高程序性能。本文将介绍一些关键的概念和示例代码&#xff0c;以帮助大家更好地理解Python中的高效并发编程。 多线程 vs. 多进程 在…

计算机网络【HTTP 面试题】

HTTP的请求报文结构和响应报文结构 HTTP请求报文主要由请求行、请求头、空行、请求正文&#xff08;Get请求没有请求正文&#xff09;4部分组成。 1、请求行 由三部分组成&#xff0c;分别为&#xff1a;请求方法、URL以及协议版本&#xff0c;之间由空格分隔&#xff1b;请…

使用 HarperDB SDK for Java 简化数据库操作

在现代应用程序开发的动态环境中&#xff0c;与数据库的高效、无缝交互至关重要。HarperDB 凭借其 NoSQL 功能&#xff0c;为开发人员提供了强大的解决方案。为了简化这种交互&#xff0c;HarperDB SDK for Java提供了一个方便的接口&#xff0c;用于将 Java 应用程序与 Harper…

YHZ010 Python 的类型转换

&#x1f436; 类型转换 资源编号&#xff1a;YHZ010 配套视频&#xff1a;https://www.bilibili.com/video/BV1zy4y1Z7nk?p11 &#x1f439; 检查变量类型 在 Python 中可以使用type函数对变量的类型进行检查。程序设计中函数的概念跟数学上函数的概念是一致的&#xff0c;数…

全栈架构:从0开始,Vue的搭建与开发

尼恩说在前面 在40岁老架构师 尼恩的读者交流群(50)中&#xff0c;很多小伙伴拿到一线互联网企业、上市企业如阿里、网易、有赞、希音、百度、滴滴的面试资格。 然后&#xff0c;很多小伙伴平时聚焦CRUD&#xff0c;没有亮点项目&#xff0c; 黄金项目。 简历也写得是非常lo…

九台虚拟机网站流量分析项目启动步骤

文章目录 零、操作概述一、服务器分配二、9台虚拟机相互免密登录三、Nginx(反向代理服务器)四、Tomcat(Web服务器)五、测试Nginx反向代理是否成功六、Flume集群配置七、修改LogDemo项目八、项目1703FluxStorm九、Hadoop集群十、整个集群的启动十一、部署项目十二、测试项目…

骑砍战团MOD开发(26)-系统定制UI资源替换

一.TaleWorlds开机动画删除 骑砍1战团:taleworlds_intro.bik 重命名为 taleworlds_intro_bak.bik 骑砍2霸主: Modules\Native\Videos\TWLogo_and_Partners.ivf 重命名为 TWLogo_and_Partners_bak.ivf Modules\Native\Videos\TWLogo_and_Partners.ogg 重命名为TWLogo_and_Partne…

Generalized Focal Loss V1论文解读

摘要 单级检测器基本上将物体检测表述为密集分类和定位&#xff08;即边界框回归&#xff09;。分类通常通过Focal Loss进行优化&#xff0c;而边界框的定位通常根据Dirac delta分布进行学习。单级检测器的最新趋势是引入一个单独的预测分支来估计定位质量&#xff0c;预测质量…

【Web2D/3D】SVG(第二篇)

1. 前言 SVG&#xff08;Scalable Vector Graphics&#xff0c;可缩放矢量图形&#xff09;是一种使用XML描述2D图形的语言&#xff0c;由于SVG是基于XML&#xff08;HTML也是基于XML的&#xff09;&#xff0c;因为SVG DOM中每个元素都是可以操作的&#xff0c;包含修改元素属…

【javaSE】代理并不难

代理&#xff1a; 代理模式最主要的就是在不改变原来代码&#xff08;就是目标对象&#xff09;的情况下实现功能的增强 在学习AOP之前先了解代理&#xff0c;代理有两种&#xff1a;一种是动态代理&#xff0c;一类是静态代理。 静态代理 相当于是自己写了一个代理类&#…

SAP-PP:Phantom Assembly 虚拟装配 概念理解

文章目录 前言一、Phantom assembly 是什么&#xff1f;二、举例总结 前言 最近在学习PP的过程中遇到一个校验增强&#xff0c;系统中将对生产订单的组件预留进行校验&#xff0c;是否消耗正常。 那么就遇到BOM中设定了虚拟装配件的标识预留&#xff0c;其是不消耗数量的&…