操作系统实验3(附带思考题)
- 格式:ppt
- 大小:374.00 KB
- 文档页数:10
课程设计(综合实验)报告( 2015 -- 2016 年度第 1 学期)名称:操作系统综合实验题目:oslab综合实验院系:计算机系班级:学号:学生姓名:指导教师:设计周数:分散进行成绩:日期:2015 年10 月29 日实验1 实验环境的使用一、综合实验的目的与要求熟悉操作系统集成实验环境OS Lab 的基本使用方法。
练习编译、调试EOS 操作系统内核以及EOS 应用程序。
二、实验正文1.启动 OS Lab2.1 执行项目Windows 控制台窗口内容显示2.2 调试项目2.2.1 使用断点中断执行2.2.2 单步调试2.2.2 .3单步调试结果显示:练习使用“逐语句”功能和“跳出”功能2.2.3 查看变量的值快速监视添加监视2.2.4 调用堆栈调用堆栈显示内容进入Func 函数双击 main 函数所在的行表示此函数是当前调用堆栈中的活动函数。
3 新建EOS 内核项目4 EOS 应用程序项目的生成和调试4.1 新建EOS 应用程序项目4.2 调试项目添加断点后单步调试结果显示4.3 查看软盘镜像文件中的内容4.4修改EOS 应用程序项目名称5 退出OS Lab6 保存EOS 内核项目三、综合实验总结或结论思考与练习:1.在哪些情况下应该使用“逐过程”调试,在哪些情况下应该使用“逐语句”调试。
答:逐语句为每执行一行语句,如果碰到函数调用它就会进入到函数里面。
而逐过程碰到函数时不进入函数,把函数调用当成一条语句去执行。
2. 生成EOS SDK 文件夹的目的和作用。
明白文件夹的组织结构和各个文件的来源和作用。
查看EOS 应用程序包含了SDK 文件夹中的哪些头文件,是如何包含的?(1)EOS SDK为应用程序调用系统API提供服务,可作为用户编程中使用的工具包集合。
(2)其主要包括INC头文件LIB文件夹、导入库文件和BIN文件夹、动态链接库、可执行程序、二进制文件。
(3)包含的头文件有:eos.h负责导出API函数,eosdef.h声明负责导出函数类型的定义,error.h负责导出错误码。
操作系统思考题(附答案)操作系统思考题〈本练习仅供熟悉期末考试题型⽤〉⼀、单项选择题(本⼤题共20 ⼩题,每⼩题1 分,共20 分) 。
在每⼩题列出的四个选项中只有⼀个选项是符合题⽬要求的,请将正确选项的字母填在题⼲中的括号内。
1. ()不是基本的操作系统。
A 、批处理操作系统C 、实时操作系统B 、分时操作系统D 、⽹络操作系统2. ()不是分时系统的基本特征:A 、同时性C 、实时性B 、独⽴性D 、交互性3. 处理器执⾏的指令被分成两类,其中有⼀类称为特权指令,它只允许( )使⽤。
A 、操作员B 、联机⽤户C 、操作系统D 、⽬标程序4 . 当⽤户程序执⾏访管指令时,中断装置将使中央处理器( ) ⼯作。
A 、维持在⽬态B 、从⽬态转换到管态C 、维持在管态D 、从管态转换到⽬态5. 进程所请求的⼀次打印输出结束后,将使进程状态从( )A 、运⾏态变为就绪态B 、运⾏态变为等待态C 、就绪态变为运⾏态D 、等待态变为就绪态6. 采⽤动态重定位⽅式装⼊的作业,在执⾏中允许( )将其移动。
A 、⽤户有条件地B 、⽤户⽆条件地7 . 分页式存储管理中,地址转换⼯作是由( )完成的。
A 、硬件B 、地址转换程序C、⽤户程序 D 、装⼊程序8 . 如果允许不同⽤户的⽂件可以具有相同的⽂件名,通常采⽤( )来保证按名存取的安全。
A 、重名翻译机构B 、建⽴索引表C、建⽴指针 D 、多级⾃录结构9 . 对记录式⽂件,操作系统为⽤户存取⽂件信息的最⼩单位是( )。
A 、字符B 、数据项C 、记录D 、⽂件10. 为了提⾼设备分配的灵活性,⽤户申请设备时应指定( )号。
A 、设备类相对B 、设备类绝对C、相对 D 、绝对11.通常把通道程序的执⾏情况记录在( )中。
A 、PSWB 、PCBC 、CAWD 、CSW12. 作业调度是从输⼊井中处于( )状态的作业中选取作业调⼊主存运⾏。
A 、运⾏B 、收容C、输⼊ D 、就绪13. ⼀作业进⼊内存后,则所属该作业的进程初始时处于( )状态。
第一章1.设计现代OS的主要目标是什么?答:(1)有效性(2)方便性(3)可扩充性(4)开放性2.OS的作用可表现在哪几个方面?答:(1)OS作为用户与计算机硬件系统之间的接口(2)OS作为计算机系统资源的管理者(3)OS实现了对计算机资源的抽象3.为什么说OS实现了对计算机资源的抽象?答:OS首先在裸机上覆盖一层I/O设备管理软件,实现了对计算机硬件操作的第一层次抽象;在第一层软件上再覆盖文件管理软件,实现了对硬件资源操作的第二层次抽象。
OS 通过在计算机硬件上安装多层系统软件,增强了系统功能,隐藏了对硬件操作的细节,由它们共同实现了对计算机资源的抽象。
4.试说明推动多道批处理系统形成和发展的主要动力是什么?答:主要动力来源于四个方面的社会需求与技术发展:(1)不断提高计算机资源的利用率;(2)方便用户;(3)器件的不断更新换代;(4)计算机体系结构的不断发展。
5.何谓脱机I/O和联机I/O?答:脱机I/O 是指事先将装有用户程序和数据的纸带或卡片装入纸带输入机或卡片机,在外围机的控制下,把纸带或卡片上的数据或程序输入到磁带上。
该方式下的输入输出由外围机控制完成,是在脱离主机的情况下进行的。
而联机I/O方式是指程序和数据的输入输出都是在主机的直接控制下进行的。
6.试说明推动分时系统形成和发展的主要动力是什么?答:推动分时系统形成和发展的主要动力是更好地满足用户的需要。
主要表现在:CPU 的分时使用缩短了作业的平均周转时间;人机交互能力使用户能直接控制自己的作业;主机的共享使多用户能同时使用同一台计算机,独立地处理自己的作业.7.实现分时系统的关键问题是什么?应如何解决?答:关键问题是当用户在自己的终端上键入命令时,系统应能及时接收并及时处理该命令,在用户能接受的时延内将结果返回给用户.解决方法:针对及时接收问题,可以在系统中设置多路卡,使主机能同时接收用户从各个终端上输入的数据;为每个终端配置缓冲区,暂存用户键入的命令或数据。
课程设计(综合实验)报告( 2015 -- 2016 年度第 1 学期)名称:操作系统综合实验题目:oslab综合实验院系:计算机系班级:学号:学生姓名:指导教师:设计周数:分散进行成绩:日期:2015 年10 月29 日实验1 实验环境的使用一、综合实验的目的与要求熟悉操作系统集成实验环境OS Lab 的基本使用方法。
练习编译、调试EOS 操作系统内核以及EOS 应用程序。
二、实验正文1.启动 OS Lab2.1 执行项目Windows 控制台窗口内容显示2.2 调试项目2.2.1 使用断点中断执行2.2.2 单步调试2.2.2 .3单步调试结果显示:练习使用“逐语句”功能和“跳出”功能2.2.3 查看变量的值快速监视添加监视2.2.4 调用堆栈调用堆栈显示内容进入Func 函数双击 main 函数所在的行表示此函数是当前调用堆栈中的活动函数。
3 新建EOS 内核项目4 EOS 应用程序项目的生成和调试4.1 新建EOS 应用程序项目4.2 调试项目添加断点后单步调试结果显示4.3 查看软盘镜像文件中的内容4.4修改EOS 应用程序项目名称5 退出OS Lab6 保存EOS 内核项目三、综合实验总结或结论思考与练习:1.在哪些情况下应该使用“逐过程”调试,在哪些情况下应该使用“逐语句”调试。
答:逐语句为每执行一行语句,如果碰到函数调用它就会进入到函数里面。
而逐过程碰到函数时不进入函数,把函数调用当成一条语句去执行。
2. 生成EOS SDK 文件夹的目的和作用。
明白文件夹的组织结构和各个文件的来源和作用。
查看EOS 应用程序包含了SDK 文件夹中的哪些头文件,是如何包含的?(1)EOS SDK为应用程序调用系统API提供服务,可作为用户编程中使用的工具包集合。
(2)其主要包括INC头文件LIB文件夹、导入库文件和BIN文件夹、动态链接库、可执行程序、二进制文件。
(3)包含的头文件有:eos.h负责导出API函数,eosdef.h声明负责导出函数类型的定义,error.h负责导出错误码。
实验内容和实验要求实验1:安装Linux系统(4学时)目的:1.学会在操作系统安装之前,根据硬件配置情况,制订安装计划。
2.学会在安装多操作系统前,利用硬盘分区工具(如PQMagic)为Linux准备分区。
3.学会Linux操作系统的安装步骤和简单配置方法。
4.学会Linux系统的启动、关闭步骤,初步熟悉Linux系统的用户界面。
内容:1.安装并使用硬盘分区工具(如PQMagic),为Linux准备好分区。
2.安装Linux系统(如红旗Linux桌面版)。
3.配置Linux系统运行环境。
4.正确地启动、关闭系统。
5.对图形界面进行一般操作。
要求:1.制订安装计划。
2.如果在机器上已安装了Windows系统,而且没有给Linux预备硬盘分区,则安装硬盘分区工具(如PQMagic),运行它,为Linux划分出一块“未分配”分区。
3.在光驱中放入Linux系统安装盘,启动系统。
按照屏幕提示,选择/输入相关参数,启动安装过程。
4.安装成功后,退出系统,取出安装盘。
重新开机,登录Linux系统。
5.对Linux系统进行配置,如显示设备、打印机等。
6.利用鼠标对图形界面进行操作。
说明:1.本实验应在教师的授权和指导下进行,不可擅自操作,否则可能造成原有系统被破坏。
2.如条件不允许每个学生亲自安装,可采用分组进行安装或课堂演示安装的方式。
实验2:Linux 应用及shell编程(4学时)目的:1.掌握Linux一般命令格式和常用命令。
2.学会使用vi编辑器建立、编辑文本文件。
3.了解shell的作用和主要分类。
4.学会bash脚本的建立和执行方式。
5.理解bash的基本语法。
6.学会编写简单的shell脚本。
内容:1.正确地登录和退出系统。
2.熟悉使用date,cal等常用命令。
3.进入和退出vi。
利用文本插入方式建立一个文件。
4.学会用gcc编译器编译C程序。
5.建立shell脚本并执行它。
6.学会使用shell变量和位置参数、环境变量。
《计算机操作系统实验指导》(Linux版)(附微课视频)实验思考解答第1章操作系统实验体系介绍第1章无实验思考。
第2章实验环境的搭建与使用1. 实验2.1 Linux常用命令的使用(1)在Linux 中,图形界面与终端控制台以及各终端控制台之间在如何切换?使用ALT+F1~ALT+F6进行各终端控制台切换2. 实验2.2 Linux下C程序的编写(1)make 工具的编译原理是什么?make 是一个命令工具,它解释 Makefile 中的指令(规则)。
在 Makefile文件中描述了整个工程所有文件的编译顺序、编译规则。
在执行 make 之前,需要一个命名为Makefile 的特殊文件(本文的后续将使用Makefile 作为这个特殊文件的文件名)来告诉 make 需要做什么(完成什么任务),该怎么做。
(2)如何直接使用gcc 命令完成myapp.c、greeting.h、greeting.c 三个文档的编译?输入以下两条命令:①gcc –c greeting.c //生成greeting.o文件② gcc –o greeting myapp.c greeting.o //把greeting.o和myapp.c一起编译成可执行文件greeting。
第3章进程控制与进程调度1. 实验3.1 进程的创建(1)总结调用fork()函数后的三种返回情况。
fork()系统调用有3种返回情况:返回值>0,表示当前进程是父进程,这个返回值为子进程的进程ID值;等于0,表示当前进程是子进程;小于0,表示进程创建失败,需要报错。
(2)总结fork()和wait()配合使用的情况,并尝试在父进程中取消wait()函数,观察进程的运行情况。
当父进程中同时使用fork()和wait()/waitpid()函数时,父进程会处于阻塞状态等待子进程的运行结束。
如果父进程中没有调用wait()/waitpid()函数,则父进程和其创建的子进程属于并发进程,也就是父进程和子进程几乎是独立运行的。
清华大学操作系统lab3实验报告范文实验3:虚拟内存管理练习1:给未被映射的地址映射上物理页ptep=get_pet(mm->dir,addr,1);if(ptep==NULL){//页表项不存在cprintf("get_pteindo_pgfaultfailed\n"); gotofailed;}if(某ptep==0){//物理页不在内存之中//判断是否可以分配新页if(pgdir_alloc_page(mm->pgdir,addr,perm)==NULL){ cprintf("pgdir_alloc_pageindo_pgfaultfailed\n"); gotofailed;}}ele{if(wap_init_ok){tructPage某page=NULL;ret=wap_in(mm,addr,&page);if(ret!=0){//判断页面可否换入cprintf("wap_inindo_pgfaultfailed\n");gotofailed;}//建立映射page_inert(mm->pgdir,page,addr,perm);wap_map_wappable(mm,addr,page,1);}ele{cprintf("nowap_init_okbutptepi%某,failed\n",某ptep); gotofailed;}}ret=0;failed:returnret;}练习2:补充完成基于FIFO算法_fifo_map_wappable(tructmm_truct某mm,uintptr_taddr,tructPage某page,intwap_in){lit_entry_t某head=(lit_entry_t某)mm->m_priv;lit_entry_t某entry=&(page->pra_page_link);aert(entry!=NULL&&head!=NULL);lit_add(head,entry);return0;}pra_page_link用来构造按页的第一次访问时间进行排序的一个链表,这个链表的开始表示第一次访问时间最近的页,链表的尾部表示第一次访问时间最远的页。
HUNAN UNIVERSITY 操作系统实验报告题目:LAB3虚拟内存管理目录一、实验目的 (3)二、实验内容 (3)三、练习题 (3)练习0 (3)练习1 (3)练习2 (6)四、实验总结 (9)一、实验目的了解虚拟内存的Page Fault异常处理实现了解页替换算法在操作系统中的实现二、实验内容本次实验是在实验二的基础上,借助于页表机制和实验一中涉及的中断异常处理机制,完成Page Fault异常处理和FIFO页替换算法的实现,结合磁盘提供的缓存空间,从而能够支持虚存管理,提供一个比实际物理内存空间“更大”的虚拟内存空间给系统使用。
这个实验与实际操作系统中的实现比较起来要简单,不过需要了解实验一和实验二的具体实现。
实际操作系统系统中的虚拟内存管理设计与实现是相当复杂的,涉及到与进程管理系统、文件系统等的交叉访问。
如果大家有余力,可以尝试完成扩展练习,实现extended clock 页替换算法。
三、练习练习0:本实验依赖实验1/2。
请把你做的实验1/2的代码填入本实验中代码中有“LAB1”,“LAB2”的注释相应部分。
根据lab1,2即可完成,此处不再赘述练习1:给未被映射的地址映射上物理页(需要编程)完成do_pgfault(mm/vmm.c)函数,给未被映射的地址映射上物理页。
设置访问权限的时候需要参考页面所在VMA 的权限,同时需要注意映射物理页时需要操作内存控制结构所指定的页表,而不是内核的页表。
注意:在LAB2 EXERCISE 1处填写代码。
执行make qemu后,如果通过check_pgfault函数的测试后,会有“check_pgfault() succeeded!”的输出,表示练习1基本正确。
请在实验报告中简要说明你的设计实现过程。
本实验要求完成do_pgfault函数,作用给未被映射的地址映射上物理页。
具体而言,当启动分页机制以后,如果一条指令或数据的虚拟地址所对应的物理页框不在内存中或者访问的类型有错误(比如写一个只读页或用户态程序访问内核态的数据等),就会发生页错误异常。
第3章处理器管理(1) 为什么程序并发执行会产生间断性特征,并失去封闭性和可再现性?解:之所以产生间断性特征是因为多个程序在并发执行时,需要为了完成同一项任务而相互合作,并发执行的程序间的这种相互制约导致了“暂停—执行—暂停”的间断性运行规律。
失去封闭性是因为程序在并发执行时,多个程序需要共享系统中的多种资源。
所以,这些资源的状态是由多个程序改变的,从而使程序的运行失去了封闭性。
失去可再现性是因为程序在并发执行时,由于失去了封闭性,从而导致其失去可再现性。
(2) 什么是进程?为什么要在操作系统中引入进程?解:进程是可并发执行且具有独立功能的程序在一个数据集合上的运行过程,它是操作系统进行资源分配和调度的基本单位。
“进程”概念是人们为了使程序能够并发执行,并且能对并发的程序加以描述和控制而引入的。
(3) 试从并发性、独立性、动态性上比较程序和进程的不同。
解:●并发性是进程的重要特征,同时也是OS 的重要特征。
引入进程的目的正是为了使其程序能和其它进程的程序并发执行,而程序是不能并发执行的。
●独立性是指进程实体是一个能独立运行的基本单位,同时也是系统中独立获得资源和独立调度的基本单位。
而对于未建立任何进程的程序,都不能作为一个独立的单位参加运行。
●动态性是进程最基本的特性,可表现为由创建而产生,由调度而执行,因得不到资源而暂停执行,以及由撤销而消亡,因而进程有一定的生命期;而程序只是一组有序指令的集合,是静态实体。
(4) 什么是PCB?它具有什么作用?为什么说PCB是进程存在的唯一标识?解:进程控制块(Process Control Block,PCB)是操作系统为了管理进程而设置的一个专门的数据结构,用它来记录进程的外部特征,描述进程的运动变化过程。
它的作用是使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能和其它进程并发执行的进程.因为系统利用PCB来控制和管理进程,所以PCB是系统感知进程存在的唯一标志。