- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
OS综合实验报告1
综合实验报告
( 2013 -- 2014 年度第 1 学期)
名 称: 操作系统综合实验
题 目: 基于OS Lab的操作系统综合实验
院 系: 计算机系
班 级:
学 号:
学生姓名:
指导教师: 王德文,王 艳
设计周数: 1
成 绩:
日期: 2013 年 月 日
一、课程设计附录()
? 熟悉操作系统集成实验环境OS Lab的基本使用方法。
? 练习编译、调试EOS操作系统内核以及EOS应用程序。
2.实验内容:
. 学习OS Lab的基本使用方法
a.启动OSlab
b.新建windows控制台程序项目,eos内核项目,eos应用程序项目;
c.生成项目
d.执行项目
e.调试项目
f.项目名称的修改及项目的保存
.实验中代码的修改:
1)在 func.c 文件中添加函数:
int Func (int n) { n = n + 1; return n; }
2)点击源代码编辑器上方的console.c标签,切换到console.c文件。将 main 函数修改为:
int main (int argc, char* argv[])
{
int Func (int n); // 声明Func函数
int n = 0;
n = Func(10);
printf (Hello World!\n);
return 0;
}
问题答案:
EOS SDk文件夹的目的和作用:
主要供EOS应用程序使用。EOS内核提供的API函数及重要的数据类型都是通过将相关的头文件复制到SDK文件夹中,然后EOS应用程序再包含SDK文件夹中的头文件,使EOS应用程序可以调用这些函数或使用数据类型来定义变量。同时,SDK文件夹中还保存了Debug和Release版本的二进制文件,分别为两个版本的应用程序使用。
运行结果图示
实验总结及体会:
通过本次实验,对EOS操作系统和OS Lab集成实验环境有一个初步的了解,学会了创建三种项目,项目的调试,执行及保存,还有一些文件的含义。
实验三.进程创建
1.实验目的:
练习使用EOS API函数CreateProcess创建一个进程,掌握创建进程的方法,理解进程和程序的区别。
试跟踪CreateProcess函数的执行过程,了解进程的创建过程,理解进程是资源分配的单位。
2.实验内容:
练习使用控制台命令创建EOS应用程序的进程;
练习通过编程的方式让应用程序创建另一个应用程序的进程CreateProcess函数;
调试PsCreateProcess函数;
练习通过编程的方式创建应用程序的多个进程#include EOSApp.h
int main(int argc, char* argv[])
{
int i;
for (i = 1; i = 5; i++) {
printf(Hello,world! %d\n, i);
Sleep(1000);
}
printf(Bye-bye!\n);
return 0;
}
2. /*
#include EOSApp.h
int main(int argc, char* argv[])
{ STARTUPINFO StartupInfo;
PROCESS_INFORMATION ProcInfo;
ULONG ulExitCode; // 子进程退出码
INT nResult = 0; // main 函数返回值。0 表示成功,非 0 表示失败。
#ifdef _DEBUG
__asm(int $3\n nop);
#endif
printf(Create a process and wait for the process exit...\n\n);
StartupInfo.StdInput = GetStdHandle(STD_INPUT_HANDLE);
StartupInfo.StdOutput = GetStdHandle(STD_OUTPUT_HANDLE);
StartupInfo.StdError = GetStdHandle(STD_ERROR_HANDLE);
if (CreateProcess(A:\\Hello.exe, NULL, 0, StartupInfo, ProcInfo)) {
WaitForSing
文档评论(0)