作者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