4、 什么是进程的唤醒,简单描述进程唤醒的方法?

4、 什么是进程的唤醒,简单描述进程唤醒的方法?,第1张

在Linux中,仅等待CPU时间的进程称为就绪进程,它们被放置在一个运行队列中,一个就绪进程的状 态标志位为TASK_RUNNING。

一旦一个运行中的进程时间片用完, Linux 内核的调度器会剥夺这个进程对CPU的控制权,并且从运行队列中选择一个合适的进程投入运行。设置Linux进程的睡眠和唤醒

给你一个完整的测试代码:

--------------------------

#include <stdio.h>

#include <sys/types.h>

#include <unistd.h>

#include <signal.h>

#include <stdlib.h>

void handler(int signo)

{

printf("recv the signal from parent process\n")

}

int main()

{

pid_t pid

pid = fork()

switch(pid)

{

case -1:

perror("fork failed")

exit(1)

case 0:

printf("in the child\n")

signal(SIGCONT, handler)

pause()

printf("child weakup\n")

break

default:

printf("in the parent\n")

sleep(5)

kill(pid, SIGCONT)

sleep(5)

printf("parent weakup\n")

break

}

printf("bye..\n")

exit(0)

}

--------------------------------------------------

运行及输出:

beyes@linux-beyes:~/C>./weakup.exe

in the child

in the parent

recv the signal from parent process

child weakup

bye..

parent weakup

bye..

....................................


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8477693.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-16
下一篇 2023-04-16

发表评论

登录后才能评论

评论列表(0条)

保存