现代操作系统 第一章引论 答案 自己整理版

    科技2024-04-15  77

    第一章 引论

    第一题 操作系统的两大作用

    本书:

    提供一个资源集的清晰抽象.(即把底层隐藏起来)管理这些硬件资源.(即让应用程序合理有序的使用硬件设备等)

    机组:(从硬件方面来考虑)

    防止硬件设备受失控应用程序的影响给高层提供简单一致的映像.而不用为纷繁复杂的底层硬件编写各种接口.

    第二题 简述9种操作系统及其作用

    大型机操作系统 服务器操作系统 多处理器操作系统 个人计算机操作系统 掌上计算机操作系统 嵌入式操作系统 传感器结点操作系统 实时操作系统 智能卡操作系统

    第三题 分时操作系统和多道程序系统的区别

    第四题 为何cache每次缓存一整行而不是一个字

    其一,局部性原理. 其二,现代操作系统可以整块的读取,相比单字节读取要快得多.

    第五题 早期直接由CPU处理io,对于多道程序而言有何含义?

    CPU被完全占用,那么对于等待io时的时间就被完全浪费,所以对于多道程序的效率并没有任何提升.

    第六题 解释为什么io指令是特权指令

    对不同用户的限制不同,需要强制执行这些限制,以便用户级别的程序不会干扰他们.

    第七题 系列计算机的思想还存活着吗

    还存活着.比如因特尔i3,i5,i7具有不同的属性,但是在架构上是兼容的.

    第八题 需要多少视频ram?

    第九题 略

    第十题 内核态和用户态的区别

    内核态可以使用所有的硬件,可以使用所有的特权指令, 用户态只能执行规定的指令,只能访问指定的寄存器和存储区.

    特权指令包括: 只允许操作系统内核使用,不允许用户直接使用的指令.如I/O指令,中断屏蔽指令,清内存指令,存储保护指令和设置时钟指令.

    为何要区分内核态和用户态

    出于安全性.一些特权指令如清内存指令和设置时钟指令等.如果用错,就会导致整个系统的崩溃.分了内核态和用户态后,当用户需要这些指令时,内核为其提供了API,可以通过系统调用陷入内核,让内核去执行这些指令.

    第十一题 磁盘读取数据耗时的计算

    解: 磁头数 = 盘面数 = 总容量 / 每个盘片的容量 = (255GB) / (65536 * 255 * 512B) = 32 注意 柱面数 == 磁道数 盘片数 = 盘面数 / 2 = 16

    平均时间 = 寻道时间 + 旋转时间 + 传输时间 = 11ms + 7ms + (400KB / 100MB/s) = 22ms

    第十二题 判断内核态可使用的指令

    (a),©,(d)

    第十三题 进程调度的理解

    需要 20ms 或者 25ms 或者30ms P0和P1 安排在同一个cpu,P2安排在一个cpu,则需要20ms P0单独一个cpu,P1和P2安排在同一个CPU,则需要10+20 = 30ms

    第十四题 略

    第十五题 内存命中类问题

    总时间= 0.95 * 1ns + 0.05 * 0.99 * 10ns + 0.05 * 0.01 * 10ms

    第十七题 介绍陷阱指令

    将一个处理器的执行模式从用户模式切换到内核模式, 陷阱指令将一个处理器的执行模式从用户模式切换到内核模式.该指令允许用户程序调用操作系统内核中的函数.

    第十八题 分时系统为什么需要进程表

    进程表是为了存储当前被挂起,阻塞等进程状态.分时系统当然需要. 只有单一进程的系统不需要进程表.

    第十九题 在非空的目录中安装文件系统

    第二十题 一些linux API

    fork失败: 达到了最大进程数 exec失败: 文件不具有执行权限/或者文件位置不对 unlink失败: 文件不存在 或者 调用unlink的进程不具有权限

    第二十二题

    不能.如果调用成功,函数返回1.而当读取了1个字节的数据时,函数也是返回1,则无法区分.

    第二十三题

    1592 SEEK_SET是文件开头,然后lseek定位到第3个字节,即"4" read再读取4个字节

    第二十四题

    找到磁道: (100 - 50) * 1ms = 50ms 转到数据开始位置: 5ms 读数据: 10mb / (200 mb/s) = 50ms 共需要 50 + 5 + 50 = 105 ms

    第二十五题

    基本差别是是否支持随机存取.快特殊文件可以随机读取某个块.

    第二十六题

    系统调用实际上是没有名字的!!! 它只是内核表中的一个个表项. linux核心会系统一些c函数对这些系统调用就行包装,习惯上也称他们为系统调用.

    第二十七题 内存

    扩大了地址的范围允许

    第二十八题

    以下略

    Processed: 0.010, SQL: 8