作者ILoveMouse (ILoveMouse)
看板CSSE
标题Re: [问题] segmentation 与 paging
时间Sun Nov 23 23:56:40 2008
我想补充一些些东西
现在大部分 OS 不会用到 segmentation
原因不外乎 porting 增加困难
因为目前我知道的常见 CPU 似乎只有 x86 有 segmentation
像 ARM, MIPS, PowerPC, Sparc 等常见的都没有
所以很少 OS 会特别利用 x86 的 segmentation
或许有些 OS 有 但大部分没有
而为什麽会有 segmentation 呢
除了 darkcc 板友说的
我觉得是因为当时 x86 想说
在做 swap in/out 时
不一定以 page 为单位
可以用 segmentation 为单位
比方说 OS/2 那时的 swap out
就不是以 page 做 swap out
而是用 segmentation
你可以参考看看
有误请指教 ^^
※ 引述《darkcc (will)》之铭言:
: 离上课已经有点遥远...有待补充...
: segment是把程式跟资料分开那个吧...
: 分开之後程式归程式,资料归资料,程式是不可变动的,资料是运算过程会变动的
: 因此程式区块可以开唯读甚至共享,只要每个process都用自己的资料就好了
: 用virtual memory让程式不会直接碰到记忆体,也同样有保护作用
: 这样才不会有人偷偷改os或其他软体的资料...
: 再者由os负责协调各程式实体记忆体分配,多工才不会为了记忆体分配打架
: 因为看到的记忆体位置都是独立的,所以不会认床
: 当程式与实体记忆体没直接关联时os才可以在底层做手脚
: page-in/out也是这样子才可以实现,随便找空间塞而不影响程式运作...
: 学到系统程式对这部分会比较清楚
: ※ 引述《clplusegg ()》之铭言:
: : 这问题我也有在C_CPP板问 有人说可以来这问问看
: : ------
: : 1.发展segmentation 与 paging这两个技术的原因在哪 还有它们之间的不同处为何??
: : 恐龙本上跟网路上写的我看的雾煞煞,只知道segmentation多出了base 与limit。
: : 2.恐龙本还特别提到segmentation 在protection及sharing的好处
: : 但paging之後发展的观念不也有加入valid-invalid及shared pages的想法?
: : 还是其实两个都已经有这好处了?
: : 3.关於virtual memory想问我想法有没有错
: : 若是假设我现在没有virtual memory技术在,那是否就一定要整个process的资源都进到
: : memory才能跑?
: : 所以virtual memory是帮助process可以在用到时才把需要的page抓进来?
: : 如果是这样的话那dynamic loading的想法不也是一样吗?
: : -------
: : 麻烦板上高手了
: : 感谢!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.227.185.93
1F:推 clplusegg:谢谢你!! 还有很抱歉我这段时间有点忙 所以很久没上来看 11/27 19:44