精華區beta CSSE 關於我們 聯絡資訊
離上課已經有點遙遠...有待補充... 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: 122.120.97.97
clplusegg:感謝~第一點我看懂了! 第二點我還要再吸收一下OTZ! 11/19 01:50
darkcc:不同層級的共享跟保護 11/19 10:44