Linux入门基础操作(ubuntu20.04)(十一)
C库函数原理示意图:
虚拟地址空间示意图(以32位系统为例):
file+文件:查看文件的类型
CPU为什么要使用虚拟地址空间与物理地址空间进行映射?解决了什么样的问题?
(1)方便编译器和操作系统安排程序的地址分布
程序可以使用一系列相邻的虚拟地址来访问物理内存中不相邻的大内存缓冲区
(2)方便进程之间的隔离
不同进程使用的虚拟地址彼此隔离,一个进程中的代码无法更改正在由另一进程使用的物理内存
(3)方便OS使用你那可怜的内存
程序可以使用一系列虚拟地址来访问大于可用物理内存的内存缓冲区。当物理内存的供应量变小时,内存管理器会将物理内存页(通常大小为4KB)保存到磁盘文件。数据或代码页会根据需要在物理内存与磁盘之间移动。
PCB和文件描述符示意图:
C库函数与系统函数的关系:
FD:文件描述符
FP_POS:文件指针
BUFFER:缓冲区