fork()函数功能 fork函数的作用是创建一个新的进程该函数通过系统调用在当前进程的地址空间中复制一份子进程,子进程几乎与父进程完全相同,包括进程代码、数据、堆栈以及打开的文件描述符 也就是主进程和fork()出的两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同
首先看一下read函数的定义: #include <unistd.h>
ssize_t read(int fd, void *buf, size_t count);
返回值:成功返回读取的字节数,出错返回-1并设置errno,如果在调read之前已到达文件末尾,则这次read返回0 参数coun
Linux的内存啥样的? 首先要了解Linux的段页式内存结构是什么样的,用户态和内核态切换访问涉及的内存肯定是不一样的: 可以看到内核空间其实就是在虚拟空间的高地址部分 对于用户态来说,他实际上是持有内核空间的页表的,但是不能访问,每次fork都可以直接进行复制,保持各个线程都拥有同一份内核空间的
以一个最简单的加法函数为例: int add(int a, int b) {
return a + b;
} 会有如下汇编: push ebp ; 保存当前函数的帧指针
mov ebp,esp ; 将当前栈指针保存到帧指针中
sub
CAS操作原理 (1) 在x86 平台上,CPU提供了在指令执行期间对总线加锁的手段(多处理器) CPU芯片上有一