操作系统基于F和SF的进程管理系统.doc
《操作系统基于F和SF的进程管理系统.doc》由会员分享,可在线阅读,更多相关《操作系统基于F和SF的进程管理系统.doc(15页珍藏版)》请在沃文网上搜索。
1、第一章 概述1.1选定的题目基于FCFS和SPF的进程管理系统的设计1.2课程设计意义 课程设计是实践性教学中的一个重要环节,它以某一课程为基础,可以涉及和课程相关的各个方面,是一门独立于课程之外的特殊课程。课程设计是让同学们对所学的课程更全面的学习和应用,理解和掌握课程的相关知识。计算机操作系统一门重要的专业课,是开发操作系统和软件系统的理论和应用基础。1.3课程设计的目的本设计的目的是:加深对进程概念及进程管理各部分内容的理解;熟悉FCFS和SPF两种进程调度算法。1.4课程设计的要求(1)设计一个完整的进程调度系统,系统中至少包括5个进程;(2)定义PCB;(3)采用链表管理就绪队列;(
2、4)结果要能够显示出进程的调度序列及进入系统的时间、运行时间等必要信息。第二章 系统分析本系统实现的功能有:在OS中调度的实质一种资源分配,因此调度算法是指:根据系统的资源分配策略所规定的资源分配算法。先来先服务调度算法是一种最简单的调度算法,在进程调度中采用FCFS算法时,每次调度是从就绪队列中选择一个最先进入该队列的的进程,位置分配处理机,使之投入运行。该进程一直运行到完成或发生某件事而阻塞后才放弃处理机。短进程优先调度算法,是指对短进程进行优先调度的算法。段进程优先调度算法从就绪队列中选出一个估计运行时间最短的进程,将处理及分配给它,使他执行并一直执行到完成,或发生某事件而被阻塞放弃处理
3、及时再度重新利用。第三章 系统设计3.1 功能模块设计 进程创建模块 此模块用来创建进程实体,设置进程的到达时间、服务时间、开始时间。 就绪队列模块 此模块用链式队列来实现,用来存放已经创建的进程,为下面的两个模块来服务。 FIFO模块 此模块是先进先出算法的实现模块,此模块遍历模块2中的就绪队列来找到到达时间的从小到的大的序列。 SPF模块 此模块是短进程优先调度算法的实现模块,此模块遍历2中的就绪队列来找到服务时间从小打到的序列。3.2 PCB创建模块typedef struct PCB char name50; /*进程名字*/ int flag; long size; int arri
4、ve; /到达时间 int start; /开始时间 int server; /服务时间 struct PCB *next; /*链指针*/PCB,*PCBNode;结束选择调度算法(P/R)输入进程数量输入进程名称和时间输出优先级按任意键输出结果开始结束选择调度算法(P/R)输入进程数量输入进程名称和时间输出优先级按任意键输出结果开始结束选择调度算法(P/R)输入进程数量输入进程名称时间输出优先级按任意键输出结果开始第四章 程序设计流程图开始创建进程输入进程名称、大小、创建时间、服务时间就绪队列查看选择调度算法(FCFS/SPF)输出结果结束第五章 源程序清单#include struct.
5、h#include stdio.h#include stdlib.h#include string.h#include #include iomanip#define null 0#define OVERFLOW -2#define ERROR 0#include iostreamusing namespace std;class PCBQueuepublic: PCB *front;public: PCB *rear;/int mutex;PCBQueue() front=rear=(PCB*)malloc(sizeof(PCB); if (!front) exit(OVERFLOW); e
6、lse strcpy(front-name,nullqueue); front-flag=-1;front-size=0;front-server=0;front-arrive=-1;front-start=0;front-next=null; bool inqueue(PCBNode &p)p-next=null; rear-next=p; rear=p;return true;bool outqueue(PCBNode &p)if(front=rear) return false;p=front-next;front-next=p-next;if (rear=p) rear=front;r
7、eturn true;bool isnull()if (front=rear) return true;elsereturn false;int number() int i=0;PCBNode p=front;while(p!=rear) p=p-next; i+;return i;void traverse()if(isnull()cout就绪队列为空。endl;elsecout就绪进程数为:number()next;for(int i=0;inumber();i+)cout进程名字:namet进程标识符:flagnext;/bool tellprocessmessage(int flag
8、)PCBNode p;p=findprocess(flag);if(p)cout进程 名字:nameendl;cout进程标识符:flagendl;cout进程 大小:sizeendl;cout进程创建时间:arriveendl;cout进程服务时间:serverflag!=flag) p=p-next;elsebreak; if(!p) cout没有此进程。endl; return p;PCBQueue()if(front)free(front);if(rear)free(rear);typedef struct PCB char name50; /*进程名字*/ int flag; lon
9、g size; int arrive; /到达时间 int start; /开始时间 int server; /服务时间 struct PCB *next; /*链指针*/PCB,*PCBNode;#define default_memorysize 20*1024 /默认内存大小MB#define default_blocksize 1024 /默认物理块大小KB#define default_blockmaxnumber 2000#define fangcunxuliesize 10#include iostream#include process.h#include #include #
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 基于 SF 进程 管理 系统