- 博客(7)
- 资源 (5)
- 收藏
- 关注
原创 如何有效地学习开源项目代码?
方法一: 1、从代码管理库下载完整的源代码。 2、学习示例代码与单元测试。 3、看架构文档。 4、画流程图。 方法二: clone某个项目的代码到本地 查看这个项目的release列表 找到一个看得懂的release版本,如1.0或者更早的版本 读懂上一个版本的代码 向后阅读大版本的源码
2017-09-28 09:55:20 1617
原创 UNP(卷2:进程间通信)—— 第15,16章:远程过程调用(门,Sun RPC)
(1)本地过程调用(local procedure call) (2)远程过程调用(remote procedure call,RPC):调用者为客户,被调用的过程为服务器。门(door)能力:一个进程调用同一台主机上另一个进程中的某个过程(函数)。 (3)RPC通常允许一台主机上的某个客户调用另一台主机上的某个服务器过程,只要这两台主机以某种形式的网络连接着。
2017-09-23 11:36:53 481
原创 UNP(卷2:进程间通信)—— 第14章:System V共享内存区
先调用shmget,再调用shmat。 对于每个共享内存区,内核维护如下信息结构 shmid_ds, /* Permission flag for shmget. */ #define SHM_R 0400 /* or S_IRUGO from */ #define SHM_W 0200 /* or S_IWUGO from */ /
2017-09-23 09:34:27 300
原创 UNP(卷2:进程间通信)—— 第13章:Posix共享内存区
mmap提供父子进程间的共享内存区的列子: (1)使用内存映射文件; (2)使用4.4BSD 匿名内存映射; (3)使用 /dev/zero 匿名内存映射。 POSIX 提供了两种在无亲缘关系进程间共享内存区的方法: (1)内存映射文件:由open函数打开,由mmap函数把得到的描述符映射 到当前进程地址空间中的一个文件。 (2)共享内存区对象:由shm_open 打开一个Po
2017-09-13 11:46:54 293
原创 UNP(卷2:进程间通信)—— 第12章:共享内存区介绍
共享内存区是可用IPC形式中最快的。一旦这样的内存区映射到共享它的进程的地址空间,这些进程间数据的传递就不再涉及内核。然而往共享内存区存放信息或从中取走信息的进程间通常需要某种形式的同步。 “不再涉及内核”:指 进程不再通过执行任何进入内核的系统调用来彼此传递数据。显然,内核必须建立允许各个进程共享该内存区的内存映射关系,然后一直管理该内存区。 通常的客户服务器消息传递,需复制四次:
2017-09-12 21:30:31 347
原创 glibc源码解读——malloc
通过宏定义的展开,找到malloc的函数地址: # define C_SYMBOL_NAME(name) name # define ASM_LINE_SEP ; void *__libc_malloc (size_t bytes); libc_hidden_def (__libc_malloc) # define libc_hidden_def(name) hidden_def (nam
2017-09-11 20:15:27 2480
原创 UNP(卷2:进程间通信)—— 第11章:System V 信号量
先前介绍的POSIX信号量概念: 二值信号量:0,1计数信号量:0和某个限制值之间的信号量。 System V 中信号量: 计数信号量集:一个或多个信号量,其中每个都是计数信号量。 对于系统的每个信号量集,内核维护一个信息结构:中定义 /* Data structure describing a set of semaphores. */ struct semid_ds {
2017-09-07 17:58:32 353
深入Linux内核架构(中文版).7z
2019-07-15
有趣的数字游戏
2013-04-07
C语言cingetline
2013-04-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人