- 虛擬內存技術
每個進程看到自己獨佔一部分空間,但其實所有進程是共享一個物理內存,進程創建的時候,內核爲建立了虛擬內存的佈局,初始化進程控制表中相關的鏈表,但沒有立刻拷貝對應數據和代碼到當前位置,就是在進程運行時要分配動態內存時,分配虛擬內存,只有訪問此數據時,發生缺頁異常,纔會立刻拷貝數據。
- 好處:
- 擴大地址空間
- 公平內存空間
- 內存保護:各自進程有各自獨立的虛擬內存地址空間,虛存會對特定的地址提供寫保護
- 通信時,可用虛擬共享
- 節省空間,不同進程使用相同代碼時,可以映射同一個代碼,不需要拷貝多個
- 適合多道程序設計
- 需要連續空間時,實際物理內存空間可以不連續
- 代價:
- 需要建立多個數據結構
- 地址轉換要耗時
- 頁面切換需要磁盤io
- 數據少時比較浪費內存
進程
所有等待態的當條件滿足立刻進入就緒態
PCB -》數據結構 進程控制塊
存進程的狀態放入隊
用數組管理所有的pcb
-
就緒
-
運行
-
堵塞 等待io/事件
程序控制cpu,整個系統下一個執行什麼完全由cpu控制
操作系統通過時鐘中斷,控制不讓程序繼續運行
進入等待態系統程序需要系統調用
軟硬件協同設計
內核啓動shell在啓動其他的線條
雙擊圖表告訴資源管理器就是shell
windows 父進程子進程毫無瓜葛 -
消息傳遞
- 堵塞系統調用
- 非阻塞系統調用
每個進程都有自己的獨立地址空間都是從0開始的都是虛擬地址
待更新-------------------------------------------------