![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
进程
进程
zhangatong
这个作者很懒,什么都没留下…
展开
-
Linux系统之进程状态
转自:https://www.cnblogs.com/littlecharacter/p/12154588.html一、进程状态↑D:uninterruptible sleep (usually IO) R:running or runnable (on run queue) S:interruptible sleep (waiting for an event to complete) T:stopped by job control signal t:stopped by debug转载 2020-06-06 18:26:27 · 273 阅读 · 0 评论 -
Linux 进程间通信系列之 信号
转自:https://www.cnblogs.com/mingfeng002/p/6927893.html信号(Signal)信号是比较复杂的通信方式,用于通知接受进程有某种事件发生,除了用于进程间通信外,进程还可以发送信号给进程本身;Linux除了支持Unix早期信号语义函数sigal外,还支持语义符合Posix.1标准的信号函数sigaction(实际上,该函数是基于BSD的,BSD为了实现可靠信号机制,又能够统一对外接口,用sigaction函数重新实现了signal函数)信号种类转载 2020-06-06 18:22:47 · 185 阅读 · 0 评论 -
Thread.Sleep(0) vs Sleep(1) vs Yeild
Thread.Yeild()Yield 的中文翻译为 “放弃”,这里意思是主动放弃当前线程的时间片,并让操作系统调度其它就绪态的线程使用一个时间片。但是如果调用 Yield,只是把当前线程放入到就绪队列中,而不是阻塞队列。如果没有找到其它就绪态的线程,则当前线程继续运行。优势:比 Thread.Sleep(0) 速度要快,可以让低于当前优先级的线程得以运行。可以通过返回值判断...转载 2020-04-21 15:58:02 · 283 阅读 · 0 评论 -
为什么空循环进程会导致CPU占有率很高?
最近在写一个时间戳系统记录系统中各个模块一些重要的时间节点。获取内核上报的时间戳是通过进程轮询的方式,但是发现该进程在实际运行中CPU占用率很高,其中就是一个死循环在读取设备文件,本以为是由于读系统调用太频繁的原因。于是又写一个测试程序,其中仅仅是个空循环。结果发现该程序的CPU占用率居然在90%多!针对这个问题我有2个疑问,对这些疑问的理解也记录在此,与大家分享。1 linux系统是时间...转载 2020-04-21 15:08:56 · 598 阅读 · 0 评论 -
进程的挂起状态详细分析
通常我们所认为的进程有五大状态,新建态,就绪态,阻塞态,运行态,退出态。下面是示意图: 事实上还存在被挂起的进程。交换的需要 前面图中三个基本状态(就绪态、运行态和阻塞态)提供了一种为进程行为建立模型的系统方法,并指导操作系统的实现。但是,可以证明往模型中增...转载 2020-04-21 10:17:35 · 7782 阅读 · 0 评论 -
Linux中进程的阻塞和挂起的区别
理解一:挂起是一种主动行为,因此恢复也应该要主动完成,而阻塞则是一种被动行为,是在等待事件或资源时任务的表现,你不知道他什么时候被阻塞(pend),也就不能确切的知道他什么时候恢复阻塞。而且挂起队列在操作系统里可以看成一个,而阻塞队列则是不同的事件或资源(如信号量)就有自己的队列。 理解二:阻塞(pend)就是任务释放CPU,其他任务可以运行,一般在等待某种资源或信号量的时候出现。挂起(susp...转载 2020-04-21 10:11:16 · 869 阅读 · 0 评论 -
linux进程调度方法(SCHED_OTHER,SCHED_FIFO,SCHED_RR)
linux内核的三种调度方法:1,SCHED_OTHER 分时调度策略,2,SCHED_FIFO实时调度策略,先到先服务3,SCHED_RR实时调度策略,时间片轮转实时进程将得到优先调用,实时进程根据实时优先级决定调度权值,分时进程则通过nice和counter值决定权值,nice越小,counter越大,被调度的概率越大,也就是曾经使用了cpu最少的进程将会得到优先调度。S...转载 2020-04-21 15:05:15 · 334 阅读 · 0 评论