ubuntu 进程睡眠怎么唤醒

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ubuntu 进程睡眠怎么唤醒相关的知识,希望对你有一定的参考价值。

请教高手 进程睡眠怎么让他运行 我用的 wine打开一个游戏 可是 到了输入帐号时闪了下就没有了 再运行就说 游戏正再运行可是怎么调都调不出来 evaqq也是这样 刚登上帐号就消失了 在看看 系统监视器 里边 都再运行 但状态是 睡眠 请教怎么才能不让他睡眠阿???谢谢了
没人知道吗 回答给高分

参考技术A 在ubuntu
16.04
下使用下面命令重启网络后,wifi即可使用.
sudo
service
network-manager
restart
虽然问题过去很久了.但还是回答一下,希望对后来的人有用.
参考技术B 这个是linux的进程调度
linux对于睡眠进程的描述是:处于该状态的进程在所需资源有效时被唤醒
也就是当你使用的时候会自动唤醒
理论上不你的qq消失不是因为这个引起的
你找找看有没有其他原因本回答被提问者采纳
参考技术C 如果是想让程序继续运行一次的话,可以使用sudo kill -s SIGCONT pid 进行激活,不过我觉得老兄的问题不是出在这,估计是程序问题或是wine的问题。你用命令行运行一下看看有什么提示没?

11 linux011用于进程共享资源的睡眠与唤醒

进程调度状态进程调度一个指向上一个睡眠进程PCB的指针实现了进程在共享资源时的睡眠等待与唤醒机制,分别包装成睡眠和唤醒两个函数。

此机制的实现非常简单,但不太容易被理解。

1 进程等待资源的睡眠

[1] 初始一个用于某资源共享的PCB指针为NULL,表征之前无进程睡眠等待;

[2] 在睡眠函数栈中保存该PCB指针,置PCB指针指向当前进程的PCB;置当前进程状态为不可调度状态,随即调度进程调度函数完成进程调度;

[3] 在调用进程调度函数之后唤醒(置回可调度状态)栈中所保存PCB所指进程。

这个过程有3个要点:

[1] 睡眠函数栈在调度函数返回前一直存在;

[2] 调度函数的返回依赖于当前进程被唤醒后;

[3] 当前进程被唤醒即调度函数返回后,立即唤醒在该进程之前睡眠的进程。

是的,每一处都是要点。

2 进程的唤醒

唤醒睡眠等待的进程时,只需唤醒最后一个进入睡眠的进程(即1中提到的PCB所指向的进程),让被唤醒进程依次唤醒之前睡眠等待的进程。

3 等待资源进程的睡眠与唤醒过程

[1] 3个进程依次通过PCB进入睡眠等待
PCB = NULL;
+----------------+         +->+---------------+         +->+---------------+
|t = PCB(NULL)   |         |  |t = PCB(PCB1)  |         |  |t = PCB(PCB2)  |
+----------------+         |  +---------------+         |  +---------------+
|PCB = PCB1      |         |  |PCB = PCB2     |         |  |PCB = PCB3     |
+----------------+         |  +---------------+         |  +---------------+
|PCB1 unrunning  |         |  |PCB2 unrunning |         |  |PCB3 unrunning |
| && schedule    |run other|  | && schedule   |run other|  | && schedule   |
+----------------+---------+  +---------------+---------+  +---------------+
|t(NULL)  running|            |t(PCB1) running|            |t(PCB2) running|
+----------------+            +---------------+            +---------------+
P1                            P2                           P3
PCB指向最后一个进入睡眠进程的PCB即PCB3,各进程睡眠函数的运行栈一直存在(t一直在)。

[2] 唤醒最后一个进入睡眠等待的进程,然后各进程被依次唤醒
wake_up: PCB(PCB3) running; PCB = NULL
   |
   |   +----------------+    +---------------+    +---------------+
   |   |t = PCB(PCB2)   |    |t = PCB(PCB1)  |    |t = PCB(NULL)  |
   |   +----------------+    +---------------+    +---------------+
   |   |PCB = PCB3      |    |PCB = PCB2     |    |PCB = PCB1     |
   |   +----------------+    +---------------+    +---------------+
   |   |PCB1 unrunning  |    |PCB2 unrunning |    |PCB3 unrunning |
   |   | && schedule    |    | && schedule   |    | && schedule   |
   +-->+----------------+ +->+---------------+ +->+---------------+
       |t(PCB2)  running| |  |t(PCB1) running| |  |t(NULL) running|
       +----------------+ |  +---------------+ |  +---------------+
       |      ...       |-+  |       ...     |-+  |       ...     |
       P3                   P2                  P1
被唤醒进程在随后得到调度后,睡眠函数运行结束返回即其运行栈才被回收。

以上是关于ubuntu 进程睡眠怎么唤醒的主要内容,如果未能解决你的问题,请参考以下文章

Ubuntu休眠后无法唤醒黑屏

深入理解Linux内核之进程唤醒

ubuntu挂起后无法唤醒

11 linux011用于进程共享资源的睡眠与唤醒

Linux进程的睡眠和唤醒

笔记本安装Ubuntu休眠后无法唤醒解决方法