操作系统课设报告Fan

操作系统课设报告Fan

ID:37764249

大小:341.50 KB

页数:19页

时间:2019-05-30

操作系统课设报告Fan_第1页
操作系统课设报告Fan_第2页
操作系统课设报告Fan_第3页
操作系统课设报告Fan_第4页
操作系统课设报告Fan_第5页
资源描述:

《操作系统课设报告Fan》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、操作系统课程设计报告系(院):计算机科学学院专业班级:计科10903姓名:范先星班内序号:11学号:200903805指导教师:冯伟钟宝荣设计时间:2011.12.12-2011.12.18设计地点:12教机房一、课程设计目的3二、设计任务及要求3三、需求分析4四、总体设计4五、详细设计与实现[含代码和实现界面]7六、课程设计小结一课程设计目的1深入理解课程中有关多道程序设计、进程管理、内存管理2熟悉程序设计、数据结构、软件设计3体验软件开发的相关过程二、课设内容假设一个机器,其有内存为32KB,系统采用请求页式系统进行存

2、储管理,每个页面大小为1KB,另外其运行的OS----KSOS本身需要占用占用8K,剩余空间留给了用户进程共享使用。模拟系统KSOS采用多道程序设计的方案,规定每个进程使用的最大块数为4KB。本课程设计要求设计程序来模拟上述场景的实现,程序的用户可以通过命令、菜单、按钮等用户接口来动态创建进程,系统让用户输入需创建的进程的逻辑地址空间大小,系统响应用户创建的要求后,创建PCB、生成模拟程序代码。课程设计系统中用线程来模拟KSOS系统中的进程,设计程序来模拟采用时间片轮转调度算法驱动各进程向前推进,当然推进的顺序是按照创建时

3、随机生成的模拟程序来行进的。开始所有的页都不在内存,随着程序推进,它们被调入内存,KSOS改变页表、内存位示图,反映系统内部的实际状况。模拟程序代码表中的时长部分为该地址的内存使用的时间长度(定时时间粒度的个数)。系统可以用多线程实现:主线程为用户界面线程,每次用户创建一个进程程,内部就创建一个线程与之对应;也可以用定时器来模拟多个进程的运行。用户界面上可以显示内存的变化情况,可以动态显示当前处理机运行进程的有关情况,如三、需求分析这次课设在做需求分析时,我是这样做的。首先要实现时间片轮转算法,将多个进程排成一个就绪队列,

4、每次给队首一个时间片。要将进程轮转的效果显现出来就应该采用动态着色,进程切换时,进程颜色跟着轮转,进程消亡时,进程颜色变成系统白色。同时,为了能更精细地显示各个内存块与诸个页面的对应动态关系,也应利用动态着色来实现,而且还要用到细化到块着色。进程切换的同时,将该进程在内存块中运行的页面与物理块对应起来,显示在界面下方的进度栏上。这以后大概的内存管理也就差不多实现了,只需再稍加润色就好了。其次,对于页面置换算法,我采用的是先进先出。当程序运行时发现有缺页,就会申请将所缺页面调入内存。我想将此过程在页表框上显示出来。通过生成的

5、代码的逻辑地址,每隔一定时间执行一定数量的代码,同时将此动态过程显示在页表框,直至该进程所有的指令全部执行完。然后就是生成进程。我并没有用线程来代替进程,而是用定时器来实现的。每次输入一组关于进程的参数创建若干个进程,然后将这些创建好的进程的相关信息存入一数组。在按下创建进程组后,该进程的所有信息全部被存入该数组的一个元素中。后续程序要用到该进程的一些参数时,完全可以通过调用相关的数组元素来实现对进程时间片轮转算法以及页面置换算法演算。最后就是该如将定时与进程切换以及页面置换串起来了。这部分应该在OnTimer()函数中实

6、现。四、总体设计此程序主要分为三部分:参数输入部分,进程信息存储,效果显示部分。1.参数输入部分通过MFC中的编辑框接受进程各项参数,在用消息传递将编辑框中的信息存储到字符数组中,通过atoi()和itoa()函数实现char类型和int类型之间的转换。2.进程信息存储在创建进程类后,通过上个步骤所传过来的参数对进程类的各个类成员进行赋值。以及通过创建进程组按键的Click()事件可以确定进程的个数。3.效果显示部分此部分主要通过对一系列的静态文本框和Button进行着色。这部分相对来说属于细节实现部分,但我却为此花了不少

7、功夫。因为自己对MFC已经有段时间没接触,有些生疏了。五、详细设计与实现根据思路首先我建好了框架,然后开始构架数据结构,创建各个类以及队列等,再而逐一开始各个部分的功能实现。程序流程图如下:1.所使用的类及相关数据结构:enumSTATUS{RUN,READY,WAIT,FINISH};structQueueNode{intID;//进程IDstructQueueNode*next;//队列中下一个进程指针};structLinkQueue{QueueNode*head;//队首};classCPageTableItem{

8、public:byteInterruptBit;//中断位:0--不在内存;1--在内存intFrameNo;//内存的帧号intPageNum;ICPageTableItem(byteInBit,intFrNo,intPaNum){InterruptBit=InBit;FrameNo=FrNo;Pag

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

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

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