(莱昂氏unix源代码分析导读-27) Swap in/out (上)

本文介绍了Unix系统中进程换入换出(swap in/out)的高层模型,主要涉及swapmap的使用,以及如何通过高层函数管理内存资源。在换入换出过程中,私有空间和可共享的text segment的管理方式被详细阐述,包括引用计数的概念和作用,以及进程退出时的相关操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                                                     By   cszhao1980

Swap in/out指的是进程在物理内存(core空间)和磁盘交换文件间的双向移动过程,进程在active状态时,

segment必然被swap in内存空间(core空间),而一旦处于非活动状态就有可能swap out到磁盘交换

文件中。换进换出的过程必然涉及到磁盘io——这可看作是比较低层的操作,因此,这部分内容可以分

为两部分:高层的模型和低层的实际io

1 高层模型

Unix使用“swapmap”这个高层模型来记录swap区域,swapmap类似coremap,都是map结构:

2515: struct map

2516: {

2517:    char *m_size;

2518:    char *m_addr;

2519: };

 

区别是:

(1)         swap mapm_size的单位是“磁盘块”,即512个字节;

(2)         swap map

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值