完整实验代码,有注释,可以直接运行,添加一个系统调用,实现对指定进程的nice值的修改或读取功能,并返回系统最新的nice值即优先级prio。
调用原型为:
int mysetnice(pid_t pid, int flag, int nicevalue,void_user*prio,void_user*nice)
其中包括通过所给PID找到相应进程,即设置一个结构体指针p,指向第一个进程(0号进程)的PCB,利用for()循环,判断若p->pid!=pid,即不是目标进程,则指针p指向下一个进程PCB,直到找到目标进程或下一个进程PCB等于当前进程PCB(遍历所有进程),循环结束。找到目标进程后,读取该进程的NICE值和优先级PRIO,当flag=1时,set_user_nice()函数来改变进程NICE值和优先级PRIO;当flag=0时,利用cope_to_user()函数将读取到的NICE和PRIO从内核空间复制到用户态。
2022-04-08 23:17:50
1KB
HDU
1