作業系統基本概念

2021-09-12 11:58:20 字數 1963 閱讀 4017

五、使用者態、核心態及系統呼叫

六、微核心結構

七、程序、記憶體和檔案

八、系統呼叫

程式可以執行在機器語言或組合語言上編寫,用這種被稱為「低階」(我更願意稱其為底層)的語言編寫出來的機器語言程式無需經過編譯器的翻譯就可以在計算機指令集上執行。如果是在組合語言上編寫的匯程式設計序,則只需要經過彙編器的翻譯即可載入執行。

作業系統是介於計算機硬體和應用軟體之間的乙個軟體系統,作業系統的上層和下層都有其他的物件存在:

作業系統管理計算機上的軟硬體資源,如cpu、記憶體、磁碟等,使得不同使用者之間或者同一使用者的不同程式之間可以安全有序地共享這些硬體資源。

從概念上講,計算機的結構是匯流排型的:布置一根匯流排將各種硬體裝置掛在匯流排(bus)上。

為了提高計算機的效率,人們又設計出了流水線結構:仿照工業流水裝配線,將計算機的功能部件分為多個梯級,並將計算機的每條指令拆分為同樣多個步驟,使每條指令在流水線上流動,到流水線最後乙個梯級時指令執行完畢。

除了指令執行單元外,計算機中的另乙個重要部件是指令的存放單元,被稱為儲存架構。儲存架構包括了快取、主存、磁碟、磁帶等。下圖展示了乙個包括暫存器在內的5級儲存介質構成的儲存架構。

從圖中可以看出,暫存器的訪問速度最快,容量最小,但成本卻最高;磁帶的訪問速度最慢,容量最大,但是成本卻最低。

中斷定義:指當出現需要時,cpu暫時停止當前程式的執行轉而執行處理新情況的程式和執行過程。

核心態就是擁有資源多的狀態(或訪問資源多的狀態),也稱為特權態。而使用者態則是非特權態,在使用者態下訪問的資源會受到限制。例如,要訪問os的核心資料結構,如程序表等,則需要在特權態下才能做到。如果只需要訪問使用者程式裡的資料,則在使用者態下就可以了。

許可權不一樣。使用者態的程序能訪問它們自己的指令和資料,但不能訪問核心指令和資料(或其他程序的指令和資料)

從單一體和層次化結構的圖中可以看出,作業系統的所有功能都在核心態下執行。但是,從使用者態轉為核心態是有時間成本的,這樣就會造成os的效率低下。於是,人們將作業系統的核心中的核心才放在核心態執行,其他功能都遷移到使用者態執行,於是就有了下面的微核心結構。

系統呼叫,顧名思義,說的是作業系統提供給使用者程式呼叫的一組介面。使用者程式可以通過這組「特殊」介面來獲得作業系統核心提供的服務,比如使用者可以通過檔案系統相關的呼叫請求系統開啟檔案、關閉檔案或讀寫檔案,可以通過時鐘相關的系統呼叫獲得系統時間或設定定時器等。這些系統呼叫按功能大致可分為如下幾類:

例如,如果使用者程式需要進行讀磁碟的操作,在c程式**中可以使用如下語句來操作:

result =

read

(fd, buffer, nbytes)

;

這個read函式是c語言提供的庫函式,而這個庫函式本身則是呼叫的作業系統的read系統呼叫。

作業系統基本概念

一.程序的基本狀態 1.初始態 2.就緒態 3.執行態 4.等待態 5.終止 相互轉換關係如下 二.執行緒和程序區別 程序 是作業系統分配資源的最小單位 執行緒 是排程的基本單元,共享所在程序的檔案資料 有自己的棧和程式計數器 一般對於許多相同或相似的任務,傾向於將他們設計為多執行緒模型。因為程序占...

作業系統 基本概念

本文為自己學習 unix環境高階程式設計 而來的學習記錄 我的學習方 是將此書作為工具書來使用,當實際工作中遇到相關的問題針對性地學習知識圓點。基礎概念從嚴格意義上說,可講作業系統定義為一種軟體,它控制計算機硬體資源,提供程式執行環境。系統呼叫 共用函式庫 shell 應用程式 unix系統登陸 a...

作業系統基本概念

1 桌面作業系統 macos linux 2 伺服器作業系統 windows server 3 嵌入式作業系統 linux 4 移動裝置作業系統 iosandroid 基於linux 1965 年之前的時候,電腦並不像現在一樣普遍,它可不是一般人能碰的起的,除非是軍事或者學院的研究機構,而且當時大型...