线程(thread),有时被称为 轻量级进程 (Lightweight Process,LWP),是程序执行流的最小单元。一个标准的线程由 线程ID , 当前指令指针(PC) , 寄存器集合(上下文) 和 堆栈 组成。另外,线程是进程中的一个实体,是被系统独立 调度和分派的基本单位 ,线程自...
信号:是UNIX进程间通信的一种标准方式,在最早期的UNIX系统中已经存在。信号的出现允许内核和其它进程通知进程特定事件的发生。现代UNIX中也存在其它的进程间通信方式,但由于信号相对简单和有效,它们仍然被广泛使用。 信号是最简单的消息,当一个信号被发...
一个进程在终止时会关闭所有文件描述符,释放在用户空间分配的内存,但它的 PCB还保留着 ,内核在其中保存了一些信息:如果是正常终止则保存着退出状态,如果是异常终止则保存着导致该进程终止的信号是哪个。这个进程的父进程可以调用wait或waitpid获取这些...
一般来说,linux下的进程包含以下几个关键要素: 有一段可执行程序; 有专用的系统堆栈空间; 内核中有它的控制块(进程控制块),描述进程所占用的资源,这样,进程才能接受内核的调度; 具有独立的存储空间 # include stdio . h # include unistd . h # in...
一、fork 1. 调用方法 #include #include pid_t fork(void); 正确返回:在父进程中返回子进程的进程号,在子进程中返回0 错误返回:-1 子进程是父进程的一个拷贝。即,子进程从父进程得到了数据段和堆栈段的拷贝,这些需要分配新的内存;而对于只读的代码段...
用fork创建子进程后执行的是和父进程相同的程序(但有可能执行不同的代码分支),子进程往往要调用一种exec函数以执行另一个程序。当进程调用一种exec函数时,该进程的用户空间代码和数据完全被新程序替换,从新程序的启动例程开始执行。调用exec并不创建新进...
原文地址: linux下内存的统计和内存泄露类问题的定位 作者: wushuan10141 在产品的开发中,通过对当前系统消耗内存总量的统计,可以对产品所需内存总量进行精确的评估,从而选择合适的内存芯片与大小,降低产品的成本。在遇到内存泄露类问题时,经常会对此...
当Linux驱动程序开发到一定阶段,向kernel.org提交代码是一个很好的选择。对于很多没有向上游提交过代码的开发者来说,还是有很多疑问需要解决的。比如,究竟我们向哪里提交驱动程序?提交时我们的代码应该处于什么状态?提交的过程又如何呢? 向哪里提交Linu...
软中断介绍 把可以延迟的处理从硬中断处理程序独立出来,这样这个处理可以在开中断的情况下运行,这个处理就是软中断。可见,软中断的这种脱离可以大大缩短硬中断的响应时间,对于很多实时应用来说及其重要。 我们本文只谈软中断,至于tasklet、workqueue等...
http://www.ibm.com/developerworks/cn/linux/l-devmapper/ Linux 内核中的 Device Mapper 机制本文结合具体代码对 Linux 内核中的 device mapper 映射机制进行了介绍。Device mapper 是 Linux 2.6 内核中提供的一种从逻辑设备到物理设备的映射框架机制,在该...