操作系统之Linux相关 内存管理、虚拟内存、设计特点、网络编程模型

Linux

Linux 内存管理

image.png|300

  • 32位系统虚拟内存空间: 4GB(通常是被分隔成多个物理内存碎片),其中内核空间占用1GB(高地址),用户空间占用3GB(低地址)。
  • 用户空间布局:
    • 栈(Stack): 从高地址向低地址增长,存储函数参数、局部变量等。默认大小通常为8MB,但可自定义。
    • 文件映射: 包括动态库、共享内存,位于栈和堆之间。
    • 堆(Heap): 动态分配的内存区,从低地址向高地址增长。
    • 未初始化数据段(.bss): 存放未初始化的全局变量和静态变量。
    • 已初始化数据段(.data): 存放已初始化的全局变量和静态变量。
    • 程序代码段(.text): 存放可执行代码。
  • 分页机制: 每页大小通常为4KB。
  • 页表: 实现虚拟地址到物理地址的映射。
  • 段页式内存管理: 地址结构包括段号、段内页号和页内位移。

Linux 虚拟内存

概述

  • 虚拟内存空间:32位处理器的虚拟内存空间为4GB。
  • 进程视角:每个进程认为自己拥有4GB的连续虚拟地址空间,实际上只有部分映射到物理内存。
  • 物理内存与外部存储:物理内存中可能会存在碎片,部分内容会存储在外部磁盘上,需要进行数据的交换(页置换)。

虚拟地址与物理地址的映射

  • 两次映射
    1. 映射到虚拟内存空间。
    2. 映射到物理内存空间。
  • 责任分配
    • 硬件部分:存储管理单元 (MMU) 负责将虚拟地址转换为物理地址。
    • 软件部分&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值