第一范文网 - 专业文章范例文档资料分享平台

操作系统原理实验报告

来源:用户分享 时间:2025/7/26 20:47:35 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

printf(\进程名\\t优先级\\t轮数\\tcpu时间\\t需要时间\\t进程状态\\t计数器\\n\ while(p!=NULL) {

printf(\->needtime,p->state,p->count);

p = p->next; } p = finish; while(p!=NULL) {

printf(\->needtime,p->state,p->count);

p = p->next; } p = run; while(p!=NULL) {

printf(\->needtime,p->state,p->count);

p = p->next; } }

void InsertPrio(PCB *in) /*创建优先级队列,规定优先数越小,优先级越低*/ {

PCB *fst,*nxt; fst = nxt = ready;

if(ready == NULL) /*如果队列为空,则为第一个元素*/ {

in->next = ready; ready = in; }

else /*查到合适的位置进行插入*/ {

if(in ->prio >= fst ->prio) /*比第一个还要大,则插入到队头*/ {

in->next = ready; ready = in; } else {

while(fst->next != NULL) /*移动指针查找第一个别它小的元素的位置进行插入*/

{

nxt = fst; fst = fst->next; }

if(fst ->next == NULL) /*已经搜索到队尾,则其优先级数最小,将其插入到队尾即可*/

{

in ->next = fst ->next; fst ->next = in; }

else /*插入到队列中*/ { nxt = in;

in ->next = fst; } } } }

void InsertTime(PCB *in) /*将进程插入到就绪队列尾部*/ {

PCB *fst; fst = ready;

if(ready == NULL) {

in->next = ready; ready = in; } else {

while(fst->next != NULL) {

fst = fst->next; }

in ->next = fst ->next; fst ->next = in; } }

void InsertFinish(PCB *in) /*将进程插入到完成队列尾部*/ {

PCB *fst; fst = finish;

if(finish == NULL) {

in->next = finish; finish = in; } else {

while(fst->next != NULL) {

fst = fst->next; }

in ->next = fst ->next; fst ->next = in; } }

void PrioCreate() /*优先级调度输入函数*/ {

PCB *tmp; int i;

printf(\输入进程名字和进程所需时间:\\n\ for(i = 0;i < num; i++) {

if((tmp = (PCB *)malloc(sizeof(PCB)))==NULL) {

perror(\ exit(1); }

scanf(\

搜索更多关于: 操作系统原理实验报告 的文档
操作系统原理实验报告.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c8vvt84ps8m6d7jn4l8uv58u602x74s012j3_12.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top