操做系統的核心是內核,獨立於普通的應用程序,提供操做系統的最基本的功能(進程管理、內存管理、設備驅動程序、文件管理、和網絡系統),能夠訪問受保護的內存空間,也有訪問底層硬件設備的全部權限。linux
區分用戶態和內核態的緣由:運行在用戶態的程序不能訪問操做系統內核,保證了內核的安全。給應用程序提供單一簡單的接口,使得上層的應用程序不用去關注底層的實現面試
內核態下CPU能夠執行任何指令,用戶態下CPU只能執行非特權指令。算法
CPU處於內核態,能夠隨意進入用戶態;數組
CPU處於用戶態,只能經過軟中斷方式進入內核態。安全
通常程序開始時都處於用戶態,當程序須要系統資源時,經過軟中斷進入內核態服務器
操心繫統將虛擬空間劃分爲兩部分,一部分爲內核空間,一部分爲用戶空間。併發
linux操做系統而言,高位的1G字節爲內核空間;低位的3G字節爲用戶空間。異步
二、進程與線程的區別操作系統
(1)進程:進程是系統進行資源分配和調度的一個獨立單位(程序段、相關數據段、PCB)
(2)線程:線程是進程的一個實體,是CPU調度和分配的基本單位。線程不擁有本身的資源,只擁有程序計數器、一組寄存器和棧區),它能夠與同屬一個進程的其餘線程共享進程所擁有的所有資源
(3)關係:一個線程能夠建立和銷燬另外一個線程,同屬進程的多個線程能夠併發執行。
同屬進程的其餘線程共享數據,但擁有本身的棧空間,擁有獨立的執行序列
(4)區別:進程和線程是不一樣的操做系統資源管理方式。
1)進程獨立地址空間,更健壯(一個進程崩潰後不會影響其餘進程);線程沒有獨立的地址空間,一個線程dang掉了整個進程就dang了
2)切換:因此進程切換時消耗資源更大,效率低
對於一些要求同時進行而且又要共享變量的併發操做,只能用線程,不能用進程。
二、
終端用戶須要、父進程須要、負荷調節需求、操做系統需求
做爲進程獨立運行基本單位的標誌,可以實現間接運行方式,提供常常管理所須要的信息,提供進程調度所須要的信息,實現與其餘進程的同步與通訊
每一個進程中訪問臨界資源的那段程序稱爲臨界區,每次只容許一個進程進入臨界區,進入後不容許其餘進程進入。
空閒讓進,忙則等待,有限時間,讓權等待
低級通訊:效率低,生產者每次只能向一個緩衝池投放一個信息;通訊對用戶不透明,隱藏了通訊的具體細節
高級通訊:用戶能夠利用操做系統所提供的一組通訊命令傳送大量數據。通訊過程對用戶是透明的。
共享存儲器系統、消息傳遞系統、管道通訊系統、客戶機——服務器系統
兩個或多個併發進程中,若是每一個進程持有某種資源,卻又在等待別的進程釋放資源,並且再未改變狀態前沒法向前推動,那麼這一組進程產生了死鎖。
Windows提供了3種方式管理內存
有的做業很大,需求空間超過了內存總容量,致使做業不能運行
大量做業要求運行,但內存容量不足,大量的做業停留在外存等待
請求分頁存儲管理除了要求必定容量的內存和外存,還須要:
在進程運行的過程當中,若所要訪問的頁面不在內存,就須要將它調入內存,而在哪一個頁面調入,須要根據算法而定
使用算法進行置換
計算缺頁