社区
Linux_Kernel
帖子详情
关于系统空间。。。。。。。。
你我他111
2004-08-26 06:19:22
进来在研究linux内核,有一些疑惑,可能问题很幼稚,请大虾们不要笑话:)
每个进程的系统空间是不是都是一样的?
举一个简单的例子,假如进程A改变了系统空间中有一个全局变量x,那么在进程B中能不能看到这
个全局变量x?
另外假如B系统空间中能够看到一个全局变量x,它看到的x是不是就是A中的x;假如在A中改变了x,那么会
不会影响到B中的x?
...全文
184
10
打赏
收藏
关于系统空间。。。。。。。。
进来在研究linux内核,有一些疑惑,可能问题很幼稚,请大虾们不要笑话:) 每个进程的系统空间是不是都是一样的? 举一个简单的例子,假如进程A改变了系统空间中有一个全局变量x,那么在进程B中能不能看到这 个全局变量x? 另外假如B系统空间中能够看到一个全局变量x,它看到的x是不是就是A中的x;假如在A中改变了x,那么会 不会影响到B中的x?
复制链接
扫一扫
分享
转发到动态
举报
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都要有这个权限).并且在很多情况下,一个进程在访问一个全局量,那么必须上锁,防止另一个进程访问.
服务器内的蜗牛
2004-08-28
打赏
举报
回复
确实改变了,不过这就像一个磁盘文件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中的。并不在系统空间中(内核态)
免费微信商城
系统
源码
免费的微信商城
系统
源码,功能非常强大,而且还是开源的。
android-19最新源码包
最新android-19资源包,免费下载
汇编实时运行核心
汇编实时运行核心的汇编源代码
Android专用驱动
Android专用驱动构成了Android运行时的基石。从技术上来讲,Android专用驱动也是整个Android
系统
的亮点,特别是Binder驱动。Binder是一种进程间通信机制(IPC),它与传统的IPC机制对比,最大的特点是高效,因为通信数据在两个进程之间只需要执行一次拷贝即可。Binder在Android
系统
里面使用得非常广泛以及频繁。在涉及到比较大的通信数据时,Binder通常还结合另外一个驱动Ashmem来使用。Ashmem是一个共享内存驱动,它与传统的共享内存相比,最大的特点是它是通过文件描述符来描述的,并且可以动态地进行分块管理。动态分块管理的目的是可以将部分不再使用了的内存交回给
系统
,非常适合内存较小的移动设备使用。另外一个专用驱动Logger是一个日志驱动,它与传统的日志
系统
对比,特点是日志是记录在内核
空间
而非文件中,这样就可以提高日志的读写速度。这个PPT讲Logger、Binder和Ashmem三个Android专用驱动的实现原理。由于这三个驱动在Android源代码里面用得非常广泛和频繁,因此理解它们的实现原理,就可以掌握Android的精华。这对以后阅读Android
系统
的其它代码,也是非常有帮助的。
迷你PDG阅读器(mini pdg reader)
一个很小的PDG阅读器!
比超星好用!
绿色版不用安装!
下载后解压到C盘下使用(一定要解压到
系统
盘哦!)!
绝对好用!大家顶一下!
Linux_Kernel
4,465
社区成员
17,462
社区内容
发帖
与我相关
我的任务
Linux_Kernel
Linux/Unix社区 内核源代码研究区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章