兰州大学操作系统实验五详细答案
操作系统教程第5版部分习题答案(1)

第一章:一、3、10、15、23、27、353.什么是操作系统?操作系统在计算机系统中的主要作用是什么?操作系统是管理系统资源、控制程序执行、改善人机界面、提供各种服务,并合理组织计算机工作流程和为用户有效地使用计算机提供良好运行环境的一种系统软件.主要作用(1)服务用户—操作系统作为用户接口和公共服务程序(2)进程交互—操作系统作为进程执行的控制者和协调者(3)系统实现—操作系统作为扩展机或虚拟机(4)资源管理—操作系统作为资源的管理者和控制者10.试述系统调用与函数(过程)调用之间的区别。
(1)调用形式和实现方式不同;(2)被调用的代码位置不同;(3)提供方式不同15.什么是多道程序设计?多道程序设计有什么特点?多道程序设计是指允许多个作业(程序)同时进入计算机系统内存并执行交替计算的方法。
从宏观上看是并行的,从微观上看是串行的。
(1)可以提高CPU、内存和设备的利用率;(2)可以提高系统的吞吐率,使单位时间内完成的作业数目增加;(3)可以充分发挥系统的并行性,使设备和设备之间,设备和CPU之间均可并行工作。
23.现代操作系统具有哪些基本功能?请简单叙述之。
(1)处理器管理;(2)存储管理;(3)设备管理;(4)文件管理;(5)联网与通信管理。
27.什么是操作系统的内核?内核是一组程序模块,作为可信软件来提供支持进程并发执行的基本功能和基本操作,通常驻留在内核空间,运行于内核态,具有直接访问计算机系统硬件设备和所有内存空间的权限,是仅有的能够执行特权指令的程序。
35.简述操作系统资源管理的资源复用技术。
系统中相应地有多个进程竞争使用资源,由于计算机系统的物理资源是宝贵和稀有的,操作系统让众多进程共享物理资源,这种共享称为资源复用。
(1)时分复用共享资源从时间上分割成更小的单位供进程使用;(2)空分复用共享资源从空间上分割成更小的单位供进程使用。
.二、2、52、答:画出两道程序并发执行图如下:(1)两道程序运行期间,CPU存在空闲等待,时间为100至150ms之间(见图中有色部分)。
兰州大学操作系统实验五进程管理题目和答案

实验五实验五实验名称:进程管理实验目的:1.进一步学习进程的属性2.学习进程管理的系统调用3.掌握使用系统调用获取进程的属性、创建进程、实现进程控制等4.掌握进程管理的基本原理实验时间pcb6学时预备知识:1.进程属性1.1 getpid(取得进程ID)表头文件#include<unistd.h>定义函数pid_t getpid(void);函数说明getpid()用来取得目前进程的进程ID,许多程序利用取到的此值来建立临时文件,以避免临时文件相同带来的问题。
返回值目前进程的进程ID范例1.2 getppid(取得父进程的进程ID)表头文件#include<unistd.h>定义函数pid_t getppid(void);函数说明getppid()用来取得目前进程的父进程ID。
返回值目前进程的父进程ID。
1.3 getegid(取得有效的组ID)/etc/shadow 存放用户口令信息,主人是root表头文件#include<unistd.h> 默认是只读,当然可以修改自己的这个权限#include<sys/types.h> 其他用户可以通过申请,修改自己的这些定义函数gid_t getegid(void); ls -l /usr/bin/passwd函数说明getegid()用来取得执行目前进程有效(effective)组ID。
有效的组ID用来决定进程执行时组的权限。
返回值返回有效的组ID。
Group 组1.4 geteuid(取得有效的用户ID)表头文件#include<unistd.h>#include<sys/types.h>定义函数uid_t geteuid(void)函数说明geteuid()用来取得执行目前进程有效的用户ID。
有效的用户ID用来决定进程执行的权限,借由此改变此值,进程可以获得额外的权限。
倘若执行文件的setID位已被设置,该文件执行时,其进程的euid值便会设成该文件所有者的uid。
计算机操作系统实验报告答案

《操作系统》实验报告专业年级:姓名:学号:提交日期:实验一:操作系统环境1.1 Windows 2000 系统管理(实验估计时间:60分钟)实验内容与步骤1、计算机管理2、事件查看器3、性能监视4、服务5、数据库(ODBC)为了帮助用户管理和监视系统,Windows 2000提供了多种系统管理工具,其中最主要的有计算机管理、事件查看器和性能监视等。
步骤1:登录进入Windows 2000 Professional。
步骤2:在“开始”菜单中单击“设置”-“控制面板”命令,双击“管理工具”图标。
在本地计算机“管理工具”组中,有哪些系统管理工具,基本功能是什么:1) 本地安全策略:查看和修改本地安全策略,如用户权限和审核策略。
2) 服务:启动和停止服务。
3) 计算机管理器:管理磁盘以及使用其他系统工具来管理本地或远程的计算机。
4) 事件查看器:显示来自于 Windows 和其他程序的监视与排错消息。
5) 数据源:添加、删除、以及配置 ODBC 数据源和驱动程序。
6) 性能:显示系统性能图表以及配置数据日志和警报。
7) 组件服务:配置和管理 COM+ 应用程序。
1. 计算机管理使用“计算机管理”可通过一个合并的桌面工具来管理本地或远程计算机,它将几个Windows 2000管理实用程序合并到一个控制台目录树中,使管理员可以轻松地访问特定计算机的管理属性和工具。
步骤3:在“管理工具”窗口中,双击“计算机管理”图标。
“计算机管理”使用的窗口与“Windows资源管理器”相似。
在用于导航和工具选择的控制台目录树中有“系统工具”、“存储”及“服务和应用程序”等节点,窗口右侧“名称”窗格中显示了工具的名称、类型或可用的子工具等。
它们是:1)系统工具,填入表2-3中。
表2-3 实验记录2) 存储,填入表2-4中。
3) 服务和应用程序,填入表2-5中。
2. 事件查看器事件查看器不但可以记录各种应用程序错误、损坏的文件、丢失的数据以及其他问题,而且还可以把系统和网络的问题作为事件记录下来。
【最新精选】操作系统第5章作业答案

赵盈盈 2011210593 第五章作业1. 存储管理的功能及目的是什么?答:存储管理功能:内存分配与管理。
(1)记住每个存储区域的状态。
(2)实施分配。
分配方式有两种:静态分配与动态分配(3)回收。
内存共享。
共享的信息包括:代码共享(纯代码),数据共享存储保护。
存储保护内容有:保护系统程序区不受用户有意无意的侵犯;不允许用户程序写不属于自己地址空间的数据。
(1)以防止地址越界;(2)以防止操作越权“扩充”内存容量。
具体实现是在硬件支持下,软件硬件相互协作,将内存与外存结合起来统一使用。
地址映射。
也称作重定位。
将逻辑地址转换成物理地址。
有两种方法:静态地址映射,动态地址映射。
存储管理目的:充分利用内存,为多道程序并发执行提供存储基础;尽可能方便用户使用;解决程序空间比实际内存空间大的问题;程序在执行时可以动态伸缩;内存存取速度快;存储保护与安全;共享与通信;了解有关资源的使用状况;实现的性能和代价;2. 什么是逻辑地址?什么是物理地址?为什么要进行二者的转换工作?答:逻辑地址:就是cpu逻辑段管理内存而形成的地址。
物理地址:就是程序或数据在内存中的实际地址,即内存单元的地址,也就是被装入内存的内存地址寄存器的地址。
转换原因:当程序装入内存时,操作系统要为之分配一个合适的内存空间,由于程序逻辑地址与所分配到的内存物理地址编号不一致,而cpu执行指令时是按物理地址进行的,所以要进行地址转换。
3. 什么是动态地址重定位?试用图画出动态地址重定位的过程。
答:动态地址重定位就是指动态地址映射。
是地址映射的一种方式。
它是在程序执行过程中要访内存空间4. 在分区分配方案中,回收一个分区时有几种不同的邻接情况,在各种情况下应如何处理? 答:有四种:上邻,下邻,上下相邻,上下不相邻。
(1)回收分区的上邻分区是空闲的,需要将两个相邻的空闲区合并成一个更大的空闲区,然后修改空闲区表。
(2)回收分区的下邻分区是空闲的,需要将两个相邻的空闲区合并成一个更大的空闲区,然后修改空闲区表。
操作系统教程课后习题参考答案

操作系统教程课后习题参考答案习题一习题二习题三习题四习题五习题六习题一1.设计操作系统的主要目的是什么?设计操作系统的目的是:(1)从系统管理人员的观点来看,设计操作系统是为了合理地去组织计算机工作流程,管理和分配计算机系统硬件及软件资源,使之能为多个用户所共享。
因此,操作系统是计算机资源的管理者。
(2)从用户的观点来看,设计操作系统是为了给用户使用计算机提供一个良好的界面,以使用户无需了解许多有关硬件和系统软件的细节,就能方便灵活地使用计算机。
2.操作系统的作用可表现在哪几个方面?(1) 方便用户使用:操作系统通过提供用户与计算机之间的友好界面来方便用户使用。
(2) 扩展机器功能:操作系统通过扩充硬件功能和提供新的服务来扩展机器功能。
(3) 管理系统资源:操作系统有效地管理系统中的所有硬件和软件资源,使之得到充分利用。
(4) 提高系统效率:操作系统合理组织计算机的工作流程,以改进系统性能和提高系统效率。
(5)构筑开放环境:操作系统遵循国际标准来设计和构造一个开放环境。
其含义主要是指:遵循有关国际工业标准和开放系统标准,支持体系结构的可伸缩性和可扩展性;支持应用程序在不同平台上的可移植性和互操作性。
3.试叙述脱机批处理和联机批处理工作过程(1)联机批处理工作过程用户上机前,需向机房的操作员提交程序、数据和一个作业说明书,后者提供了用户标识、用户想使用的编译程序以及所需的系统资源等基本信息。
这些资料必须变成穿孔信息,(例如穿成卡片的形式),操作员把各用户提交的一批作业装到输入设备上(若输入设备是读卡机,则该批作业是一叠卡片),然后由监督程序控制送到磁带上。
之后,监督程序自动输入第一个作业的说明记录,若系统资源能满足其要求,则将该作业的程序、数据调入主存,并从磁带上调入所需要的编译程序。
编译程序将用户源程序翻译成目标代码,然后由连接装配程序把编译后的目标代码及所需的子程序装配成一个可执行的程序,接着启动执行。
兰大18秋《操作系统课程作业_C(满分)

------------------------------------------------------------------------------------------------------------------------------ 单选题为了允许不同的用户可以使用相同的文件名,通常在文件系统中采用()。
A: 重名转换机制B: 存取控制方式C: 多级目录结构D: 标识符对照表单选题文件的存取方法依赖于()。
A: 文件的物理结构B: 存放文件的存储设备的特性C: A和BD: 文件的逻辑结构单选题磁盘与主机之间传递数据是以()为单位进行的。
A: 字节B: 字C: 数据块D: 文件单选题启动外设前必须组织好通道程序,通道程序是由若干()组成。
A: CCWB: CSWC: CAWD: PSW单选题在一单用户操作系统中,当用户编辑好一个程序要存放到磁盘上去的时候,他使用操作系统提供的()这一接口。
A: 键盘命令B: 作业控制命令C: 鼠标操作D: 原语单选题()是一种能由P和V操作所改变的整型变量。
A: 控制变量B: 锁C: 整型信号量D: 记录型信号量单选题LRU页面调度算法是选择()的页面先调出。
A: 最近才使用B: 最久未被使用C: 驻留时间最长D: 驻留时间最短------------------------------------------------------------------------------------------------------------------------------ 单选题为了使多个进程能有效地同时处理输入和输出,最好使用()。
A: 缓冲区B: 闭缓冲区环C: 多缓冲区D: 双缓冲区单选题下列()存储管理方式能使存储碎片尽可能少,而且使内存利用率较高。
A: 固定分区B: 可变分区C: 分页管理D: 段页式管理单选题如果允许不同用户的文件可以具有相同的文件名,通常采用()来保证按名存取的安全。
兰州大学智慧树知到“计算机科学与技术”《操作系统》网课测试题答案5

兰州大学智慧树知到“计算机科学与技术”《操作系统》网课测试题答案(图片大小可自由调整)第1卷一.综合考核(共15题)1.可实现虚拟存储器的存储管理方式有()。
A.固定分区B.段式C.页式D.段页式2.若中央处理机处于“管态”,可以执行的指令有()。
A.读系统时钟B.写系统时钟C.读用户内存自身数据D.写用户内存自身数据E.清除整个内存3.进程间的互斥是一种特殊的同步关系。
()A.正确B.错误4.程序在运行时需要很多系统资源,如内存、文件、设备等,因此操作系统以程序为单位分配系统资源。
()A.正确B.错误5.在文件系统中,()的逻辑文件中记录顺序与物理文件中占用物理块顺序一致。
A.Hash文件B.顺序文件C.索引文件D.链接文件6.若系统中有五个并发进程涉及某个相同的变量A,则变量A的相关临界区是由()临界区构成。
A.2个B.3个C.4个D.5个7.页表的作用是实现逻辑地址到物理地址的映射。
()A.正确B.错误8.任何两个并发进程之间存在着()的关系。
A.各自完全独立B.拥有共享变量C.必须互斥D.可能相互制约9.设备驱动程序具有哪些特点?10.按文件用途来分,编辑程序是()。
A.系统文件B.文档文件C.用户文件D.库文件11.进程和程序的一个本质区别是()。
A.前者分时使用CPU,后者独占CPUB.前者存储在内存,后者存储在外存C.前者在一个文件中,后者在多个文件中D.前者为动态的,后者为静态的12.某系统有同类资源m个,它们供n个进程共享。
若每个进程最多申请x个资源(1≤x≤m),问:各进程申请资源之和在什么范围内系统不会发生死锁?13.每一个进程都有一个从创建到消亡的生命周期,创建一个进程是指为一个程序分配一个工作区和建立一个进程控制块,因而,一个进程消亡时应删除它的程序、工作区和进程控制块。
()A.正确B.错误14.在进入线程的OS中,线程是资源分配和调度的基本单位。
()A.正确B.错误15.在多道程序系统,进程需要等待某种事件的发生时,进程一定进入阻塞状态。
操作系统教程第5版部分习题标准答案

第一章:一、3、10、15、23、27、353.什么是操作系统?操作系统在计算机系统中的主要作用是什么?操作系统是管理系统资源、控制程序执行、改善人机界面、提供各种服务,并合理组织计算机工作流程和为用户有效地使用计算机提供良好运行环境的一种系统软件.主要作用(1)服务用户—操作系统作为用户接口和公共服务程序(2)进程交互—操作系统作为进程执行的控制者和协调者(3)系统实现—操作系统作为扩展机或虚拟机(4)资源管理—操作系统作为资源的管理者和控制者10.试述系统调用与函数(过程)调用之间的区别。
(1)调用形式和实现方式不同;(2)被调用的代码位置不同;(3)提供方式不同15.什么是多道程序设计?多道程序设计有什么特点?多道程序设计是指允许多个作业(程序)同时进入计算机系统内存并执行交替计算的方法。
从宏观上看是并行的,从微观上看是串行的。
(1)可以提高CPU、内存和设备的利用率;(2)可以提高系统的吞吐率,使单位时间内完成的作业数目增加;(3)可以充分发挥系统的并行性,使设备和设备之间,设备和CPU之间均可并行工作。
23.现代操作系统具有哪些基本功能?请简单叙述之。
(1)处理器管理;(2)存储管理;(3)设备管理;(4)文件管理;(5)联网与通信管理。
27.什么是操作系统的内核?内核是一组程序模块,作为可信软件来提供支持进程并发执行的基本功能和基本操作,通常驻留在内核空间,运行于内核态,具有直接访问计算机系统硬件设备和所有内存空间的权限,是仅有的能够执行特权指令的程序。
35.简述操作系统资源管理的资源复用技术。
系统中相应地有多个进程竞争使用资源,由于计算机系统的物理资源是宝贵和稀有的,操作系统让众多进程共享物理资源,这种共享称为资源复用。
(1)时分复用共享资源从时间上分割成更小的单位供进程使用;(2)空分复用共享资源从空间上分割成更小的单位供进程使用。
.二、2、52、答:画出两道程序并发执行图如下:(1)(见图中有色部分)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验五实验名称:进程管理实验报告:实验要求: cat /etc/group (查看组信息)1.编写一个程序,打印进程的如下信息:进程标识符,父进程标识符,真实用户ID,有效用户ID,真实用户组ID,有效用户组ID。
并分析真实用户ID和有效用户ID的区别。
代码如下:#include<unistd.h>#include<stdio.h>int main(){printf("***********\n");printf("This is the process\n");printf(" pid=%d\n",getpid());printf("ppid=%d\n",getppid());printf(" uid=%d\n",getuid());printf("euid=%d\n",geteuid());printf(" gid=%d\n",getgid());printf("egid=%d\n",getegid());}真实用户ID和有效用户ID的区别:真实用户ID:这个ID就是我们登陆unix系统时的身份ID。
有效用户ID:定义了操作者的权限。
有效用户ID是进程的属性,决定了该进程对文件的访问权限.2.阅读如下程序:/*process using time */#include<stdio.h>#include<stdlib.h>#include<sys/times.h>#include<time.h>#include<unistd.h>void time_print(char *,clock_t);int main(void){clock_t start,end;struct tms t_start,t_end;start = times(&t_start);system(“grep the /usr/doc/*/*> /dev/null2> /dev/null”); // > 将信息放到该文件null中end=times(&t_end); //0 1 2 标准输入标准输出错误输出time_ print(“elapsed”,end-start);puts(“parent times”);time _print(“\tuser CPU”,t_end.tms _utime);time_ print(“\tsys CPU”,t_end.tms_stime);//获得执行system()的子进程IDputs(“child times”);time_print(“\tuser CPU”,t_end.tms_cutime);time_print(“\tsys CPU”,t_end.tms_cstime);exit(EXIT_SUCCESS);}void time_print(char *str, clock_t time){long tps = sysconf(_SC_CLK_TCK);/*函数sysconf()的作用为将时钟滴答数转化为秒数,_SC_CLK_TCK 为定义每秒钟有多少个滴答的宏*/printf(“%s: %6.2f secs\n”,str,(float)time/tps);}编译并运行,分析进程执行过程的时间消耗(总共消耗的时间和CPU消耗的时间),并解释执行结果。
再编写一个计算密集型的程序替代grep,比较两次时间的花销。
注释程序主要语句。
因为该程序计算量很小,故消耗的时间比较少,均为0.00secs 不奇怪。
而更改为计算密集型的之后就较容易观察出消耗时间的差异,如图所示。
3.阅读下列程序:/* fork usage */#include<unistd.h>#include<stdio.h>#include<stdlib.h>int main(void){pid_t child;if((child=fork())==-1{perror(“fork”);exit(EXIT_FAILURE);}else if(child==0){puts(“in child”);printf(“\tchild pid = %d\n”,getpid()); //取得目前进程的进程IDprintf(“\tchild ppid = %d\n”,getppid());//取得目前进程的父进程IDexit(EXIT_SUCCESS);}else{puts(“in parent”);printf(“\tparent pid = %d\n”,getpid());printf(“\tparent ppid = %d\n”,getppid());}exit(EXIT_SUCCESS);}编译并多次运行,观察执行输出次序,说明次序相同(或不同)的原因;观察进程ID,分析进程ID的分配规律。
总结fork()的使用方法。
注释程序主要语句。
创建进程ID开始时一般随机分配,但若多次运行,或创建子进程时,会顺序分配内存。
此外,当父进程结束时,子进程尚未结束,则子进程的父进程ID变为1,即init fork()的使用方法:fork()会产生一个新的子进程,其子进程会复制父进程的数据与堆栈空间,如果fork()成功则在父进程会返回新建立的子进程代码(PID),而在新建立的子进程中则返回0。
如果fork 失败则直接返回-1,失败原因存于errno中。
在父进程中用fork()创建子进程,通过返回值if语句判断来进行父子进程代码执行。
4.阅读下列程序:/* usage of kill,signal,wait */#include<unistd.h>#include<stdio.h>#include<sys/types.h>#include<signal.h>int flag;void stop(); //该函数是自定义的一个single()触发的自定义函数int main(void){int pid1,pid2; //定义了两个进程号参数signal(3,stop); //signal() 触发软中断while((pid1=fork()) ==-1); //程序等待成功创建子进程事件的发生if(pid1>0){while((pid2=fork()) ==-1);if(pid2>0){ //当前进程为父进程,父进程发出两个中断信号Kill子进程flag=1;sleep(5);kill(pid1,16);kill(pid2,17);wait(0); //等待子进程死信号wait(0);printf(“\n parent is killed\n”); //接收到子进程死信号后,杀死父进程exit(EXIT_SUCCESS);}else{ //当前进程为子进程,则发送子进程Kill信号,杀死该子进程2 flag=1;signal(17,stop);printf(“\n child2 is killed by parent\n”);exit(EXIT_SUCCESS);}}else{ //当前进程为子进程,则发送子进程Kill信号,杀死该子进程1 flag=1;signal(16,stop);printf(“\n child1 is killed by parent\n”);exit(EXIT_SUCCESS);}}void stop(){ //自定义函数,供signal()调用flag = 0;}编译并运行,等待或者按^C,分别观察执行结果并分析,注释程序主要语句。
flag有什么作用?通过实验说明。
每个进程(父进程,子进程)都有一个flag,起状态标志作用,flag=1时,表示进程在运行,flag=0,表示进程结束。
5.编写程序,要求父进程创建一个子进程,使父进程和子进程各自在屏幕上输出一些信息,但父进程的信息总在子进程的信息之后出现。
(分别通过一个程序和两个程序实现)代码如下:Ptest.c ---------------一个程序实现方案(fork())#include<unistd.h>#include<stdio.h>#include<stdlib.h>main(){while((p=fork())==-1);//创建子进程直至成功if(p>0){wait(0);printf("***\n");printf("The parent process!\n");printf("***\n");exit(0);}else{printf("***\n");printf("The child process!\n");printf("***\n");sleep(3);exit(0);}}/////////////////////////////////////////////////////////////////////////////////////Ptest2.c ------------------两个程序实现方案(execl())#include<stdio.h>#include<unistd.h>#include<stdlib.h>int main(int argc,char *argv[]){int p,i;while((p=fork())==-1);//创建子进程直至成功if(p>0){wait(0);printf("***\n");printf("The parent process!\n");printf("***\n");exit(0);}else{printf("***\n");printf("The child process!\n");execl("/home/xingkong/ptest22",argv[1],(char*)0);printf("***\n");sleep(3);exit(0);}}#include<stdio.h>#include<unistd.h>int main(int argc,char *argv[]){int i;printf("*****\nThis is two process\n*****\n");for(i=0;i<argc;i++){printf("parameter %d is:%s\n",i,argv[i]);}return 0;}6.编写程序,要求父进程创建一个子进程,子进程执行shell命令find / -name hda* 的功能,子进程结束时由父进程打印子进程结束的信息。