Android系统实现用户态swap(研究贴)

本文探讨了在Android系统中实现用户态swap的重要性,并详细介绍了实现步骤,包括在内核层创建系统调用swap_process,以及如何遍历进程地址空间进行页面换出操作,重点关注与Linux内核和Android操作系统的交互。
摘要由CSDN通过智能技术生成

一. Android下用户态swap的意义

二. Android下用户态swap的实现方法

1. 首先实现系统调用swap_process

(在Andriod的内核层实现系统调用,可以参考我前面的文章。)

2. $kernel/mm/swap_state.c

定义系统调用函数swap_process,参数为pid(用户层传过来的进程id)

/**
 * swap inactive pages of process with pid
 */
SYSCALL_DEFINE1(swap_process, pid_t, pid)
{
	struct task_struct* p = NULL;
	LIST_HEAD(pagelist);
	unsigned long nr_reclaimed_pages = 0;

	//1. find the process ds() through pid
	printk(KERN_INFO "user pid: %d\n", pid);
	p = find_task_by_pid_ns(pid, current->nsproxy->pid_ns);
	if(NULL == p)
	{
		printk(KERN_ERR "+++could not find task_struct with the pid+++\n");
		return 0;
	}

	//2. filter the inactive pages and add them to swap cache
	traverse_pages(p, &page
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值