亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1932 | 回復(fù): 3
打印 上一主題 下一主題

請幫忙看一下這個(gè)進(jìn)程調(diào)度程序的問題 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2010-12-25 14:56 |只看該作者 |倒序?yàn)g覽
首先父進(jìn)程創(chuàng)建子進(jìn)程,兩個(gè)進(jìn)程各自輸出自己的優(yōu)先級以及調(diào)度策略,當(dāng)子進(jìn)程給父進(jìn)程發(fā)送SIGINT信號后,父進(jìn)程優(yōu)先級-1,當(dāng)父進(jìn)程給子進(jìn)程發(fā)送SIGTSTP信號后,子進(jìn)程優(yōu)先級+1,但運(yùn)行時(shí)為何父子進(jìn)程優(yōu)先級都沒有變?謝謝
  1. #include "exercise3.h"
  2. int main(int argc, char *argv[])
  3. {
  4.         int pid;
  5.         int psched, csched;
  6.         int pprio, cprio;
  7.         int i, j;

  8.         if((pid = fork()) > 0)    //父進(jìn)程
  9.         {
  10.                 signal(SIGTSTP, psigcat);         //聲明信號處理函數(shù)
  11.                 for(i = 0; i < 10; i++)
  12.                 {
  13.                         psched = sched_getscheduler(getpid());         //獲取調(diào)度策略
  14.                         pprio = getpriority(PRIO_PROCESS, getpid());          //獲取優(yōu)先級
  15.                         printf("Parent process %d schedule policy is %d priority is %d\n", getpid(), psched, pprio);
  16.                         kill(SIGINT, pid);         //向子進(jìn)程發(fā)送消息       
  17.                         sleep(1);
  18.                 }       
  19.         }
  20.         else            //子進(jìn)程
  21.         {
  22.                 signal(SIGINT, csigcat);         //聲明信號處理函數(shù)
  23.                 for(j = 0; j < 10; j++)
  24.                 {
  25.                         csched = sched_getscheduler(getpid());         //獲取調(diào)度策略
  26.                         cprio = getpriority(PRIO_PROCESS, getpid());          //獲取優(yōu)先級
  27.                         printf("Child process %d schedule policy is %d priority is %d\n", getpid(), csched, cprio);
  28.                         kill(SIGTSTP, getppid());         //向子進(jìn)程發(fā)送消息               
  29.                         sleep(1);
  30.                 }
  31.                 exit(EXIT_SUCCESS);       
  32.         }
  33.         exit(EXIT_SUCCESS);
  34. }
復(fù)制代碼
  1. #include <sched.h>
  2. #include <sys/time.h>
  3. #include <sys/resource.h>
  4. #include <unistd.h>            //sleep
  5. #include <signal.h>            //signal
  6. #include <stdlib.h>
  7. #include <stdio.h>
  8. #include <sys/types.h>

  9. void psigcat()             //父進(jìn)程信號處理函數(shù)
  10. {
  11.         int prio;
  12.         prio = getpriority(PRIO_PROCESS, getpid());
  13.         setpriority(PRIO_PROCESS, getpid(), prio-1);
  14.         return ;
  15. }

  16. void csigcat()
  17. {
  18.         int prio;
  19.         prio = getpriority(PRIO_PROCESS, getpid());
  20.         setpriority(PRIO_PROCESS, getpid(), prio+1);
  21.         return ;
  22. }
復(fù)制代碼

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2010-12-26 22:00 |只看該作者
1. man 2 kill

2. 優(yōu)先級數(shù)值要降低,是需要權(quán)限的。

3. 不檢查返回值的程序,是危險(xiǎn)的。

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2010-12-27 10:32 |只看該作者
權(quán)限不夠,編程習(xí)慣有待提高啊

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2010-12-28 10:40 |只看該作者
解決了,首先是kill函數(shù)參數(shù)寫錯(cuò)了,然后是權(quán)限,再次是信號,父進(jìn)程向子進(jìn)程發(fā)送信號sigint直接就把剛創(chuàng)建的子進(jìn)程殺死了,換個(gè)信號就好了
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP