
进程/线程/通信
kyoko
这个作者很懒,什么都没留下…
展开
-
Linux环境进程间通信(二): 信号(下)
<br /><br />简介: 在信号(上)中,讨论了linux信号种类、来源、如何安装一个信号以及对信号集的操作。本部分则首先讨论从信号的生命周期上认识信号,或者宏观上看似简单的信号机制(进程收到信号后,作相应的处理,看上去再简单不过了),在微观上究竟是如何实现的,也是在更深层次上理解信号。接下来还讨论了信号编程的一些注意事项,最后给出了信号编程的一些实例。<br />本文的标签: linux环境进程间通信, sigemptyset, 代码库, 信号, 信号,sigaction, 内核, 编码<br /原创 2011-03-16 09:53:00 · 559 阅读 · 0 评论 -
linux内核栈与用户栈
linux内核栈与用户栈 最近linux内核的中断部分,总是被书里的栈弄晕,一会儿内核栈,一会儿用户栈的……很是崩溃,在网上google了一下 找了一篇不错的文章拿来分享。 5.8 Linux 系统中堆栈的使用方法 本节内容概要描述了Linux内核从开机引导到系统正常运行过程中对堆栈的使用方式。这部分内容的说明与内核代码关系比较密切,可以先跳过。在开始阅读相应代码时再回来仔转载 2013-01-08 10:29:29 · 606 阅读 · 0 评论 -
对Linux的进程内核栈的认识
在重游《LDD3》的时候,又发现了一个当年被我忽略的一句话: “内核具有非常小的栈,它可能只和一个4096字节大小的页那样小” 针对这句话,我简单地学习了一下进程的“内核栈” 什么是进程的“内核栈”? 在每一个进程的生命周期中,必然会通过到系统调用陷入内核。在执行系统调用陷入内核之后,这些内核代码所使用的栈并不是原先用户空间中的栈,而是一个内核空间的栈,这个称作进程的“内原创 2013-01-07 18:12:39 · 768 阅读 · 0 评论 -
uclibc中LinuxThread模型与nptl线程库
一、uclibc中posix thread实现 在早期Linux内核对象线程支持不是那么贴心的时候,用户态的posix线程实现也很蹩脚,通俗的说,就是上梁不正下梁歪。对于Unix下重要的posix线程库,libc的实现是通过所谓的LinuxThread模型来实现的,这个是试图在内核不支持线程的基础上模拟一个多线程,结果就是一个四不像,勉强可以用,但是很别扭。好消息是在2.6内核完善了对于线程的支转载 2012-12-28 17:16:29 · 2531 阅读 · 0 评论 -
ELF文件格式详解
ELF文件格式详解 ARM的可执行文件的格式是ELF格式文件,下文对ELF格式做个详细的介绍。 序言 1. OBJECT文件 导言 ELF头(ELF Header) Sections String表(String Table) Symbol表(Symbol Table) 重定位(Relocation) 2. 程序装载与动态原创 2012-09-06 11:26:58 · 1535 阅读 · 0 评论 -
linux进程状态浅析
linux进程状态浅析 众所周知,现在的分时操作系统能够在一个CPU上运行多个程序,让这些程序表面上看起来是在同时运行的。linux就是这样的一个操作系统。 在linux系统中,每个被运行的程序实例对应一个或多个进程。linux内核需要对这些进程进行管理,以使它们在系统中“同时”运行。linux内核对进程的这种管理分两个方面:进程状态管理,和进程调度。本文主要介绍进程状态管理,进程调度见《转载 2012-08-03 18:56:39 · 454 阅读 · 0 评论 -
Linux下的多线程编程
1 引言 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多转载 2011-10-13 09:39:54 · 458 阅读 · 0 评论 -
Linux进程间通信——消息队列
消息队列是消息的链接表,包括Posix消息队列system V消息队列。消息队列用于运行于同一台机器上的进程间通信,它 和管道很相似,有足够权限的进程可以向队列中添加消息,被赋予读权限的进程则可以读走队列中的消息。消息队列克服了 信号承载信息量少,管道只能承载无格式字节流以及转载 2011-10-13 09:38:28 · 609 阅读 · 0 评论 -
Linux之线程同步篇
<br /><br />进行多线程编程,最头疼的就是那些共享的数据。因为你无法知道哪个线程会在哪个时候对它进行操作,你也无法得知那个线程会先运行,哪个线程会后运行。下面介绍一些技术,通过他们,你会合理安排你的线程之间对资源的竞争。<br />l 互斥体Mutex<br />l 信号灯Semophore<br />l 条件变量Conditions<br />先说一下互斥量。<br />什么时候会用上互斥量了?比如你现在有一全局链表,你有几个工作线程。每一个线程从原创 2011-04-01 14:23:00 · 415 阅读 · 0 评论 -
Linux 的多线程编程的高效开发经验
<br />杨 奕 (yangyish@cn.ibm.com), 软件工程师, IBM贺 皓 (haohe@cn.ibm.com), 软件工程师, IBM张 俊伟 (zhjunwei@cn.ibm.com), 软件工程师, IBM<br />背景<br />Linux 平台上的多线程程序开发相对应其他平台(比如 Windows)的多线程 API 有一些细微和隐晦的差别。不注意这些 Linux 上的一些开发陷阱,常常会导致程序问题不穷,死锁不断。本文中我们从 5 个方面总结出 Linux多线程编程上的问题,并转载 2011-04-01 09:21:00 · 520 阅读 · 0 评论 -
在用户空间编程使用linux内核链表list,hlist宏定义和操作
<br /> ChinaUnix.net首页 | 论坛 | 博客 | Linux | 人才 | 培训 | 精华 | Wiki | 读书 | 资料 | 手册 | 下载 | 搜索 ChinaUnix首页 > 精华文章 > C/C++ > 正文 <br />[保留] 在用户空间编程使用linux内核链表list,hlist宏定义和操作http://www.chinaunix.net 作者:思一克 发表于:2008-09-17 09:56:44【发表评论】 【查看原文】 【C/C++讨论区】【关闭】<br转载 2011-03-31 09:19:00 · 608 阅读 · 0 评论 -
linux daemon
<br />◆restorecond <br /> <br /> 这个程序的目的是要还原某些文件的SELinux权限,需要还原的清单列在/etc/selinux/ 目录中的restorecond.conf文件里。在2.6 kernel中,SELinux是一个新加入的机制,但它非常重要,因为SELinux所控管的是每一个文件的执行权限,与之前的PAM、Kerberos、TCP Wrapper各机制相比各有所长,在相互配合管控之下,这几种机制将Linux的安全性大幅提高。<br /><br /><br />原创 2011-03-22 10:54:00 · 545 阅读 · 0 评论 -
9.3.1 信号量 IPC 原理_Linux程序设计
<br /><br />9.3.1 信号量 IPC 原理 <br />信号量通信机制主要用来实现进程间同步,信号量值用来标识系统可用资源的个数,例<br />如,可以使用信号量来标识一个缓冲区可用空间大小(假定缓冲区大小为 256 个字节), 在 使<br />用 之前,该缓冲区没有任何内容,可用资源为 256,即可以初始化信号量为 256,每向缓冲区<br />写入一个字符就将信号量的值自动减 1,当信号量的值为 0 时即表示缓冲区满,资源暂不可<br />用;每从缓冲区中读出一个字符,将信号量的值自动加转载 2011-03-18 10:03:00 · 903 阅读 · 0 评论 -
semaphone
<br /><br />9.3.1 信号量 IPC 原理 <br />信号量通信机制主要用来实现进程间同步,信号量值用来标识系统可用资源的个数,例<br />如,可以使用信号量来标识一个缓冲区可用空间大小(假定缓冲区大小为 256 个字节), 在 使<br />用 之前,该缓冲区没有任何内容,可用资源为 256,即可以初始化信号量为 256,每向缓冲区<br />写入一个字符就将信号量的值自动减 1,当信号量的值为 0 时即表示缓冲区满,资源暂不可<br />用;每从缓冲区中读出一个字符,将信号量的值自动加原创 2011-03-18 10:34:00 · 864 阅读 · 0 评论 -
linux进程通信-信号量使用
<br /> <br />标题:Linux进程通信-使用信号量<br />一、相关知识<br /> 信号量:一个整数;<br /> 大于或等于0时代表可供并发进程使用的资源实体数;<br /> 小于0时代表正在等待使用临界区的进程数;<br /> 用于互斥的信号量初始值应大于0;<br /> 只能通过P、V原语操作而改变;<br /> 信号量元素组成:<br /> 1、表示信号量元素的值;<br /> 2、最后操作信号量元素的进程ID<br /> 3、等待信号量元素值+1的进程数;<br />原创 2011-03-18 09:59:00 · 598 阅读 · 0 评论 -
Linux下时间和定时器
<br />Linux下时间和定时器2009年08月11日 星期二 19:31<br />【摘要】<br />本文主要介绍了linux的时间和定时器。<br />【关键词】<br />Linux 定时器 时间<br />一、问题的提出<br />我们开发程序时,经常会遇到时间和定时器的问题,为了更好的使用时间和定时器,现在列举一个一些时间结构体、函数和定时器。<br />二、解决思路<br />1.时间类型<br />1) time_t是一个长整型,一般用来表示用1970年以来的秒数。<br />2)str转载 2011-03-16 15:05:00 · 716 阅读 · 0 评论 -
Linux环境进程间通信(二): 信号(上)
一、信号及信号来源信号本质信号是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是异步的,一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知道信号到底什么时候到达。信号是进程间通信机制中唯一的异步通信机制,可以看作是异步通知,通知接收信号的进程有哪些事情发生了。信号机制经过POSIX实时扩展后,功能更加强大,除了基本通知功能外,还可以传递附加信息。信号来源信号事件的发生有两个来源:硬件来源(比如我们按下了键盘或者其它硬件故障);软件来源,转载 2011-03-16 09:37:00 · 465 阅读 · 0 评论 -
linux 进程
/sbin/init 内核启动的第一个用户级进程,引导用户空间服务 [kthreadd] 内核线程管理 [migration/0] 用于进程在不同的CPU间迁移 [ksoftirqd/0] 内核调度/管理第0个CPU软中断的守护进程 [migration/1] 管理多核心 [ksoftirqd/1] 内核调度原创 2013-09-27 14:13:59 · 1128 阅读 · 1 评论