操作系统
文章平均质量分 81
猫已经找不回了
猫已经找不回了
展开
-
(转)Linux进程的睡眠和唤醒, 真正搞懂了吗?
1 Linux进程的睡眠和唤醒在Linux中,仅等待CPU时间的进程称为就绪进程,它们被放置在一个运行队列中,一个就绪进程的状态标志位为TASK_RUNNING。一旦一个运行中的进程时间片用完, Linux 内核的调度器会剥夺这个进程对CPU的控制权,并且从运行队列中选择一个合适的进程投入运行。当然,一个进程也可以主动释放CPU的控制权。函数schedule()是一个调度函数,它可以被一个转载 2013-11-22 20:42:59 · 14780 阅读 · 0 评论 -
进程、线程和协程的理解
进程、线程和协程的理解进程、线程和协程之间的关系和区别也困扰我一阵子了,最近有一些心得,写一下。进程拥有自己独立的堆和栈,既不共享堆,亦不共享栈,进程由操作系统调度。线程拥有自己独立的栈和共享的堆,共享堆,不共享栈,线程亦由操作系统调度(标准线程是的)。协程和线程一样共享堆,不共享栈,协程由程序员在协程的代码里显示调度。进程和其他两个的区别还是很明显的。转载 2013-11-14 17:13:19 · 55892 阅读 · 6 评论 -
linux kernel中如何保证append写的原子性
转载自pagefault先来描述一下,write系统调用的大体流程,首先内核会取得对应的文件偏移,然后调用vfs的write操作,而在vfs层的write操作的时候会调用对应文件系统的write方法,而在对应文件系统的write方法中aio_write方法,最终会调用底层驱动。这里有一个需要注意的就是内核在写文件的时候会加一把锁(有些设备不会加锁,比如块设备以及裸设备).这样也转载 2013-12-24 13:11:01 · 10669 阅读 · 0 评论 -
管理处理器的亲和性(affinity)
转自:http://www.ibm.com/developerworks/cn/linux/l-affinity.html简单地说,CPU 亲和性(affinity) 就是进程要在某个给定的 CPU 上尽量长时间地运行而不被迁移到其他处理器的倾向性。Linux 内核进程调度器天生就具有被称为 软 CPU 亲和性(affinity) 的特性,这意味着进程通常不会在处理器之间频繁迁转载 2013-12-25 16:22:12 · 5699 阅读 · 0 评论 -
Linux 内核的排队自旋锁(FIFO Ticket Spinlock)
转自:http://www.ibm.com/developerworks/cn/linux/l-cn-spinlock/index.html?utm_source=twitterfeed&utm_medium=twitter引言自旋锁(Spinlock)是一种 Linux 内核中广泛运用的底层同步机制。自旋锁是一种工作于多处理器环境的特殊的锁,在单处理环境中自旋锁的操作转载 2014-01-14 14:23:24 · 6969 阅读 · 0 评论 -
漫谈linux之文件IO篇
同事的文章,觉得写得很清晰,收藏了。在Linux 开发中,有几个关系到性能的东西,技术人员非常关注:进程,CPU,MEM,网络IO,磁盘IO。本篇文件打算详细全面,深入浅出。剖析文件IO的细节。从多个角度探索如何提高IO性能。本文尽量用通俗易懂的视角去阐述。不copy内核代码。 阐述之前,要先有个大视角,让我们站在万米高空,鸟瞰我们的文件IO,它们设计是分层的,分层有2个好处,一是转载 2014-01-23 14:32:20 · 7847 阅读 · 0 评论