iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 19
0
自我挑戰組

作業系統概論系列 第 19

DAY 19 Memory Management(中)

  • 分享至 

  • xImage
  •  

Swapping

  • process可以被swap,暫時退出記憶體到後方儲存,然後再帶回到記憶體繼續執行。
  • Backing-store:快速硬碟足以容納所有使用者的所有記憶體影像旳備份,供直接存取給這些記憶體影像。
  • Roll out,roll in:用於priority-based排程演算法,低優先的process被換出,所以可以加載和執行高優先權的process。
  • 系統維持ready-to-run process的ready queue,而此ready queue在磁碟上有記憶體影像。
  • 換出的process需要換回到同樣的physical address嗎?
  • 依賴在address binding方法:
  1. 考慮在I/O的期間,或從記憶體空間的期間。
  • swapping的改版,可以在多個系統上找到:
  1. 但通常被禁用。
  2. 如果閾值分配的記憶體更多的話,就開始。
  3. 一旦記憶體需求小於閾值或以下的話,便再禁用。

Context Switch Time including Swapping

  • 如果下個process是被放入CPU而不是記憶體的話,需要去swap出這個process到目標process。
  • 上下文切換時間可以非常快。
  • 100MB的process可以swap到硬碟上,是50MB/sec的傳送速率。
  • 如果減少記憶體swap的尺寸,可以知道有多少記憶體現在真正在使用。
  1. 透過使用記憶體的system call 去通知OS。
  • 在swapping上也有其他約束:
  1. 在I/O期間,不能swap出去,不然會發生錯誤的process。
  • 傳遞I/O到kernel space,再然後到I/O device。
  • 標準swap不在現代的OS中使用。
  1. 當free memory非常低時才使用。

Swapping on Mobile Systems

  • 通常不支持:
  • flash memory based:
  1. space的小部份。
  2. 寫cycle的有限數量。
  3. 在flash memory和CPU在mobil platform間,throughput很差。
  • 如果低swapping的話,使用其他方法釋放記憶體。
  • iOS要求apps自願放棄被分配的記憶體。
  1. 如果需要,將會拋出去或重新加載read-only data。
  2. 無法釋放可能導致終止。
  • 如果記憶體可用的很低,Android將會終止apps,但首先將apps狀態寫進,以便快速重啟。

上一篇
DAY 18 Memory Management(上)
下一篇
DAY 20 Memory Management(中下)
系列文
作業系統概論30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言