QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 963|回复: 1

有几个问题请教大家,请不吝赐教!知道哪个说哪个,谢谢!~

[复制链接]
发表于 2004-10-10 09:17:25 | 显示全部楼层 |阅读模式
有几个问题请教大家,请不吝赐教!知道哪个说哪个,谢谢!~
1、fork一个新进程最基本需要哪些物理空间?我知道有两个页面的task_struct+系统堆栈,还有执行的程序的大小是必须的。其他还有什么,大小是多少或如何确定???我的目的是比如我编了一个main(),我怎么确定它要运行需要多少内存空间。
2、连续的虚存空间经过映射以后的物理空间是否还连续?
3、把程序调入内存,是否要在连续的空间上?
4、如何区分当前的进程是运行在用户空间还是系统空间?是否一个标志位或是寄存器位?系统空间和用户空间在内存中有分开吗?
5、想编程确定当前内存还有多少剩余,要用哪个系统函数?或是能否调用df之类的命令来获取?
发表于 2004-11-21 20:40:31 | 显示全部楼层
我的理解,不一定正确

1、一开始就是 task_struct+系统堆栈的那两个页面。后来可以通过“写时复制”来申请自己的空间;你所要的空间是动态分配的,最大可达3G(内存够大);
2、不一定连续;
3、不一定,线性空间是连续的;
4、这个以前知道,现在一时想不起来。好象在do_timer()里面有,不过在内核空间中它的系统堆栈肯定不是空的,还有好多方法判断。在物理内存中谁也不知道发生了什么。
5、不知道。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-16 08:44 , Processed in 0.046364 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表