欢迎来到天天文库
浏览记录
ID:44090483
大小:327.00 KB
页数:17页
时间:2019-10-18
《进程调度算法操作系统课程设计随机产生数》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、进程调度算法1.设计目的在多道程序设计中,经常是若干个进程同时处于就绪状态,必须依照某种策略决定哪个进程优先占有处理机,因而必须解决进程调度的问题,进程调度算法就是要解决进程调度的问题。2.任务及要求2」设计任务设计程序来模拟进程的四种调度算法,模拟实现调度的基本功能。2.2设计要求产牛的各种随机数要加以限制,如alltime限制在40以内的整数。进程的数量n不能取值过大。3.算法及数据结构3」算法的总体思想(流程)每个舟来标识进程的进程控制块PCB用结构来描述,包括以下字段:(1)进程优先数ID,其屮0
2、为闲逛进程,用户进程的标识数为I,2,3…。(2)进程优先级Priority,闲逛进程(idle)的优先级为(),川户进程的优先级大于0,且随机产生,优先数越大,优先级越高。(3)进程占用的CPU时间CPUtime,进程每运行一次,累计值等于4。(4)进程总共需要运行时间Alltime,利用随机函数产生。(5)进程状态,0:就绪态;1:运行态;2:阻塞态。利用链表将数据连接起来,实现数据的存储。3.2链表模块3.2.1功能实现链表的存储功能,以及实现存储的査找功能。3.2.2数据结构构造链表这个数据结构,
3、以及链表的初始化,链表的插入,链表的长度。3.2.3算法typedefstruct}ElemType*elem;intlength;intlistsize;JSqList;StatuslnitList(SqList&l){l.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));if(!l.elem)exit(OVERFLOW);l.length=O;l.listsize=LISTINITSIZE;returnOK;}intListLength(S
4、qListI){return(l.length);}StatusListInsert_Sq(SqList&LJnti,ElemTypee){〃在顺序表L的第i个位置前插入元索e,i的合法值为I..L.length+lif(iL.lengths1)returnERROR;if(L.length>=L」istsize){ElemType*newbase=(ElemType*)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(ElemType));if
5、(!newbase)exit(OVERFLOW);L.elem=newbase;L.Iistsize+二LISTINCREMENT;EleniType*q=&L.elem[i-1],*p=&L.elemfL.length-1];while(p>=q){*(p+l)=*p;-p;}〃插入位置后的冗索右移*q=e;++L」ength;returnOK;}StatusGetElem(SqListL,inti,ElemType&e){if(i<=Olli>L.length)returnERROR;elsee=*(
6、L.elem+i-l);returnOK;voidOutputlist(SqList&L){if(O==L.length)printf(H空集!”);elsefor(inti=();i7、cbflOO];srand(time(O));intmax;intppp8、10()];inttime=0;inttimel;intm;inta9、10010、;a[0]=0;printf(H*************************进程调度算printf(H*1•先到先服务调度printfC**3.优先权调度2.最短作业优先调度*“);4.轮转发调度*“);▲419(、f■、<■f.卜叶..卜11、方法:”);scanf(”%d",&m);if(ni!=1&&m!=2&&m!=3&&m!=4)printf(”输入错误!重新输入:*•);scanf("%d",&m);if(m!=l&&m!=2&&m!=3&&m!=4){printf(n输入错谋!重新输入:”);scanf("%d",&m);if(ni!=I&&m!=2&&m!=3&&m!=4){printf(n输入错误!重新输入:”);scanf("%d",&m);if(
7、cbflOO];srand(time(O));intmax;intppp
8、10()];inttime=0;inttimel;intm;inta
9、100
10、;a[0]=0;printf(H*************************进程调度算printf(H*1•先到先服务调度printfC**3.优先权调度2.最短作业优先调度*“);4.轮转发调度*“);▲419(、f■、<■f.卜叶..卜11、方法:”);scanf(”%d",&m);if(ni!=1&&m!=2&&m!=3&&m!=4)printf(”输入错误!重新输入:*•);scanf("%d",&m);if(m!=l&&m!=2&&m!=3&&m!=4){printf(n输入错谋!重新输入:”);scanf("%d",&m);if(ni!=I&&m!=2&&m!=3&&m!=4){printf(n输入错误!重新输入:”);scanf("%d",&m);if(
11、方法:”);scanf(”%d",&m);if(ni!=1&&m!=2&&m!=3&&m!=4)printf(”输入错误!重新输入:*•);scanf("%d",&m);if(m!=l&&m!=2&&m!=3&&m!=4){printf(n输入错谋!重新输入:”);scanf("%d",&m);if(ni!=I&&m!=2&&m!=3&&m!=4){printf(n输入错误!重新输入:”);scanf("%d",&m);if(
此文档下载收益归作者所有