簡易檢索 / 詳目顯示

研究生: 洪文彬
Hung, Wen-Bin
論文名稱: 嵌入式微核心系統之設計與實作
Design and Implementation of Embedded Micro-Kernel System
指導教授: 陳 敬
Chen, Jing
學位類別: 碩士
Master
系所名稱: 電機資訊學院 - 電腦與通信工程研究所
Institute of Computer & Communication Engineering
論文出版年: 2005
畢業學年度: 93
語文別: 中文
論文頁數: 112
中文關鍵詞: 異質性多處理器即時作業系統微核心
外文關鍵詞: Micro-Kernel, Real-Time Operating System, Heterogeneous Multiprocessor
相關次數: 點閱:101下載:4
分享至:
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報
  •   本論文描述一個以微核心架構為基礎的嵌入式即時作業系統的設計與實作。如同其它微核心作業系統,本系統可以提供很好的彈性與擴充性。另外,它能夠提供動態註冊中斷處理函式與動態註冊外掛模組,因此它適合於許多不同的嵌入式系統應用,例如手機、數位相機、還有個人數位助理(PDA),等等。

      本系統之實作包括了微核心與多個伺服行程(Server Process):行程管理者(Process Manager)、檔案管理者(File Manager)、與記憶體管理者(Memory Manager)等等。核心負責的工作是行程的排程與訊息傳遞(Message Passing)。後者的實作是使用約會型的訊息傳遞機制(Rendezvous Message-Passing Mechanism),並為系統中所有的行程提供了一個統一的介面。行程管理者(Process Manager)負責了多執行緒等功能的管理。檔案管理者(File Manager)實現了動態外掛模組的註冊機制,可以用來處理不同的周邊設備。圖形使用者介面的支援可以提供一個親切的使用者介面。本系統可以支援不同型態的多處理器架構,包括同質性(Homogeneous)與異質性(Heterogeneous)架構。對應於系統中主處理器以外之處理器,在主處理器(Master Processor)上就要執行一個稱為處理器管理者(Processor Manager)的伺服行程,用來處理主處理器與新的處理器之間的溝通。

      本系統實作不只要求一個有效率的核心,更要求核心能夠滿足即時(Real-Time)的要求。核心中所有的函式的執行時間都不會超過限制的時間,因此核心的反應時間是可預測的。系統執行時所占用的記憶體大小是很小的,且系統的執行是很有效率的。另外,親切的使用者介面可以讓使用者能夠更簡單且方便地使用本系統。因此本系統可以提供嵌入式應用的發展一個新的選擇。

     This thesis describes the design and implementation of an embedded real-time operating system which is based on micro-kernel architecture. The system, like other micro-kernel-based systems, can provide flexibility and scalability very well. In addition, it provides dynamic registeration of interrupt service routines and dynamic registeration of modules so that it is suitable for many different applications of embedded systems, such as mobile phone, digital camera, and PDAs, etc.

     The implementation includes a micro-kernel and a number of server processes, namely process manager, file manager, and memory manager. The kernel is responsible for process scheduling and message passing. The later is implemented based on rendezvous mechanism and provides a unified interface for all processes. The process manager is responsible for the management of tasks and the multi-threading. The file manager provides the mechanism of the dynamic registeration of modules to cope with different devices. The support of graphic user interface (GUI) can provide a more user-friendly interface. In addition, the system can, with a unified interface, support different kinds of multi-processor platforms, either the homogeneous or the heterogeneous multi-processor platforms. For each processor other than the master processor, a corresponding server process, called “processor manager”, is added and runs on the master processor to handle the communication between the master processor and the new processor.

     This implementation is not only an efficient kernel, but also a kernel which can satisfy the real time requirement. The execution times of kernel functions are bounded by a limit, so the timing behavior of kernel is predictable. The footprint of the whole system is small, and the execution of the system is efficient. In addition, the user-friendly interface allows users to use the system easily. This system therefore serves as a new choice for embedded application development.

    第一章 簡介 1 1.1 嵌入式系統 1 1.2 即時系統 2 1.3 單體式核心作業系統 (Monolithic-Kernel Operating System) 2 1.4 微核心作業系統 (Micro-Kernel) 3 1.5 研究動機 4 第二章 實例探討與相關研究 5 2.1 Linux 5 2.2 μC/OS II 7 2.3 Minix 8 2.4 QNX 10 2.5 系統核心之優劣探討 13 2.6 實作方向 13 第三章 核心架構及實作 15 3.1 硬體平台 15 3.2 核心架構 15 3.3 優先權繼承的訊息傳遞 17 3.4 死結的預防(Deadlock Prevention) 21 3.5 中斷訊息傳遞 23 3.6 排程演算法 25 3.7 核心系統呼叫函式 29 3.8 系統建立操作程序 30 3.9 核心初始化及系統開機 31 3.10 即時作業系統的需求 32 第四章 系統伺服行程 34 4.1 行程管理者 (Process Manager) 34 4.1.1 伺服行程的管理 (Server Process) 35 4.1.2 使用者行程的管理 (User Process) 35 4.1.3 多執行緒的支援 (Multi-Threading) 36 4.1.4 信號(Signal)發送與接收 38 4.2 檔案系統管理者 (File System Manager) 39 4.2.1 動態模組註冊機制 40 4.2.2 儲存裝置模組 42 4.2.3 擴充型模組 43 4.3圖形介面管理者 (GUI Manager) 44 4.3.1繪圖命令及實作 45 4.3.2 繪圖命令群集(Batch)的產生 47 4.3.3 雙緩衝繪圖區塊(Double Buffer) 48 4.3.4 圖形介面程式的執行環境 49 4.3.5 圖形介面程式實例 52 第五章 符號式連結檔案系統 54 5.1 硬式連結(Hard-Link)與符號式連結(Symbolic-Link) 54 5.2 符號式連結檔案系統實作 56 第六章 多處理器平台的支援 59 6.1 異質性多處理器作業系統架構 59 6.2 泛用型多處理器架構 60 第七章 系統效能分析 62 7.1 系統大小統計 62 7.2 系統效能分析 63 7.2.1 精確的系統執行時間測量 63 7.2.2 訊息傳遞機制效能比較 65 7.2.3 處理器快取(Cache)對時間測量的影響 69 7.2.4 快取(Cache)對微核心作業系統的影響 71 第八章 結論與展望 73 8.1 結論 73 8.2 展望 75 8.2.1 系統發展流程與移植(Porting) 75 8.2.2 移植(Porting)動作的系統化設計 76 8.2.3 移植描述檔的規劃 78 參考文獻 80 附錄一 行程管理區塊(PCB)列表 83 附錄二 行程佇列結構列表 86 附錄三 精確時間測量程式列表 87 附錄四 訊息傳遞時間測量程式列表 91 附錄五 訊息傳遞時間測量程式列表 – 減少快取影響 94 附錄六 函式庫的支援 98 自述 112

    [1] Abraham Silbeschatz, Peter Baer Galvin, Gerg Gagne, “Operating System Concepts, 6th Edition”, John Wiley & Sons, Inc., 2003, ISBN 0-471-26272-2.

    [2] Andrew S. Tanenbaum, Albert S. Woodhull, “Operating Systems – Design and Implementation”, Prentice Hall Inc., 1997, ISBN 0-13-630195-9.

    [3] ARM, “ARM Architecture Reference Manual”, ARM Doc. NO.: DDI-0100E.

    [4] Chris Lattner, “OSRC – The Operating System Resource Center”, http://www.nondot.org/sabre/os/articles.

    [5] Craig Peacock, “uClinux - BFLT Binary Flat Format”, http://www.beyondlogic.org/uClinux/bflt.htm.

    [6] “C Standard Library”, http://www.infosys.utas.edu.au/info/documentation/C/CStdLib.html.

    [7] Daniel P. Bovet, Marco Cesati, “Understanding the Linux Kernel, 2nd Edition”, O’Reilly, December 2002, ISBN 0-596-00213-0.

    [8] Donald E. Thomas, Philip R. Moorby, “The Verilog Hardware Description Language, Fifth Edition”,Kluwer Academic, 2002, ISBN 1-4020-7089-6.

    [9] DSPLinux, http://www.cadenux.com/ridgerun.

    [10] Embedded System: definition, http://www.ksu.edu/year2000/workshop/techiy2k/tsld025.htm.

    [11] Intel Corporation, “IA-32 Intel ® Architecture Software Developer’s Manual – Volume 1”, Copyright 1997 – 2002.

    [12] Intel Corporation, “IA-32 Intel ® Architecture Software Developer’s Manual – Volume 2”, Copyright 1997 – 2002.

    [13] Intel Corporation, “IA-32 Intel ® Architecture Software Developer’s Manual – Volume 3”, Copyright 1997 – 2002.

    [14] Jane W. S. Liu, “Real-Time Systems”, Prentice Hall Inc., 2000, ISBN 0-13-099651-3.

    [15] J. J. Labrosse, “Micro C/OS-II: The Real Time Kernel”, 2nd edition, CMP Books, 2002, ISBN 1-57820-103-9.

    [16] Jochen Liedtke, “Toward Real Micro-Kernels”, Communications of the ACM, vol.39, Issue 9, pp. 70-77, September 1996.

    [17] Jochen Liedtke, “μ-Kernel Must And Can Be Small”, 5th IEEE Internal Workshop on Object-Orientation in Operating Systems, pp. 152-155, October 1996.

    [18] Jochen Liedtke, “On μ-Kernel Construction”, Proceedings of 15th ACM Symposium on Operating System Principles, pp. 237-250, December 1995.

    [19] John L. Hennessy, David A. Patterson, “Computer Architecture – A Quantitative Approach, Third Edition”, MORGAN KAUFMANN, 2003, ISBN 1-55860-596-7.

    [20] Kuljeet Singh, “Design and Evaluation of an Embedded Real-time Micro-kernel”, Blacksburg, Virginia, October 2002.

    [21] Mahendra M, “Scheduling in Kernel 2.6”, http://www.infosys.com.

    [22] Martin Timmerman, “Windows NT as Real-Time OS? ”, http://www.dedicated-systems.com/magazine/97q2/winntasrtos.htm

    [23] M. D. Bennett, N. C. Audsley, “Developing a Real-Time Micro-Kernel Design Process”, Proceedings Work in Progress, Real-Time Systems Symposium, Dept. of Computer Science, University of York, 2001.

    [24] Michel Gien, “Micro-kernel Architecture Key to Modern Operating Systems Design”, Chorus systems, December 1990.

    [25] Microsoft Corporation, “FAT: General Overview of On-Disk Format”, December 6, 2000.

    [26] “miniGUI Technology White Paper”, http://www.minigui.com/download/index.shtml.

    [27] M. J. Bach, “The Design of The UNIX Operating System”, Prentice Hall Inc., 1986, ISBN 0-13-201799-7.

    [28] “POSIX threads programming”, http://www.llnl.gov/computing/tutorials/pthreads/.

    [29] “QNX Software Systems – Microkernel Architecture”, http://www.qnx.com/tech_highlights/microkernel/.

    [30] “QNX Software Systems – Advanced Graphics-MultiLayering”, http://www.qnx.com/tech_highlights/adv_graphics/.

    [31] Texas Instruments, “TMS320DM270 CPU and Peripherals Technical Reference Manual Version 1.1”.

    [32] uCLinux, http://www.uclinux.com/uclinux.shtml.

    [33] “Unix Library Functions”, http://www.realtime.com.au/Manuals/common/pi_unix_ref.html.

    [34] “Write your own Operating System – OS FAQ”, http://mega-tokyo.com/osfaq2/.

    [35] 劉建宏, “異質性多處理器嵌入式系統微核心之設計與實作”, National Chung-Kung University, Taiwan, July, 2004.

    [36] 陳敬, 洪文彬, 歐旭江, “異質性多處理器嵌入式系統之設計與實作”, Symposium on Digital Life and Internet Technologies, 2005.

    [37] 魏永明, “miniGUI圖形用戶介面支援系統 – 應用程式開發指南及程式設計師參考大全”, November 2004.

    [38] 徐千洋, “Linux C函式庫參考手冊”, 旗標出版, 2001, ISBN 957-717-711-5.

    下載圖示 校內:立即公開
    校外:2005-08-13公開
    QR CODE