sylixos不支持虛擬內存

內存在計算機中的作用很重要,計算機中所有運行的程序和數據都需要經過內存來執行,如果執行的程序很大或很多,就會導致內存消耗殆盡。爲了解決這個問題,現代操作系統運用了虛擬內存技術,即拿出一部分硬盤空間來充當內存使用,這部分空間即稱爲虛擬內存

CPU只能通過MMU直接訪問虛擬地址空間,虛擬地址空間和物理地址空間通過頁(一般爲4KB)來對應,虛擬地址空間是連續的,其對應的物理地址空間則不一定連續。如果訪問一個虛擬頁時還沒有物理頁與之對應,就會造成缺頁異常,異常處理中系統會分配一個物理頁對應到該虛擬也,異常返回後程序得以繼續執行。

內存條是很昂貴的,一個系統裏物理內存總是有限的,所以就可能出現沒有物理頁分配給虛擬頁的情況。爲解決這個問題,很多非實時的現代系統就是用了虛擬內存技術或者是內存交換技術。當系統發現物理內存不太夠用時,就會把一部分暫時閒置的已分配的物理內存鏡像到磁盤上,然後釋放這些物理頁用於其他需要,再需要用到之前的物理頁內容時再從磁盤鏡像會空閒的物理頁,然後在映射到之前的虛擬地址。

通過物理內存和磁盤間的交換,使得CPU可以正常訪問遠大於實際物理內存的虛擬地址空間。在不着家物理內存的情況下大幅增加了虛擬內存,但同時也消耗了部分磁盤空間和CPU執行時間,本質上是個時間換空間的過程。

因爲sylixos是實時操作系統,而虛擬內存技術會帶來大幅的時間不確定性,所以sylixos並不支持虛擬內存技術。所以在使用sylixos時一定要保證給APP預留的vAPP空間要足夠,如果出現無法給缺頁異常分配物理內存的話,系統就會終止當前進程。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章