操作系統理論細節

分時操作系統具有以下特徵: | 實時操作系統基本特徵:
1.多路性 | 1.及時性
2.交互性 | 2.可靠性
3.獨佔性 |
4.及時性 |

執行系統調用的過程是這樣的:正在運行的進程先傳遞系統調用參數,然後由陷入(trap)指令負責將用戶態轉化爲內核態,並將返回地址壓入堆棧以備後用,接下來CPU執行相應的內核態服務程序,最後返回用戶態

操作系統的五大管理功能:
(1)作業管理:包括任務、界面管理、人機交互、圖形界面、語音控制和虛擬現實等;
(2)文件管理:又稱爲信息管理;
(3)存儲管理:實質是對存儲“空間”的管理,主要指對主存的管理;
(4)設備管理:實質是對硬件設備的管理,其中包括對輸入輸出設備的分配、啓動、完成和回收;
(5)進程管理:實質上是對處理機執行“時間”的管理,即如何將CPU真正合理地分配給每個任務。

老問題了:進程與線程的區別

定義方面:進程是程序在某個數據集合上的一次運行活動;線程是進程中的一個執行路徑。
角色方面:在支持線程機制的系統中,進程是系統資源分配的單位,線程是系統調度的單位。
資源共享方面:進程之間不能共享資源,而線程共享所在進程的地址空間和其它資源。同時線程還有自己的棧和棧指針,程序計數器等寄存器。
獨立性方面:進程有自己獨立的地址空間,而線程沒有,線程必須依賴於進程而存在。

導致一個進程創建另一個進程的典型操作有四種:
1 用戶登錄;系統爲用戶創建一個進程,並插入就緒隊列
2 作業調度
3 提供服務 系統爲用戶請求創建一個進程
4 應用請求 用戶程序自己創建進程

1, spinlock 介紹
spinlock又稱自旋鎖,線程通過busy-wait-loop的方式來獲取鎖,任時刻只有一個線程能夠獲得鎖,其他線程忙等待直到獲得鎖。spinlock在多處理器多線程環境的場景中有很廣泛的使用,一般要求使用spinlock的臨界區儘量簡短,這樣獲取的鎖可以儘快釋放,以滿足其他忙等的線程。Spinlock和mutex不同,spinlock不會導致線程的狀態切換(用戶態->內核態),但是spinlock使用不當(如臨界區執行時間過長)會導致cpu busy飆高。因爲pthread_spin_lock 自旋鎖,在進入阻塞隊列之前會先跑幾個循環,然後再去嘗試獲取鎖,直到自旋的次數超過閾值,才進入阻塞隊列,此時才切換狀態

2 ,使用準則

Spinlock使用準則:臨界區儘量簡短,控制在100行代碼以內,不要有顯式或者隱式的系統調用,調用的函數也儘量簡短。例如,不要在臨界區中調用read,write,open等會產生系統調用的函數,也不要去sleep;strcpy,memcpy等函數慎用,依賴於數據的大小。

虛存: 把輔助存儲器作爲對主存儲器 的擴充, 向用戶提供一個比實際主存大得多的的地址空間。即充分利用了輔存的地址空間

分時系統:一個系統可以同時爲兩個或兩個以上的賬戶服務(現在流行的PC,服務器都是採用這種運行模式)
實時系統:能立即對指令做出反應的操作系統(一般用於單片機上,比如電梯的上下控制中,對於按鍵等動作要求進行實時處理)

支撐軟件是支撐各種軟件的開發與維護的軟件,又稱爲軟件開發環境。它主要包括環境數據庫、各種接口軟件和工具組。著名的軟件開發環境有IBM公司的Web Sphere,微軟公司的Studio.NET等。
包括一系列基本的工具(比如編譯器,數據庫管理,存儲器格式化,文件系統管理,用戶身份驗證,驅動管理,網絡連接等方面的工具)。

軟件系統(Software Systems)是指由 系統軟件 、 支撐軟件 和 應用軟件 組成的 計算機 軟件系統,它是 計算機系統 中由 軟件 組成的部分。
不十分準確的說,
–系統軟件:操作系統,
–支撐軟件:軟件開發環境

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