山东大学操作系统实验报告进程调度算法实验.doc
文本预览下载声明
计算机科学与技术学院实验报告
实验三、进程调度算法实验 学号: 日期:20140 班级:计基地12 姓名: 实验目的:
实验内容:
实验要求:
硬件环境:?
处理器:Intel? Core? i3-2350M CPU @ 2.30GHz × 4
图形:Intel? Sandybridge Mobile x86/MMX/SSE2
内存:4G
操作系统:32位
磁盘:20.1 GB 软件环境:ubuntu13.04 实验步骤:
3)输入make命令编译连接生成可执行的psched程序?
$gmake?
gcc?-g?-c?experiment3.c?
gcc?psched.o?-o??psched
4)??
执行psched程序 结论分析与体会:
实现方式:head = psched.h
srcs = psched.c
objs = psched.o
opts = -g -c
all: psched
pctl: $(objs)
gcc $(objs) -o pctl
pctl.o: $(srcs) $(head)
gcc $(opts) $(srcs)
clean:
rm psched *.o
#include stdio.h
#include stdlib.h
#include sched.h
#include sys/time.h
#include sys/resource.h
#include psched.h
int main(int argc, char *argv[]){
int status,i,j,pid;
signal(SIGINT,(sighandler_t)sigint);
signal(SIGTSTP,(sighandler_t)sigtstp);
pid=fork();
if(pid == 0){
for(i = 0;i5;i++){
printf(%d policy is %d, priority is %d,\n,getpid(),sched_getscheduler(getpid()),getpriority(PRIO_PROCESS,0));
sleep(1);
printf(%d policy is %d, priority is %d,\n,getpid(),sched_getscheduler(getpid()),getpriority(PRIO_PROCESS,0));
sleep(1);
}
}
else{
sleep(1);
for(i = 0;i5;i++){
printf(%d policy is %d, priority is %d,\n,getpid(),sched_getscheduler(getpid()),getpriority(PRIO_PROCESS,0));
sleep(1);
printf(%d policy is %d, priority is %d,\n,getpid(),sched_getscheduler(getpid()),getpriority(PRIO_PROCESS,0));
sleep(1);
}
}
return EXIT_SUCCESS;
}
#include sys/types.h
#include wait.h
#include unistd.h
#include signal.h
#include stdio.h
#include stdlib.h
typedef void (*sighandler_t) (int);
void sigint(){
int a = 0;
a = getpriority(PRIO_PROCESS,0);
a = a+1;
setpriority(PRIO_PROCESS,getpid(),a);
}
void sigtstp(){
int a = 0;
a = getpriority(PRIO_PROCESS,0);
a = a-1;
setpriority(PRIO_PROCESS,getpid(),a);
}
分析:
。
体会:
显示全部