




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华北电力大学实验报告|实验名称操作系统综合实验课程名称操作系统|专业班级网络学生姓名学号成绩指导教师王德文/姜丽梅实验日期2015年11月4日实验一实验环境的使用1、实验目的1熟悉操作系统集成实验环境OSLAB的基本使用方法。2练习编译、调试EOS操作系统内核以及EOS应用程序。2、实验内容1启动OSLAB;2学习OSLAB的基本使用方法练习使用OSLAB编写一个WINDOWS控制台应用程序,熟悉OSLAB的基本使用方法(主要包括新建项目、生成项目、调试项目等);3EOS内核项目的生成和调试对EOS内核项目的各种操作(包括新建、生成和各种调试功能等)与对WINDOWS控制台项目的操作是完全一致的;4EOS应用程序项目的生成和调试;5退出OSLAB。3、实验内容问题及解答1练习使用单步调试功能(逐过程、逐语句),体会在哪些情况下应该使用“逐过程”调试,在哪些情况下应该使用“逐语句”调试。练习使用各种调试工具(包括“监视”窗口、“调用堆栈”窗口等)。答逐语句,就是每次执行一行语句,如果碰到函数调用,它就会进入到函数里面。而逐过程,碰到函数时,不进入函数,把函数调用当成一条语句执行。因此,在需要进入函数体时用逐语句调试,而不需要进入函数体时用逐过程调试。4、实验过程1新建WINDOWS控制台应用程序生成项目执行项目调试项目2使用断点终端执行查看EOSSDK(SOFTWAREDEVELOPMENTKIT)文件夹修改EOS应用程序项目名称五、实验心得这次是验证性试验,具体步骤和操作方法都是与实验教程参考书上一致,实验很顺利,实验过程没有遇到困难。通过这次实验,我掌握了OSLAB启动和退出操作;练习使用OSLAB编写一个WINDOWS控制台应用程序,熟悉OSLAB的基本使用方法新建项目、生成项目、调试项目等。实验2操作系统的启动一、实验目的1跟踪调试EOS在PC机上从加电复位到成功启动的全过程,了解操作系统的启动过程。2查看EOS启动后的状态和行为,理解操作系统启动后的工作方式。二、使用仪器二、实验内容1准备实验。2调试EOS操作系统的启动过程。3调试加载程序。LOADER程序的主要任务是将操作系统内核(KERNELDLL文件)加载到内存中,然后让CPU进入保护模式并且启用分页机制,最后进入操作系统内核开始执行(跳转到KERNELDLL的入口点执行)。4调试内核。5EOS启动后的状态和行为。查看EOS的版本号1)在控制台中输入命令“VER”后按回车。2)输出EOS版本后的控制台如下图所示。6查看有应用程序运行时进程和线程的信息1)待EOS启动完毕,在EOS控制台中输入命令“HELLO”后按回车。此时HELLOEXE应用程序就开始执行。2)迅速按CTRLF2切换到控制台2,并输入命令“PT”后按回车。输出的进程和线程信息如下图所示三、实验内容问题及解答1为什么EOS操作系统从软盘启动时要使用BOOTBIN和LOADERBIN两个程序使用一个可以吗它们各自的主要功能是什么如果将LOADERBIN的功能移动到BOOTBIN文件中,则BOOTBIN文件的大小是否仍然能保持小于512字节答在IDE环境启动执行EOS操作系统时,会将BOOTBIN、LOADERBIN和KERNELDLL三个二进制写入软盘镜像文件中,然后让虚拟机来执行软盘中的EOS操作系统。仅使用其中一个是不能运行的。实验3进程的创建一、实验目的1练习使用EOSAPI函数CREATEPROCESS创建一个进程,掌握创建进程的方法,理解进程和程序的区别。2调试跟踪CREATEPROCESS函数的执行过程,了解进程的创建过程,理解进程是资源分配的单位。二实验内容1准备实验。启动OSLAB。2练习使用控制台命令创建EOS应用程序的进程。使用控制台命令创建EOS应用程序的进程如图3练习通过编程的方式让应用程序创建另一个应用程序的进程。应用程序创建另一个应用程序的进程的执行结果如图4调试CREATEPROCESS函数。5调试PSCREATEPROCESS函数”。6练习通过编程的方式创建应用程序的多个进程三实验内容问题及解答1在源代码文件NEWTWOPROCC提供的源代码基础上进行修改,要求使用HELLOEXE同时创建10个进程。提示可以使用PROCESS_INFORMATION类型定义一个有10个元素的数组,每一个元素对应一个进程。使用一个循环创建10个子进程,然后再使用一个循环等待10个子进程结束,得到退出码后关闭句柄。答修改代码为STARTUPINFOSTARTUPINFOPROCESS_INFORMATIONPROCINFO10ULONGULEXITCODEINTNRESULT0。INTI,J/IFDEF_DEBUG_ASM“INT3NNOP“ENDIFPRINTF“CREATE10P/ROCESSESANDWAITFORTHEPROCESSESEXITNN“STARTUPINFOSTDINPUTGETSTDHANDLESTD_INPUT_HANDLESTARTUPINFOSTDOUTPUTGETSTDHANDLESTD_OUTPUT_HANDLESTARTUPINFOSTDERRORGETSTDHANDLESTD_ERROR_HANDLEFORI0I22/虚拟地址的高10位是PDE标号PMMPTE_HARDWARE0XC0300000INDEXOFDIRENTRYPAGEFRAMENUMBERPFNARRAY0PMMPTE_HARDWARE0XC0300000INDEXOFDIRENTRYVALID1/有效PMMPTE_HARDWARE0XC0300000INDEXOFDIRENTRYWRITABLE1/可写MIFLUSHENTIRETLB/刷新快表PAGETABLEBASE0XC0000000INDEXOFDIRENTRYPAGE_SIZEINDEXOFTABLEENTRY0XE000000012PMMPTE_HARDWAREPAGETABLEBASEINDEXOFTABLEENTRYPAGEFRAMENUMBERPFNARRAY1PMMPTE_HARDWAREPAGETABLEBASEINDEXOFTABLEENTRYVALID1PMMPTE_HARDWAREPAGETABLEBASEINDEXOFTABLEENTRYWRITABLE1MIFLUSHENTIRETLB/刷新快表INDEXOFTABLEENTRY0XE000100012PMMPTE_HARDWAREPAGETABLEBASEINDEXOFTABLEENTRYPAGEFRAMENUMBERPFNARRAY1PMMPTE_HARDWAREPAGETABLEBASEINDEXOFTABLEENTRYVALID1PMMPTE_HARDWAREPAGETABLEBASEINDEXOFTABLEENTRYWRITABLE1MIFLUSHENTIRETLB/刷新快表OUTPUTFORMAT“READMEMORY0XE0001000DN“FPRINTFSTDHANDLE,OUTPUTFORMAT,PINT0XE0001000KDBPRINTOUTPUTFORMAT,PINT0XE0001000PINT0XE0000000100/写共享内存FPRINTFSTDHANDLE,OUTPUTFORMAT,PINT0XE0001000KDBPRINTOUTPUTFORMAT,PINT0XE0001000OUTPUTFORMAT“NCR30XXN“PFNOFPAGEDIRECTORYULONGPSPSYSTEMPROCESSPASPFNOFPAGEDIRECTORYFPRINTFSTDHANDLE,OUTPUTFORMAT,PFNOFPAGEDIRECTORYKDBPRINTOUTPUTFORMAT,PFNOFPAGEDIRECTORYFORINDEXOFDIRENTRY0INDEXOFDIRENTRYVALIDCONTINUEOUTPUTFORMAT“PDE0XX0XX0XXN“VIRTUALBASEINDEXOFDIRENTRYPAGEFRAMENUMBERKDBPRINTOUTPUTFORMAT,INDEXOFDIRENTRY,VIRTUALBASE,PPDEPAGEFRAMENUMBERPAGETABLEBASEULONG_PTRPTE_BASEINDEXOFDIRENTRYPAGE_SIZEFORINDEXOFTABLEENTRY0INDEXOFTABLEENTRYVALIDCONTINUEOUTPUTFORMAT“TTPTE0XX0XX0XXN“VIRTUALBASEINDEXOFDIRENTRYPAGEFRAMENUMBERKDBPRINTOUTPUTFORMAT,INDEXOFTABLEENTRY,VIRTUALBASE,PPTEPAGEFRAMENUMBEROUTPUTFORMAT“NPHYSICALPAGETOTALDN“FPRINTFSTDHANDLE,OUTPUTFORMAT,PAGETOTALKDBPRINTOUTPUTFORMAT,PAGETOTALOUTPUTFORMAT“PHYSICALMEMORYTOTALDNN“FPRINTFSTDHANDLE,OUTPUTFORMAT,PAGETOTALPAGE_SIZEKDBPRINTOUTPUTFORMAT,PAGETOTALPAGE_SIZEOUTPUTFORMAT“NNONUSEDPAGECOUNTDN“FPRINTFSTDHANDLE,OUTPUTFORMAT,MIGETANYPAGECOUNTKDBPRINTOUTPUTFORMAT,MIGETANYPAGECOUNTINDEXOFDIRENTRY0XE000000022/虚拟地址的高10位是PDE标号PAGETABLEBASE0XC0000000INDEXOFDIRENTRYPAGE_SIZEINDEXOFTABLEENTRY0XE000000012PMMPTE_HARDWAREPAGETABLEBASEINDEXOFTABLEENTRYVALID0INDEXOFTABLEENTRY0XE000100012PMMPTE_HARDWAREPAGETABLEBASEINDEXOFTABLEENTRYVALID0PMMPTE_HARDWARE0XC0300000INDEXOFDIRENTRYVALID0MIFLUSHENTIRETLBMIFREEPAGES2,PFNARRAYOUTPUTFORMAT“NNONUSEDPAGECOUNTDN“FPRINTFSTDHANDLE,OUTPUTFORMAT,MIGETANYPAGECOUNTKDBPRINTOUTPUTFORMAT,MIGETANYPAGECOUNTKEENABLEINTERRUPTSINTSTATE/开中断四、实验问题内容及解答1观察之前输出的页目录和页表的映射关系,可以看到页目录的第0X300个PDE映射的页框号就是页目录本身,说明页目录被复用为了页表。而恰恰就是这种映射关系决定了4K的页目录映射在虚拟地址空间的0XC03000000XC0300FFF,4M的页表映射在XC00000000XC03FFFFF。现在,假设修改了页目录,使其第0X100个PDE映射的页框号是页目录本身,此时页目录和页表会映射在4G虚拟地址空间的什么位置呢说明计算方法。答页目录PDE标号0X100做为虚拟地址的高10位,PTE标号0X100做为虚拟地址的1222位,得到虚拟地址0X40100000。页表PDE标号0X100做为虚拟地址的高10位,PTE标号0X0做为虚拟地址的1222位,得到虚拟地址0X40000000。五、实验心得与体会通过操作系统试验,了解了操作系统的启动过程和运行方式,加深了对计算机操作系统的理解。实验10磁盘调度算法一、实验目的1通过学习EOS实现磁盘调度算法的机制,掌握磁盘调度算法执行的条件和时机。2观察EOS实现的FCFS、SSTF和SCAN磁盘调度算法,了解常用的磁盘调度算法。3编写CSCAN和NSTEPSCAN磁盘调度算法,加深对各种扫描算法的理解。二、实验内容二、实验内容及步骤1准备实验1新建一个EOSKERNEL项目。2验证先来先服务(FCFS)磁盘调度算法1打开KE文件夹中的SYSPROCC文件。2打开IO/BLOCKC文件。3按F7生成,然后按F5调试。4在控制台中输入命令“DS”后按回车。5将输出复制到一个文本文件中,然后结束此次调试。3验证最短寻道时间优先(SSTF)磁盘调度算法1打开SSTFC文件使用SSTFC文件中IOPDISKSCHEDULE函数的函数体,替换BLOCKC文件中IOPDISKSCHEDULE函数的函数体。2按F7生成,然后按F5调试。3在控制台中输入命令“DS”后按回车。3将输出复制到一个文本文件中,结束此次调试。4验证SSTF算法造成的线程“饥饿”现象1修改SYSPROCC文件CONSOLECMDDISKSCHEDULE函数中的源代码,仍然使磁头初始停留在磁道10,而让其它线程依次访问磁道78、21、9、8、11、41、10、67、12、10。2按F7生成,然后按F5调试。3在控制台中输入命令“DS”后按回车。将输出复制到一个文本文件中,结束此次调试。5验证扫描(SCAN)磁盘调度算法1打开文件夹中的SCANC文件,使用SCANC文件中IOPDISKSCHEDULE函数的函数体,替换BLOCKC文件中IOPDISKSCHEDULE函数的函数体。2按F7生成,按F5调试。3在控制台中输入命令“DS”后按回车。将输出保存到一个文本文件中。最后将CONSOLECMDDISKSCHEDULE函数中线程访问的磁道号恢复到本实验32中的样子。6改写SCAN算法使用本实验32中的数据进行测试,确保调度的结果与图185中显示的一致,也可以多准备几组测试数据,保证改写的SCAN算法是正确的。测试成功后,将改写的SCAN算法源代码备份。7编写循环扫描(CSCAN)磁盘调度算法使用本实验32中的数据进行测试,确保调度的结果与图187一致。在控制台中多次输入“DS”命令,查看
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论