ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:1.87MB ,
资源ID:8623199      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8623199.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(操作系统实验第二讲操作系统的启动#精选.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

操作系统实验第二讲操作系统的启动#精选.docx

1、操作系统实验第二讲操作系统的启动#精选操作系统实 验 报 告课程名称操作系统实验课程编号201406304实验项目名称实验环境的使用学号2015061423班级20150614姓名吴雪含专业计算机科学与技术学生所在学院计算机科学与技术学院指导教师王红滨、曹雪实验室名称地点21b 276 哈尔滨工程大学计算机科学与技术学院第二讲 操作系统的启动一、实验概述1. 实验名称操作系统的启动2. 实验目的1)、跟踪调试eos在pc机上从加电复位到成功启动的全过程,了解操作系统的启动过程。 2)、查看eos启动后的状态和行为,理解操作系统启动后的工作方式。3. 实验类型(验证、设计) 验证4. 实验内容

2、1)、启动 OS Lab。 2)、新建一个 EOS Kernel 项目。 3)、在“项目管理器”窗口中打开 boot 文件夹中的 boot.asm 和 loader.asm 两个汇编文件。boot.asm 是软盘引导扇区程序的源文件,loader.asm 是 loader 程序的源文件。简单阅读一下这两个文件 中的 NASM 汇编代码和注释。 4)、按 F7 生成项目。 5)、生成完成后,使用 Windows 资源管理器打开项目文件夹中的 Debug 文件夹。找到由 boot.asm 生 成的软盘引导扇区程序 boot.bin 文件,该文件的大小一定为 512 字节(与软盘引导扇区的大小 一致

3、)。找到由 loader.asm 生成的 loader 程序 loader.bin 文件,记录下此文件的大小 1566 字 节,在下面的实验中会用到。找到由其它源文件生成的操作系统内核文件 kernel.dll。二、实验环境进行实验使用的操作系统、编译器、语言及工具等。操作系统:Windows XP编译器: Tevalaton OS Lab语言: C+三、实验过程(每次实验不一定下面6条都写,根据实际情况定)*需要解决的问题以及解答(1)、自己设计两个查看内存的调试命令,分别验证这两个用户可用区域的高地址端也是空白的。答:命令为:xp /512b 0x7a00和cp /512v 0x9fe00

4、。因为第一个用户区的高位地址截止到0x7c00,第二个用户区高位地址截止到0xA0000,命令表示显示从0x7a00和0x9fe00以后512b空间的所有字节码,即两个用户区的高位地址端,可以看到所有字节全为0,说明高地址端是空白的。如图一、图二所示。(2)、自己设计一个查看内存的调试命令,验证上位内存的高地址端已经被系统占用。答:命令为:xp /512b 0xffe00。因为上位内存的高位地址截止到0x100000,命令表示显示从0xffe00以后的512b空间的所有字节码,即两个用户区的高位地址端。可以看到所有字节都有值,说明高地址端被占用。如图三所示。(3)、根据之前记录的loader.

5、bin文件的大小,自己设计一个查看内存的调试命令,查看内存中loader程序结束位置的字节码,并与loader.lst文件中最后指令的字节码比较,验证loader程序被完全加载到了正确的位置。答:命令为xp /8b 0x1616.程序的初始位置为0x1000,加上1566的十六进制61E-8b,答案即为1616.如图四、图五、图六、图七所示。(4)、仔细比较实验指导10-5图和10-6图,尝试说明哪个是应用程序的进程,它和系统进程有什么区别,那个是应用程序的主线程,它和系统线程有什么区别? 答:进程列表中ID为31的进程是应用程序的进程,其优先级为8,包含1个线程,主线程ID为33,映像名称为

6、a:hello.exe。而ID为1的是系统进程,其优先级为24,包含有10个线程,其中的ID为2的线程是该进程的主线程,系统进程没有映像名称。主要区别为:应用程序的进程优先级较低。 线程列表中ID为33的线程是应用程序的线程,其优先级为8,处在阻塞状态,而ID为2028的是系统进程,其优先级为24,其中ID为22的处于运行状态图一图二图三(5)、为什么 EOS 操作系统从软盘启动时要使用 boot.bin 和 loader.bin 两个程序?使用一个可以吗?它们 各自的主要功能是什么?如果将 loader.bin 的功能移动到 boot.bin 文件中,则 boot.bin 文件的大 小是否仍

7、然能保持小于 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 处呢?

8、这样做有什么好处?这样做会对 loader.bin 文件的大小有哪些限制? 答:第一个用户可用区取余位于低地址端,便于检索查找,并且容量相对较小,适合容纳相对较小的文件,所以将loader.bin加载到第一个可用区域,节省资源。由于第一用户区域的大小限制,loader.bin的大小不能超过29.5KB。图四图五如左图图六所示Loader.bin文件大小为1566B。图七*程序运行时的初值以及运行结果:Bochs在CPU要执行的第一条指令处中断。Display窗口没有显示内容。如下图所示:sreg命令查看当前CPU各个段寄存器的值:r命令查看当前CPU中各个通用寄存器的值输入调试命令xp/102

9、4b 0x0000输入调试命令xp/512b 0x7c00输入调试命令vb 0x0000:0x7c00添加断点输入c继续执行输入sreg验证CS寄存器的地址输入调试命令r验证IP寄存器的值输入调试命令xp/512b 0x7c00显示软盘引导扇区程序的所有字节码输入调试命令xp/512b 0x0600输入调试命令xp/512b 0x7e00输入调试命令xp/512b 0xa0000验证上位内存已被系统占用输入调试命令vb 0x0000:0x7d81添加一个断点输入调试命令c继续执行,在断点处中断输入调试命令xp 8b 0x10000查看内存0x1000处的数据3.2.4 调试加载程序查看eos版本号:迅速按 Ctrl+F2 切换到控制台 2,并输入命令“pt”后按回车。输出的进程和线程信息如图 10-6 所示四、实验体会本次实验主要采用了在EOS操作系统启动过程中设置断点,查看内存空间的占用情况来观察文件的加载情况。通过本次实验了解了了解操作系统的启动过程。通过查看eos启动后的状态和行为,理解操作系统启动后的工作方式。通过一步步的操作,加深了在操作系统上对程序创建、调试程序的掌握,但对OS的相关知识还不是很了解。最新文件 仅供参考 已改成word文本 。 方便更改 如有侵权请联系网站删除

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1