嵌入式Linux中文站

linux 信号学习总结

阅读(203)

一、可靠性与不可靠性: 1. 不可靠信号 主要由以下两个问题导致不可靠问题的发生: a. 进程每次处理信号后, 就会对信号的响应设置为默认动作;如果用户不希望这样操作,就要在信号处理函数结尾再调用一次signal,进行重装。 b. 信号会丢失。 Linux支持不可靠信号,信号值小于SIGRTMIN的都是不可靠的, 但是做了改进,在调用后,不用重新安装函数,信号会自动重装。Linux下的不可靠信号主要指信号丢失。 2. 可靠信号: 信号值位于SIGRTMIN和SIGRTMAX之间的信号都是可靠信号,可靠信号

Linux信号(signal) 机制分析

阅读(275)

【摘要】本文分析了Linux内核对于信号的实现机制和应用层的相关处理。首先介绍了软中断信号的本质及信号的两种不同分类方法尤其是不可靠信号的原理。接着分析了内核对于信号的处理流程包括信号的触发/注册/执行及注销等。最后介绍了应用层的相关处理,主要包括信号处理函数的安装、信号的发送、屏蔽阻塞等,最后给了几个简单的应用实例。 【关键字】软中断信号,signal,sigaction,kill,sigqueue,settimer,sigmask,sigprocmask,sigset_t 1 信号本质 软中断信号(

Linux多线程与同步

阅读(172)

典型的UNIX系统都支持一个进程创建多个线程(thread)。在Linux进程基础中提到,Linux以进程为单位组织操作,Linux中的线程也都基于进程。尽管实现方式有异于其它的UNIX系统,但Linux的多线程在逻辑和使用上与真正的多线程并没有差别。 多线程 我们先来看一下什么是多线程。在Linux从程序到进程中,我们看到了一个程序在内存中的表示。这个程序的整个运行过程中,只有 一个控制权 的存在。当函数被调用的时候,该函数获得控制权,成为 激活 (active)函数,然后运行该函数中的指令。与此同时,

Linux进程间通信

阅读(204)

一、进程间通信概述 进程通信有如下一些目的: A、数据传输:一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几M字节之间 B、共享数据:多个进程想要操作共享数据,一个进程对共享数据的修改,别的进程应该立刻看到。 C、通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通知父进程)。 D、资源共享:多个进程之间共享同样的资源。为了作到这一点,需要内核提供锁和同步机制。 E、进程控制:有些进程希望完全控制另一个进程的执行(如Debug进程),此时控制进

Linux--线程编程

阅读(206)

进程 系统中程序执行和资源分配的基本单位 每个进程有自己的数据段、代码段和堆栈段 在进行切换时需要有比较复杂的上下文切换 线程 减少处理机的空转时间,支持多处理器以及减少上下文切换开销, 比创建进程小很多 进程内独立的一条运行路线 处理器调度的最小单元,也称为轻量级进程 可以对进程的内存空间和资源进行访问,并与同一进程中的其他线程共享 线程 线程相关的执行状态和存储变量放在 线程控制表 内 一个进程可以有多个线程,有多个线程控制表及堆栈寄存器,共享一个用户地址空间 多线程同步问题 线程共享进程的资源和地址

Linux进程基础

阅读(242)

计算机实际上可以做的事情实质上非常简单,比如计算两个数的和,再比如在内存中寻找到某个地址等等。这些最基础的计算机动作被称为 指令 (instruction)。所谓的 程序 ( program),就是这样一系列指令的所构成的集合。通过程序,我们可以让计算机完成复杂的操作。程序大多数时候被存储为可执行的文件。这样一个可执行文件就像是一个 菜谱 ,计算机可以按照菜谱作出可口的饭菜。 那么, 程序 和 进程 (process)的区别又是什么呢? 进程是程序的一个 具