併發是指在同一時間段內能夠同時運行多個程序,並行是指在同一時刻可以同時執行多指令。git
並行依靠硬件完成,例如多核處理器或分佈式操做系統github
併發依靠操做系統引入進程與線程來完成緩存
同一個進程內的線程共享系統中的資源併發
共享有兩種方式:同時共享和互斥共享異步
互斥共享的資源稱爲臨界資源,臨界資源在一個時刻只能被一個進程訪問,多個進程訪問同一個臨界資源時須要用同步機制。分佈式
虛擬是指將一個物理實體虛擬成多個邏輯實體性能
虛擬技術有兩種:時分複用、空分複用spa
時分複用:將一個時間段劃分紅多個時間片,每一個進程輪流佔用一個時間片,達到進程併發。操作系統
空分複用:將物理內存空間虛擬成地址空間,每一個進程有本身的地址空間,地址空間的頁映射成物理內存。線程
異步是指進程的執行斷斷續續,以不可知的速度向前推動。
進程結構、進程控制、進程同步、進程通訊、死鎖、進程調度
存儲器層次、連續分配存儲方式、分頁存儲、分段存儲、段頁式存儲、虛擬內存
完成用戶的I/O請求,儘可能下降I/O設備與CPU處理效率間的巨大差別
主要包括:I/O系統層次、緩存管理、設備分配、磁盤I/O
文件的邏輯結構、目錄管理、文件共享、文件保護
磁盤空間的分配、磁盤空間的管理、提升磁盤I/O速度
若是一個進程在用戶態須要使用內核態的功能,就進行系統調用從而陷入內核,由操做系統代爲完成。
大內核是指將整個操做系統功能做爲一個總體放到內核中
因爲各部分之間直接共享信息,所以效率很高
因爲操做系統不斷複雜,所以將一部分操做系統功能移出內核,從而下降內核的複雜性。移出的部分根據分層的原則劃分紅若干服務,相互獨立。
在微內核結構下,操做系統被劃分紅小的、定義良好的模塊,只有微內核這一個模塊運行在內核態,其他模塊運行在用戶態。
由於須要頻繁地在用戶態和核心態之間進行切換,因此會有必定的性能損失。
不是由CPU指令執行引發的,例如等待I/O
由CPU指令執行的內部事件引發的,例如地址非法、算術溢出等
在用戶程序中進行系統調用