進程和線程 的隨筆和簡述

思維導圖

  • 虛擬內存技術

每個進程看到自己獨佔一部分空間,但其實所有進程是共享一個物理內存,進程創建的時候,內核爲建立了虛擬內存的佈局,初始化進程控制表中相關的鏈表,但沒有立刻拷貝對應數據和代碼到當前位置,就是在進程運行時要分配動態內存時,分配虛擬內存,只有訪問此數據時,發生缺頁異常,纔會立刻拷貝數據。

  • 好處:
  1. 擴大地址空間
  2. 公平內存空間
  3. 內存保護:各自進程有各自獨立的虛擬內存地址空間,虛存會對特定的地址提供寫保護
  4. 通信時,可用虛擬共享
  5. 節省空間,不同進程使用相同代碼時,可以映射同一個代碼,不需要拷貝多個
  6. 適合多道程序設計
  7. 需要連續空間時,實際物理內存空間可以不連續
  • 代價:
  1. 需要建立多個數據結構
  2. 地址轉換要耗時
  3. 頁面切換需要磁盤io
  4. 數據少時比較浪費內存

進程

所有等待態的當條件滿足立刻進入就緒態

PCB -》數據結構 進程控制塊
存進程的狀態放入隊
用數組管理所有的pcb

  • 就緒

  • 運行

  • 堵塞 等待io/事件
    程序控制cpu,整個系統下一個執行什麼完全由cpu控制
    操作系統通過時鐘中斷,控制不讓程序繼續運行
    進入等待態系統程序需要系統調用
    軟硬件協同設計
    內核啓動shell在啓動其他的線條
    雙擊圖表告訴資源管理器就是shell
    windows 父進程子進程毫無瓜葛

  • 消息傳遞

    • 堵塞系統調用
    • 非阻塞系統調用

每個進程都有自己的獨立地址空間都是從0開始的都是虛擬地址


待更新-------------------------------------------------

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