在介紹操作系統(tǒng)之前,先說明一下為什么需要操作系統(tǒng)。在進(jìn)行軟件編程時(shí)需要對硬件進(jìn)行控制,例如輸入設(shè)備、輸出設(shè)備及存儲設(shè)備。如果沒有操作系統(tǒng)程序員不僅需要編程的知識還要了解硬件,這么多的硬件會很耗費(fèi)時(shí)間和精力。操作系統(tǒng)提供了對各種硬件的抽象,使得程序員就像控制水管的“水龍頭”的開關(guān)一樣,不必去關(guān)心到底水是怎么運(yùn)送過來的“管道”。這樣就可以極大的提高編程效率。
那么操作系統(tǒng)都有什么組成呢?主要有進(jìn)程管理、內(nèi)存管理、文件系統(tǒng)、輸入輸出設(shè)備驅(qū)動、網(wǎng)絡(luò)通信、安全管理及圖形界面。
進(jìn)程管理
進(jìn)程是操作系統(tǒng)處理各種活動,例如用戶應(yīng)用程序和系統(tǒng)應(yīng)用程序。進(jìn)程管理就是把所有的執(zhí)行內(nèi)容抽象為流程,建立任務(wù)列表,設(shè)置獨(dú)立的存儲空間,多進(jìn)程的并發(fā)處理等等。
內(nèi)存管理
程序和數(shù)據(jù)都存儲在內(nèi)存中內(nèi)存管理需要考慮如何組織進(jìn)程的內(nèi)存,也需要支持
在進(jìn)程之間共享數(shù)據(jù)。
文件系統(tǒng)
文件就是大量信息的抽象描述。文件系統(tǒng)包括輔助存儲器進(jìn)行創(chuàng)建、刪除、復(fù)制和粘貼等標(biāo)準(zhǔn)操作,也包括搜索、備份等高級操作。
輸入輸出
如前所述,對輸入輸出的操作需要了解特定設(shè)備相關(guān)知識及設(shè)備驅(qū)動程序和標(biāo)準(zhǔn)接口。
不同的組件相互關(guān)聯(lián) ,如何組織所有組件就顯得沒有那么簡單。另一個(gè)具有挑戰(zhàn)性的軟件工程問題是可靠性、向后兼容性、可擴(kuò)展性、可移植性。
統(tǒng)一的操作系統(tǒng)中單個(gè)程序包含所有內(nèi)核代碼并提供所有操作系統(tǒng)服務(wù),這就使得便攜性較差且難以維護(hù),一個(gè)小的錯(cuò)誤會導(dǎo)致整個(gè)系統(tǒng)崩潰!例如Unix和Linux操作系統(tǒng)。
最小內(nèi)核系統(tǒng)簡化了內(nèi)核設(shè)計(jì)(僅限特權(quán)模式)用戶空間(可能有特權(quán),但通常沒有特權(quán)),這使得快速開發(fā)、單元測試、易于維護(hù)。存在的問題是內(nèi)存占用多,頻繁的上下文切換和進(jìn)程間通信,不易實(shí)施。
總的來說統(tǒng)一的操作系統(tǒng)具有更好的性能,微內(nèi)核操作系統(tǒng)具有更好的模塊性和可擴(kuò)展性但模式切換成本高?,F(xiàn)代(大多數(shù)商業(yè))操作系統(tǒng)采用混合方法,內(nèi)核盡可能小,但大多數(shù)服務(wù)器都在特權(quán)內(nèi)核空間中運(yùn)行。例如Windows NT,XNU(OS X)。
操作系統(tǒng)的種類
網(wǎng)絡(luò)操作系統(tǒng),用于計(jì)算機(jī)網(wǎng)絡(luò)的操作系統(tǒng),允許并方便文件共享和硬件訪問,在局域網(wǎng)(常見于企業(yè)環(huán)境)比單計(jì)算機(jī)操作系統(tǒng)更多的功能,如:更多的通信。典型的網(wǎng)絡(luò)操作系統(tǒng)有Routers OS (Cisco IOS)
分布式操作系統(tǒng),每個(gè)節(jié)點(diǎn)都有一個(gè)“核心”(微內(nèi)核加上與其他節(jié)點(diǎn)協(xié)調(diào)的服務(wù)組件),各個(gè)節(jié)點(diǎn)共同完成操作系統(tǒng)的所有功能,單個(gè)節(jié)點(diǎn)可以完全訪問所有系統(tǒng)資源。存在復(fù)雜的調(diào)度和并行性,用戶不知道哪個(gè)節(jié)點(diǎn)正在執(zhí)行程序,也不知道文件的物理位置——所有這些都由操作系統(tǒng)自動處理。
實(shí)時(shí)操作系統(tǒng),專用于滿足特定時(shí)間限制的實(shí)時(shí)操作系統(tǒng)。又分為硬實(shí)時(shí)(確保關(guān)鍵任務(wù)按時(shí)完成)和軟實(shí)時(shí)(超過最后時(shí)限仍然值得完成任務(wù)),需要高級調(diào)度和內(nèi)存分配。
可預(yù)測性和確定性,速度更重要,通常通過簡化的操作系統(tǒng)設(shè)計(jì)實(shí)現(xiàn),有時(shí)以可預(yù)測性和確定性為代價(jià)。足夠快地做正確的事情,優(yōu)先級可以由用戶動態(tài)調(diào)整。故障安全,并不是簡單地關(guān)閉所有設(shè)備。主要應(yīng)用在機(jī)器人、飛機(jī)控制…
嵌入式操作系統(tǒng),與實(shí)時(shí)操作并不完全相同,但大多數(shù)嵌入式操作系統(tǒng)都是實(shí)時(shí)操作系統(tǒng),都需要滿足時(shí)間限制。在本文中暫不區(qū)分實(shí)時(shí)操作系統(tǒng)和嵌入式操作系統(tǒng),兩個(gè)概念可以互換使用。
嵌入式系統(tǒng)RTOS與大循環(huán)模式
大循環(huán)模式易于實(shí)現(xiàn),符和嵌入式的計(jì)算模型。依賴中斷服務(wù)程序(ISR),需要保持ISR之間的同步,可預(yù)測性差(嵌套ISR)和可擴(kuò)展性差,ISR或大循環(huán)的的改變會波及整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。
RTOS模式,將所有請求都封裝到任務(wù)中,并根據(jù)需求進(jìn)行調(diào)度,更好的程序流程和事件響應(yīng),多任務(wù)處理。相對簡潔的中斷服務(wù)程序(ISR),因此具有確定性。更好的溝通,更好的資源管理。
Keil公司 RTX,支持ARM Cortex-M內(nèi)核的全面的RTOS,包含調(diào)度表/互斥量/事件/信號量/郵箱…

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
關(guān)于億道電子
億道電子技術(shù)有限公司(英文名稱:Emdoor Electronics Technology Co.,Ltd)是國內(nèi)資深的研發(fā)工具軟件提供商,公司成立于 2002 年,面向中國廣大的制造業(yè)客戶提供研發(fā)、設(shè)計(jì)、管理過程中使用的各種軟件開發(fā)工具,致力于幫助客戶提高研發(fā)管理效率、縮短產(chǎn)品設(shè)計(jì)周期,提升產(chǎn)品可靠性。
20 年來,先后與 Altium、ARM、Ansys、QT、Adobe、Visu-IT、Minitab、Testplant、EPLAN、HighTec、GreenHills、PLS、Ashling、MSC Software 、Autodesk、Source Insight、TeamEDA、MicroFocus等多家全球知名公司建立戰(zhàn)略合作伙伴關(guān)系,并作為他們在中國區(qū)的主要分銷合作伙伴服務(wù)了數(shù)千家中國本土客戶,為客戶提供從芯片級開發(fā)工具、EDA 設(shè)計(jì)工具、軟件編譯以及測試工具、結(jié)構(gòu)設(shè)計(jì)工具、仿真工具、電氣設(shè)計(jì)工具、以及嵌入式 GUI 工具等等。億道電子憑借多年的經(jīng)驗(yàn)積累,真正的幫助客戶實(shí)現(xiàn)了讓研發(fā)更簡單、更可靠、更高效的目標(biāo)。

歡迎關(guān)注“億道電子”公眾號
了解更多研發(fā)工具軟件知識