关于系统空间。。。。。。。。

你我他111 2004-08-26 06:19:22
进来在研究linux内核,有一些疑惑,可能问题很幼稚,请大虾们不要笑话:)

每个进程的系统空间是不是都是一样的?
举一个简单的例子,假如进程A改变了系统空间中有一个全局变量x,那么在进程B中能不能看到这
个全局变量x?
另外假如B系统空间中能够看到一个全局变量x,它看到的x是不是就是A中的x;假如在A中改变了x,那么会
不会影响到B中的x?

...全文
184 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
lysliberty 2004-08-29
  • 打赏
  • 举报
回复
系统空间是有全局变量,但用户进程可以操作内核变量吗?
就算是可以操作, 如果没有采用共享内存之类的机制,进程A也奈何不了进程B什么吧.
collide 2004-08-29
  • 打赏
  • 举报
回复
内核的数据只能通过系统调用来进行访问,系统调用中,由系统负责访问的互斥性和唯一性。
zxm927 2004-08-29
  • 打赏
  • 举报
回复
我想"全局变量"有多种吧.有的全局量是属于具体某个进程的;有的是属于整个内核的,毛氏情景分析中不是有很多"内核维护着...."的话么,这就是系统全局量吧;有的是属于某个CPU的(SMP结构中).我想楼主的意思就是指的内核全局量吧.既然x是全局的,那么进程A改变了x,B当然看到的就是改变了的x了(当然AB都要有这个权限).并且在很多情况下,一个进程在访问一个全局量,那么必须上锁,防止另一个进程访问.
  • 打赏
  • 举报
回复
确实改变了,不过这就像一个磁盘文件bei
David2008 2004-08-27
  • 打赏
  • 举报
回复
If they are used in the shared space by pointer
你我他111 2004-08-27
  • 打赏
  • 举报
回复
to smaxll:
thanks!
我怕英文表达不好,还是用中文说了:
《linux源码情景分析》(毛德操,胡希明著)中有一段话(372页):
“(当)cpu在系统空间中运行,所有进程的页面目录中与系统空间相对应的目录项
都指向相同的页面表,所以,不管换上哪一个进程的页面目录都一样,受影响的只
是用户空间,系统空间的映射则永远不变”
既然系统空间的映射是永远不变的,那么改变了A系统空间的全局变量x,为什么会
不影响B系统空间呢?
smaxll 2004-08-27
  • 打赏
  • 举报
回复
the global variable is different between A and B.
any variable changed do not affect other variable which have the
same name.

if B is a child of A,the variable x in B is a complete copy of x in A.
but they dont affect each other.
你我他111 2004-08-27
  • 打赏
  • 举报
回复
没人知道吗?
你我他111 2004-08-27
  • 打赏
  • 举报
回复
to collide:
1:用户空间是有全局变量
2:系统空间就没有全局变量吗?
collide 2004-08-27
  • 打赏
  • 举报
回复
全局变量是在用户态的data region中的。并不在系统空间中(内核态)

4,465

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧