当前位置: 技术问答>linux和unix
高分求解释一道操作系统的实验题,想的我蛋疼啊,求解释
来源: 互联网 发布时间:2017-02-21
本文导语: 本帖最后由 haipeng19911008 于 2012-05-03 22:29:19 编辑 说明:这是我们操作系统的一道实验题,是关于进程调度算法的,以下是老师给出的一道参考程序: #include #include #include #include #include #include int main(int argc,ch...
#include
#include
#include
#include
#include
#include
int main(int argc,char *argv[]) {
int i;
int pid[3];
struct sched_param p[3];
for(i=0;i 0) {
p[i].sched_priority = (argv[i+1] != NULL)?atoi(argv[i+1]):10;
//调试代码
if(argv[i+4] != NULL) {
printf("here!---%dn",atoi(argv[i+4]));
}
sched_setscheduler(pid[i],(argv[i+4] != NULL) ? atoi(argv[i+4]):SCHED_OTHER,&p[i]);
setpriority(PRIO_PROCESS,pid[i],(argv[i+1] != NULL) ? atoi(argv[i+1]):10);
//测试代码
if(argv[i+1] != NULL) {
printf("priority is %dn",atoi(argv[i+1]));
}
}else {
sleep(1);
for(i=0;i 0) {
你设置的是父进程的, 从来没设置过子进程的。
|
有两份PID数据,你设置的是父进程中数据,没有设置子进程
|
fork()父进程返回子进程pid,子进程返回0
|
子进程里面只打印,没设置,看看else分支里面的代码
|
1楼正解
!!!!!
!!!!!