开心happy

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2016年2月16日

摘要: (一)jiffies 全局变量jiffies记录自系统启动以来产生的节拍数,在系统启动时jiffies初始化为0,每次时钟中断时会增加jiffies的数值。也就是会说,每秒钟jiffies增加的数值就是系统的HZ数。 jiffies的类型为无符号长整型(unsigned long) 进程计算系统占用 阅读全文
posted @ 2016-02-16 11:43 开心happy 阅读(2108) 评论(0) 推荐(0) 编辑

摘要: 文件描述符,fd? 当每个程序打开文件时,系统会返回一个文件描述符,程序为了处理文件需要引用这个文件描述符,简称fd。fd是一个整数,从0开始,其中0为标准输入,1和2分别为标准输出和标准错误输出。比如printf就默认使用stdout。fd是以进程为单位的,每个进程有一个最大的fd数目,可以使用u 阅读全文
posted @ 2016-02-16 10:34 开心happy 阅读(3404) 评论(0) 推荐(0) 编辑

2016年2月14日

摘要: linux多线程pthread系列函数详解 (一)为什么要引入线程 线程技术早在60年代就被提出,但是在80年代才真正使用到操作系统中。传统UNIX也支持多线程概念,但在一个进程中只允许有一个线程,这样多线程就意味着多进程。现在多线程技术已经被很多操作系统支持,包含Windows/NT,当然也包含L 阅读全文
posted @ 2016-02-14 12:14 开心happy 阅读(9197) 评论(0) 推荐(0) 编辑

2016年2月3日

摘要: 我们知道内核管理物理内存,其实除了管理本身内存外,还必须管理用户空间中进程的内存,我们称这个内存为进程地址空间,也就是系统中每个用户空间进程所看到的内存。 传统的C语言编译出来的进程地址空间包含哪些对象呢?可以参照ELF文件格式对应看: -->可执行文件代码的内存映射,称为代码段。【ELF中的代码段 阅读全文
posted @ 2016-02-03 11:18 开心happy 阅读(688) 评论(0) 推荐(0) 编辑

2016年2月1日

摘要: 1)前后端交互频繁或者各种吃资源的运算或操作使用C/C++ 2)否则使用java/php/c++ ×基于http的web服务 适用python/ruby ×基于tcp的服务 适用node.js/erlang 阅读全文
posted @ 2016-02-01 12:57 开心happy 阅读(584) 评论(0) 推荐(0) 编辑

摘要: alarm,select,sleep函数 (一)alarm函数(进程不阻塞): 设置信号传送闹钟,单位是秒,也就是只能支持到s的精度。且使用的是signal注册的方式实现函数。 alarm/signal/kill/pause都算作信号处理函数。 使用alarm函数和signal函数,要注册信号处理回 阅读全文
posted @ 2016-02-01 12:54 开心happy 阅读(1706) 评论(0) 推荐(0) 编辑

摘要: 了解了应用程序的编译运行原理后,下面看一看gdb能追踪到进程的原理: gdb运行在应用态,基本用法是gdb ./hello,在gdb程序中拉起了hello程序,hello进程相当于gdb的子进程,gdb是hello进程的父进程。 一)断点的原理 gdb使用b backpoint在可执行文件中加入断点 阅读全文
posted @ 2016-02-01 12:32 开心happy 阅读(447) 评论(0) 推荐(0) 编辑

摘要: 在研究c文件的编译/装载/运行之前,先了解ELF文件的概念,ELF(Executable and Linking Format)是一种对象文件的格式。ELF文件格式是UNIX系统实验室作为应用程序二进制接口而开发发布的,是Linux的主要可执行文件格式。 简单来说,ELF是“编译器/连接器”和“内核 阅读全文
posted @ 2016-02-01 12:11 开心happy 阅读(635) 评论(0) 推荐(0) 编辑