第 1 章 導論

2022-06-19 13:57:13 字數 2237 閱讀 7357

作業系統(operating system)是管理計算機硬體的程式,為應用程式提供基礎,並且充當計算機使用者和硬體的中介。

計算機系統可粗分為四個元件:硬體、作業系統、應用程式、使用者。

作業系統是一直執行在計算機上的程式(通常稱為核心)。除了核心外,還有系統程式(與系統的執行有關,但不是核心的一部分)和應用程式(與系統執行無關)。

1.1.1 使用者視角

作業系統設計的主要目的是使用方便,次要的是效能,不在乎的是資源利用。

1.1.2 系統視角

作業系統可看作是資源分配器和控制程式。

當計算機電源開啟或重啟時,需要執行乙個初始程式或引導程式,一般位於計算機的韌體中(如rom、電可擦可程式設計eeprom)。它初始化系統的各個元件,從cpu暫存器、裝置控制器到記憶體內容。引導程式必須定位作業系統核心並載入到記憶體。

一旦核心載入到記憶體並執行,它就開始為系統和使用者提供服務。除了核心外,系統程式在啟動時加到記憶體而成為系統程序或系統後台程式,其生命週期和核心一樣。

事件發生通常通過硬體和軟體的中斷來通知。硬體可以隨時通過系統匯流排傳送訊號到cpu以觸發中斷。軟體也可以執行系統呼叫以觸發中斷。

當cpu被中斷時,停止正在做的事,並立即轉到固定位置再繼續執行。該固定位置通常包含中斷服務程式的開始位址。中斷服務程式開始執行,在執行完畢之後,cpu重新執行被中斷的計算。

中斷的處理應當快捷。由於只有少量預先定義的中斷,所有可以通過中斷處理程式的指標表來提高速度。通常指標表位於低位址記憶體。這些位置包含各種裝置的中斷處理程式的位址。這種位址的陣列或中斷向量,對於任一給定的中斷請求,可通過唯一的裝置號來索引,進而提供裝置的中斷處理程式的位址。

cpu只能從記憶體中載入指令,因此執行程式必須位於記憶體中。大多數程式通常位於可讀寫記憶體中,稱為記憶體(main memory),也稱隨機訪問(訪問任何位置時間一致)記憶體(ram),記憶體通常為動態隨機訪問記憶體(dram),採用半導體技術實現。

所有形式的記憶體都提供位元組陣列,每個位元組都有位址。

在馮·諾依曼體系結構上執行時,乙個典型的指令週期是,首先從記憶體中獲取指令,並存到指令暫存器。接著該指令被解碼,也可能會從記憶體中獲取運算元據並存到內部暫存器。在指令完成對資料的執行後,結構也可能存到記憶體。

記憶體容量通常太少且是易失性的儲存裝置,掉電會失去所有內容。因此大部分計算機提供外存。

計算機系統由乙個cpu和多個裝置控制器組成,通過共同的匯流排連在一起。每個裝置管理器管理某一特定型別的裝置。作業系統為每個裝置控制器都提供了乙個裝置驅動程式。

單處理器系統:只要乙個主cpu,帶有其他專用處理器(不執行使用者程序);

多處理器系統(並行系統/多核系統):優點是增加吞吐量、規模經濟、增加可靠性;

集群系統:由兩個以上的獨立系統組成,共享儲存並採用lan或更快的連線。

作業系統最重要的一點是具有多道程式能力。

為了充分利用cpu,現代作業系統採用多道程式設計:允許多個作業同時位於記憶體,從而保證cpu總有乙個作業可以執行。

分時系統是多道程式系統的擴充套件,它採用了排程演算法,以快速切換作業,好像每個作業同時進行。

現代作業系統是中斷驅動的。事件總是有中斷和陷阱引起的。陷阱(或異常)是一種軟體生成的中斷,或源於錯誤(如除數為0),或源於使用者程式的特定請求。

作業系統必須確保計算機系統的正確執行。為了防止使用者干預系統的正常進行,硬體會有兩種模式:使用者模式和核心模式(也稱系統模式或特權模式)。計算機硬體可以通過乙個模式位來表示當前模式:核心模式(0)和使用者模式(1)。

將可能引起損害的機器指令作為特權指令,並且硬體只有在核心模式下才允許執行特權指令,如果使用者模式下試圖執行特權指令,那麼硬體不執行該指令,認為其非法並將以陷阱形式通知作業系統。

許多指令(如i/o指令和停機指令)都是特權的,只能在特權模式下執行。作業系統駐留的記憶體也會加以保護,以防使用者程式修改。

作業系統應該維持控制cpu,防止使用者程式陷入死迴圈,或不呼叫系統服務並且不將控制返給作業系統。為了實現這一目標,可以使用定時器。

在將控制交給使用者之前,作業系統確保定時器已經設定好以便產生中斷。當定時器產生中斷時,控制自動轉移到作業系統。

程式本身不是程序。

程序是作業系統工作的基本單元。

程序管理包括建立和刪除程序、提供與其他程序通訊和同步的機制。

作業系統管理記憶體,以跟蹤記憶體的哪部分被使用以及被誰使用。作業系統還負責動態分配和釋放記憶體空間。

作業系統對儲存裝置的物理屬性進行了抽象,並定義了邏輯儲存單元,即檔案(file)。

檔案系統管理檔案和目錄。

快取記憶體一致性問題:由於多個cpu可以併發執行,應確保位於乙個快取記憶體的a值的更新,應該馬上反映到所有其他a所在的快取記憶體。

章一 導論 1

章一 導論 由於人們認知能力的有限性,海量資訊在給人們帶來方便的同時也帶來了一大堆的問題。第一是資訊超載,難以消化 第二是有效資訊難以提取,真假資訊難以辨識 第三是資訊保安難以保證,有意或無意的行為經常會威脅到資訊的安全 第四是資訊形式不一致,既有結構化的資訊,也有非結構化的資訊,難以統一處理。普通...

演算法導論 第5章

這一章,說來說去,兩件事情,1.概率分析。2.隨機演算法。先把這個僱傭問題拿出來。問題 有一批參與面試的人,你要乙個個面試 面試每個人都要花費c1 如果當前面試者比自己的助理能力強,則辭掉當前助理的,並把當前面試者提拔為助理 僱傭乙個人要花費c2 一直面試完所有人。這裡考慮的是面試所花的money,...

演算法導論 第6章

這一章,前言講了為什麼要排序?接著介紹本章主題,堆排序。那麼什麼又是堆呢?一種資料結構,當然有很多性質,這個我在前面資料結構說過了,然後有兩種。1.大根堆 它是用來堆排序的。2.小根堆 它是用來做優先順序佇列的。清楚了這兩種用途,那麼我們來看 關於堆排序 public class heap sort...