| 研究生: |
洪文彬 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] 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.