山东大学软件工程os实验3实验报告

山东大学软件工程os实验3实验报告

ID:35223028

大小:241.00 KB

页数:5页

时间:2019-03-22

山东大学软件工程os实验3实验报告_第1页
山东大学软件工程os实验3实验报告_第2页
山东大学软件工程os实验3实验报告_第3页
山东大学软件工程os实验3实验报告_第4页
山东大学软件工程os实验3实验报告_第5页
资源描述:

《山东大学软件工程os实验3实验报告》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、实验三进程调度算法实验姓名:班级:学号:1.1实验目的加深对进程调度概念的理解,体验进程调度机制的功能,了解Linux系统中进程调度策略的使用方法。练习进程调度算法的编程和调试技术。1.2试验环境:linux系统1.3实验步骤(1)在新建文件夹中建立以下名为psched.c的C语言程序/**Filename:psched.c独立实验*/#include#include#include#include#include#include#incl

2、ude#include#include//进程处理信号SIGTSTP的方法,将优先级减1voidhandler1(){setpriority(PRIO_PROCESS,getpid(),getpriority(PRIO_PROCESS,0)-1);}//进程处理信号SIGTNT的方法,将优先级加1voidhandler2(){setpriority(PRIO_PROCESS,getpid(),getpriority(PRIO_PROCESS,0)+1);}intmain(intargc,

3、char*argv[]){intpid;//存放进程号structsched_paramp;//设置调度策略时使用的数据结构//父进程循环报告其优先数和调度策略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);//不

4、断循环输出各自进程号、优先数和调度策略while(1){printf("ParentPID=%dpriority=%dpolicyis%d",getpid(),getpriority(PRIO_PROCESS,0),sched_getscheduler(getpid()));sleep(3);}}//子进程循环报告其优先数和调度策略else{signal(SIGTSTP,handler1);//注册处理ctrl+z的信号量signal(SIGINT,handler2);//注册处理ctrl+c的信号量//不断循环输出各自进程号、优先数和调度策略while(

5、1){printf("ChildPID=%dpriority=%dpolicyis%d",getpid(),getpriority(PRIO_PROCESS,0),sched_getscheduler(pid));sleep(3);}exit(EXIT_SUCCESS);}returnEXIT_SUCCESS;}(3)再建立程序的Makeflie文件:srcs=psched.cobjs=psched.oopts=-g-call:pschedpsched:$(objs)gcc$(objs)-opschedpsched.o:$(srcs)gcc$(opts)$

6、(srcs)clean:rmpsched*.o(4)使用make命令编译连接生成可执行文件psched:$gmakegcc-g-cpsched.cgccpsched.o-opsched(5)改变到root用户$su口令:123#(5)运行psched:#./psched1.4实验体会(1)错误的尝试:由于自己对于C语言的了解不足,有思路但却无法实现代码。(2)键盘的输入对两进程都产生影响,为了验证这一点,特意编写一变形程序,如下:/**Filename:psched.c独立实验*/#include#include#i

7、nclude#include#include#include#include#include#include//进程处理信号SIGTSTP的方法,将优先级减1voidhandler1(){setpriority(PRIO_PROCESS,getpid(),getpriority(PRIO_PROCESS,0)-1);}//进程处理信号SIGTNT的方法,将优先级加1voidhandler2(){setprior

8、ity(PRIO_PROCESS,ge

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。