全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验三 进程调度算法实验姓名: 班级: 学号:1.1实验目的加深对进程调度概念的理解,体验进程调度机制的功能,了解 Linux 系统中进程调度策略的使用方法。 练习进程调度算法的编程和调试技术。1.2试验环境:linux系统1.3实验步骤(1)在新建文件夹中建立以下名为 psched.c的 C语言程序/* Filename : psched.c 独立实验*/#include #include #include #include #include #include #include #include #include /进程处理信号SIGTSTP的方法,将优先级减1void handler1()setpriority(PRIO_PROCESS,getpid(),getpriority(PRIO_PROCESS,0)-1);/进程处理信号SIGTNT的方法,将优先级加1void handler2()setpriority(PRIO_PROCESS,getpid(),getpriority(PRIO_PROCESS,0)+1);int main(int argc, char *argv) int pid; /存放进程号 struct sched_param p; /设置调度策略时使用的数据结构 /父进程循环报告其优先数和调度策略 if(pid=fork() 0) signal(SIGTSTP,handler1);/注册处理ctrl+z的信号量 signal(SIGINT,handler2);/注册处理ctrl+c的信号量 setpriority(PRIO_PROCESS,pid,10);/ 设置子进程优先数 setpriority(PRIO_PROCESS,getpid(),10);/ 设置父进程优先数 sleep(1); /不断循环输出各自进程号、优先数和调度策略 while(1) printf(Parent PID = %d priority = %d policy is %dn,getpid(),getpriority(PRIO_PROCESS,0),sched_getscheduler(getpid(); sleep(3); /子进程循环报告其优先数和调度策略 else signal(SIGTSTP,handler1);/注册处理ctrl+z的信号量 signal(SIGINT,handler2);/注册处理ctrl+c的信号量 /不断循环输出各自进程号、优先数和调度策略 while(1) printf(Child PID = %d priority = %d policy is %dn,getpid(),getpriority(PRIO_PROCESS,0),sched_getscheduler(pid);sleep(3); exit( EXIT_SUCCESS); return EXIT_SUCCESS;(3) 再建立程序的Makeflie文件:srcs = psched.cobjs = psched.oopts = -g -call: pschedpsched: $(objs)gcc $(objs) -o pschedpsched.o: $(srcs)gcc $(opts) $(srcs)clean:rm psched *.o(4) 使用make命令编译连接生成可执行文件psched:$ gmakegcc -g -c psched.cgcc psched.o -o psched(5) 改变到 root 用户$ su口令:123#(5) 运行psched:# ./psched1.4实验体会(1) 错误的尝试:由于自己对于C语言的了解不足,有思路但却无法实现代码。(2) 键盘的输入对两进程都产生影响,为了验证这一点,特意编写一变形程序,如下:/* Filename : psched.c 独立实验*/#include #include #include #include #include #include #include #include #include /进程处理信号SIGTSTP的方法,将优先级减1void handler1()setpriority(PRIO_PROCESS,getpid(),getpriority(PRIO_PROCESS,0)-1);/进程处理信号SIGTNT的方法,将优先级加1void handler2()setpriority(PRIO_PROCESS,getpid(),getpriority(PRIO_PROCESS,0)+1);/进程处理信号SIGTNT的方法,什么都不做void handler3()/进程处理信号SIGTSTP的方法,什么都不做void handler4()int main(int argc, char *argv) int pid; /存放进程号 /struct sched_param p; /设置调度策略时使用的数据结构 /父进程循环报告其优先数和调度策略 if(pid=fork() 0) signal(SIGTSTP,handler1);/注册处理ctrl+z的信号量 signal(SIGINT,handler3);/注册处理ctrl+c的信号量 setpriority(PRIO_PROCESS,pid,10);/ 设置子进程优先数 setpriority(PRIO_PROCESS,getpid(),10);/ 设置父进程优先数 sleep(1); /不断循环输出各自进程号、优先数和调度策略 while(1) printf(Parent PID = %d priority = %d policy is %dn,getpid(),getpriority(PRIO_PROCESS,0),sched_getscheduler(getpid(); sleep(1); /子进程循环报告其优先数和调度策略 else signal(SIGTSTP,handler4);/注册处理ctrl+z的信号量 signal(SIGINT,handler2);/注册处理ctrl+c的信号量 sleep(1); /不断循环输出各自进程号、优先数和调度策略 while(1) printf(Child PID = %d priority = %d policy is %dn,getpid(),getpriority(PRIO_PR
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 冷水机组中央空调系统选型方案
- 2025浙江中烟工业有限责任公司集中招聘95人模拟试卷附答案
- 2025河南焦作孟州市消防救援大队面向社会招录政府专职消防队员20人备考题库附答案
- 2026年一级注册建筑师之建筑物理与建筑设备考试题库300道含完整答案(网校专用)
- 2026年一级建造师之一建铁路工程实务考试题库300道附答案【基础题】
- 2025浙江音乐学院非教学岗位招聘1人参考题库附答案
- 2025辽宁辽阳市市直部分学校招聘专业技术人员22人参考题库附答案
- 2026年一级注册建筑师之建筑物理与建筑设备考试题库300道及答案【真题汇编】
- 2026年一级注册建筑师之建筑经济、施工与设计业务管理考试题库300道带答案(培优)
- 2025 年高职文化创意与策划(文化创意管理)试题及答案
- GB/T 27806-2011环氧沥青防腐涂料
- GB/T 12618.1-2006开口型平圆头抽芯铆钉10、11级
- 最新《工会基础知识》试题库及答案1000题【完美打印版】
- FZ/T 52051-2018低熔点聚酯(LMPET)/聚酯(PET)复合短纤维
- 熵权法教学讲解课件
- 专业技术报告xxx电厂2600MW亚临界空冷机组除尘器性能异常分析报告
- 2023年四川省产业振兴发展投资基金有限公司校园招聘笔试题库及答案解析
- 妊娠合并系统性红斑狼疮病例讨论课件
- 2022年新任领导表态发言模板
- 2016年收支预算总表
- 跨境电子商务客户服务第七章跨境电子商务客户服务与沟通之进阶课件
评论
0/150
提交评论