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

news2025/4/23 22:58:17

  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.coloradmin.cn/o/1345758.html

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

相关文章

pytorch01:概念、张量操作、线性回归与逻辑回归

目录 一、pytorch介绍1.1pytorch简介1.2发展历史1.3pytorch优点 二、张量简介与创建2.1什么是张量?2.2Tensor与Variable2.3张量的创建2.3.1 直接创建torch.tensor()2.3.2 从numpy创建tensor 2.4根据数值创建2.4.1 torch.zeros()2.4.2 torch.zeros_like()2.4.3 torch…

回顾 2023,展望 2024

by zhengkai.blog.csdn.net 项目与心得 今年最大的项目和心得,非GCP莫属,作为全球顶尖的云平台, GCP有他的优势,也有很多难用的地方。但是作为当时的一个strategic solution,我们的印度本地化项目必须使用GCP&#xf…

Linux权限的基本理解

一:🚩Linux中的用户 1.1🥦用户的分类 🌟在Linux中用户可以被分为两种用户: 超级用户(root):可以在Linux系统中做各种事情而不被约束普通用户:只能做有限的事情被权限约束 在实际操作时超级用户的命令提示符为#,普通用户的命令提示符为$,可…

数模混合SoC芯片中LEF2Milkyway的golden flow

在数模混合芯片中的项目中,特别是数字模块很少甚至只有一个简单的数字控制逻辑时,我们要做数字模块的后端实现时,通常模拟那边会问我们实现需要他们提供哪些数据。 通常来说,我们可以让模拟设计提供数字模块的GDS或LEF文件即可。…

nodejs+vue+微信小程序+python+PHP特困救助供养信息管理系统-计算机毕业设计推荐

通过走访某特困救助供养机构实际情况,整理特困救助供养机构管理的业务流程,分析当前特困救助供养机构管理存在的各种问题,利用软件开发思想对特困救助供养机构特困救助供养机构管理进行系统设计分析。通过服务端程序框架进行设计,…

网际协议IPv4

基本介绍 网际协议IP是TCP/IP体系中两个重要的协议之一。IPv4虽有最终被IPv6取代的趋势,但它仍是当前使用的最重要的因特网协议。 与IP配套使用的还有3个协议: 地址解析协议ARP(Address Resolution Protocol)因特网控制报文协议ICMP(Internet Control …

Docker 入门 ------容器互通以及Dockerfile

1. 端口映射以及容器互联 Docker 除了通过网络访问,还提供了两种很方便的功能来满足服务访问的基本需求: 允许映射容器内应用的服务端口到本地宿主主机互联机制实现多个容器间通过容器名来快速访问 1.1 容器映射实现访问容器 1.1.1 从外部访问容器应…

中间人攻击是什么,会产生哪些危害,如何有效防止中间人攻击

简介 中间人攻击(Man-in-the-Middle Attack,简称MITM攻击)是一种网络攻击,其原理是攻击者通过各种技术手段将受攻击者控制的一台计算机虚拟放置在网络连接中的两台通信计算机之间,这台计算机称为“中间人”。在攻击过…

【滑动窗口】C++算法:可见点的最大数目

作者推荐 动态规划 多源路径 字典树 LeetCode2977:转换字符串的最小成本 本题涉及知识点 滑动窗口 LeetCode 1610可见点的最大数目 给你一个点数组 points 和一个表示角度的整数 angle ,你的位置是 location ,其中 location [posx, posy] 且 point…

Linux文件系统结构及相关命令1(man pwd ls ctrl +Shift +T ls /etc)

Linux的文件系统结构 某所大学的学生可能在一两万人左右,通常将学生分配在以学院-系班为单位的分层组织机构中。 如何查找一名学生? 最笨的办法:依次问询大学中的每一个学生,直到找到为止。 查询效率高的方法:按照从…

2023年新一代开发者工具 Vue ,正式开源!

以下文章来源于前端充电宝 ,作者CUGGZ 近日,Vue 新一代开发者工具(DevTools)正式开源!Vue DevTools 是一个旨在增强 Vue 开发人员体验的工具,它提供了一些功能来帮助开发者更好地了解 Vue 应用。下面就来看…

用IDEA创建/同步到gitee(码云)远程仓库(保姆级详细)

前言: 笔者最近在学习java,最开始在用很笨的方法:先克隆远程仓库到本地,再把自己练习的代码从本地仓库上传到远程仓库,很是繁琐。后发现可以IDEA只需要做些操作可以直接把代码上传到远程仓库,也在网上搜了些…

【FileZilla】的基本使用

一、FileZilla的使用 1.1 FileZilla简介 1.2 软件下载 到官方网站下载 FileZilla 的服务端和客户端程序 FileZilla - The free FTP solution 自行下载即可 1.3 软件安装 (1)先安装服务端【傻瓜式安装】,一直下一步下一步安装即可 &#xf…

Python绘制高级图表(1):绘制条形统计图

一、初始化 1. 引入库,设置画笔 from turtle import * t Turtle() t.color("black") t.width(3)2. 为了美观,画出xy轴 (1) 普通型 from turtle import * t Turtle() t.color("black") t.width(3)# 以画布为600 * 600为例 # 1.…

搭建maven私服

maven maven简介 什么是maven? Maven这个单词来自于意第绪语(犹太语),意为知识的积累。 Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。 Maven 除了以…

算法训练day53|动态规划part14

参考:代码随想录 1143.最长公共子序列 重点:状态的转移与递推公式的确定 本题和动态规划:718. 最长重复子数组 (opens new window)区别在于这里不要求是连续的了,但要有相对顺序,即:"ace" 是 …

Spark任务调度与数据本地性

Apache Spark是一个分布式计算框架,用于处理大规模数据。了解Spark任务调度与数据本地性是构建高效分布式应用程序的关键。本文将深入探讨Spark任务调度的流程、数据本地性的重要性,并提供丰富的示例代码来帮助大家更好地理解这些概念。 Spark任务调度的…

小程序面试题 | 17.精选小程序面试题

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

自然语言处理2——轻松入门情感分析 - Python实战指南

目录 写在开头1.了解情感分析的概念及其在实际应用中的重要性1.1 情感分析的核心概念1.1.1 情感极性1.1.2 词汇和上下文1.1.3 情感强度1.2 实际应用中的重要性 2. 使用情感分析库进行简单的情感分析2.1 TextBlob库的基本使用和优势2.1.1 安装TextBlob库2.1.2 文本情感分析示例2…

【Electron】webview 实现网页内嵌

实现效果: 当在输入框内输入某个网址后并点击button按钮 , 该网址内容就展示到下面 踩到的坑:之前通过web技术实现 iframe 标签内嵌会出现 同源策略,同时尝试过 vue.config.ts 内配置跨域项 那样确实 是实现啦 但不知道如何动态切换 tagert …