操作系統筆記 Lecture 1 概論

第一章

程序員的計算機系統視圖

文件系統的層次:字節流=>字符流

高級語言程序–轉換並編譯爲–>目標代碼–鏈接爲–>可執行程序–裝載到–>內存

注意:可執行程序不是機器語言,而是擴展的機器語言。

操作系統的演進:

  1. 卡片時代:裝入程序,由操作員手動裝入程序。後來操作員與程序員分開,使得程序可以模塊化使用,提高了運行效率。但是儘管這樣,而且後來紙帶被磁帶取代,仍然存在一個問題,就是機械輸入(卡片讀取)與電子速度(計算機的速度)嚴重不匹配。
  2. 後來,磁盤出現,解決了機械與電子速度不匹配的問題。與螺旋式儲存數據的光盤不同,磁盤有很多盤片,每個盤片上的數據呈同心圓分佈,這樣就是一個三維的儲存結構,使得讀取速度大大增加。
  3. 再後來引進了彙編語言與作業控制語言,才逐漸出現了操作系統的概念。

操作系統是一個巨大工程

  • 軟件工程嚴格來說不是一門科學,而是一種工程,是一種“僞科學”。因爲一個軟件開發的過程有很多的不確定性。
  • 可以說最早對軟件工程提出要求的就是操作系統開發。最早可以追溯到上個世紀五十年代(?存疑)美國國防部要求MIT開發一款操作系統,然而經過很多時間花費了很多物力財力,結果證明:個人開發操作系統是一件不可能完成的事情。正是因爲操作系統作爲一個巨大的工程,要求軟件工程師用工程化的管理方式實現軟件的開發、運行和維護,美國的大學逐漸開始開設軟件工程專業。
  • 對軟件工程提出進一步要求的是軟件管理系統。美國通用汽車公司開發信息系統的時候發現,作爲一個軟件管理系統,更重要的是客戶的需求,而不是個人的開發能力。所以從此軟件工程不再侷限於研究工程的問題,而更多的開始專注於需求的確定與開發的問題。

操作系統的兩大功能

操作系統兩大功能:資源管理、控制程序執行。

資源分配

設備的分配方式有兩種,一是“獨佔”,二是“併發”。

資源的分配方式有三種:靜態方式(例如:輪詢,使用率低)、動態方式(需要且空閒時分配資源,但是對相同資源的需要與佔有可能產生死鎖)、資源搶佔方式(優先級更高的時候直接搶奪資源,但是被搶佔資源的資源需要回滾,比較複雜)

控制程序執行

多道程序的方式可以解決與CPU電子速度不匹配的問題——程序流水線方式

於是我們用這樣的操作系統來解決這四大問題:

問題 解決
如何使用資源 服務例程
如何複用CPU 進程調度
如何使得CPU與I/O更好並行 設備控制器與通道
如何讓出CPU 中斷機制

什麼是“陷入”?有一些行爲,例如中斷,普通權限程序不能進行,只能交由操作系統這一“超級程序”執行,操作系統對普通程序具有生殺予奪的權利,那麼這樣的過程我們就叫做“陷入”。


本博客同步發於我的個人主頁:www.frostwing98.com

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