operating system學習筆記

關於並行和併發的區別:
並行:在一個時間點(同一時間)執行多個程序,這需要CPU具有多核;
併發:在一個時間片段執行多個程序;

分時操作系統-------》分佈式操作系統
分佈式操作系統,將程序扔到雲上或者數據中心去計算
BIOS(basic IO system)———》Bootloader————》OS
Bootloader將OS從Disk加載到memory;

關於邏輯地址和物理地址的映射
邏輯地址到物理地址的映射是由MMU(memory mamange unit)來提供的。

進程和程序的區別

  1. 程序是進程的基礎
  2. 進程:包含程序代碼和+程序代碼需要處理的數據
  3. 從程序執行角度來看,一個程序可以對應多個進程,因爲每次執行的時候創建的進程不同,所使用的數據也可能不同;從調用角度來說,一個進程又可以包含多個程序;

進程的特點

  1. 動態
  2. 併發
  3. 獨立性
  4. 制約性

進程是由操作系統來分配和創建的,操作系統本質上也是一個程序,那麼由一般的程序組成結構來看,程序 = 數據結構 + 算法;
操作系統中的數據結構就是,PCB(process control block) ,通過PCB來進行進程的創建、終止和組織管理;
PCB的實現顯然是動態的,因此其內部實現爲List 或者 索引表,來實現進程的動態插入和刪除;

線程提出的原因:

線程定義:線程是進程中的一條執行流程;
進程的功能進程拆分:資源管理 + 線程,也就是說線程承擔了執行的功能;

線程 = 進程 - 共享資源

線程的特點:

  1. 一個進程中可以同時存在多個線程;
  2. 各個線程之間可以併發的執行;
  3. 各個線程之間可以共享地址空間和文件資源等

線程的缺點:

  1. 一個線程崩潰,會導致同一進程中的所有線程崩潰;

進程是資源分配單位,線程是CPU調度單位;
進程擁有一個完整的資源平臺,線程只獨享必不可少的起源,如其自己的寄存器(register)和棧(stack);
線程同樣具有就緒、阻塞和執行三種狀態,同樣具備狀態之間的轉換關係;
線程能較少併發執行的時間和空間開銷:

  1. 線程創建時間比進程短;
  2. 線程結束時間比進程快;
  3. 同一進程內線程切換時間比進程短;
  4. 由於同一進程中的線程共享內存和文件資源,可直接進行不通過內核的通信;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章