操作系统
文章平均质量分 93
kang___xi
这个作者很懒,什么都没留下…
展开
-
从编写源代码到程序在内存中运行的全过程解析
作为一个C/C++程序员,搞清楚从编写源代码到程序运行过程中发生的细节是很有必要的。这在之前也是困扰我的一个很大问题,因为最近在忙着找实习,一直没有下定决心来写这篇博客,最近才抽时间写。下面的代码除了明显贴出来的以外,其他的都以下面的代码为例进行说明:int gdata1 = 10;int gdata2 = 0;int gdata3;static int gdata4 = ...原创 2018-04-21 17:49:51 · 31046 阅读 · 20 评论 -
二元信号量、互斥量和临界区之间的区别
二元信号量。适合只能被唯一一个线程独占访问的资源。多元信号量。适合允许多个线程并发访问的资源。互斥量。和二元信号量类似,资源仅同时允许一个线程访问,但和信号量不同的是,信号量在整个系统可以被任意线程获取并释放,也就是说,同一个信号量可以被系统中的一个线程获取之后由另一个线程释放。而互斥量则要求哪个线程获取了互斥量,哪个线程就要负责释放这个锁。临界区。是比互斥量更加严格的同步手段。在术语中,把临界区...原创 2018-04-25 10:16:34 · 1758 阅读 · 0 评论 -
在linxu中经常发生段错误(segment fault)的原因
我们在linux上写代码,并运行程序时,经常会碰到程序执行到一半发生“segment fault”的错误,一头雾水,而且对这类问题的排查也是相当麻烦的一件事。而且我在面试的过程中也被面试官问到过这个问题,所以了解发生这个问题的原因对于在linux开发的技术人员来说是很有必要的。 引起这个错误的典型情况是对非法指针解引用。当指针指向一个不允许读或写的内存地址,而程序却试...原创 2018-05-25 17:55:40 · 3260 阅读 · 0 评论 -
深入浅出系统调用的原理
这里不进行系统调用源码的分析,因为那个太费时间了,而且很难在很快的时间里能够理解。但是我相信你看完下面的文章,你对系统调用的实现原理肯定有一个很深的理解。一、系统调用的介绍1.什么是系统调用 系统调用就是应用程序与系统内核之间的接口。通过系统调用访问系统资源。2.为什么需要系统调用 由于系统有限的资源可能被多个不同的应用程序同时访问可因此,如果不加以保护...原创 2018-06-03 14:58:20 · 4205 阅读 · 0 评论