操作系统课程设计文档.doc

操作系统课程设计文档.doc

ID:49528602

大小:173.00 KB

页数:13页

时间:2020-03-02

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

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

1、目录1.课程设计目的及要求11.1课程设计的目的11.2设计内容与要求11.2.1设计内容11.2.2设计要求12.设计说明22.1需求分析22.2方案设计22.3编码32.3.1CPU虚拟指令设计32.3.2PCB栈设计32.3.3输出设计42.3.4cpu执行52.4测试53.总结7参考文献8附录A程序源代码9121.课程设计目的及要求1.1课程设计的目的通过对操作系统课程的学习,利用所学的知识原理,通过本次的课程设计使学生能更进一步地理解操作系统的设计和实现思路,掌握操作系统主要原理和算法,培养学

2、生的动手能力,实现理论知识与实践的结合。1.2设计内容与要求1.2.1设计内容设计一个虚拟内核,该内核能支持多任务管理。提供创建进程、终止进程、进程状态转换,进程调度,上下文切换等功能。1.2.2设计要求功能要求:应实现的功能有:(1)能接收用户提交的命令并执行该命令。(2)执行用户程序:创建进程、终止进程、调度进程、管理进程状态转换技术要求:采用时间轮转和优先级调度混合算法。优先级以优先数表示,优先数越大则优先级越高。调度时,就绪队列中优先数最大的进程优先运行,相同优先数进程按FIFO方式调度。进程运

3、行一个时间片以后,其优先数数减1(即降低一级);进程在就绪队列中等待3个时间片以后,其优先数加1。优先数范围0~31。界面要求:用户界面设计不做统一规定,但应做到界面友好,易于操作。其他要求:在设计中须使用make工具建立工程。122.设计说明2.1需求分析根据所有的设计要求和内容分析把整个设计分为三个部分,一个是伪指令的解释执行程序,二是伪调度算法、系统调用和文件输入,三是进程的创建及mian()函数的总体实现。系统由虚拟内核(VKernel)、命令解释程序(Commander)、用户程序(Appli

4、cation)、编译器(Compiler)四部分组成。VKernel首先运行,并常驻内存。Kernel启动后,创建Commander进程。根据用户请求创建多个Application进程。Kernel负责维护6个数据结构,包括时间(Time),处理器状态(CPUstate),进程表(PCBTable),就绪队列(ReadyState),等待队列(BlockedState),运行进程(RunningState)。Time是系统时间片。CPUstate应包括程序计数器PC,累加器A、B,状态寄存器F的值。PC

5、BTable的每一项是一个进程的进程控制块(PCB)。Commander程序、Application程序是用CPU虚拟指令书写的程序。命令解释程序从标准输入重复读入用户命令,然后以消息形式发送给内核。命令解释程序处理的命令由设计者定义并实现。编译器把虚拟指令和虚拟系统调用编译为可执行字节码。可执行字节码由内核解释执行。2.2方案设计设计分两步走,先实现一个简单的虚拟内核,简单虚拟内核运行无误后,再在上面扩展,增加10条指令,存放在cpl文件夹中。在编写一个.cpp程序,具有虚拟内核能并发执行两个以上程序

6、,基于优先数抢占调度(不含等待态),指令10条以上(含跳转指令、系统调用)的功能。在typedefstructPCB{}PCB中,shortA寄存器A,intPC程序计数器PC,char*addr程序加载起始地址,intlength程序大小,charname[24]进程名字,intpriority;优先级数,值为0--31,其中31为最高级,intcputimecpu运行时间,intneedtime还需运行的时间stateprocess为ready,execute,finish三种状态PCB*next。

7、PCB*get_process()用来加载用户程序;界面采用voiddisplay()函数,让用户根据自己的需要输入进程名和运行所需的时间;所需时间为0的时候进程结束使用函数intprocess_finish()判断;voidcpuexerun()函数用来执行指令其中包含新增加的10条指令;voidcpuexe()调用voidcpuexerun(),并寻找优先级最高的执行;在main()中调用voidpriority_cal()将程序运行;最后将无误的.cpp文件和cpl文件夹放在同一目录下,执行程序是

8、只需运行.cpp程序。122.3编码2.3.1CPU虚拟指令设计常用的CPU虚拟指令MOVn //把整数n赋给累加器ASAVm //把累加器A的值存入地址MBLKn //累加器A为地址的M个数传送到累加器B为地址的单元。ADDn  //从累加器A的值减去整数n,结果送到累加器A。SUBn  //从累加器A的值减去整数n,结果送到累加器A。MULn  //从累加器A的值乘以整数n,结果送到累加器A。DIVn  //从累加器A的值除以整数n,结

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

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

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