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

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
關于億道電子
億道電子技術有限公司(英文名稱:Emdoor Electronics Technology Co.,Ltd)是國內(nèi)資深的研發(fā)工具軟件提供商,公司成立于 2002 年,面向中國廣大的制造業(yè)客戶提供研發(fā)、設計、管理過程中使用的各種軟件開發(fā)工具,致力于幫助客戶提高研發(fā)管理效率、縮短產(chǎn)品設計周期,提升產(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)略合作伙伴關系,并作為他們在中國區(qū)的主要分銷合作伙伴服務了數(shù)千家中國本土客戶,為客戶提供從芯片級開發(fā)工具、EDA 設計工具、軟件編譯以及測試工具、結(jié)構(gòu)設計工具、仿真工具、電氣設計工具、以及嵌入式 GUI 工具等等。億道電子憑借多年的經(jīng)驗積累,真正的幫助客戶實現(xiàn)了讓研發(fā)更簡單、更可靠、更高效的目標。

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