ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

《现代操作系统(中文第四版)》课后习题 第一章(部分)

2022-03-19 16:33:23  阅读:270  来源: 互联网

标签:文件 调用 课后 fd 第四版 进程 磁盘 习题 调用者


(受AlphalINF邀请,接着写16-26题)

16、在用户程序进行一个系统调用,以读写磁盘文件时,该程序提供指示说明了所需要的文件,一个指向数据缓冲区的指针以及计数。然后,控制权转给操作系统,它调用相关的驱动程序。假设驱动程序启动磁盘并且直到中断发生才终止。在从磁盘读的情况下,很明显,调用者会被阻塞(因为文件中没有数据)。在向磁盘写时会发生什么情况?需要把调用者阻塞一直等到磁盘传送完成为止吗?

有可能。向磁盘写时,如果调用者取回控制,在最终发生写操作时立刻重写数据,将会写入错误的数据
数据。但是如果驱动程序在返回前将数据复制到一个专用的缓冲器,那么调用者可以继续执行。另
外,可以允许调用者继续,当缓冲器被调用时,给它一个信号,不过这很麻烦并且容易出错。

17、什么是陷阱指令?在操作系统中它的用途。

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

18、分时系统中为什么需要进程表?在只有一个进程存在的计算机中,需要进程表吗?

进程表是为了存储当前被挂起、或者是被延迟和阻塞的进程状态。现代个人计算机有许许多多的进程在进行,即使当用户什么事都没做、什么程序都没有在运行时。它们需要检查更新,下载邮件以及许多其他的事。在单一进程的系统中不需要进程表,因为单一进程从不挂起。

19、说明有没有理由在一个非空的目录中安装一个文件系统。如果这样做,如何做?

有可能有理由,装配文件系统会使得装配目录中已有的任何文件都不可访问,所以装配点通常是空的。然而,系统管理人员可能需要将位于被装配目录中非常重要的文件复制到装配点,以至于它们在进行设备检查和修理时,可以在紧急事件中的普通路径找到这些文件。

20、对于下列系统调用,给出引起失败的条件:fork,exec以及unlink.

如果进程表中没有空闲的槽(或者没有内存和交换空间),fork将失败。如果所给的文件名不存在,或者不是一个有效的可执行文件,exec将失败。如果将要解除链接的文件不存在,或者调用unlink的进程没有权限,unlink将失败。

21、下列资源能使用哪种多路复用(时间、空间或者两者皆可):CPU、内存、磁盘、网卡、打印机、键盘以及显示器?

时间复用:CPU、网卡、打印机、键盘。

空间复用:内存、磁盘。

两者:显示。

22、在count = write(fd, buffer,nbytes);调用中,是否能将函数返回值传递给 count变量而不是nbtes变量?如果能,为什么?

调用可能失败,比如fd不正确,那么将返回-1。而磁盘满的时候,调用也失败,因为这时不可能写入被请求的字节数。而在正确的终止时,会总是返回nbytes。

23、有一个文件,其文件描述符是fd,内含下列字节序列:3,1,4,1,5,9,2,6,5,3,5。有如下系统调用:

lseek(fd, 3, SEEK_SET);

read(fd, &buffer, 4);

其中lseek调用寻找文件中的字节3。在读操作完成之后,buffer中的内容是什么?

答案:1、5、9、2

24、假设一个10MB的文件在磁盘连续扇区的同一个轨道上(轨道号:50)。磁盘的磁头臂此时位于第100号轨道。要想从磁盘上找回这个文件,需要多长时间? 假设磁头臂从一个柱面移动到下一个柱面需要1ms,当文件的开始部分存储在的扇区旋转到磁头下需要5ms,并且读的速率是100MB/s。

答:找到文件需要的时间=1ms*50(移动到50号磁道的时间)+ 5 ms (旋转到文件开始部分存储在的扇区的时间)+10/200*1000ms(读取10MB的时间)=105ms

25、块特殊文件和字符特殊文件的基本差别是什么?

块特殊文件包含被编号的块,每一块都可以独立地读取或者写入。而且定位任意块和开始读出或写入是很容易的。但是这对于字符特殊文件是不可能的。

26、在图1-7的例子中库调用称为read,而系统调用自身称为read,这两者都有相同的名字是正常的吗? 如果不是,哪一个更重要?

系统调用实际上没有名称,除了在文件中这样描述外。当库例程陷入内核时,它将系统调用号码放入寄存器或者堆栈中。这个号码通常用于一张表的索引。这里没有使用任何名称。另一方面,库例程的名称是非常重要的,因为它将用于程序中。

 

标签:文件,调用,课后,fd,第四版,进程,磁盘,习题,调用者
来源: https://www.cnblogs.com/lxhlxwly/p/16026899.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有