OS实验报告 联系客服

发布时间 : 星期六 文章OS实验报告更新完毕开始阅读f94a7f92770bf78a652954d2

综合实验报告

( 2014--2015 年度第 1 学期 )

名 称: 操作系统综合实验

题 目: 基于OSLab的操作系统综合实验 院 系: 计算机系 班 级: 学 号: 学生姓名: 指导教师: 王平 岳燕 设计周数: 1周

成 绩:

日期: 2014年 11 月13日

一、 操作系统综合实验的目的与要求

1. 实验一 实验环境的使用

1.1 熟悉操作系统集成实验环境OS Lab的基本使用方法 1.2 练习编译、调试EOS操作系统内核以及EOS应用程序。 2. 实验二 操作系统的启动

2. 1 跟踪调试EOS在PC机上从加电复位到成功启动的全过程,了解操作系统的

启动过程。

2. 2 查看EOS启动后的状态和行为,理解操作系统启动后的工作方式。 3. 实验三 进程的创建

3. 1 练习使用EOS API函数CreateProcess创建一个进程,掌握创建进程的方法,

理解进程和程序的区别。

3. 2 调试跟踪CreateProcess函数的执行过程,了解进程的创建过程,理解进程

是资源分配的单位。

4. 实验四 线程的状态和转换

4. 1 调试线程在各种状态间的转换过程,熟悉线程的状态和转换。 4. 2 通过为线程增加挂起状态,加深对线程状态的理解。 5. 实验五 进程的同步

5. 1 使用EOS的信号量,编程解决生产者—消费者问题,理解进程同步的意义。 5. 2 调试跟踪EOS信号量的工作过程,理解进程同步的原理。

5. 3 修改EOS的信号量算法,使之支持等待超时唤醒功能(有限等待),加深理

解进程同步的原理。

6. 实验六 时间片轮转调度

6. 1 调试EOS的线程调度程序,熟悉基于优先级的抢先式调度。 6. 2 为EOS添加时间片轮转调度,了解其它常用的调度算法。 7. 实验七 物理存储器与进程逻辑地址空间的管理

7. 1 通过查看物理存储器的使用情况,并练习分配和回收物理内存,从而掌握

物理存储器的管理方法。

7. 2 通过查看进程逻辑地址空间的使用情况,并练习分配和回收虚拟内存,从

而掌握进程逻辑地址空间的管理方法。

8. 实验八 分页存储器管理

8. 1 学习i386处理器的二级页表硬件机制,理解分页存储器管理原理。

8. 2 查看EOS应用程序进程和系统进程的二级页表映射信息,理解页目录和页

表的管理方式。

8. 3 编程修改页目录和页表的映射关系,理解分页地址变换原理。

二、实验过程中遇到的问题及解决办法

1. 实验一 实验环境使用

本次实验比较简单,主要就是根据指导书的内容熟悉实验环境 2. 实验二 操作系统的使用

本次实验同样也没有遇到太大困难 3. 实验三 进程的创建

本实验主要的问题出在写代码阶段,在生成的时候多次出现错误 4. 实验四 线程的状态和转换

4. 1 Resume原语的实现,Resume原语可以将一个被Suspend原语挂起的线程 (处于静止就绪状态)恢复为就绪状态。

5. 实验五 进程的同步

在实验过程中修改信号量PsWaitForSemaphore时遇到了困难,原因是对生 产者消费者问题中的信号机制不够清楚。在查看课本,与同学的帮助之下完 成了此步骤。 6. 实验六 时间片轮转

对时间片轮转调度算法原理掌握不清,在 编写代码的时候就不知所从,而且由于实验指导书的一部分内容没有理解透彻,在很简单的一部分浪费了过长的时间,最后通过咨询老师和上网参考了代码,完成了实验

7. 试验七 物理存储器与进程逻辑地址空间的管理

实验过程中,有一处断点设置错误导致后面的所有结果都出现了错误,只能从头再来

8. 实验八 分页存储器管理

本次实验较为简单没有出现很大的困难

三、思考题解答

1. 实验一 实验环境使用 思考题:

(1)逐过程是逐行调试,逐语句是进入一个被调用的函数。

(2) 通过使用SDK来调用API EOS SDK文件夹中的内容,组织结构:包含头文件、导入库文件和动态链接库文件。

各个文件的来源和作用:头文件的主要作用是导出操作系统使用的一些数据类型(例如操作系统中使用的结构体类型)和API函数的声明。头文件一般会被放在SDK中的Inc(Include)文件夹中。

导入库文件(Import Library)是根据操作系统需要导出的API函数而生成的特定格式的二进制文件。导入库文件的主要作用是告诉应用程序的可执行文件,其调用的API函数在操作系统中的地址。

动态链接库文件(Dynamic Link Library)是包含了操作系统导出的API函数的可执行代码的二进制文件。应用程序的可执行文件在执行时必须依赖这些动态。

EOS应用程序包链接库文件,因为其调用的系统API函数的可执行代码都保存在这些文件中。含的头文件:eos.h eosdef.h error.h

包含方式:inc文件夹中包含。 2. 实验二 操作系统的使用 思考题: (1)解答:

(1)Boot程序的大小被限制在一个软盘扇区(512字节)之内,所以必须非常短小,除了加载并执行Loader程序之外不做任何其它事情。不可以使用一个。

(2)它们各自的主要功能:如果Boot程序找到了loader.bin文件,会继续利用int 0x13功能将整个loader.bin文件读入从地址0x1000起始的物理内存,最后跳转到0x1000处开始执行 Loader程序,Boot程序的使命到此结束。 Boot程序的大小被限制在一个软盘扇区(512字节)之内,所以必须非常短小,除了加载并执行Loader程序之外不做任何其它事情。Loader程序的任务和Boot程序很相似,同样是将其它的程序加载到物理内存中,这次加载的是EOS内核。除此之外,Loader程序还负责检测内存大小,为内核准备保护模式执行环境等工作。

(3)不能,Loader程序还负责检测内存大小,为内核准备保护模式执行

环境