1.操作系統(tǒng)是什么?
操作系統(tǒng)是一種軟件,是用于連接應(yīng)用程序和計算機硬件的軟件。應(yīng)用程序通過操作系統(tǒng)的提供的系統(tǒng)調(diào)用來與計算機硬件打交道。用戶通過操作系統(tǒng)來使用計算機(命令、圖形界面、應(yīng)用程序)。操作系統(tǒng)負責管理計算機硬件資源,如CPU時間片的分配,內(nèi)存,磁盤,文件和終端。
2.學(xué)習操作系統(tǒng)學(xué)習什么?
操作系統(tǒng)的啟動過程.
計算機通電啟動后首先執(zhí)行BIOS。BIOS會進行硬件檢查磁盤,內(nèi)存,CPU等,如果沒有問題則開始將操作系統(tǒng)載入內(nèi)存。載入后開始執(zhí)行操作系統(tǒng)的代碼。
shell
shell不斷等待用戶輸入命令,接收到命令后進行執(zhí)行。
系統(tǒng)調(diào)用
應(yīng)用程序如何使用系統(tǒng)調(diào)用的。
linux中分為用戶態(tài)和內(nèi)核態(tài),內(nèi)核態(tài)即為操作系統(tǒng)的代碼和數(shù)據(jù)。用戶態(tài)的程序不能訪問內(nèi)核態(tài)的代碼和數(shù)據(jù)。需要通過系統(tǒng)調(diào)用來訪問計算機資源等。系統(tǒng)調(diào)用具體通過int 0x80中斷的方式進行。
常見的系統(tǒng)調(diào)用

從兩個方面學(xué)習操作系統(tǒng)
一是進程:CPU如何進行進程調(diào)度,死鎖問題,內(nèi)存管理
二是文件:IO管理,磁盤管理
操作系統(tǒng)的發(fā)展
單道批處理系統(tǒng)->多道批處理系統(tǒng)->分時系統(tǒng),實時系統(tǒng)
3.多進程圖像
操作系統(tǒng)的作用是管理計算機硬件。CPU是一種計算機硬件,所以也需要操作系統(tǒng)來管理。要管理CPU首先要知道CPU是如何工作的。CPU的工作方式是取指執(zhí)行。
那么最簡單的管理CPU方式是直接將PC指向程序的起始位置,CPU開始取指執(zhí)行,這樣CPU就工作起來了。但當遇到IO操作時,CPU需要等待。由于IO操作比CPU運行速度慢幾個數(shù)量級,導(dǎo)致CPU利用率下降。由此引入并發(fā)執(zhí)行的概念。程序A執(zhí)行IO操作時,CPU去執(zhí)行程序2,進行程序切換,取指執(zhí)行。這里便引入了進程的概念:進程是運行中的程序,在計算機系統(tǒng)用PCB描述。
進程切換
schedule() {
pNew = getNext(ReadyQueue); //選擇要運行的進程,涉及“進程調(diào)度"算法
switch_to(pCur,pNew); //保存現(xiàn)場:復(fù)制cpu到pcbCur;準備運行:復(fù)制pNew到cpu
}
內(nèi)存管理
多個進程同時在內(nèi)存中執(zhí)行,如何做到不相互影響數(shù)據(jù)?
地址空間分離,映射表