【操作系統】第一章:操作系統概念與學生用OS介紹

代碼實現

Ps)通過uCore小型操作系統,令OS和代碼產生實際的聯繫。
uCore系統,代碼能夠理解、讀懂調試就能夠紮實的掌握OS的細節。暫不要求寫代碼

學習思路與大綱

在這裏插入圖片描述

操作系統實驗:

0-準備
1-系統啓動和中斷
2-物理內存管理
3-虛擬內存管理
4-內核線程管理
5-用戶進程管理
6-CPU調度
7-同步與互斥
8-文件系統

操作系統的定義

沒有明確定義,但是通過功能可以劃分
用戶角度(對上):控制軟件==>管理app,爲app提供服務,殺死app

內部管理(對下):資源管理==>管理外設,分配資源
在這裏插入圖片描述
CPU抽象成進程 硬盤抽象成文件 內存抽象成地址空間

操作系統架層次結構:硬件之上,應用程序之下
層次由高到低:程序-軟件-OS-硬件,如圖。
在這裏插入圖片描述

Shell&Kernel概念的引入

GUI圖形化標識:是屬於Shell外殼部分。字符命令也是shell部分,這兩個接口部分是操作系統對外提供的一種可見的服務。我們研究的OS更注重內部kernel部分(隨着以後的學習會進一步解析,此處先引入這個概念,需要一定CSA基礎)
在這裏插入圖片描述

關注操作系統的細節,OS內部細化

硬件資源:CPU、內存、磁盤(最主要)、網卡聲卡顯卡……
==>CPU管理:CPU調度,進程線程管理
==>內存管理:物理內存管理,虛擬內存管理(給上層應用提供相對獨立,儘可能大的一塊內存空間去使用,在有限的物理內存基礎上獨立虛擬出一個更方便安全的環境)
==>Disk:磁盤塊作爲讀寫單位,不方便存儲數據。OS將他抽象成文件系統,以文件的形式給數據提供訪問、保存等操作。
==>底層相關-硬件直接打交道:中斷處理和設備驅動
OS中很重要的功能單元,基於中斷才能真正完成應用程序的各種命令。

OS Kernel特徵(4個特點)

△併發:一時間內有多個程序運行
同時跑多個程序,需要OS管理和調度,ex)哪個先執行
並行:在一個時間有多個程序運行,一般計算機內要有的多個CPU才能實現

△共享:OS爲了有效地讓資源共享給需要資源的應用程序。分爲互斥共享和同時共享。
同時共享:表面上是同時訪問,但是OS內部變爲互斥訪問或者分時訪問。在時間點上只有一個程序可以訪問一個資源。這與資源的粒度有關。
※如果CPU隔離爲兩塊,則可以令兩個程序同時訪問兩個資源,根據資源特徵區分如何共享。

△虛擬:把硬件虛擬化(Ex,CPU虛化爲進程)後,利用多道程序設計,讓每個用戶感到有一個計算機專門爲他們服務。

△異步:程序的執行往往不是一貫到底,各種走停,向前推進的速度不可預知。但只要運行環境(沒有硬件損壞問題或病毒木馬等)相同,OS需要保證程序運行結果也要不變。

操作系統的重要性

結合了許多課程:DA,Algorithm,CSA, Language etc.
在這裏插入圖片描述
甚至包括了材料、技能、概念和原理、代碼。頂級會議相當於交替舉行一年一屆。
在這裏插入圖片描述

OS的基本要求

OS代碼必須是高效的。低耗CPU、內存(Memory)、磁盤(disk)。
操作系統的代碼管理原始硬件:時間依賴行爲,非法行爲,硬件故障等。因此操作系統實現上會比較複雜。
操作系統需要權衡:空間與時間、性能與可預測性、公平和性能。
我們希望OS性能儘量高,希望程序的執行儘量可以預測(什麼時候開始、結束、切入)。儘量令整個系統的資源能夠更公平、高效的使用。
能夠管理我們的硬件:
在這裏插入圖片描述

操作系統的結構:MS-DOS(最早的OS)

在這裏插入圖片描述
不分模塊的OS,受制於硬件。容易被攻擊且很難擴張,受制於CPU,硬件限制非常大。
在這裏插入圖片描述

分模塊如圖示(unix初代)

通過模塊化概念,提供更加有效的系統軟件的設計實現。當時用C語言實現,與彙編語言有很大的區別。彙編語言與機器綁定所以不具有可移植性。但是C有很好的移植性,所以讓應用很好的擴展到不同的計算機系統裏去。

試驗用OS

在這裏插入圖片描述
方便學習者更好的理解OS,對於該系統進行一定介紹

微內核&外核

在這裏插入圖片描述
各模塊之間用函數調用實現(單體)【一般架構】
微內核:學術界將內核變得儘量小,使得不同功能讓更外層的模塊存在,模塊之前不用函數,而用消息傳遞來實現。內核放基本功能(中斷處理、消息傳遞)【文件系統內存管理、網絡協議棧放在外圍,用進程、程序、系統服務形式存在。服務之間通過內核消息傳遞機制進行通訊】,是一種鬆耦合架構。這種方式非常靈活、安全。但是性能低,產業界很少採用微內核技術,主要是因爲性能問題
在這裏插入圖片描述
外核架構:內核分爲兩塊,一塊負責硬件功能的複製(和硬件打交道);另一塊稱爲lib OS,和具體應用打交道。
Ex)瀏覽器訪問面向browser的LIB OS,然後lib OS訪問外核、再訪問硬件。針對不同應用程序,對應的lib OS訪問外核從而訪問硬件。(應用和OS成爲緊耦合架構)
APP==>不同的lib os==>ex kernel(外核)==>對硬件的管理和訪問
不同的lib os可以併發訪問外核且安全有效地使用硬件資源。
優點:速度快

VMM:虛擬機監控器

在這裏插入圖片描述
虛擬出多個計算機系統,給上層操作系統使用。一臺計算機可以變成多臺計算機。VMM虛擬出的計算機連外設都有,所以OS感知不到虛擬機,會把他當成真實的物理機。OS之下,硬件之上。
在這裏插入圖片描述
CPU計算能力越來越強,甚至一臺計算機可以有多個CPU。因此硬件資源過剩的情況經常發生(一般應用用不完這些資源)。所以設計初衷就是一臺計算機同時給多個人服務,充分發揮計算機資源的效率。

拓展:歷史

CPU高速發展,速度提升但是性能未得到充分利用。

批處理階段:

在這裏插入圖片描述
OS併發特徵的雛形(具體內容請參考CSA流水線章節)

CPU重用

在這裏插入圖片描述
多道程序設計:提高CPU利用率
在這裏插入圖片描述
程序1指定read這個IO操作時,OS完成切換,讓程序2佔用CPU去執行,此時程序1在等待外設把需要的數據讀進來。
程序2執行過程中,如果程序1提出的read外設已經完成,那麼會產生一箇中斷,通知OS,OS可以再切換,令程序2暫停,先讓程序1執行。
※中斷的概念下一章詳解。
多道程序設計確實提高了CPU利用效率,但是交互性不夠好。爲了更好的交互,提出分分時調度的思路。
在這裏插入圖片描述
時鐘定期產生中斷,在很小的時間間隔內(人感覺不出差距)操作系統不斷切換,令程序1執行一個時間段後程序再執行一個時間段,不斷輪換。
ex)千分之一秒一次分時,控制權不斷輪流切換給程序1、2。人感覺起來相當於兩個人同時佔用這個計算機在操作,讓人感覺不到。

個人電腦

硬件價格下降很快,使用的應用越來越廣泛,從早期的單純計算到多媒體……
應用的需求也發生變化,OS也就隨之變化。現在操作系統的更需要安全與交互性的提高。
集成電路發展越來越強大,一個CPU可以繼承多個CPU核,網絡也同時飛速發展。使得很多工作不需要放在本機來操作,丟到數據中心即可。==>分佈式操作系統
在這裏插入圖片描述
前端(一般用戶)使用,計算和存儲工作由數據中心完成,中間由Internet完成。
通過網絡,形成一個鬆耦合的交互,使得更加及時有效
數據中心中,一個緊耦合的系統,如何讓這個系統更好的完成計算的功能(集體地)。需要OS更好的管理協調工作。
當前正在不停的發展和演化中,隨着雲計算的深入。未來的發展趨勢將從一個計算機爲一羣人服務變成一羣計算機爲一個人服務的形式。(物聯網相關知識)

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