网站大量收购闲置独家精品文档,联系QQ:2885784924

操作系统课设-进程调度模拟设计(先来先服务、优先级法)探析.doc

操作系统课设-进程调度模拟设计(先来先服务、优先级法)探析.doc

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
进程调度struct Node{ int num; string name; double run_time; double arrive_time; double start_time; double end_time; int priority; double turn; double turn_weight; Node *next; }; 其中,num表示进程序号,name表示进程名称,run_time;表示进程运行时间,arrive_time表示进程到达时间,start_time表示进程开始执行的时间,end_time表示进程执行结束的时间,priority表示进程的优先级别(用1、2、3……表示,且越大优先级越高),turn表示该进程的周转时间,即进程结束时间减去进程开始到达时间,turn_weight表示带权周转时间,即进程的周转时间除以进程的运行时间。 2.使用链表储存进程(逆序存储) Node *PCB_create(){ Node *head; head=new Node; head-next=NULL; int n; string na; double r; double a; int p; coutendl 进程号:; cinn; cout 进程名:; cinna; cout进程运行时间:; cinr; cout进程到达时间:; cina; cout 进程优先级:; cinp; coutendl; Node *tp; tp=new Node; tp-num=n; tp-name=na; tp-run_time=r; tp-arrive_time=a; tp-priority=p; tp-next=head-next; head-next=tp; while(true){ cout 进程号:; cinn; if(n==-1) break; cout 进程名:; cinna; cout进程运行时间:; cinr; cout进程到达时间:; cina; cout 进程优先级:; cinp; coutendl; Node *tp; tp=new Node; tp-num=n; tp-name=na; tp-run_time=r; tp-arrive_time=a; tp-priority=p; tp-next=head-next; head-next=tp; } return head; } 2.2先来先服务算法设计 2.2.1 FIFO进程算法 Node *FIFO(Node *head){ Node *tp=head-next; Node *FIFO_link=new Node; Node *temp=new Node; temp-next=FIFO_link; FIFO_link-num=tp-num; FIFO_link-name=tp-name; FIFO_link-run_time=tp-run_time; FIFO_link-arrive_time=tp-arrive_time; FIFO_link-end_time=tp-end_time; FIFO_link-priority=tp-priority; FIFO_link-next=NULL; Node *p=FIFO_link; tp=tp-next; int i=0; while(tp!=NULL) { Node *q=new Node; q-num=tp-num; q-name=tp-name; q-run_time=tp-run_time; q-arrive_time=tp-arrive_time; q-end_time=tp-end_time; q-priority=tp-priority; q-next=NULL; tp=tp-next; p=temp; while( p-next!=NULL p-next-arrive_time q-arrive_time){ p=p-next; } q-next=p-next; p-next=q; } double time=0; Node *tp_1=temp-next; tp_1-st

文档评论(0)

***** + 关注
实名认证
内容提供者

我是自由职业者,从事文档的创作工作。

1亿VIP精品文档

相关文档