进程调度算法程序
来源:互联网 发布:mac软件免费下载平台 编辑:程序博客网 时间:2024/06/03 00:11
#include<stdio.h>
#include<stdlib.h>
#include<sched.h>
#include<signal.h>
#include<sys/time.h>
#include<sys/resource.h>
#define SIGINT 2
#define SIGSTP 20
/*实验要求:
设有两个并发执行的父子进程,不断循环输出各自进程号、优先数和调度策略。
进程初始调度策略均为系统默认策略和默认优先级。当某个进程收到 SIGINT 信号
时会自动将其优先数加 1,收到 SIGTSTP 信号时会自动将其优先数减 1。
*/
/*
实验中父进程处理SIGINT信号,子进程处理SIGSTP信号。
*/
void do_sigstp(int signo){//收到SIGSTP则优先级-1
setpriority(PRIO_PROCESS,getpid(),getpriority(PRIO_PROCESS,getpid())-1);
}
void do_sigint(int signo){//收到STPINT则优先级+1
setpriority(PRIO_PROCESS,getpid(),getpriority(PRIO_PROCESS,getpid())+1);
}
int main(int argc,char *argv[]){
pid_t pid = fork();
if(pid<0)
printf("create process error");
if(pid==0){
setpriority(PRIO_PROCESS,getpid(),10);
signal(SIGSTP,do_sigstp);//子进程只接收信号SIGSTP
signal(SIGINT,SIG_IGN);//忽略信号SIGINT
}else{
signal(SIGINT,do_sigint);//父进程接收信号SIGINT
signal(SIGSTP,SIG_IGN);//忽略信号SIGSTP
}
while(1){
if(pid>0)
printf("I am parent process ");
else
printf("I am child process ");
printf("pid=%d, priority=%d, scheduler=%d/n",getpid(),getpriority(PRIO_PROCESS,getpid()),sched_getscheduler(getpid()));
sleep(2);
}
}
- 进程调度算法程序
- 操作系统进程调度模拟程序 基于优先级调度和时间片轮转调度算法
- FCFS,高优先权算法进程调度程序模拟
- 进程调度模拟程序
- 进程调度算法
- 进程调度算法
- 进程优先级调度算法
- 进程调度算法
- 进程调度模拟算法
- 进程调度算法
- 进程调度算法
- 进程调度算法
- 操作系统进程调度算法
- 进程调度算法
- 进程调度算法
- 进程调度算法例题
- 进程调度算法
- 进程调度算法
- 一个Splash Screen控件 (闪屏窗体 C#)
- C#使用指针的代码例程
- Javascript闭包(Closure)
- Bitset简单应用
- d3d射线和平面
- 进程调度算法程序
- Enlightenment官网介绍
- 进程通信实验
- Log图文详解(Log.v,Log.d,Log.i,Log.w,Log.e)的用法
- _CRT_SECURE_NO_WARNINGS宏-转
- 22个实用的在线配色网站
- 康托展开及其逆运算
- 让/etc/profile文件修改后立即生效
- VSS快捷键