《操作系统作业部分答案》由会员分享,可在线阅读,更多相关《操作系统作业部分答案(6页珍藏版)》请在金锄头文库上搜索。
1、第2章:Linux操作基础2-5已知有当前目录有如下文件:arp,egp,ggp,icmp,idp,ip,ipip,pup,rawip,rip,tcp,udp。写出以下echo命令的输出。1)echo *ip 显示:ip,ipip,rawip,rip,2)echo ?dp显示:idp,udp,3)echo aegi?p显示:arp,egp,ggp,idp2-8解释下列文件类型和存取权限1)drwxr-xr-x:目录文件,属主可打开目录查看内容、可增删目录内容和可进入该目录;同组及其它用户可进入目录和查看目录内容2)-rwxxx:普通文件,属主可读写运行,同组用户只能运行3)crw-rw-:字符
2、设备,属主和同组用户可读写,不可运行;其它用户不能操作使用它2-9用户主目录的访问权限是700,改目录下memo文件的访问权限是777,其它人可以读取这个文件吗?为什么?不可以读memo文件,700意味着其它用户进入不了也打开不了主目录2-13给出命令将.profile文件覆盖到主目录下的backup目录下cp -i .profile ./ backup2-14某文件mafile的权限为-rw-rr-,增加所有人可执行权限,应使用什么命令?chmod a+x mafile2-20已知项目源代码都存放在/project目录下,后缀名为“.c”或“.h”。用一个命令统计原代码的行数。wc -l *
3、.ch、或cat ./ project/*.ch|wc l第4章:Linux编程基础4-2,源文件myproc.c和misc.c,misc.c用到数学库函数1)给出将两个源文件直接编译成可执行文件prog的命令gcc o prog myproc.cgcc o prog misc.c lmath ; math是用到libmath.so数学库的库名2)两个源文件分别编译成目标文件myproc.o和misc.o的命令gcc c myproc.c gcc c misc.c lmath ; math是用到libmath.so数学库的库名3)将两个目标文件链接生成可执行文件prog的命令gcc o myp
4、roc.o misc.o4-3,修改例4.3的程序使之改变文件的属性,(提示curse函数库中的attron()及attroff()函数,查联机手册man curs_attr)原文件源文件hello3.c #include “print.h” main () char my_string = “Hello world!”; my_print(my_string); 源文件print.h void my_print(char *);源文件print.c#include #include void my_print(char *str) initscr(); /*进入curses全屏显示模式,清屏
5、幕 */ move(5,15); /*移动光标到屏幕(5,15)坐标处*/ printw (“%s”, str); /*向curses屏幕输出字符串*/ refresh(); /*刷新物理屏幕,显示出字符串*/ sleep(5); /*程序暂停5秒*/ endwin(); /*结束全屏模式,恢复行模式*/gcc -o hello3 hello3.c print.c -lcurses改源文件print.c#include #include void my_print(char *str) initscr(); /*进入curses全屏显示模式,清屏幕 */attron(A_UNDERLINE);
6、 /*加下划线*/ move(5,15); /*移动光标到屏幕(5,15)坐标处*/ printw (“%s”, str); /*向curses屏幕输出字符串*/ refresh(); /*刷新物理屏幕,显示出字符串*/sleep(5); /*程序暂停5秒*/attroff(A_UNDERLINE); endwin(); /*结束全屏模式,恢复行模式*/第9章:操作系统接口9-2, 什么是作业?作业和进程有何关系和区别作业是用户向系统提交事务的基本单位,进程是系统执行任务和调度资源的基本单位。作业对应一个或几个进程。作业调度是宏观的,进程调度是微观的。作业处于运行态时,所对应的一个或几个进程的
7、运行却是断断续续的。9-12,Shell内部命令与外部命令有何区别?内部命令是shell的基本命令,有cd等几十个,直接执行无需编译链接。外部命令是是以代码为基础编译链接而成的可执行文件第5章:进程管理5-5为何有几种运行模式、用户如何访问系统资源修改系统的关键设置需要特权,故LINUX有核心态特权模式和用户态低权限模式。用户通过系统调用函数访问系统资源5-6 Linux进程的必备资源有哪些?运行需要的内存地址空间,及所需的文件及信号等5-8 Linux如何创建进程?写时复用技术的目的?利用fork()函数(复制法)创建,提高进程的创建效率5-11进程调度的功能?策略?提高CPU使用效率,总体
8、上加快进程运行。先进先出法;短进程优先法;时间片轮转法;优先级调度法5-16临界资源与临界区,进程的互斥与同步一次仅允许一个进程使用的资源。是访问临界资源的程序片段。互斥使进程排他性使用临界资源。同步是进程间协调运行步骤的方式,如合作处理缓冲区数据5-20线程与进程区别?(1)线程是进程内的一个执行实体或执行单元。(2)进程和线程的区别:(a)不同进程的地址空间是独立的,而同一进程内的线程共享同一地址空间。 (b) 在引入线程的操作系统中,进程是资源分配和调度的单位,线程是处理机调度和分配的单位,资源是分配给进程的,线程只拥有很少资源,因而切换代价比进程切换低。第6章:存储管理6-1存储管理的
9、主要功能对内存储器进行分配、保护和扩充,把程序使用的逻辑地址映射成内存空间地址6-2逻辑地址?物理地址?为何转换?逻辑地址:经编译后的目标程序所用的地址。目标代码通常采用相对地址的形式,其首地址为0,其余指令中的地址都是相对首地址来编址。物理地址:程序在内存占用的实际地址,物理地址的集合称为物理地址空间,它是一个一维的线性空间。符号地址:高级语言源程序中由符号代表的地址。是编译前的代码的存储地址。因为程序必须装入内存后系统才能运行时,故不能用逻辑地址在内存中读取信息,必须将用户程序中的逻辑地址转换为运行时由机器直接寻址的物理地址,这一过程称为地址映射(地址变换),通过硬件实现。6-3静态地址变
10、换与动态地址变换区别?静态地址变换:程序装入内存前一次性完成地址转换。特点:程序在内存中不可移动。动态地址变换:在程序执行过程中,由动态地址变换机构实现地址转换(设置一个基地址寄存器-重定位寄存器。当一个进程被调度运行时,把它所在分区的起始地址装入到该寄存器中;在程序运行过程中,当需要访问内存单元时,硬件就自动地将其中的相对地址加上基地址寄存器的内容,形成实际的物理地址,然后按该地址去执行)。特点:程序在内存中可移动、可共享、可不连续存放。6-6已知页面大小2KB,及某进程页表(页面0/1/2/3分配的页帧号5/10/4/7),求逻辑地址5678对应的物理地址5678=2048*2+1582,
11、在第2页面,物理地址2048*4+1582=97746-7如何实现页存储保护与存储扩充?保护:CPU对程序要访问的地址进行检查,若有越界或越权的访问则终止进程的运行。在地址转换时通过长度和基址寄存器及硬件防止了越界,通过设置进程的访问权限、区分用户与核心态的保护工作模式防止了越权的访问扩充:分覆盖、交换与虚拟存储器技术。覆盖技术:由用户编程指定程序块间的覆盖关系。用户看到的是实际大小的内存。交换技术:系统将暂时不能运行的进程换出内存,以容纳更多的进程。用户看到的也是实际大小的内存。虚拟存储技术:程序运行中由系统动态地完成内存与外存之间的交换。用户看到的是一个比实际内存大得多的“虚拟内存”。6-
12、9 Linux的内存管理方案,x86上如何处理分段的?Linux系统采用请求页式存储管理方案,可提供4GB的虚拟存储空间。x86平台上的Linux系统采用了二级分页机制:把所有页表项按1K为单位划分为若干个子表,称为页表(最多1K个)。另用一个页目录表来记录每一个子表的位置。页表和页目录表都是1K项长(4KB)。x86使用段式管理机制,在此基础上启用分页管理机制(CR0寄存器PG位置1)可以运行Linux系统。实现地址转换的硬件是MMU,将虚拟地址经过段式和页式变换后转换成物理地址:线性地址=段基址+段内位移。Linux利用共享0基址段的方式,使x86的段式映射实际不起作用。于是虚拟地址与线性
13、地址一样,只需页式映射就可以转换成物理地址。6-10 Linux的进程地址空间是什么?它与物理空间有什么联系?进程的地址空间是指进程可以使用的全部线性地址的集合,每个Linux进程拥有4G地址空间,内核空间:最高的1G ,供内核代码使用;所有进程通过执行系统调用内核代码而共享此空间。用户空间:较低的3G ,供进程代码使用。是进程的私有空间。内核空间的代码常驻内存,线性地址高端的1G空间地址,经过页表映射转换成物理地址,处于内存的低端1G空间。用户的3G空间是进程建立后产生的各种虚存区空间。其中代码及数据表区段与硬盘的可执行文件对应(即硬盘的映像文件)。即将运行的虚存区的少量部分通过页表映射被装
14、入内存,系统为进程按需动态调页。当进程运行过程中发生缺页中断,缺页中断处理程序从磁盘中将所需的页装入物理内存,并更新页表项。当系统中内存不足时,通过内核交换进程kswapd来实现页面淘汰功能,将其交换到磁盘交换空间中。6-11 Linux的内存分配与回收采用什么算法?有什么特点?分配:伙伴(Buddy)算法:找到空闲区链表中2i大小的块。或从大块中分裂,空闲块可能遇到伙伴再合并。回收:也是伙伴算法,过程与分配算法相反,会进行伙伴合并。Linux的内存回收是主动的。增加连续内存空间几率,提高运行效率,但可能牺牲内存利用率第7章:文件管理7-1文件?文件系统与功能?文件:具有符号名字的一组相关元素
15、的有序集合。通常存放在外存中。文件系统:包括实施文件管理的软件和被管理的文件。文件管理软件是内核中的模块,文件按特定的格式存放在磁盘分区中。功能:提供文件访问接口,实现文件的“按名存取”。实施对文件的操作,包括建立、读写、检索、修改、删除等操作;实现外存空间的管理,包括分配、回收和重组等;实现对文件的共享、保密和保护措施;7-5 Linux的文件系统采用的逻辑结构与物理结构?逻辑结构是流式文件,物理结构采用多重索引方式。7-8在Ext文件系统中,超级块、组描述符、i节点是什么及用途?超级块:用来指示文件系统类型标识、数据块大小、总块数和i节点数、空闲块数和i节点数等,超级块记录了文件系统的基本信息。组描述符:指示块组中块位图、i节点位图和i节点表的位置等,组描述符记录了块组的描述信息。i节点:包含文件说明信息和索引表两部分,块组中