欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年操作系统-进程管理 .pdf

    • 资源ID:25951386       资源大小:55.68KB        全文页数:9页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年操作系统-进程管理 .pdf

    第 1 页 共 9 页仲恺农业工程学院实验报告纸信息科学与技术(院、系)计算机科学与技术专业 142 班_组 操作系统实验课学号: 201420224430 姓名:黄丽君实验日期教师评定实验一、进程管理一、实验目的通过实验使学生进一步了解进程、进程状态、 进程控制等基本概念。 基本能达到下列具体的目标:1、 理解进程 PCB 的概念,以及 PCB 如何实现、如何组织以及管理。2、 复习数据结构中如何对链的操作,包括建链、删除、插入结点等,来实现进程的管理。二、实验内容1、 建立一个结点, 即 PCB 块包括用户标识域、 状态域(执行、等待、就绪) 、 link 域。2、 建立三个队列(执行队列、就绪队列、等待队列)。3、 根据进程状态转换实现对三个队列的具体操作。具体的驱动可以采用时间片算法或手动调度的形式完成三个状态之间的转换4、 用 switch 选择语句选择状态。5、 按照自己的设定能完成所有的状态转换的运行(包括创建和运行结束)。三、实验步骤1、 复习进程管理三状态模型部分内容。2、 预习 C+ Builder或 VC+ 、Delphi 、JBuilder线程编程。3、 运行示例程序,进一步明确实验要求。可以采用控制台模式或窗口模式。4、 上机编程、调试程序。5、 完成实验报告。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 9 页 - - - - - - - - - 第 2 页 共 9 页四、实验代码#include #include #include #define getpch(type)(type*)malloc(sizeof(type) /将申请内存空间函数自定义为 getpch(type) #define NULL 0 struct pcd char name10; char state; /进程状态int super; /进程优先级int ntime; /进程需要运行的时间int rtime; /进程已经运行的时间struct pcb* link;/进程指向另一个进程的指针*ready=NULL,*p; /ready表示指向就绪队列中首元素的指针,初始化为 NULL ,p 用来存放当前刚刚输入的PCB typedef struct pcb PCB; void sort() /建立对进程进行优先级排列函数 PCB *first,*second; int insert=0; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 9 页 - - - - - - - - - 第 3 页 共 9 页if(ready=NULL)|(p-super)(ready-super) / 优 先 级 最 大者,插入队首 p-link=ready; ready=p; else /进程比较优先级,插入适当的位置 first=ready; second=first-link; while(second!=NULL) if(p-super)(ready-super) /若插入进程比当前进程优先数大 /插入到当前进程前面p-link=second; first-link=p; second=NULL; insert=1; /插入队列记录符号 else /插入进程优先数最低, 则插入到队尾名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 9 页 - - - - - - - - - 第 4 页 共 9 页 first=first-link; second=second-link; if(insert=0) first-link=p; void input() /建立进程控制块函数 ,PCB输入模块 int i,num; printf(n请输入进程号: ); scanf(%d,&num); for(i=0;iname); printf(n请输入进优先数: ); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 9 页 - - - - - - - - - 第 5 页 共 9 页 scanf(%d,&p-super); printf(n请输入进程运行时间:); scanf(%d,&p-ntime); printf(n); p-rtime=0;p-state=W; p-link=NULL; sort(); /调用 sort 函数 int space() /PCB就绪队列元素计数模块,计算就绪队列中PCB的总数 int l=0; PCB* pr=ready; /获取就绪队列的头指针ready while(pr!=NULL) l+; pr=pr-link; return(l); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 9 页 - - - - - - - - - 第 6 页 共 9 页void disp(PCB* pr) /建立进程显示函数,用于显示当前进程 printf(n进程名 t 进程状态 t 优先级 t 运行需要时间 t 已经运行时间 n); printf(%s t,pr-name); printf(%c t,pr-state); printf(%d t,pr-super); printf(%d t,pr-ntime); printf(%d t,pr-rtime); printf(n); void check() /建立进程查看函数 PCB* pr; printf(nt当前正在运行的进程是:%s,p-name); /显示当前运行进程disp(p); pr=ready; printf(nt当前就绪队列状态是:n); /显示就绪队列状态while(pr!=NULL) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 9 页 - - - - - - - - - 第 7 页 共 9 页disp(pr); pr=pr-link; void destroy() /建立进程撤销函数,进程运行结束,撤销进程 printf(n 进程: %s 已经完成 n,p-name); free(p); void running() /建立进程就绪函数,进程运行时间到,置就绪状态 (p-rtime)+; if(p-rtime=p-ntime) destroy(); /调用 destroy 函数else (p-super)-; p-state=W; sort(); /调用 sort 函数 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 9 页 - - - - - - - - - 第 8 页 共 9 页 void main() /主函数 int len,h=0; /h表示进程调度次数char ch; input(); len=space(); /获取就绪队列长度while(len!=0)&(ready!=NULL) ch=getchar(); h+; printf(n 执行数: %dn,h); p=ready; /以下 3 行是将 P从就绪队列的队首摘除ready=p-link; p-link=NULL; p-state=R; /将 P的状态改为 R check(); running(); printf(n 按任意键继续: ); ch=getchar(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 9 页 - - - - - - - - - 第 9 页 共 9 页printf(nn 进程已经完成 n); ch=getchar(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 9 页 - - - - - - - - -

    注意事项

    本文(2022年操作系统-进程管理 .pdf)为本站会员(Q****o)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开