华北电力大学操作系统实验报告

合集下载

操作系统实验二实验报告

操作系统实验二实验报告

操作系统实验二实验报告一、实验目的本次操作系统实验二的主要目的是深入理解和掌握进程管理的相关概念和技术,包括进程的创建、执行、同步和通信。

通过实际编程和实验操作,提高对操作系统原理的认识,培养解决实际问题的能力。

二、实验环境本次实验使用的操作系统为 Windows 10,编程环境为 Visual Studio 2019。

三、实验内容及步骤(一)进程创建实验1、首先,创建一个新的 C++项目。

2、在项目中,使用 Windows API 函数`CreateProcess`来创建一个新的进程。

3、为新进程指定可执行文件的路径、命令行参数、进程属性等。

4、编写代码来等待新进程的结束,并获取其退出代码。

(二)进程同步实验1、设计一个生产者消费者问题的模型。

2、使用信号量来实现生产者和消费者进程之间的同步。

3、生产者进程不断生成数据并放入共享缓冲区,当缓冲区已满时等待。

4、消费者进程从共享缓冲区中取出数据进行处理,当缓冲区为空时等待。

(三)进程通信实验1、选择使用管道来实现进程之间的通信。

2、创建一个匿名管道,父进程和子进程分别读写管道的两端。

3、父进程向管道写入数据,子进程从管道读取数据并进行处理。

四、实验结果及分析(一)进程创建实验结果成功创建了新的进程,并能够获取到其退出代码。

通过观察进程的创建和执行过程,加深了对进程概念的理解。

(二)进程同步实验结果通过使用信号量,生产者和消费者进程能够正确地进行同步,避免了缓冲区的溢出和数据的丢失。

分析结果表明,信号量机制有效地解决了进程之间的资源竞争和协调问题。

(三)进程通信实验结果通过管道实现了父进程和子进程之间的数据通信。

数据能够准确地在进程之间传递,验证了管道通信的有效性。

五、遇到的问题及解决方法(一)在进程创建实验中,遇到了参数设置不正确导致进程创建失败的问题。

通过仔细查阅文档和调试,最终正确设置了参数,成功创建了进程。

(二)在进程同步实验中,出现了信号量使用不当导致死锁的情况。

电大操作系统(本科)实验报告1-5

电大操作系统(本科)实验报告1-5

中央广播电视大学计算机科学与技术专业操作系统(本科)实验报告院系:______ _________班级:___ _____学生:____ _________学号: _ _____指导教师:___ __ ___完成日期 2015 年月日2.弹出个对话框选择——下一步3.之后有两个对话框,咱们这里选——自定义,下一步4.设置完向导后双击CD-ROM1(IDE1:0)选项在连接选项卡中选择使用ISO映像并找到ubuntu映像位置5.确定之后单机命令标题下的——启动此虚拟机,选项,之后虚拟机出现在安装linux界面上(开始时英文,如果英语不太好的童鞋可按F2键选择中文,例如像me),之后就开始真正装linux了6.安装7.各种同意,下一步选择语言中文简体8.这里可以更改网络配置,下一步9.设置主机10.设置完整用户名和登录口令11.进行磁盘分区12.复制安装系统文件13.安装GRUB14.结束安装15.启动系统到登录界面16.进入系统17.由于关机需要root权限,需对root设置密码,并切换到root用户18.关闭系统七、实验结果分析:成功安装ubuntu,关机需要root权限,正确关机实训2一、实验题目:Linux 应用及shell编程二、实验目的和要求:目的1.掌握Linux一般命令格式和常用命令。

2.学会使用vi编辑器建立、编辑文本文件。

3.了解shell的作用和主要分类。

4.学会bash脚本的建立和执行方式。

5.理解bash的基本语法。

6.学会编写简单的shell脚本。

要求1.登录进入系统,修改个人密码。

2.使用简单命令:date,cal,who,echo,clear等,了解Linux命令格式。

3.进入vi。

建立一个文件,如file.c。

进入插入方式,输入一个C语言程序的各行容,故意制造几处错误。

最后,将该文件存盘。

回到shell状态下。

4.运行gcc file.c -o myfile,编译该文件,会发现错误提示。

电大操作系统实验报告一

电大操作系统实验报告一
电大
教师评语
教师签字日期
成绩
学生姓名
姜凤丽
学号
1023001254147
班级
10秋计算机本科
分组
项目编号
项目名称
Linux系统安装实验
实பைடு நூலகம்报告
一、实验目的和实验要求
1、实验目的:
学会安装和配置Linux系统。
2、实验要求:
为虚拟机下的Linux系统安装划分磁盘空间;
正确建立Linux分区
正确安装、启动和关闭Linux系统。
五、实验体会
由于试验时间的紧迫,通过这次试验使我只是初步的学会了,在虚拟机下安装Linux系统的过程,通过本学期的学习操作系统的过程,感觉学习的内容不足以能让我较好地使用Linux系统,感觉对他的了解还是那么少,会在以后的时间内多学习一些关于Linux系统方面的内容,努力做好和学习好Linux系统。
二、实验内容与实验步骤
(要求:针对实验案例的每项工作,完成实验,并分别撰写实验步骤)
实验内容:正确安装、启动和关闭Linux系统
实验步骤:
1.安装虚拟机软件Vmware
1.开始安装
2.选择安装的位置
3.安装组件
4.安装完成
2.在Vmware中安装Linux
1.新建虚拟机
2.我的虚拟机的内存是2G,我现在选择的是1024MB
安装成功进行抓图结果
四、实验中遇到的难点及解决办法
1、在安装的时候为系统建立分区,平时用惯了windows操作系统,在分区的时候分配一个适合的可以供Linux系统运行的空间,在开始的时候分配空间不足,导致在安装的时候一直无法安装在老师的提示下,才得以解决。
2、在虚拟机下进行安装Linux操作系统使得安装更简单方便,便于安装,但是在Linux系统从光盘安装的哪些步骤不能一一体验,比如如何划分Linux系统下的五个分区和从硬盘安装Linux系统的以下命令,这些老师都进行了讲解,如果有较好的实验条件是去安装一次真正的SuSE Linux系统。

华北电力大学操作系统实验报告(含思考题答案)

华北电力大学操作系统实验报告(含思考题答案)

华北电⼒⼤学操作系统实验报告(含思考题答案)操作系统综合实验( 20 -- 20 年度第学期)名称:题⽬:院系:班级:学号:学⽣姓名:指导教师:成绩:⽇期:年⽉实验⼀:实验环境的使⽤⼀、实验⽬的:1、熟悉操作系统集成实验环境OS Lab的基本使⽤⽅法。

2、练习编译、调试EOS操作系统内核以及EOS应⽤程序。

⼆、实验内容:1、启动OS Lab2、学习OS Lab的基本使⽤⽅法3、EOS内核项⽬的⽣成和调试4、EOS应⽤程序项⽬的⽣成和调试5、退出OS Lab6、保存EOS内核项⽬三、实验过程:本实验实验过程主要按照eos操作系统实验教程上所对应的章节来进⾏。

实验结果:(⼀)启动OS Lab :(⽆)(⼆)学习OS Lab的基本使⽤⽅法:(1)、创建了第⼀个项⽬:(2)、⽣成了第⼀个项⽬(3)、添加了func⽂件后经过⼀系列的调试,打印出了相关内容,按shift+F5结束调试。

(4)、查看变量的值:有3种⽅法:1、将⿏标移动到源代码编辑器中变量n的名称上,此时会弹出⼀个窗⼝显⽰出变量n当前的值(由于此时还没有给变量n赋值,所以是⼀个随机值)。

2、在源代码编辑器中变量n的名称上点击⿏标右键,在弹出的快捷菜单中选择“快速监视”,可以使⽤“快速监视”对话框查看变量n的值。

然后,可以点击“关闭”按钮关闭“快速监视”对话框。

3、在源代码编辑器中变量n的名称上点击⿏标右键,在弹出的快捷菜单中选择“添加监视”,变量n就被添加到了“监视”窗⼝中。

使⽤“监视”窗⼝可以随时查看变量的值和类型。

此时按F10进⾏⼀次单步调试,可以看到“监视”窗⼝中变量n的值会变为0(1)、调⽤堆栈:使⽤“调⽤堆栈”窗⼝可以在调试的过程中查看当前堆栈上的函数,还可以帮助理解函数的调⽤层次和调⽤过程。

EOS内核项⽬的⽣成和调试:(2)、新建EOS内核项⽬(3)、⽣成项⽬(4)、调试项⽬(5)、查看软盘镜像⽂件中的内容(6)、查看EOS SDK(Software Development Kit)⽂件夹EOS应⽤程序项⽬的⽣成和调试新建EOS应⽤程序项⽬⽣成项⽬:按F7⽣成项⽬调试项⽬:按F5进⾏各种调试查看软盘镜像⽂件中的内容:使⽤FloppyImageEditor⼯具打开该项⽬中的Floppy.img⽂件,查看软盘镜像中的⽂件。

操作系统实验报告

操作系统实验报告

操作系统实验报告1. 实验目的本次实验的目的是通过设计一个简单的操作系统,深入理解操作系统的基本原理、结构和功能,并通过实践掌握操作系统的核心概念和实现方式。

2. 实验环境本次实验使用的实验环境如下:- 操作系统:Linux Ubuntu 18.04- 开发语言:C/C++- 开发工具:GCC编译器,GNU Make3. 实验内容及步骤本次实验包括以下几个主要内容和步骤:3.1 系统引导- 在操作系统启动时,首先执行系统引导程序,加载操作系统内核到内存中。

- 系统引导程序负责初始化硬件设备,建立起基本的运行环境,然后将控制权转交给操作系统内核。

3.2 内核初始化- 内核初始化过程包括初始化各种数据结构,建立进程控制块(PCB),初始化设备驱动程序等。

- 内核初始化完成后,操作系统进入空闲状态,等待用户的操作请求。

3.3 进程管理- 操作系统需要支持进程管理功能,包括进程的创建、销毁、调度和切换等。

- 进程管理模块负责分配和回收进程资源,根据调度算法决定进程的执行顺序,实现进程的并发执行。

3.4 内存管理- 操作系统需要支持内存管理功能,包括内存的分配和释放、内存的保护和共享等。

- 内存管理模块负责维护内存的使用情况,并根据进程的需求进行内存的分配和回收。

3.5 文件系统- 操作系统需要支持文件系统,提供对文件的创建、打开、读写和关闭等操作。

- 文件系统模块负责管理文件和目录的结构,以及实现对文件的存储和访问策略。

4. 实验结果与分析我们根据上述步骤,设计并实现了一个简单的操作系统。

通过测试和分析,得出以下实验结果和结论:4.1 系统启动与内核初始化- 当系统启动时,我们能够成功加载操作系统的内核,并初始化各种硬件设备。

- 内核初始化过程能够正确建立进程控制块(PCB),并初始化各个设备驱动程序。

4.2 进程管理- 我们能够成功创建和销毁进程,并按照设定的调度算法进行进程的切换。

- 进程间能够实现正确的互斥和同步操作,避免资源竞争和死锁等问题。

国开(电大)操作系统课程实验报告1

国开(电大)操作系统课程实验报告1

国开(电大)操作系统课程实验报告1
概要
该实验报告旨在记录国开(电大)操作系统课程实验1的过程和
结果。

本次实验的主要目标是熟悉操作系统的基本概念和任务管理。

实验过程
1. 阅读实验指南:仔细阅读了实验指南,了解了实验要求和流程。

2. 环境搭建:安装了虚拟机软件并创建了一个虚拟机,用于实
验的操作系统。

3. 实验步骤:
- 步骤1:启动虚拟机并登录操作系统。

- 步骤2:查看当前系统的任务列表。

- 步骤3:创建一个新的任务,并添加一些测试内容。

- 步骤4:查看更新后的任务列表,确认新任务的添加成功。

4. 实验结果:
- 成功完成了所有实验步骤。

- 通过查看任务列表,确认新任务的添加成功。

总结
通过本次实验,我进一步了解了操作系统的基本概念和任务管理。

实践操作系统的相关操作,加深了对操作系统的理解和熟悉度。

在实验过程中,我遵循实验指南,按照步骤进行操作,并取得了预
期的实验结果。

改进建议
对于下次实验,建议在实验过程中记录更多的细节和操作步骤,便于后续复和总结。

同时,对于实验中遇到的问题,可以记录下来
并尝试寻找解决方案,以便在以后的实验中更好地应对类似问题。

电大操作系统实验2:进程管理实验

电大操作系统实验2:进程管理实验
实验目的:
1.加深对进程概念的理解,特别是进程的动态性和并发性。

2.了解进程的创建和终止。

3.学会查看进程的状态信息。

4.学会使用进程管理命令。

实验要求:
1.理解有关进程的概念,能够使用ps命令列出系统中进
程的有关信息并进行分析。

2.理解进程的创建和族系关系。

3.能够使用&,jobs,bg,at等命令控制进程的运行。

实验内容:
1.使用ps命令查看系统中运行进程的信息。

实验环境:
实验步骤和结果:
1.输入ps命令,可以报告系统当前的进程状态。

2.输入ps-e命令,可以显示系统中运行的所有进程,包括系统进程和用户进程。

3.输入ps-f命令,可以得到进程的详细信息。

进程控制:
1.后台进程
1) $grep "注册用户名" /etc/passwd。

/tmp/abc &
2.作业控制
1) 进程休眠60秒Sleep 60 &
2) 进程休眠30秒Sleep 30 &
3) 查看进程状态Jobs
4) 将睡眠30秒的sleep命令放在前台执行fg%2
3.发送中断信号
1) 后台运行sleep命令$sleep 120 &
2) 查看sleep进程的状态$ps-p pid
3) 终止sleep命令$kill -9 pid。

华北电力大学操作系统实验报告

华北电力大学
实验报告
|
|
实验名称操作系统综合实验
课程名称操作系统
|
|
专业班级:网络学生姓名:
学号:成绩:
指导教师:王德文/姜丽梅实验日期:2015年11月4日
2. 当loop线程在控制台1中执行,并且在控制台2中执行suspend命令时,为什么控制台1中的loop线程处于就绪状态而不是运行状态?
答:当在控制台2 中执行suspend命令时,实质上是优先级为24的控制台2线程抢占了处理器,也就是控制台2线程处于运行状态,所以此时loop线程处于就绪状态了。

图 1 调试EOS信号量的工作过程。

华北电力大学实验报告
第页共页。

操作系统实验报告(三)

操作系统实验报告(三)XXXX大学实验报告实验名称实验三银行家算法课程名称操作系统专业班级:学生姓名:学号:成绩:指导教师:实验日期: | || |华北电力大学实验报告一、实验目的及要求 1、实验目的熟悉银行家算法,理解系统产生死锁的原因及避免死锁的方法,加深记意。

2、实验要求用高级语言编写和调试一个描述银行家算法的程序。

设计五个进程{P0,P1,P2,P3,P4}共享三类资源{A,B,C}的系统,{A,B,C}的资源数量分别为10,5,7。

进程可动态地申请资源和释放资源,系统按各进程的申请动态地分配资源。

要求程序具有显示和打印各进程的某一时刻的资源分配表和安全序列;显示和打印各进程依次要求申请的资源号以及为某进程分配资源后的有关资源数据。

二、所用仪器、设备 PC机三、实验原理利用银行家算法避免死锁1、银行家算法中的数据结构可利用资源向量Available 最大需求规阵Max 分配矩阵Allocation 需求矩阵Need 2、银行家算法如果Requesti<或=Need,则转向步骤2;否则,认为出错,因为它所需要的资源数已超过它所宣布的最大值。

如果Request<或=Available,则转向步骤;否则,表示系统中尚无足够的资源,P1必须等待。

系统试探把要求的资源分配给进程Pi,并修改下面数据结构中的数值:Available:=Available-Requesti; Allocation:=Allocationi+Request;Needi:=Needi-request; (4)系统执行安全性算法,检查此次资源分配后,系统是否处于安全状态。

3、安全性算法系统所执行的安全性算法可描述如下:设置两个向量①工作向量Work。

它表示系统可提供进程继续运行所需要的各类资源数目,它含有m个元素,执行安全算法开始时,Work:=Allocation; ②Finish。

它表示系统是否有足够的资源分配给进程,使之运行完成,开始时先做Finish[i]:=false;当有足够资源分配给进程时,令Finish[i]:=true。

操作系统B实验报告(华北电力大学科技学院)


h->next->priority--;
}
void show(PCB *h)
{
PCB *p=h->next;
while(p!=NULL)
{
cout<<"
p"<<p->id <<"
"<<p->runtime <<"
"<<p->priority <<"
"<<p->status <<endl;
cout<<"---------------------------------------------------------------------- "<<endl;
课程设计报告
( 2012-- 2013 年度第 1 学期)
名 称: 操作系统原理课程设计 B
院 系: 科技学院信息工程系
班 级:
学 号:
学生姓名:
指导教师:
设计周数:
4
成 绩:
日期: 年 月 日
《操作系统原理课程设计 B》课程设计
任务书
一、 目的与要求
1. 理解和掌握操作系统的基本概念、基本组成与工作原理; 2. 理解和掌握操作系统中主要功能模块的工作原理及其实现算法; 3. 掌握软件模块设计技能;熟悉并能较好地利用软件开发环境独立编程、调试和分 析程序运行情况,逐渐形成创新思维和从事系统软件的研究和开发能力。
q=q->next; } p->next=q->next; q->next=p; } } void sort(PCB *h) { if(h->next->runtime==0) { h->next->status='E'; h->next=h->next->next; return; } PCB *p=h->next; h->next=p->next; PCB *q=h->next; if((q==NULL)||(p->priority>q->priority)) { p->next=h->next; h->next=p; return;
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

综合实验报告( 2013-- 2014年度第一学期)名称:计算机操作系统题目:计算机操作系统实验院系:计算机系班级:网络学号:学生姓名:指导教师:王平设计周数:2周成绩:日期:2013 年11 月实验1 实验环境的使用一、实验目的1、熟悉操作系统集成实验环境OS Lab的基本使用方法。

2、练习编译、调试EOS操作系统内核以及EOS应用程序。

二、预备知识阅读本书第1章,对EOS操作系统和OS Lab集成实验环境有一个初步的了解。

重点学习第1.3节,掌握EOS操作系统内核和EOS应用程序的源代码是如何生成可执行文件的,以及OS Lab是如何将这些可执行文件写入软盘镜像文件并开始执行的。

三、实验内容1、启动OS Lab1. 在安装有OS Lab的计算机上,可以使用两种不同的方法来启动OS Lab:在桌面上双击“Tevation OS Lab”图标。

或者点击“开始”菜单,在“程序”中的“Tevation OS Lab”中选择“Tevation OS Lab”。

2. OS Lab每次启动后都会首先弹出一个用于注册用户信息的对话框(可以选择对话框标题栏上的“帮助”按钮获得关于此对话框的帮助信息)。

在此对话框中填入学号和姓名后,点击“确定”按钮完成本次注册。

3. 观察OS Lab主窗口的布局。

OS Lab主要由下面的若干元素组成:菜单栏、工具栏以及停靠在左侧和底部的各种工具窗口,余下的区域用来放置编辑器窗口。

2、学习OS Lab的基本使用方法2.1 新建Windows控制台应用程序项目新建一个Windows控制台应用程序项目的步骤如下:1. 在“文件”菜单中选择“新建”,然后单击“项目”。

2. 在“新建项目”对话框中,选择项目模板“控制台应用程序 (c)”。

3. 在“名称”中输入新项目使用的文件夹名称“oslab”。

4. 在“位置”中输入新项目保存在磁盘上的位置“C:\test”。

5. 点击“确定”按钮。

2.2 生成项目使用“生成项目”功能可以将程序的源代码文件编译为可执行的二进制文件,方法十分简单:在“生成”菜单中选择“生成项目”。

在项目生成过程中,“输出”窗口会实时显示生成的进度和结果。

如果源代码中不包含语法错误,会在最后提示生成成功,如图:2.3 执行项目在OS Lab中选择“调试”菜单中的“开始执行(不调试)”,可以执行刚刚生成的Windows控制台应用程序。

启动执行后会弹出一个Windows控制台窗口,显示控制台应用程序输出的内容。

按任意键即可关闭此Windows控制台窗口。

2.4 调试项目在开始练习各种调试功能之前,首先需要对刚刚创建的例子程序进行必要的修改,步骤如下: 1. 右键点击“项目管理器”窗口中的“源文件”文件夹节点,在弹出的快捷菜单中选择“添加”中的“添加新文件”。

2. 在弹出的“添加新文件”对话框中选择“C 源文件”模板。

3. 在“名称”中输入文件名称“func”。

4. 点击“添加”按钮,添加并自动打开文件func.c,此时的“项目管理器”窗口会如图:2.4.1 使用断点中断执行1. 在main函数中定义变量n的代码行 int n = 0; 上点击鼠标右键,在弹出的快捷菜单中选择“插入/删除断点”,会在此行左侧的空白处显示一个红色圆点,表示已经成功在此行代码添加了一个断点,如图:2. 在“调试”菜单中选择“启动调试”,Windows控制台应用程序开始执行,随后OS Lab窗口被自动激活,并且在刚刚添加断点的代码行左侧空白中显示一个黄色箭头,表示程序已经在此行代码处中断执行(也就是说下一个要执行的就是此行代码),如图:2.4.2 单步调试按照下面的步骤练习使用“逐过程”功能:1. 在OS Lab的“调试”菜单中选择“逐过程”,“逐过程”功能会执行黄色箭头当前指向的代码行,并将黄色箭头指向下一个要执行的代码行。

2. 按F10(“逐过程”功能的快捷键),黄色箭头就指向了调用printf函数的代码行。

查看控制台应用程序窗口,仍然没有任何输出。

3. 再次按F10执行printf函数,查看控制台应用程序窗口,可以看到已经打印出了内容。

4. 在“调试”菜单中选择“停止调试”,结束此次调试。

2.4.3 查看变量的值在调试的过程中,OS Lab提供了三种查看变量值的方法,按照下面的步骤练习这些方法:1. 按F5启动调试,仍然会在之前设置的断点处中断。

2. 将鼠标移动到源代码编辑器中变量n的名称上,此时会弹出一个窗口显示出变量n当前的值(由于此时还没有给变量n赋值,所以是一个随机值)。

3. 在源代码编辑器中变量n的名称上点击鼠标右键,在弹出的快捷菜单中选择“快速监视”,可以使用“快速监视”对话框查看变量n的值。

然后,可以点击“关闭”按钮关闭“快速监视”对话框。

4. 在源代码编辑器中变量n的名称上点击鼠标右键,在弹出的快捷菜单中选择“添加监视”,变量n就被添加到了“监视”窗口中。

使用“监视”窗口可以随时查看变量的值和类型。

此时按F10进行一次单步调试,可以看到“监视”窗口中变量n的值会变为0,如图2.4.4 调用堆栈1. 按F5启动调试,仍然会在之前设置的断点处中断。

2. 选择“调试”菜单“窗口”中的“调用堆栈”,激活“调用堆栈”窗口。

可以看到当前“调用堆栈”窗口中只有一个main函数(显示的内容还包括了参数值和函数地址)。

3. 按F11(“逐语句”功能的快捷键)调试,直到进入Func函数,查看“调用堆栈”窗口可以发现在堆栈上有两个函数Func和main。

其中当前正在调试的Func函数在栈顶位置,main函数在栈底位置。

说明是在main函数中调用了Func函数。

3、EOS内核项目的生成和调试3.1 新建EOS内核项目新建一个EOS内核项目的步骤如下:1. 在“文件”菜单中选择“新建”,然后单击“项目”。

2. 在“新建项目”对话框中,选择项目模板“EOS Kernel”。

3. 在“名称”中输入新项目使用的文件夹名称“eos”。

4. 在“位置”中输入新项目保存在磁盘上的位置“C:\”。

5. 点击“确定”按钮。

3.2 生成项目1. 按F7生成项目,同时查看“输出”窗口中的内容,确认生成成功。

2. 打开C:\eos\debug文件夹,查看生成的对象文件和目标文件。

找到boot.bin、loader.bin 和kernel.dll三个二进制文件,这三个文件就是EOS操作系统在运行时需要的可执行文件。

3.3 调试项目1. 在“项目管理器”窗口的ke文件夹中找到start.c文件节点,双击此文件节点使用源代码编辑器打开start.c文件。

2. 在start.c文件中KiSystemStartup函数的“KiInitializePic();”语句所在行(第61行)添加一个断点,如图9-7。

EOS启动时执行的第一个内核函数就是KiSystemStartup函数。

3.4 查看软盘镜像文件中的内容在“项目管理器”窗口中双击软盘镜像文件Floppy.img,就会使用FloppyImageEditor工具打开此文件(在FloppyImageEditor工具中按F1可以查看此工具的帮助文件)。

在FloppyImageEditor 工具的文件列表中可以找到loader.bin文件和kernel.dll文件,这两个文件都是在启动调试时被写入软盘镜像文件的(可以查看这两个文件的修改日期)。

boot.bin文件在启动调试时被写入了软盘镜像的引导扇区中,不受软盘文件系统的管理,所以在文件列表中找不到此文件。

关闭FloppyImageEditor工具。

3.5 查看EOS SDK(Software Development Kit)文件夹1. 点击OS Lab工具栏上的“项目配置”下拉列表,选择下拉列表中的“Release”项目配置,“Release”项目配置被设置为新的活动项目配置(原来的活动项目配置是“Debug”)。

如图:4、EOS应用程序项目的生成和调试4.1 新建EOS应用程序项目1. 在“文件”菜单中选择“新建”,然后单击“项目”。

2. 在“新建项目”对话框中,选择项目模板“EOS 应用程序”。

3. 在“名称”中输入新项目使用的文件夹名称“eosapp”。

4. 在“位置”中输入新项目保存在磁盘上的位置“C:\”。

5. 点击“确定”按钮。

4.2 生成项目1. 按F7生成项目,同时查看“输出”窗口中的内容,确认生成成功。

2. 打开C:\eosapp\debug文件夹,查看生成的对象文件和目标文件。

其中的EOSApp.exe就是EOS 应用程序的可执行文件。

4.3 调试项目4.4查看软盘镜像文件中的内容4.5修改EOS应用程序项目名称5、退出OS Lab1. 在“文件”菜单中选择“退出”。

2. 在OS Lab关闭前会弹出一个保存数据对话框(可以选择对话框标题栏上的“帮助”按钮获得帮助信息),核对学号和姓名无误后点击“保存”按钮,OS Lab关闭。

3. 在OS Lab关闭后默认会自动使用Windows资源管理器打开数据文件所在的文件夹,并且选中刚刚保存的数据文件(OUD文件)。

将数据文件备份保存在自己的文件中。

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

2、查看EOS启动后的状态和行为,理解操作系统启动后的工作方式。

二、预备知识阅读本书第3章,了解EOS操作系统的启动过程。

阅读第2章中的第2.4节,复习汇编语言的相关知识,并掌握NASM汇编代码的特点。

阅读附录A,了解Bochs和Virtual PC这两款虚拟机软件的特点,重点熟悉Bochs的调试命令。

三、实验内容3.1 准备实验1. 启动OS Lab。

2. 新建一个EOS Kernel项目。

3. 在“项目管理器”窗口中打开boot文件夹中的boot.asm和loader.asm两个汇编文件。

boot.asm是软盘引导扇区程序的源文件,loader.asm是loader程序的源文件。

简单阅读一下这两个文件中的NASM汇编代码和注释。

4. 按F7生成项目。

3.2 调试EOS操作系统的启动过程3.2.1 使用Bochs做为远程目标机1. 在“项目管理器”窗口中,右键点击项目节点,在弹出的快捷菜单中选择“属性”。

2. 在弹出的“属性页”对话框右侧的属性列表中找到“远程目标机”属性,将此属性值修改为“Bochs Debug”(此时按F1可以获得关于此属性的帮助)。

3. 点击“确定”按钮关闭“属性页”对话框。

接下来就可以使用Bochs模拟器调试BIOS程序和软盘引导扇区程序了。

3.2.2 调试BIOS程序1.在Console窗口中输入调试命令sreg后按回车2. 输入调试命令r后按回车3.2.3 调试软盘引导扇区程序3.2.4 调试加载程序3.2.5 调试内核3.2.6 EOS启动后的状态和行为在控制台中输入命令“ver”后按回车在控制台中输入命令“pt”后按回车实验3 进程的创建一、实验目的1、练习使用EOS API函数CreateProcess创建一个进程,掌握创建进程的方法,理解进程和程序的区别。

相关文档
最新文档