汽車電子嵌入式開發(fā)系列50篇(四)-一文讀懂OS操作系統(tǒng)

      網(wǎng)友投稿 858 2022-05-29

      操作系統(tǒng)

      操作系統(tǒng)(Operation System, OS)是管理和控制計算機硬件與軟件資源的計算機程序,是直接運行在“裸機”上的最基本的系統(tǒng)軟件,任何其他軟件都必須在操作系統(tǒng)的支持下才能運行。

      操作系統(tǒng)是計算機系統(tǒng)資源的管理者,分為:

      處理機管理(CPU)

      存儲器管理(內(nèi)存)

      文件管理(外存)

      設(shè)備管理(I/O)

      操作系統(tǒng)是用戶與計算機硬件系統(tǒng)之間的接口,同時也是計算機硬件和其他軟件的接口,分為:

      命令接口

      程序接口

      功能:

      管理計算機系統(tǒng)的硬件、軟件及數(shù)據(jù)資源;

      控制程序運行;

      改善人機界面;

      為其他應(yīng)用軟件提供支持,讓計算機系統(tǒng)所有資源最大限度地發(fā)揮作用;

      提供各種形式的用戶界面,使用戶有一個好的工作環(huán)境;

      為其他軟件的開發(fā)提供必要的服務(wù)和相應(yīng)的接口等。

      特征:

      并發(fā):兩個或者多個事件在同一時間間隔內(nèi)發(fā)生;

      共享:系統(tǒng)中的資源可供內(nèi)存中多個并發(fā)執(zhí)行的進程共同使用;

      虛擬:把一個物理上的實體變?yōu)槿舾蓚€邏輯上的對應(yīng)物;

      異步:在多道程序環(huán)境下,允許多個程序并發(fā)執(zhí)行,但因資源有限,進程的執(zhí)行不是一貫到底,而是走走停停,以不可預(yù)知的速度向前推送,這就是進程的異步性。

      基本概念

      互斥:進程之間訪問臨界資源時相互排斥的現(xiàn)象;

      臨界資源:一次僅允許一個進程使用的資源,如 打印機。

      臨界區(qū):每個進程中訪問臨界資源的那段代碼。

      并發(fā):同一時間段有幾個程序都處于已經(jīng)啟動到運行完畢之間,并且這幾個程序都在同一個處理機上運行,但任一個時刻點上只有一個程序在處理機上運行。并發(fā)的兩種關(guān)系是同步和互斥;

      并行:單處理器中進程被交替執(zhí)行,表現(xiàn)出一種并發(fā)的外部特征;在多處理器中,進程可以交替執(zhí)行,還能重疊執(zhí)行,實現(xiàn)并行處理,并行就是同時發(fā)生的多個并發(fā)事件,具有并發(fā)的含義,但并發(fā)不一定是并行,也就是說事件之間不一定要同一時刻發(fā)生;

      同步:進程之間存在依賴關(guān)系,一個進程結(jié)束的輸出作為另一個進程的輸入。具有同步關(guān)系的一組并發(fā)進程之間發(fā)送的信息稱為消息或者事件;

      異步:和同步相對,同步是順序執(zhí)行,而異步是彼此獨立,在等待某個事件的過程中繼續(xù)做自己的事,不要等待這一事件完成后再工作。

      線程是實現(xiàn)異步的一個方式,異步是讓調(diào)用方法的主線程不需要同步等待另一個線程的完成,從而讓主線程干其他事情。

      多線程:多線程是進程中并發(fā)運行的一段代碼,能夠?qū)崿F(xiàn)線程之間的切換執(zhí)行;

      異步和多線程:不是同等關(guān)系,異步是目的,多線程只是實現(xiàn)異步的一個手段,實現(xiàn)異步可以采用多線程技術(shù)或者交給其他進程來處理。

      發(fā)展歷程

      手工階段

      單道批處理系統(tǒng)

      多道批處理系統(tǒng)

      分時操作系統(tǒng)

      實時操作系統(tǒng)

      網(wǎng)絡(luò)操作系統(tǒng)和分布式操作系統(tǒng)

      網(wǎng)絡(luò)操作系統(tǒng)和分布式操作系統(tǒng)的不同之處在于:

      在分布式操作系統(tǒng)中,若干臺計算機相互協(xié)同完成同一任務(wù);

      而在網(wǎng)絡(luò)操作系統(tǒng)中,每臺計算機都是相互獨立的,它們并不能相互協(xié)同完成同一任務(wù)。

      CPU的工作狀態(tài)

      大多數(shù)計算機系統(tǒng)將CPU執(zhí)行狀態(tài)分為目態(tài)與管態(tài)。

      管態(tài)就是 supervisor(管理者) mode 翻譯來的。

      那么目態(tài)呢,其實是 object(目標) mode 翻譯來的。

      管態(tài):supervisor(管理者) mode 又叫特權(quán)態(tài)、系統(tǒng)態(tài)或者核心態(tài)。CPU在管態(tài)下可以執(zhí)行指令系統(tǒng)的全集。

      如果程序處于管態(tài),則該程序就可以訪問計算機的任何資源,即 它的資源訪問權(quán)限不受限制。

      通常,操作系統(tǒng)在管態(tài)下運行。

      目態(tài):object(目標) mode又叫常態(tài)或用戶態(tài)。機器處于目態(tài)時,程序只能執(zhí)行非特權(quán)指令,不能直接使用系統(tǒng)資源,也不能改變CPU的工作狀態(tài),并且只能訪問這個用戶程序自己的存儲空間。

      科普:為什么叫 object mode 呢?

      通常CPU執(zhí)行兩種不同性質(zhì)的程序:一種是操作系統(tǒng)內(nèi)核程序;另一種是用戶自編程序或系統(tǒng)外層的應(yīng)用程序。

      對操作系統(tǒng)而言,這兩種程序的作用不同,前者是后者的管理者,因此“管理程序”要執(zhí)行一些特權(quán)指令,而“被管理程序”出于安全考慮不能執(zhí)行這些指令。

      因為管理者需要管理它,它就是管理者的管理目標。所以就叫 object mode。

      目態(tài)(用戶態(tài))→管態(tài)(核心態(tài))

      系統(tǒng)調(diào)用:這是用戶態(tài)進程主動要求切換到核心態(tài)的一種方式,用戶態(tài)進程通過系統(tǒng)調(diào)用申請使用操作系統(tǒng)提供的服務(wù)程序完成工作。

      系統(tǒng)調(diào)用機制的核心是使用了操作系統(tǒng)為用戶開放的一個中斷來實現(xiàn)。

      異常:當 CPU 在執(zhí)行用戶態(tài)程序時,發(fā)生了某些事先不可知的異常,這時會觸發(fā)由當前運行進程切換到處理此異常的內(nèi)核相關(guān)程序中,也就轉(zhuǎn)到了核心態(tài),如 缺頁異常。

      I/O設(shè)備的中斷:當 I/O 設(shè)備完成用戶請求操作后,會向CPU發(fā)出相應(yīng)的中斷信號,這時CPU會暫停執(zhí)行下一條即將要執(zhí)行的指令,轉(zhuǎn)而去執(zhí)行與中斷信號對應(yīng)的處理程序,如果先前執(zhí)行的指令是用戶態(tài)下的程序,那么這個轉(zhuǎn)換的過程自然也就發(fā)生了由用戶態(tài)到核心態(tài)的切換。

      例如,硬盤讀寫操作完成,系統(tǒng)會切換到硬盤讀寫的中斷處理程序中,執(zhí)行后續(xù)的操作。

      其中,系統(tǒng)調(diào)用可以認為是用戶進程主動發(fā)起的,異常和外部設(shè)備中斷則是被動的。

      管理功能

      處理機管理:

      進程互斥方式:進程(線程)在對臨界資源進行訪問時,應(yīng)采用互斥方式。

      進程同步方式:在相互合作去完成共同任務(wù)的諸進程(線程)間,由同步機構(gòu)對它們的執(zhí)行次序加以協(xié)調(diào)。

      進程控制:在傳統(tǒng)多道程序環(huán)境中,要是作業(yè)運行,必須先為它創(chuàng)建一個或多個進程,并為之分配必要的資源。當進程運行結(jié)束后,立即撤銷該進程,以便能及時回收該進程所占用的各類資源。

      進程同步:為多個進程(含線程)的運行進行協(xié)調(diào)。

      進程通信:在多道程序環(huán)境下,為了加速應(yīng)用進程的運行,應(yīng)在系統(tǒng)中建立多個進程,并且再為一個進程建立若干個線程,由這些進程(線程)相互合作去完成一個共同的任務(wù),而在這些進程(線程)之間又往往需要交換信息。

      調(diào)度:在后備隊列上等待的每個作業(yè)或者進程,通常都需要調(diào)度才能執(zhí)行,調(diào)度的任務(wù),即 將處理機分配給它。

      存儲器管理:

      內(nèi)存分配:采用靜態(tài)和動態(tài)兩種方式實現(xiàn)內(nèi)存分配數(shù)據(jù)結(jié)構(gòu),以記錄內(nèi)存使用情況,按照一定算法分配,對不再需要的內(nèi)存進行回收。

      內(nèi)存保護:確保每道用戶程序都只在自己的內(nèi)存空間運行,彼此互不干擾。

      地址映射:編譯后的程序的地址分為邏輯地址和物理地址,多道程序環(huán)境中,每道程序不可能都從 “0” 地址開始,要保證程序運行,則須將邏輯地址轉(zhuǎn)換成內(nèi)存空間中的物理地址。

      動態(tài)重定位:在程序執(zhí)行過程中,每當訪問指令或數(shù)據(jù)時,將要訪問的程序或數(shù)據(jù)的邏輯地址轉(zhuǎn)換成物理地址。

      實現(xiàn)方法:在系統(tǒng)中增加一個重定位寄存器,用來裝入程序在內(nèi)存中的起始地址。程序執(zhí)行時,真正訪問的內(nèi)存地址是相對地址與重定向寄存器中的地址相加之和,從而實現(xiàn)動態(tài)重定位。

      內(nèi)存擴充:從邏輯上去擴充內(nèi)存容量,使用戶所感受到的內(nèi)存容量比實際容量大得多,或者讓更多的程序能并發(fā)執(zhí)行。

      設(shè)備管理:

      緩沖管理:緩沖區(qū)機制能夠有效緩解 CPU 運行的高速性和 I/O 低速性的矛盾。

      設(shè)備分配:設(shè)置設(shè)備控制表、控制器控制表等數(shù)據(jù)結(jié)構(gòu),能夠了解指定設(shè)備當前是否可用,是否忙碌,以及該設(shè)備被分配出去,系統(tǒng)是否還安全。

      設(shè)備處理程序:實現(xiàn) CPU 和設(shè)備管理器之間的通信,由 CPU 向設(shè)備控制器發(fā)出 I/O 命令,要求它完成指定的 I/O 操作,反之由 CPU 接收從控制器發(fā)來的中斷請求,并給予迅速的響應(yīng)和相應(yīng)的處理。

      文件管理:

      文件存儲空間的管理:由文件系統(tǒng)對諸多文件及文件的存儲空間實施統(tǒng)一的管理,對每個文件分配必要的外存空間,提高外存的利用率和文件系統(tǒng)的執(zhí)行速度。

      汽車電子嵌入式開發(fā)系列50篇(四)-一文讀懂OS操作系統(tǒng)

      目錄管理:相當于文件的索引,建立目錄項(文件名、文件屬性、文件在磁盤中的物理位置等),方便用戶查詢檢索。

      文件的讀/寫管理和保護:防止未經(jīng)批準的用戶存取文件、防止冒名頂替存取文件、防止以不正確的方式使用文件。

      交通智能體 任務(wù)調(diào)度 嵌入式

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應(yīng)法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:用 Python 腳本實現(xiàn)對 Linux 服務(wù)器的監(jiān)控
      下一篇:ZooKeeper源碼閱讀心得分享+源碼基本結(jié)構(gòu)+源碼環(huán)境搭建
      相關(guān)文章
      亚洲av无码专区亚洲av不卡| 亚洲成人在线网站| 亚洲AV日韩AV天堂一区二区三区| 亚洲精品美女久久久久99小说| 亚洲GV天堂无码男同在线观看| 精品日韩99亚洲的在线发布 | 亚洲欧洲综合在线| 久久精品国产亚洲av麻豆小说| 久久久久亚洲Av片无码v| 亚洲AV无码乱码在线观看裸奔| 亚洲av无码国产精品色午夜字幕| 亚洲av无码一区二区三区不卡| 久久九九亚洲精品| 亚洲妇熟XXXX妇色黄| 亚洲国产精品VA在线看黑人| 亚洲成色在线综合网站| 五月天网站亚洲小说| 亚洲天天做日日做天天看| 亚洲高清资源在线观看| 亚洲欧洲精品久久| 日本亚洲精品色婷婷在线影院| 亚洲人成网站色在线观看| 亚洲精品无码中文久久字幕| 久久亚洲中文字幕无码| 亚洲国产成人a精品不卡在线 | 亚洲伊人久久大香线焦| 亚洲不卡1卡2卡三卡2021麻豆| 国产午夜亚洲精品国产| 自拍偷自拍亚洲精品偷一| 亚洲另类少妇17p| 国产亚洲大尺度无码无码专线| 国产成人精品日本亚洲| 久久久久久久亚洲Av无码| 亚洲国产片在线观看| 亚洲色大成网站www久久九| 国产精品亚洲专区无码唯爱网| 亚洲精品亚洲人成在线观看下载| 国产v亚洲v天堂无码网站| 亚洲日本在线免费观看| 亚洲日韩一区二区一无码| 在线91精品亚洲网站精品成人|