操作系统课程设计汇本.doc

操作系统课程设计汇本.doc

ID:56485126

大小:686.50 KB

页数:50页

时间:2020-06-24

操作系统课程设计汇本.doc_第1页
操作系统课程设计汇本.doc_第2页
操作系统课程设计汇本.doc_第3页
操作系统课程设计汇本.doc_第4页
操作系统课程设计汇本.doc_第5页
资源描述:

《操作系统课程设计汇本.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、课程设计说明书学院:计算机科学与工程学院专业:计算机科学与技术姓名:天驹学号:0900310327指导教师:黄廷辉2012年3月5日操作系统课程设计报告GeekOS操作系统的研究与实现(项目0-------项目2)一、实验目的:熟悉GeekOS项目编译运行环境、核态进程的实现、用户态进程的实现、进程调度策略和算法实现、分页存储管理的实现和文件系统的实现等。二、项目设计要求:GeekOS设计项目0:1.搭建GeekOS的编译和调试平台,掌握GeekOS的核进程工作原理。2.熟悉键盘操作函数,编程实

2、现一个核进程。该进程的功能是:接受键盘输入的字符并显示到屏幕上,当输入Ctrl+D时,结束进程的运行。GeekOS设计项目1:1.修改/geekos/elf.c文件:在函数Parse_ELF_Executable()中添加代码,分析ELF格式的可执行文件(包括分析得出ELF文件头、程序头,获取可执行文件长度、代码段、数据段等信息),并填充Exe_Format数据结构中的域值。2.掌握GeekOS在核心态运行用户程序的原理,为项目2的实现做准备。GeekOS设计项目2:本项目要求用户对以下几个文件

3、进行修改:1.src/GeekOS/user.c文件中的函数Spawn(),其功能是生成一个新的用户级进程。1.src/GeekOS/usre.c文件中的函数Switch_To_User_Context(),调度程序在执行一个新的进程前调用该函数以切换用户地址空间。2.src/GeekOS/elf.c文件中的函数Parse_ELF_Executable()。该函数的实现要求和项目1相同。3.src/GeekOS/userseg.c文件中主要是实现一些为实现对src/GeekOS/user.c中高

4、层操作支持的函数。(1)Destroy_User_Context()函数的功能是释放用户态进程占用的存资源。(2)Load_User_Program()函数的功能是通过加载可执行文件镜像创建新进程的User_Context结构。(3)Copy_From_User()和Copy_To_User()函数的功能是在用户地址空间和核地址空间之间复制函数,在分段存储器管理模式下,只要段有效,调用memcpy函数就可以实现这两个函数的功能。(4)Switch_To_Address_Space()函数的功能是

5、通过将进程的LDT装入到LDT寄存器来激活用户的地址空间。5.src/GeekOS/kthread.c文件中的Start_User_Thread函数和Setup_User_Thread函数。(1)Setup_User_Thread()函数的功能是为进程初始化核堆栈,堆栈中是为进程首次进入用户态运行时设置处理器状态要使用的数据。(2)Start_User_Thread()是一个高层操作,该函数使用User_Context对象开始一个新进程6.src/GeekOS/Syscall.c文件中主要是实现

6、用户程序要求核进行服务的一些系统调用函数定义。要求用户实现的有Sys_Exit()函数、Sys_PrintString()函数、Sys_GetKey()、Sys_SetAttr()、Sys_Getcursor()、Sys_PutCursor()函数、Sys_Wait()函数和Sys_GetPID()函数。这些函数在文件中有详细的注释,按照提示用户可以很好实现它们的功能。最后,需要在main.c文件中改写生成第一个用户态进程的函数调用:Spawn_Init_Process(void)。需要注意的是

7、:作为与用户沟通的界面,GeekOS提供了一个简单的Shell,保存在PFAT文件系统,所以GeekOS系统启动后,应启动shell程序/c/shell.exe运行,所以需要将/c/shell.exe作为可执行文件传递给Spawn函数的program参数,创建第一个用户态进程,然后由它来创建其他进程。添加代码运行成功后,GeekOS就可以挂载shell,并能运行测试文件c.exe和b.exe。一、如何建立开发环境:(一)利用linux安装盘安装了ubuntu10.10版本的linux操作系统环境

8、;(二)联网后通过系统里的更新管理器更新了系统,并安装了语言包和必要的驱动。(三)在ubuntu软件中心下载安装了NASM汇编器、BochsPC模拟器以及bochs-x插件(保证ubuntu10.10环境下的bochs正常运行)。二、项目设计原理:Make工作原理:在默认的方式下,只要输入make命令就可以工作。具体的处理过程如下:(1)make会在当前目录下找文件名为“Makefile”或“makefile”的文件。(2)如果找到,它会找文件中的第一个目标文件(target),在上面的例子中,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。