华北电力大学操作系统实验报告.doc
《华北电力大学操作系统实验报告.doc》由会员分享,可在线阅读,更多相关《华北电力大学操作系统实验报告.doc(21页珍藏版)》请在三一文库上搜索。
1、华 北 电 力 大 学 实 验 报 告华北电力大学实 验 报 告| 实验名称 操作系统综合实验 课程名称 操作系统 | 专业班级:网络 学生姓名: 学 号: 成 绩:指导教师:王德文/姜丽梅 实验日期:2015年11月4日 实验一 实验环境的使用一、 实验目的 1. 熟悉操作系统集成实验环境 OS Lab 的基本使用方法。 2. 练习编译、调试 EOS 操作系统内核以及 EOS 应用程序。二、 实验内容 1. 启动OS Lab; 2. 学习OS Lab的基本使用方法:练习使用OS Lab编写一个Windows控制台应用程序,熟悉OS Lab的基本使用方法(主要包括新建项目、生成项目、调试项目等
2、 3. EOS内核项目的生成和调试:对EOS内核项目的各种操作(包括新建、生成和各种调试功能等)与对Windows控制台项目的操作是完全一致的; 4. EOS应用程序项目的生成和调试; 5. 退出OS Lab。三、 实验内容问题及解答 1. 练习使用单步调试功能(逐过程、逐语句),体会在哪些情况下应该使用“逐过程”调试,在哪些情况下应该使用“逐语句”调试。练习使用各种调试工具(包括“监视”窗口、“调用堆栈”窗口等)。 答:逐语句,就是每次执行一行语句,如果碰到函数调用,它就会进入到函数里面。 而逐过程,碰到函数时,不进入函数,把函数调用当成一条语句执行。因此,在需要进入函数体时用逐语句调试
3、而不需要进入函数体时用逐过程调试。四、 实验过程 1. 新建Windows控制台应用程序 生成项目: 执行项目: 调试项目: 2. 使用断点终端执行: 查看EOS SDK(Software Development Kit)文件夹: 修改EOS应用程序项目名称 :五、实验心得 这次是验证性试验,具体步骤和操作方法都是与实验教程参考书上一致,实验很顺利,实验过程没有遇到困难。通过这次实验,我掌握了OS Lab启动和退出操作;练习使用OS Lab编写一个Windows控制台应用程序,熟悉OS Lab的基本使用方法新建项目、生成项目、调试项目等。实验2 操作系统的启动一、实验目的 1. 跟踪调试EO
4、S在PC机上从加电复位到成功启动的全过程,了解操作系统的启动过程。 2. 查看EOS启动后的状态和行为,理解操作系统启动后的工作方式。二、使用仪器 二、实验内容 1. 准备实验。 2. 调试EOS操作系统的启动过程。 3. 调试加载程序。Loader程序的主要任务是将操作系统内核(kernel.dll文件)加载到内存中,然后让CPU进入保护模式并且启用分页机制,最后进入操作系统内核开始执行(跳转到kernel.dll的入口点执行)。 4. 调试内核。 5. EOS启动后的状态和行为。查看EOS的版本号: 1)在控制台中输入命令“ver”后按回车。 2)输出EOS版本后的控制台如下图所示。 6.
5、 查看有应用程序运行时进程和线程的信息: 1)待 EOS启动完毕,在EOS控制台中输入命令“hello”后按回车。此时Hello.exe应用程序就开始执行。 2)迅速按Ctrl+F2切换到控制台2,并输入命令“pt”后按回车。输出的进程和线程信息如下图所示三、实验内容问题及解答 1. 为什么EOS操作系统从软盘启动时要使用boot.bin和loader.bin两个程序?使用一个可以吗?它们各自的主要功能是什么?如果将loader.bin的功能移动到boot.bin文件中,则boot.bin文件的大小是否仍然能保持小于512字节? 答:在IDE环境启动执行EOS操作系统时,会将boot.bin、
6、loader.bin和kernel.dll三个二进制写入软盘镜像文件中,然后让虚拟机来执行软盘中的EOS操作系统。仅使用其中一个是不能运行的。第 页 共 页实验3 进程的创建一、实验目的 1. 练习使用EOS API函数CreateProcess创建一个进程,掌握创建进程的方法,理解进程和程序的区别。 2. 调试跟踪CreateProcess函数的执行过程,了解进程的创建过程,理解进程是资源分配的单位。二实验内容 1. 准备实验。启动OS Lab。 2. 练习使用控制台命令创建EOS应用程序的进程。使用控制台命令创建EOS应用程序的进程如图: 3. 练习通过编程的方式让应用程序创建另一个应用程
7、序的进程。应用程序创建另一个应用程序的进程的执行结果如图: 4. 调试CreateProcess函数。 5. 调试PsCreateProcess函数”。 6. 练习通过编程的方式创建应用程序的多个进程三实验内容问题及解答 1. 在源代码文件NewTwoProc.c提供的源代码基础上进行修改, 要求使用hello.exe同时创建10个进程。提示:可以使用 PROCESS_INFORMATION 类型定义一个有10个元素的数组,每一个元素对应一个进程。使用一个循环创建10个子进程,然后再使用一个循环等待10个子进程结束,得到退出码后关闭句柄。 答:修改代码为:STARTUPINFO Startup
8、Info;PROCESS_INFORMATION ProcInfo10;ULONG ulExitCode;INT nResult=0;。int i,j;/#ifdef_DEBUG_asm(int $3n nop);#endif printf(Create10p/rocessesand wait for the processes exit.nn); StartupInfo.StdInput = GetStdHandle(STD_INPUT_HANDLE);StartupInfo.StdOutput = GetStdHandle(STD_OUTPUT_HANDLE);StartupInfo.St
9、dError = GetStdHandle(STD_ERROR_HANDLE);for(i =0; i 10; i+) if(CreateProcess(A:Hello.exe,NULL,0,&StartupInfo,&ProcInfoi); else for(j = 0; j i; j+) WaitForSingleObject(ProcInfoj.ProcessHandle, INFINITE); GetExitCodeProcess(ProcInfoj.ProcessHandle, printf(nThe process %d exit with %d.n,j,ulExitCode);
10、CloseHandle(ProcInfoj.ProcessHandle); CloseHandle(ProcInfoj.ThreadHandle); printf(CreateProcess Failed,Error code:0x%X.n, GetLastError(); nResult = 1; return nResult; for(i=0;i10;i+) WaitForSingleObject(ProcInfoi.ProcessHandle, INFINITE); GetExitCodeProcess(ProcInfoi.ProcessHandle, &ulExitCode); for
11、i=0i 22);/ 虚拟地址的高 10 位是 PDE 标号(PMMPTE_HARDWARE)0xC0300000)IndexOfDirEntry.PageFrameNumber = PfnArray0;(PMMPTE_HARDWARE)0xC0300000)IndexOfDirEntry.Valid = 1;/ 有效(PMMPTE_HARDWARE)0xC0300000)IndexOfDirEntry.Writable = 1;/ 可写MiFlushEntireTlb();/ 刷新快表PageTableBase = 0xC0000000 + IndexOfDirEntry * PAGE_S
12、IZE;IndexOfTableEntry = (0xE0000000 12) & 0x3FF;(PMMPTE_HARDWARE)PageTableBase)IndexOfTableEntry.PageFrameNumber = PfnArray1;(PMMPTE_HARDWARE)PageTableBase)IndexOfTableEntry.Valid = 1;(PMMPTE_HARDWARE)PageTableBase)IndexOfTableEntry.Writable = 1;MiFlushEntireTlb();/ 刷新快表IndexOfTableEntry = (0xE00010
13、00 12) & 0x3FF;(PMMPTE_HARDWARE)PageTableBase)IndexOfTableEntry.PageFrameNumber = PfnArray1;(PMMPTE_HARDWARE)PageTableBase)IndexOfTableEntry.Valid = 1;(PMMPTE_HARDWARE)PageTableBase)IndexOfTableEntry.Writable = 1;MiFlushEntireTlb();/ 刷新快表OutputFormat = Read Memory 0xE0001000: %dn;fprintf(StdHandle,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 华北电力 大学 操作系统 实验 报告
