作業系統 哈工大mooc 第一章

2022-09-09 09:03:12 字數 2225 閱讀 1205

l1、什麼是 os

os 是計算機硬體和應用之間的一層軟體。

為什麼要有 os?

為了方便、高效管理和使用硬體。

管理哪些硬體?

cpu管理、記憶體管理、終端管理、磁碟管理、檔案管理、網路管理、電源管理、多核管理。

【cpu管理跟多核管理???】

學習目標:改 cpu 管理、改螢幕輸出、改系統介面、改記憶體管理。

l2、揭開鋼琴的蓋子

本節主要將從開啟電源開始,計算機背後發生了什麼,計算機是如何工作的。

從白紙到圖靈機

計算機如何工作?其實就是乙個計算模型。

人先在紙上寫好程式,控制器讀取紙帶上的內容,然後運算輸出。

從圖靈機到通用圖靈機

上面提到的圖靈機只能做一種操作(課程的ppt中的加法操作),而通用圖靈機則可以 設定控制器動作 。

比喻:上面的圖靈機就是乙個只會做一道菜的廚師,通用圖靈機就是乙個會看菜譜,做多種菜的廚師。

「讀進來的邏輯是什麼,我就是什麼圖靈機」

從通用圖靈機到計算機

馮·諾依曼儲存程式思想——

把程式放到記憶體,用乙個指標 pc 指向它,不斷取指執行...

總結上面,回答最初的問題:計算機如何工作的?——取指執行

既然如此,我們就要知道 計算機執行的第一句指令是什麼?即 pc = ?

既然指令是在記憶體中的,那麼剛開始的記憶體中有什麼呢?

所以我們要關心 指標 ip 及其指向的內容。

計算機剛開啟電源的時候,ip 的指向由硬體設計者決定。

1.x86 pc 開機是 實模式。

2.根據 cs << 4 + ip,定址到rom bios對映區(剛一上電,記憶體中唯一有**的地方,固化的)

3.檢查各種硬體

4.將磁碟0磁軌0扇區讀入,該扇區叫做引導扇區

所以我們寫的**肯定是要從引導扇區開始。

引導扇區**是用彙編**寫的,因為如果是用 c語言等寫,經過編譯之後有的東西無法控制,彙編**會編**正的機器語言,我們可以完整地控制它。

讀入引導扇區之後執行,13號中斷繼續讀後面的** setup模組。

總結:引導扇區的工作就是:讀 setup,讀 system……

引導扇區最後要把控制權較給 setup,即修改 cs 和 ip。

l3、os 啟動

setup.s

完成 os啟動前的設定,準備接管硬體。然後將整個 os 的**移到 0 位置,之後 os 一直存在這裡。

os 進入保護模式

初始化gdt 表。保護模式下定址方式發生改變(為什麼要改變定址方式呢?因為 cs << 4 + ip的定址範圍太小了。我們要擴大定址範圍,從 16位機變成32位機)

總結:setup 做了什麼?

讀了硬體引數,進行初始化,把 system 挪到了 0 位址處,啟動了保護模式。

回答:開啟電源計算機發生了什麼?

1、讀入 os --> 取指執行

2、初始化 --> 對 os 進行管理。

l4、os介面

介面就是連線兩個東西,隱藏了細節,使用介面的使用者只能看到簡單的使用方法,介面背後的實現原理由介面的構造者完成。

所以 os 介面就是連線上層使用者和 os。

使用者如何使用 os ?

其實就是使用者的所有操作都是一段 c程式,其中包含了重要的函式對計算機硬體的申請使用.這些重要函式就是 os 提供的介面,也叫系統呼叫。

不用全部記住這些系統呼叫,但是用到的時候要會查——posix。

回答:使用者就是根據在 c語言中插入系統呼叫來使用os。

l5、系統呼叫的實現

系統呼叫表面上就是一些函式,那麼背後是什麼呢?

有的記憶體不能隨意進入。為什麼呢?因為 os 裡面有重要的資料,不能隨意修改。

如何實現「有的記憶體不能隨意進入」呢?

答案:系統呼叫

區分核心態和使用者態:一種處理器「硬體設計」

如何進去?

硬體提供了「主動進入核心的方法」——中斷指令 int

作業系統(第一章)

作業系統的設計目標 方便性 有效性 可擴充性 開放性。方便性和有效性是作業系統的設計中最重要的兩個目標。1990年後,開放性已成為新系統或軟體能否被廣泛應用的至關重要管的兩個目標。作業系統的基本特徵 併發性 共享性 虛擬性 非同步性。併發性和共享性是多使用者,多工作業系統兩個最基本的特徵。併發性是多...

作業系統第一章

上網課時記的筆記,mooc上華中科技大學蘇曙光老師的作業系統原理。有點亂 windows,linux,基於unix的mac作業系統,win xp 雙擊,控制程式執行 基本功能 提供操作介面,控制程式執行,管理系統資源,配置系統引數,監控系統狀態,工具軟體集合 功能程序管理 cpu管理 程序控制 排程...

作業系統第一章

作業系統 第一章 作業系統引論 1.2 作業系統的發展過程 1.2.1 未配置作業系統的計算機系統 人工操作方式 早期的操作方式是由程式設計師將事先已穿孔的紙帶 或卡片 裝入紙帶輸入機 或卡片輸入機 再啟動它們將紙帶 或卡片 上的程式和資料輸入計算機,然後啟動計算機執行。僅當程式執行完畢並取走計算結...