Linux/Unix系统编程手册
文章平均质量分 82
阅读书籍,把自己觉得不错的东西记录下来
干干干就完了
这个作者很懒,什么都没留下…
展开
-
共享内存的知识
共享内存共享内存允许两个或多个进程共享物理内存的同一块区域,由于一个共享内存段会成为一个进程用户空间内存的一部分,因此这种IPC机制无需内核介入,所以需要做的就是让一个进程将数据复制进共享内存中,并且这部分数据会对其他所有共享同一个段的进程可用。共享内存不由内核控制意味着通常需要通过某些同步方法使得进程不会出现同时访问共享内存的情况。调用一个共享内存段通常需要执行下面的步骤:调用shmget()创建一个新共享内存段或者取地一个既有共享内存段的标识符(即由其他进程创建的共享内存段)。这个调用将返回后转载 2022-03-25 13:36:00 · 1102 阅读 · 0 评论 -
进程内存布局
进程内存布局每个进程所分配的内存由很多部分组成,通常称之为"段"。文本段包含了进程运行的程序机器语言指令。文本段具有只读属性,以防止进程通过错误指针意外修改自身指令。因为多个进程可同时运行同一程序,所以又将文本段设为可共享,这样,一份程序代码的拷贝可以映射到所有这些进程的虚拟地址空间中。初始化数据段包含显式初始化的全局变量和静态变量。当程序加载到内存时,从可执行文件中读取这些变量的值。未初始化数据段包含了未进行显式初始化的全局变量和静态变量。程序启动之前,系统将本段内所有内存初始化为0。出于历史原转载 2021-08-04 10:41:09 · 266 阅读 · 0 评论 -
硬连接和软连接
文章目录i节点ext2中的i节点和数据块指针目录和硬链接符号(软)链接i节点针对驻留在文件系统上的每个文件,文件系统的i节点表会包含一个i节点。对i节点的标识,采用的i节点表中的顺序位置,以数字表示。i节点所维护的信息如下所示:文件类型(比如,常规文件,目录,符号链接,以及字符设备等)文件属主(用户ID或UID)文件属组(组ID或GID)3类用户的访问权限(用户,组以及其他用户)3个时间戳:对文件的最后访问时间,对文件的最后修改时间,以及文件状态的最后改变时间。指向文件的硬连接数量。文转载 2021-08-03 23:09:28 · 452 阅读 · 0 评论 -
进程的创建
进程的创建fork(),exit(),wait()以及execve()简介系统调用fork()允许一进程(父进程)创建一新进程(子进程)。具体做法是,新的子进程几乎是对父进程的翻版:子进程获得父进程的栈,数据段,堆和执行文本段的拷贝。库函数exit(status)终止一进程,将进程占用的所有资源(内存,文件描述符等)归还内核,交其再次分配。参数status为一整型变量,表示进程的退出状态。父进程可使用系统调用wait()来获取该状态。系统调用wait(&status)的目的有二:其一,如果转载 2021-08-03 14:57:14 · 504 阅读 · 0 评论 -
内存映射_相关知识
文章目录内存映射创建一个映射:mmap()解除映射区域:munmap()文件映射私有文件映射共享文件映射内存映射I/O使用共享文件映射的IPC边界情况同步映射区域:msync()匿名映射MAP_PRIVATE匿名映射MAP_SHARED匿名映射内存映射mmap()系统调用在调用进程的虚拟地址空间中创建一个新内存映射。映射分为两种。文件映射:文件映射将一个文件的一部分直接映射到调用进程的虚拟内存中。一旦一个文件被映射之后就可以通过在相应的内存区域中操作字节来访问文件内容了。映射的分页会在需要的时候从文转载 2021-08-02 12:35:07 · 598 阅读 · 0 评论 -
进程终止——笔记
文章目录进程终止进程的终止:_exit()和exit()进程终止的细节退出处理程序fork(),stdio缓冲区以及_exit()之间的交互进程终止进程的终止:_exit()和exit()进程有两种终止方式。其一为异常终止,由一对信号的接收而引发,该信号的默认动作为终止当前进程。此外,进程可使用_exit()系统调用正常终止。#include <unistd.h>void _exit(int status);_exit()的status参数定义了进程的终止状态,父进程可调用wait转载 2021-08-03 14:41:24 · 502 阅读 · 0 评论