iT邦幫忙

2022 iThome 鐵人賽

DAY 12
0

我們在第四天的時候有提到記憶體架構,那其實你知道程式在執行時並不會將所有的資料放進記憶體嗎 ?

每台電腦的記憶體空間其實都不一樣,甚至有些人的記憶體很小,若當所有程式的資料都放進記憶體的話會塞不完,也會導致不同程序間對記憶體存取產生衝突,所以出現了虛擬記憶體這個技術。每個程式有自己的虛擬記憶體,虛擬記憶體又會依照固定大小拆成一個一個的分頁,然後會有一個表將這些分頁一一對應到物理記憶體,在 CPU 執行時才將需要的部分從物理記憶體載入進記憶體中,而物理記憶體會先以 RAM 為主,在 RAM 不夠的話會延伸到硬碟,所以若程式需要一直去硬碟請求資料時會需要一直等待硬碟的 I/O 響應,造成程式執行效率不佳。

而對記憶體進行分頁的原因是,如果每次都將一隻程式的所有東西連續的放入記憶體,當有程式關掉並釋出記憶體後會空出這段空間,等到有另一隻程式需要時再將其載入到空出來的空間中,在許多程式開開關關之後,會造成記憶體碎片化。

參考資料
作業系統 Operating System 筆記 by Chang-Chia-Chi
Red Hat Enterprise Linux 4: 系統管理導論
Linux 讀書會-Virtual Memory by yoyo178134


上一篇
Day10 中斷向量
下一篇
Day12 編譯過程
系列文
絕對花心的30天組合語言13
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言