深入理解计算机系统
yang_chen_shi_wo
这个作者很懒,什么都没留下…
展开
-
文件共享
注意这里的文件表和v-node表示所有进程共享的,在文件表中主要是当前文件位置和引用计数。引用计数说明可以有多个进程指向同一个文件表项。一下介绍了三种不同的文件打开方式:首先是最普通的形式,一个进程打开两个不同的文件;然后是一个进程已同一个文件名打开一个文件两次;最后是调用fork函数产生的文件共享方式。原创 2015-06-10 20:01:37 · 315 阅读 · 0 评论 -
进程休眠函数
由于sleep函数可能被信号打断,所以其可能没有睡够,当没有睡够时,其返回剩余的时间转载 2015-06-10 20:46:41 · 551 阅读 · 0 评论 -
回收子进程函数waitpid详解
这里我们可以看出:当已经有SIGCHLD信号时,我们调用waitpid是可以立即返回的。所以经常在SIGCHLD处理程序中调用waitpid函数,这样就可以期望他总能立即返回,但是如果在执行SIGCHLD处理程序期间又有子进程终止,因为unix不对信号排队,如果多于一个子进程终止,则会导致信号丢失,在这种情况下,如果只调用一次waitpid就会导致僵死进程的产生,可以采取while(waitpid原创 2015-06-10 20:34:27 · 2595 阅读 · 0 评论 -
线程函数 pthread_detach()
在任何一个时间点上,线程石可结合的(joinable)或者是可分离的(detached)。一个可结合的线程能够被其他线程回收资源和杀死。在被其他线程回收之前,他的存储器资源(例如栈)是没有释放的。相反,一个分离的线程是不能被其他线程回收或杀死的。他的存储器资源在他终止时由系统自动释放。默认情况下系统被创建为可结合的,为了避免内存泄露,每个可结合线程都应该要么被其他线程显示回收,要么通过调用pt原创 2015-06-11 14:15:01 · 341 阅读 · 0 评论 -
GCC分步编译和编译动态链接库和静态链接库
棒棒棒转载 2015-06-13 09:40:39 · 374 阅读 · 0 评论