- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2011061324张耀(第二讲 操作系统的启动)
操作系统
实 验 报 告
课程名称 操作系统实验 课程编号 0906553 实验项目名称 操作系统的启动 学号 2011061324 年级 2011 姓名 张耀 专业 计算机科学与技术 学生所在学院 计算机科学与技术 指导教师 印桂生 实验室名称地点 21B276
哈尔滨工程大学
计算机科学与技术学院
第二讲 操作系统的启动
一、实验概述
1. 实验名称
操作系统的启动
2. 实验目的
(1)跟踪调试EOS在PC机上从加电复位到成功启动的全过程,了解操作系统的启动过程;
(2)查看EOS启动后的状态和行为,理解操作系统启动后的工作方式;
3. 实验类型
验证性实验
4. 实验内容
(1)熟悉掌握Bochs模拟器;
(2)了解学习NASM汇编;
(3)了解BIOS(Basic Input/Output System);
(4)掌握EOS操作系统的启动过程;
二、实验环境
本次实验在OS Lab实验台上进行,使用EOS操作系统,并且会用到Bochs模拟器。同时会用到NISM汇编语言,以及能够提供最低级、最直接的硬件控制与支持的BIOS系统。
三、实验过程
※设计思路和流程图:
图3.1
※需要解决的问题及解答:
自己设计两个查看内存的调试命令,分别验证这两个用户可用区域的高地址端也是空白的。
答:命令为:xp /512b 0x7a00和xp /512b 0x9fe00,如图3.2和3.3所示。因为第一个用户区的高位地址截止到0x7c00,第二个用户区高位地址截止到0xA0000,命令表示显示从0x7a00和0x9fe00以后512b空间的所有字节码,即两个用户区的高位地址端。可以看到所有字节全为0,说明高地址端是空白的。
图 3.2
图3.3
自己设计一个查看内存的调试命令,验证上位内存的高地址端已经被系统占用。
答:命令为:xp /512b 0xffe00,如图3.4所示。因为上位内存的高位地址截止到0x100000,命令表示显示从0xffe00以后512b空间的所有字节码,即两个用户区的高位地址端。可以看到所有字节都有值,说明高地址端被占用。
图3.4
根据之前记录的loader.bin文件的大小,自己设计一个查看内存的调试命令,查看内存中loader程序结束位置的字节码,并与 loader.lst 文件中最后指令的字节码比较,验证 loader 程序被完全加载到了正确的位置。
答:命令为xp /8b 0x1616,如图3.5所示。
图 3.5
(4)仔细比较实验指导10-5图和图10-6,尝试说明哪个是应用程序的进程,它和系统进程有什么区别,哪个是应用程序的主线程,它和系统线程有什么区别。
答:进程列表中ID为31的进程是应用程序的进程,其优先级为8,包含1个线程,主线程ID为33,映像名称为a:\hello.exe;而ID为1的是系统进程,其优先级为24,包含有10个线程,其中的ID为2的线程是该进程的主线程,系统进程没有映像名称。主要区别:应用程序的进程优先级较低。
线程列表中ID为33的线程是应用程序的线程,其优先级为8,处在阻塞状态;而ID为20到28的是系统进程,其优先级为24,其中ID为22的处于运行状态,其余处于阻塞状态;处于的ID为2的线程也是系统线程,优先级为0,当没有优先级大
于0的线程占用处理器时,空闲线程就会在处理器上运行并处于运行状态。主要区别:应用程序的主线程的优先级别低,存放在物理内存的高地址端。
(5)为什么EOS操作系统从软盘启动时要使用boot.bin和loader.bin两个程序?使用一个可以吗?它们各自的主要功能是什么?如果将loader.bin的功能移动到boot.bin文件中,则boot.bin文件的大小是否仍然能保持小于512字节?
答:在生成项目时,boot文件夹中的两个汇编文件boot.asm和loader.asm分别生成了两个二进制文件boot.bin和loader.bin。这两个文件缺一不可,他们会被写入软盘镜像文件。在EOS操作系统启动时,boot.bin用于引导软盘,而loader.bin用于加载程序。如果把loader.bin的功能移动到boot.bin程序中,肯定会增加boot.bin的规模,文件大小将会大于512字节。
(6)软盘引导扇区加载完毕后内存中有两个用户可用的区域,为什么软盘引导扇区程序选择将loader.bin加载到第一个可用区域的0x1000处呢?这样做有什么好处?这样做会对loader.bin文件的大小有哪些限制。
答:第一个
文档评论(0)