首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux进程的Uninterruptible sleep(D)状态

Linux系统进程状态 PROCESS STATE CODES Here are the different values that the s, stat and state output specifiers...Linux 进程有两种睡眠状态,一种interruptible sleep,处在这种睡眠状态的进程是可以通过给它发信号来唤醒的,比如发 HUP 信号给 nginx 的 master 进程可以让 nginx...Linux进程的睡眠状态有2种:     一种是可中断睡眠,其标志位是TASK_INTERRUPTIBLE ,可中断的睡眠状态的进程会睡眠直到某个条件变为真,比如说产生一个硬件中断、释放进程正在等待的系统资源或是传递一个信号都可以是唤醒进程的条件...正是因为得不到 IO 的相应,进程才进入了 uninterruptible sleep 状态,所以要想使进程从 uninterruptible sleep 状态恢复,就得使进程等待的 IO 恢复,比如如果是因为从远程挂载的...NFS 卷不可访问导致进程进入 D状态的,那么可以通过恢复该 NFS 卷的连接来使进程的 IO 请求得到满足,除此之外,要想干掉处在 D 状态进程就只能重启整个 Linux 系统了。

10.3K10
您找到你想要的搜索结果了吗?
是的
没有找到

(十一)sleep(1)、sleep(0)和sleep(1000)的区别

在时间片算法中,所有的进程排成一个队列。操作系统按照他们的顺序,给每个进程分配一段时间,即该进程允许运行的时间。如果在时间片结束时进程还在运行,则CPU将被剥夺并分配给另一个进程。...如果进程在时间片结束前阻塞或结束,则CPU当即进行切换。调度程序所要做的就是维护一张就绪进程列表,当进程用完它的时间片后,它被移到队列的末尾。...在抢占式操作系统中,假设有若干进程,操作系统会根据他们的优先级、饥饿时间(已经多长时间没有使用过 CPU 了),给他们算出一 个总的优先级来。操作系统就会把 CPU 交给总优先级最高的这个进程。...当进程执行完毕或者自己主动挂起后,操作系统就会重新计算一 次所有进程的总优先级,然后再挑一个优先级最高的把 CPU 控制权交给他。...Thread.Sleep(0) 是你的线程暂时放弃cpu,也就是释放一些未用的时间片给其他线程或进程使用,就相当于一个让位动作。

6.1K42

Linux进程——Linux进程进程优先级

如果对前面Linux进程不太熟悉可以先阅读: Linux进程 本篇主要内容: 僵尸进程和孤儿进程 Linux进程优先级 1. 僵尸进程 僵尸进程就是处于僵尸状态下的进程!...\n"); 15 sleep(1); 16 } 17 } 18 else 19 { 20 // 父进程 21...配置进程优先权对多任务环境的linux很有用,可以改善系统性能。...NI :NICE值,表示优先级的修改数据 NICE其取值范围是-20至19,一共40个级别 Linux进程的优先级数值范围:60~99 Linux中默认进程的优先级都是:80 Linux是支持动态优先级调整的...总结 本篇文章前部分紧贴上篇Linux进程,分析完了Linux下常见的进程状态,然后初步了解了Linux进程优先级,而进程优先级与前面内容相差较大,希望大家能够多花点时间理解!

7210

Linux进程控制——Linux进程终止

前言:前面了解完前面的Linux进程基础概念后,我们算是解决了Linux进程中的一大麻烦,现在我们准备更深入的了解Linux进程——Linux进程控制!...我们主要介绍的Linux进程控制内容包括:进程终止,进程等待与替换,进程程序替换! 本篇主要内容: 重识进程创建 进程退出场景 错误码和退出码 1....printf("i am child process, pid: %d, ppid: %d, cnt: %d\n", getpid(), getppid(), cnt); sleep...sleep(100); return 0; } 而代码中的exit函数可以让进程终止 这段代码涵盖了fork创建进程进程终止,让我们来执行以下 fork创建进程进程的终止...和 kill -11, 我们来试试,通过使用信号能不能还原之前这几种错误情况 while(1) { printf("i am a process, pid: %d\n", getpid()); sleep

8010

Linux进程

Linux进程是系统中正在运行的程序的实例。每个进程都有一个唯一的进程标识符(PID),并且拥有自己的地址空间、内存、数据栈以及其他用于跟踪执行状态的属性。...进程可以创建其他进程,被创建的进程称为子进程,创建它们的进程称为父进程。这种关系形成了一个进程树。 1. 进程的类型 在Linux操作系统中,进程是系统进行资源分配和调度的基本单位。...Linux进程可以根据其特性和用途被分为多种类型。以下是一些主要的Linux进程类型: 1....进程间通信(IPC) 进程间通信(IPC)是指两个或多个进程之间传输数据或信号的机制。Linux支持多种IPC机制,包括: 1....进程控制 Linux提供了一系列的系统调用(如fork(), exec(), wait(), exit()等)用于进程控制。

4710

linux中的sleep函数和delay函数

其实在linux中的delay函数,道理是一样的,都是通过cpu执行空指令来达到延时的目的,但是对于操作系统这种多线程进行的方式来说,在需要延时的时候,可以通过将进程挂起的方式来实现延时。...这就是sleep函数。 sleep和delay的区别 最明显也最重要的区别就是,在执行delay的时候,是执行了空指令,虽说是空的,但是还是会占用硬件资源,cpu要进行运算。...而sleep是将此进程挂起,cpu还会执行其他进程,待到时间到,再恢复此进程。...两者对比可以看出,sleep执行的时候,节省系统资源,但是弊端是sleep的定时并没有那么准确,因为是通过进程切换来实现的,delay则是严格按照机器周期来计算,而且sleep不能适用于时间太短的延时,...应用场景 当我们希望执行一个脚本之后延时五秒再执行另外一个脚本,这个时候就可以用sleep。 当我们在设置一个芯片的各种引脚时序的时候,间隔较短且要求更准确,就需要delay。

3.7K10

Linux进程学习【进程状态】

,即把手机揣进兜里,然后 专心执行走路这个 进程 进程状态 进程 有各种运行状态,方便OS进行管理,在 Windows 中,进程 状态是这样的 而在我们 Linux 中,新建、就绪、运行都可以看作...运行 R 这一个状态,所以比较清晰 而我们今天要学习的正是 Linux 中的 进程 状态 进程是何种状态,取决于此进程的PCB在哪里排队 ️运行 R 首先来看看第一种状态 R 以我们以往的认知来说...types.h> int main() { while(1) { cout << "I'm a process, my PID is:" << getpid() << endl; sleep...{ cout << "I'm father process, my PID: " << getpid() << " PPID: " << getppid() << endl; sleep...<< endl; sleep(1); } } return 0; } 此时输入指令 kill -9 PID 即 kill -9 28315 终止 子进程 再次查看进程状态

20330

Linux中的sleep、usleep、nanosleep、poll和select

在进行Linux C/C++编程时,可调用的sleep函数有好多个,那么究竟应当调用哪一个了?...下表列出了这几个函数间的异同点,可作为参考: 性质 精准度 线程安全 信号安全 sleep libc库函数 秒 是 不能和alarm同时使用 有些是基于alarm实现的,所以不能和alarm同时使用...则可直接使用C++标准库提供的: 5) 毫秒睡眠 #if __cplusplus >= 201103L #include #include #include std::this_thread::sleep_for...(std::chrono::microseconds(1000)); #endif // __cplusplus >= 201103L 上述介绍的sleep函数均不方便控制它们提前结束,如果需要这种...sleep,可基于pthread_cond_timedwait实现,实现可参考CEvent源码: https://github.com/eyjian/libmooon/blob/master/src/

4.9K40

Linux进程学习【进程地址】

,这种行为称为 写时拷贝 刚开始,父子进程共同使用同一块空间 当子进程修改共享值后 ---- 进程地址空间 下面来好好谈谈 进程地址空间 (虚拟地址) ️虚拟地址 在早期程序中,是没有虚拟地址空间的...因为每个进程都有属于自己的空间,OS 在管理进程时,能够以统一的视角进行管理,效率很高 光有 虚拟地址空间 是不够的,还需要一套完整的 ‘‘翻译’’ 机制进行程序寻址,如 Linux 中的 页表 +...后续对这块进行写入操作时,会直接拒绝 对于这种机制感兴趣的同学可以点击下面这几篇文章查看详细内容: Linux的虚拟内存详解(MMU、页表结构) ARM体系架构——MMU 逻辑地址、页表、MMU等...️写时拷贝 Linux 中存在一个很有意思的机制:写时拷贝 这是一种 赌bo 行为,OS 此时就赌你不会对数据进行修改,这样就可以 使多个 进程 在访问同一个数据时,指向同一块空间,当发生改写行为时...(权限设置) 将 进程管理 和 内存管理 进行 解耦,方便 OS 进行更高效的管理 可以让进程以统一的视角看待自己的代码和数据 ---- 总结 以上就是本篇关于 Linux进程学习【进程地址】的全部内容了

16420
领券