进程的死亡

2015-6-17 chenhui 进程管理

进程的死亡,有两种方式: 进程杀死自己 进程进入僵死状态,由父进程杀死自己 进程死亡流程 判断自身是否可杀死,不可杀死则杀死失败 剥离进程占用的资源 杀死所有僵死状态的子进程, 并为正常子进程重新寻找父进程 如果进程需要向父进程发送信号或者他被跟踪,就通知父...

阅读全文>>

评论(0) 浏览(238)

进程的创建

2015-6-17 chenhui 进程管理

Linux内核提供了三个用于创建进程的系统调用,他们分别是:fork()、clone()、vfork()。那么他们创建的进程有什么区别呢?我们可以先来看看这三个函数的定义。 fork()系统调用在内核中对应的函数为sys_fork()。 clone()系统调用在内核中对应的函数为sys_clone()。 vfork()系统调用在内...

阅读全文>>

评论(0) 浏览(288)

读写自旋锁

2015-6-17 chenhui 同步机制

读写自旋锁是增强版的自旋锁,其和自旋锁的主要区别是:自旋锁不管请求类型如何,他只允许一个请求来处理资源;读写自旋锁则不一样,他把请求分为读者(对资源进行读操作的请求)和写者(对资源执行写操作的请求),他允许有多个读者同时访问资源,但写者必须独占访问资源。 内核使用rwlock_t 结构来描述一个读写自旋锁。 我们可以发现读写自旋锁的定义和自旋锁...

阅读全文>>

评论(0) 浏览(278)

自旋锁

2015-6-17 chenhui 同步机制

现代计算机一般都有多个处理器,这些处理器通常并发执行着某些程序,而这就会导致一些问题,比如说当多个处理器上的进程同时读写某些资源时(比如说变量),就有可能导致一些错误,而解决这个问题的最好方法就是使用一些同步机制来对处理器上的进程进行排队,那么,怎么排?很简单,我们可以只让第一个访问数据的处理器来处理数据,而后来的处理器则让他们执行一个几乎什么都不做的循环,等当前处理器处理完之后,再让下一个处理器...

阅读全文>>

评论(0) 浏览(376)

信号量

2015-6-17 chenhui 同步机制

信号量是内核中一种非常常用的同步机制。他和自旋锁不同的是:他让后来者进入睡眠状态而不是自旋状态,且他可以自定义访问资源的进程数量。 内核使用 struct semaphore 类型来描述一个信号量的。 count : 他被初始化为可以访问信号量对应资源的进程个数,...

阅读全文>>

评论(0) 浏览(257)

Copyright ©2015-2016 freehui All rights reserved