操作系统--第七章 文件管理--习题答案

操作系统第四版课后的全部习题答案,学习通作业答案。
说明:操作系统其他章节的习题答案也在此“操作系统”专栏。

第七章

1.操作系统包括哪几种类型的用户接口?它们分别适用于哪种情况?

答:操作系统包括四种类型的用户接口:命令接口(分为联机与脱机命令接口)、程序接口、图形化用户接口和网络用户接口。

命令接口和图形化用户接口支持用户直接通过终端来使用计算机系统,程序接口提供给用户在编制程序时使用,网络用户接口是面向网络应用的接口。

2.联机命令接口由哪些部分构成?

答:联机命令接口由一组联机命令、终端处理程序和命令解释程序构成。

3.联机命令通常包含哪些类型?每种类型又包含哪些主要命令?

答:联机命令通常包含如下类型:

(1)系统访问类,主要是注册命令login、password;

(2)磁盘操作类,包括磁盘格式化format、软盘复制diskcopy、软盘比较diskcomp及备份backup等命令;

(3)文件操作类,包括文件显示type、文件拷贝copy、文件比较comp、文件重命名rename、文件删除erase等命令;

(4)目录操作类,包括子目录建立mkdir、目录显示dir、子目录删除rmdir、目录结构显示tree、当前目录改变chdir等命令;

(5)其它命令,包括输入输出重定向>、<,管道联接|、过滤命令/,批命令.bat等。

4.什么是输入输出重定向?试举例说明。

答:命令的输入通常取自标准输入设备键盘,命令输出则送往标准输出设备显示终端。如果在命令中设置输出定向“>”,其后接文件或设备名,则命令的结果输出将送到指定文件或设备上;如果使用输入重定向“<”,则不从键盘而是从重定向符右边的指定文件或设备上取得输入信息。这就是输入输出的重定向。

5.何谓管道联接?试举例说明。

答:管道联接是指把第一个命令的输出作为第二个命令的输入,或把第二个命令的输出作为第三条命令的输入,以此类推,由两条以上的命令可形成一条管道。在MS-DOS和UNIX中,都用"|"作为管道符号。其一般格式为:command1 |command2 | …|commandn。

6.终端设备处理程序的主要作用是什么?它具有哪些功能?

答:主要用于实现人机交互,它具有以下功能:

(1)接收用户从终端上键入的字符;(2)字符缓冲,用于暂存接收的字符;(3)回送显示;(4)屏幕编辑; (5)特殊字符处理。

7.命令解释程序的主要作用是什么?

答:主要作用是:在屏幕上给出提示符,请用户输入命令,读入并识别命令,转至相应命令处理程序入口地址,把控制权交给该处理程序执行,最后将处理结果或出错信息送屏幕显示。

8.试说明MS-DOS的命令处理程序COMMAND.COM的工作流程。

答:COMMAND.COM的工作流程如下:

(1)系统通电或复位后,初始化程序对整个系统完成初始化工作,自动执行Autoexec.bat文件,然后把控制权交给暂存部分,给出提示符等待接收用户键入命令;

(2)暂存部分读入键盘缓冲区中的命令,判别文件名、扩展名及驱动器名是否正确,若有错则出错返回,正确则查找和识别命令;

(3)若为内部命令,暂存部分找到后便从对应表项中获得命令处理程序的入口地址并执行;若为外部指令,则建立命令行,执行系统调用exec装入其命令处理程序,得到对应基地址并执行;若键入命令非法,则出错返回;

(4)命令完成后,控制权重新交给暂存部分给出提示符等待接收用户命令,转(2)。

9.为了将已存文件改名,应用什么UNIX 命令?

答:对已存文件改名的命令为mv,其格式为:mv oldname newname。

10.要想将工作目录移到目录树的某指定点上,应利用什么命令?

答:用命令“cd …”或“cd .”将当前目录上移或转移,直到工作目录移到目录树的指定点。

11.如果希望把file1的内容附加到原有的文件file2的末尾,应用什么指令?

答: $catfile1>>file4

12.试比较mail和write命令的作用有何不同?

答: mail命令作为UNIX 的多用户之间非交互式通信的工具。write命令是用户与当前系统中的其他用户直接进行联机通讯的工具。

13. 试比较一般的过程调用和系统调用?

答: 系统调用本质上是过程调用的一种特殊形式,与一般过程调用有差别:

(1)运行状态不同。一般过程调用的调用过程和被调用过程均为用户程序,或者均为系统程序,运行在同一系统状态(用户态或系统态);系统调用的调用过程是用户态下的用户程序,被调用过程是系统态下的系统程序。

(2)软中断进入机制。一般的过程调用可直接由调用过程转向被调用过程;而系统调用不允许由调用过程直接转向被调用过程,一般通过软中断机制,先进入操作系统内核,经内核分析后,才能转向相应命令处理程序。

(3)返回及重新调度。一般过程调用在被调用结束后,返回调用点继续执行;系统调用被调用完后,要对系统中所有运行进程重新调度。只有当调用进程仍具有最高优先权才返回调用过程继续执行。

(4)嵌套调用。一般过程和系统调用都允许嵌套调用,注意系统过程嵌套而非用户过程。

14.什么是系统调用?它都有哪些类型?

答:系统调用是指在操作系统内核设置的一组用于实现各种系统功能的子程序或过程,并提供给用户程序调用。主要类型包括:

(1)进程控制类。用于进程创建、终止、等待、替换、进程数据段大小改变及进程标识符或指定进程属性获得等;

(2)文件操纵类。用于文件创建、打开、关闭、读/写及文件读写指针移动和属性修改,目录创建及索引结点建立等;

(3)进程通信类,用于实现通信机制如消息传递、共享存储区及信息量集机制等;

(4)信息维护类,用于实现日期、时间及系统相关信息设置和获得。

15.如何设置系统调用所需的参数?

答:设置系统调用参数包括两种方式:

(1)直接将参数送入相应的寄存器中。问题是寄存器有限,限制了设置参数的数目。

(2)参数表方式。将系统调用所需参数,放入参数表中,再将该表指针放在寄存器中。

16.试说明系统调用的处理步骤。

答:(1)设置系统调用号和参数。

(2)对系统调用命令的一般性处理。如保护CPU现场,PSW、PC、系统调用号、用户栈指针及通用寄存器入栈,保存用户定义参数等。UNIX中执行CHMK 命令将参数表中的参数传到User结构的U.U-arg()中;MS-DOS执行INT21软中断。

(3)根据系统调用入口表及具体系统调用命令转至对应命令处理程序具体处理。

17.为什么在访问文件前,要用open系统调用先打开该文件?

答: 系统将在用户与该文件之间建立一条快捷通路。在文件被打开后,系统将给用户返回一个该文件的句柄或描述符。

18.在UNIX系统中是否设置了专门用来删除文件的系统调用?为什么?

答: 没有。当用户不再使用此文件时,利用系统调用unlink断开连接,做i.link减1操作。

当i.link减1结果为0,表示此文件不再被用户需要,该文件将从文件系统中删除。

19.在IPC软件包中包含哪几种通信机制?在每种通信机制中设置了那些系统调用?

答: IPC 中提供了三种通信机制:

(1)消息机制。存在msgget,msgsend,msgrcv 系统调用。

(2)共享存储器机制。存在shmget,shmid,shmdt 系统调用。

(3)信号量机制。无系统调用。

20. trap.S是什么程序?它完成哪些主要功能?

答:UNIX系统V 内核中的trap.S文件,是中断和陷入总控程序。用于中断和陷入的一般性处理,由汇编语言编写。trap.S 中包含了绝大部分的中断和陷入向量的入口地址,每当系统发生中断和陷入时,通常都是直接进入trap.S程序。

21.在UNIX 系统内,被保护的CPU环境中包含哪些数据项?

答:当用户程序处在用户态且执行CHMK (CHange Mode toKernel)之前,应在用户空间提供系统调用所需参数表,并将参数表地址送入R0寄存器。执行CHMK命令后,处理机转为核心态,由硬件自动将处理机状态长字(PSL)、PC和代码操作数(code)压入用户核心栈,从中断和陷入向量表中取出trap.S入口地址,转入trap.S中执行。

trap.S 程序执行后,将陷入类型type 和用户栈指针usp压入用户核心栈,将被中断进程的CPU环境中的一系列寄存器如R0~R11的部分或全部压栈。哪些寄存器内容压栈,取决于特定寄存器的屏蔽码,屏蔽码每一位都与R0~R11中的寄存器相对应。当某一位置1时,表示对应寄存器内容压栈。

22. trap.C 是什么程序?它将完成哪些处理?

答:trap.C 程序是处理各种陷入情况的C 语言文件,共处理12种陷入后的公共问题。包括:确定系统调用号、实现参数传递、转入相应系统调用处理子程序。在由系统调用子程序返回到trap.C后,重新计算进程的优先级,对收到的信号进行处理等。

23.为方便转入系统调用处理程序,在UNIX系统中配置了什么样的数据结构?

答:在UNIX系统中配置了系统调用定义表sysent[],在表的每个结构中包含三个元素,一是相应系统调用所需参数的个数;二是系统调用经寄存器传送的参数个数;三是相应系统调用处理子程序的入口地址。系统中设置了该表之后,可根据系统调用号i从系统调用定义表中找出相应表目,按表目中的入口地址转入相应处理子程序,完成系统调用的特定功能。执行完后,返回中断和陷入总控程序中的trap.C程序中,返回断点前的公共处理部分。

整理不易,如有帮助请点赞支持!谢谢!关注我,让你学到更多软件工程知识!

你可能感兴趣的:(《操作系统》,操作系统,os)