




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、3 Sept. 2008Confidential嵌入式操作系統(tǒng)原理嵌入式操作系統(tǒng)原理東軟IT人才實(shí)訓(xùn)中心Copyright 2008 By Neusoft Group. All rights reserved3 Sept. 2008Confidential引言引言嵌入式操作系統(tǒng)(嵌入式操作系統(tǒng)(RTOS)早期情況:)早期情況:只有硬件系統(tǒng)的“裸機(jī)”,沒有操作系統(tǒng)作為開發(fā)平臺(tái)。RTOS商業(yè)軟件價(jià)格昂貴,而且大部分不提供源碼。早期MCU存儲(chǔ)資源有限,容不下RTOS本身的開銷。隨著半導(dǎo)體技術(shù)的發(fā)展,嵌入式系統(tǒng)的存儲(chǔ)容量也逐漸增加,RTOS的使 用也隨之越來越普及;而且開源的實(shí)時(shí)操作系統(tǒng)越來越多。學(xué)習(xí)
2、操作系統(tǒng)的必要性:學(xué)習(xí)操作系統(tǒng)的必要性: 軟件的系統(tǒng)設(shè)計(jì)、架構(gòu)設(shè)計(jì)必不可少 。學(xué)習(xí)操作系統(tǒng)對(duì)于修正系統(tǒng)相關(guān)的疑難Bug必不可少 。學(xué)習(xí)操作系統(tǒng)對(duì)于深入了解計(jì)算機(jī)知識(shí)必不可少 。如何學(xué)好本門課程如何學(xué)好本門課程:多看源碼,多做練習(xí);理論與實(shí)踐相結(jié)合,知行合一。本課程學(xué)習(xí)目標(biāo):本課程學(xué)習(xí)目標(biāo):理解uC/OS-II內(nèi)核,掌握在uC/OS-II環(huán)境下并發(fā)程序設(shè)計(jì)思想。 3 Sept. 2008Confidential課程結(jié)構(gòu)內(nèi)容內(nèi)容課時(shí)(課時(shí)(H H)第一章:操作系統(tǒng)的基本概念第一章:操作系統(tǒng)的基本概念3.03.0第二章:第二章:COS與與COS-II的任務(wù)的任務(wù)9.09.0第三章:第三章:COS-I
3、I的中斷和時(shí)鐘的中斷和時(shí)鐘3.03.0第四章:任務(wù)的同步與通信第四章:任務(wù)的同步與通信6.06.0第五章:信號(hào)量集第五章:信號(hào)量集3.03.0第六章:內(nèi)存的動(dòng)態(tài)分配第六章:內(nèi)存的動(dòng)態(tài)分配3.03.0第七章:第七章:uC/OS-II的移植的移植3.03.03 Sept. 2008Confidential第一章:操作系統(tǒng)的基本概念第一章:操作系統(tǒng)的基本概念 目標(biāo):本章旨在向?qū)W員介紹操作系統(tǒng)基本概念,通過本章的學(xué)習(xí),學(xué)員應(yīng)該掌握如下知識(shí): 操作系統(tǒng)概述 常用的操作系統(tǒng) 操作系統(tǒng)常用的數(shù)據(jù)結(jié)構(gòu) 操作系統(tǒng)基本概念學(xué)時(shí):學(xué)時(shí):3.03.0學(xué)時(shí)學(xué)時(shí)教學(xué)方法:講授教學(xué)方法:講授pptppt點(diǎn)評(píng)點(diǎn)評(píng)案例分析案例
4、分析3 Sept. 2008Confidential為什么要學(xué)習(xí)C/OS-II對(duì)于初學(xué)者,從C/OS-II開始是個(gè)明智的選擇。 1、提供源代碼和詳盡的注釋; 2、可移植性強(qiáng):大部分源碼采用C語言編寫,與微處理 器硬件相關(guān)的部分用匯編語言編寫; 3、可固化、可裁剪; 4、具有主流嵌入式操作系統(tǒng)的一些通用功能:多任務(wù)調(diào) 度管理、任務(wù)間的通信機(jī)制(信號(hào)量、事件標(biāo)志、消 息郵箱等)、內(nèi)存管理、中斷管理等; 5、可以學(xué)習(xí)實(shí)時(shí)系統(tǒng)的一些C編程技巧;也是學(xué)習(xí)數(shù)據(jù) 結(jié)構(gòu)應(yīng)用的好例子。3 Sept. 2008Confidential軟件與硬件接口應(yīng)用編程接口 API應(yīng)用程應(yīng)用程序序計(jì)算機(jī)硬件操作系統(tǒng)操作系統(tǒng)圖
5、應(yīng)用軟件與操作系統(tǒng)1. 1 1. 1 操作系統(tǒng)概述操作系統(tǒng)概述操作系統(tǒng)是一種為應(yīng)用程序提供服務(wù)的系統(tǒng)軟件,管理計(jì)算機(jī)系統(tǒng)資源,是一個(gè)完整計(jì)算機(jī)系統(tǒng)的有機(jī)組成部分。從層次來看,操作系統(tǒng)位于計(jì)算機(jī)硬件之上,應(yīng)用軟件之下。所以也把它叫做應(yīng)用軟件的運(yùn)行平臺(tái)。3 Sept. 2008Confidential1.1.1 操作系統(tǒng)的作用OS在計(jì)算機(jī)應(yīng)用程序與計(jì)算機(jī)硬件系統(tǒng)之間,屏蔽了計(jì)算機(jī)硬件工作的一些細(xì)節(jié),并對(duì)系統(tǒng)中的資源進(jìn)行有效的管理。通過提供對(duì)硬件操作的抽象模型,使應(yīng)用程序員可以相對(duì)容易的使用計(jì)算機(jī)的硬件資源,得以在一個(gè)友好的平臺(tái)上進(jìn)行應(yīng)用程序的設(shè)計(jì)和開發(fā),大大地提高了應(yīng)用程序的開發(fā)效率。 計(jì)算機(jī)硬件
6、匯編語言編寫的硬件抽象層高級(jí)語言的接口應(yīng)用軟件操作系統(tǒng)OS從用戶的角度來看,它就是一大堆函數(shù)(API和系統(tǒng)函數(shù)),用戶可以調(diào)用(普通調(diào)用或系統(tǒng)調(diào)用)它們來對(duì)系統(tǒng)資源進(jìn)行操作。3 Sept. 2008Confidential1.1.2 操作系統(tǒng)的分類監(jiān)控程序操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)分時(shí)操作系統(tǒng)多道批處理操作系統(tǒng) 時(shí) 間 先 后 適用于多個(gè)用戶共享系統(tǒng)資源適用于計(jì)算中心等較大的計(jì)算機(jī)系統(tǒng)適用于嵌入式設(shè)備和有實(shí)時(shí)性要求的系統(tǒng)中批處理操作系統(tǒng)服務(wù)于一系列作業(yè)(job),一個(gè)作業(yè)是將程序和數(shù)據(jù)按預(yù)先確定的次序結(jié)合在一起,并可以提交給系統(tǒng)的一個(gè)組織單位。3 Sept. 2008Confidential1.1.
7、2 操作系統(tǒng)的分類(續(xù))監(jiān)控程序操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)分時(shí)操作系統(tǒng)多道批處理操作系統(tǒng) 時(shí) 間 先 后 適用于多個(gè)用戶共享系統(tǒng)資源適用于計(jì)算中心等較大的計(jì)算機(jī)系統(tǒng)適用于嵌入式設(shè)備和有實(shí)時(shí)性要求的系統(tǒng)中實(shí)時(shí)操作系統(tǒng)是我們介紹的重點(diǎn)3 Sept. 2008Confidential1. 2 1. 2 實(shí)時(shí)系統(tǒng)概述實(shí)時(shí)系統(tǒng)概述實(shí)時(shí)系統(tǒng)與非實(shí)時(shí)系統(tǒng)的本質(zhì)區(qū)別就在于實(shí)時(shí)系統(tǒng)中的任務(wù)以及對(duì)外部事件的響應(yīng)都有時(shí)間限制。任務(wù)的時(shí)間限制有兩種:一種是啟動(dòng)時(shí)間的限制,如按一定周期啟動(dòng)執(zhí)行,稱為周期性任務(wù);而隨機(jī)啟動(dòng)執(zhí)行的任務(wù)稱為非周期性任務(wù)。另一種時(shí)間限制為執(zhí)行時(shí)間的限制,即要求任務(wù)在規(guī)定時(shí)間內(nèi)完成處理內(nèi)容。3 Sep
8、t. 2008Confidential因?yàn)榭傮w來說實(shí)時(shí)系統(tǒng)是事件驅(qū)動(dòng)的,因此對(duì)外部事件響應(yīng)的時(shí)間限制指的是:能對(duì)來自外界的作用和信號(hào)在限定的時(shí)間范圍內(nèi)作出響應(yīng)。從實(shí)時(shí)系統(tǒng)的應(yīng)用來看實(shí)時(shí)操作系統(tǒng)可以分為兩種:和。1. 2 1. 2 實(shí)時(shí)系統(tǒng)概述實(shí)時(shí)系統(tǒng)概述3 Sept. 2008Confidential1.2.1 實(shí)時(shí)系統(tǒng)的特點(diǎn)應(yīng)用于實(shí)時(shí)處理系統(tǒng)的上位機(jī)和實(shí)時(shí)查詢系統(tǒng)等實(shí)時(shí)性較弱的實(shí)時(shí)系統(tǒng),并且提供了開發(fā)、調(diào)試、應(yīng)用一致的環(huán)境。應(yīng)用于實(shí)時(shí)性要求高的實(shí)時(shí)控制系統(tǒng),而且應(yīng)用程序的開發(fā)過程是通過一體一體化編程化編程和交叉開發(fā)交叉開發(fā)來完成的。嵌入式實(shí)時(shí)操作系統(tǒng)具有規(guī)模小(一般在幾K-幾十K 內(nèi))、可固
9、化、實(shí)時(shí)性強(qiáng)(在毫秒或微秒數(shù)量級(jí)上)的特點(diǎn) 。3 Sept. 2008Confidential1.2.2 實(shí)時(shí)系統(tǒng)外部過程分類 按外部過程的要求劃分對(duì)于軟實(shí)時(shí)系統(tǒng)來說,未能實(shí)時(shí)完成處理的結(jié)果,僅僅是帶來了額外的代價(jià),且通常這種代價(jià)能夠被接受。軟實(shí)時(shí) 系統(tǒng)硬實(shí)時(shí) 系統(tǒng)對(duì)于硬實(shí)時(shí)系統(tǒng)來說,未能實(shí)時(shí)完成處理是堅(jiān)決不允許的,它往往導(dǎo)致致命危害。如剎車系統(tǒng)、制導(dǎo)系統(tǒng)。3 Sept. 2008Confidential1.2.3 實(shí)時(shí)系統(tǒng)響應(yīng)時(shí)間分類 按系統(tǒng)響應(yīng)時(shí)間劃分強(qiáng)實(shí)時(shí) 系統(tǒng)一般實(shí)時(shí)系統(tǒng)弱實(shí)時(shí)系統(tǒng)響應(yīng)時(shí)間在100ms、10ms、ms或ms級(jí)以下響應(yīng)時(shí)間在s、10s以下響應(yīng)時(shí)間在10s以上或更長,隨負(fù)載
10、變化3 Sept. 2008Confidential1.2.4 實(shí)時(shí)系統(tǒng)軟件結(jié)構(gòu)分類 按軟件結(jié)構(gòu)劃分 輪循 系統(tǒng)initialize()app1_task() if (condition_1) action_1(); if (condition_2) action_2();. if (condition_n) acition_n();CPU開銷大,適合較慢速的簡單系統(tǒng)Check for InputDo Something事件驅(qū)動(dòng)系統(tǒng)前后臺(tái)系統(tǒng)多任務(wù)系統(tǒng)多處理器系統(tǒng)3 Sept. 2008Confidential1.2.5 前后臺(tái)系統(tǒng)中斷服務(wù)程序處理異步事件,這部分可以看成前臺(tái)行為,前臺(tái)也叫中斷
11、級(jí)。時(shí)間相關(guān)性很強(qiáng)的關(guān)鍵操作一定是靠中斷服務(wù)程序來保證的。循環(huán)中調(diào)用相應(yīng)的函數(shù)完成相應(yīng)的操作,這部分可以看成后臺(tái)行為,后臺(tái)也可以叫做任務(wù)級(jí)。這種系統(tǒng)在處理的及時(shí)性上比實(shí)際可以做到的要差。 ISRISRISRISR后臺(tái)前臺(tái)中斷服務(wù)程序時(shí)間3 Sept. 2008Confidential1.2.6 多任務(wù)系統(tǒng)簡單地說,就是能用一個(gè)處理器并發(fā)(注意,不是同時(shí)! )地運(yùn)行多個(gè)任務(wù)(程序)的計(jì)算機(jī)管理系統(tǒng)。并發(fā):由同一個(gè)處理器輪換地運(yùn)行多個(gè)任務(wù)。或者說是由多個(gè)任務(wù)輪流地占用處理器這個(gè)資源。且在占用這個(gè)資源期間,并不一定能夠把程序運(yùn)行完畢。并發(fā)過程示意圖處理器如何進(jìn)行程序的切換?3 Sept. 2008C
12、onfidential1.2.7 使用實(shí)時(shí)操作系統(tǒng)的必要性嵌入式實(shí)時(shí)操作系統(tǒng)在目前的嵌入式應(yīng)用中用得越來越廣泛,尤其在功能復(fù)雜、系統(tǒng)龐大的應(yīng)用中顯得愈來愈重要。在嵌入式應(yīng)用中,只有把CPU嵌入到系統(tǒng)中,同時(shí)又把操作系統(tǒng)嵌入進(jìn)去,才是真正的計(jì)算機(jī)嵌入式應(yīng)用。使用實(shí)時(shí)操作系統(tǒng)主要有以下幾個(gè)因素:v 嵌入式實(shí)時(shí)操作系統(tǒng)提高了系統(tǒng)的可靠性。 v 提高了開發(fā)效率,縮短了開發(fā)周期。 v 嵌入式實(shí)時(shí)操作系統(tǒng)充分發(fā)揮了CPU處理多任 務(wù)潛力。 3 Sept. 2008Confidential1.2.8 實(shí)時(shí)操作系統(tǒng)的優(yōu)缺點(diǎn):在嵌入式實(shí)時(shí)操作系統(tǒng)環(huán)境下開發(fā)實(shí)時(shí)應(yīng)用程序使程序的設(shè)計(jì)和擴(kuò)展變得容易,不需要大的改動(dòng)就
13、可以增加新的功能。通過將應(yīng)用程序分割成若干獨(dú)立的任務(wù)模塊,使應(yīng)用程序的設(shè)計(jì)過程大為簡化;而且對(duì)實(shí)時(shí)性要求苛刻的事件都得到了快速、可靠的處理。通過有效的系統(tǒng)服務(wù),嵌入式實(shí)時(shí)操作系統(tǒng)使得系統(tǒng)資源得到更好的利用。:但是,使用嵌入式實(shí)時(shí)操作系統(tǒng)還需要額外的ROM/RAM開銷,25%的CPU額外負(fù)荷,以及內(nèi)核的費(fèi)用。 3 Sept. 2008Confidential1. 3 1. 3 常見的嵌入式操作系統(tǒng)常見的嵌入式操作系統(tǒng) - - 嵌入式嵌入式LINUXLINUX uClinux是一個(gè)完全符合GNU/GPL公約的操作系統(tǒng),完全開放代碼。uClinux從Linux2.0/2.4內(nèi)核派生而來,沿襲了主流L
14、inux的絕大部分特性。它是專門針對(duì)沒有MMU的CPU,并且為嵌入式系統(tǒng)做了許多小型化的工作。適用于沒有虛擬內(nèi)存或內(nèi)存管理單元(MMU)的處理器,例如ARM7TDMI。它通常用于具有很少內(nèi)存或Flash的嵌入式系統(tǒng)。它保留了Linux的大部分優(yōu)點(diǎn):。 3 Sept. 2008Confidential1. 3 1. 3 常見的嵌入式操作系統(tǒng)常見的嵌入式操作系統(tǒng) - WINCE- WINCE 是微軟開發(fā)的一個(gè)開放的、可升級(jí)的32位嵌入式操作系統(tǒng),是基于掌上型電腦類的電子設(shè)備操作,它是精簡的Windows 95。Windows CE的圖形用戶界面相當(dāng)出色。Win CE具有模塊化、結(jié)構(gòu)化和基于Win3
15、2應(yīng)用程序接口以及與處理器無關(guān)等特點(diǎn)。Win CE不僅繼承了傳統(tǒng)的Windows圖形界面,并且在Win CE平臺(tái)上可以使用Windows 95/98上的編程工具(如Visual Basic、Visual C+等)、 3 Sept. 2008Confidential1. 3 1. 3 常見的嵌入式操作系統(tǒng)常見的嵌入式操作系統(tǒng) - - VxWorksVxWorks VxWorks操作系統(tǒng)是美國 公司于1983年設(shè)計(jì)開發(fā)的一種嵌入式實(shí)時(shí)操作系統(tǒng)(RTOS),是嵌入式開發(fā)環(huán)境的關(guān)鍵組成部分。良好的持續(xù)發(fā)展能力、高性能的內(nèi)核以及友好的用戶開發(fā)環(huán)境,在嵌入式實(shí)時(shí)操作系統(tǒng)領(lǐng)域占據(jù)一席之地。它以其良好的可靠性
16、和卓越的實(shí)時(shí)性被廣泛地應(yīng)用在通信、軍事、航空、航天等高精尖技術(shù)及實(shí)時(shí)性要求極高的領(lǐng)域中,如衛(wèi)星通訊、軍事演習(xí)、彈道制導(dǎo)、飛機(jī)導(dǎo)航等,甚至在1997年4月登陸火星表面的火星探測器上也使用到了VxWorks。3 Sept. 2008Confidential1. 3 1. 3 常見的嵌入式操作系統(tǒng)常見的嵌入式操作系統(tǒng) uITRONuITRON TRON是指“實(shí)時(shí)操作系統(tǒng)內(nèi)核(The Real-time Operating system Nucleux)”,它是在1984年由東京大學(xué)的Sakamura博士提出的,目的是為了建立一個(gè)理想的計(jì)算機(jī)體系結(jié)構(gòu)。通過工業(yè)界和大學(xué)院校的合作,TRON方案正被逐步用
17、到全新概念的計(jì)算機(jī)體系結(jié)構(gòu)中。 uITRON是TRON的一個(gè)子方案,它具有標(biāo)準(zhǔn)的實(shí)時(shí)內(nèi)核,適用于任何小規(guī)模的嵌入式系統(tǒng),日本國內(nèi)現(xiàn)有很多基于該內(nèi)核的產(chǎn)品,其中消費(fèi)電器較多。目前已成為日本事實(shí)上的工業(yè)標(biāo)準(zhǔn)。 3 Sept. 2008Confidential1. 3 1. 3 常見的嵌入式操作系統(tǒng)常見的嵌入式操作系統(tǒng) uC/OS-II uC/OS-II C/OS-II是一個(gè)源碼公開、可移植、可固化、可裁剪、占先式的實(shí)時(shí)多任務(wù)操作系統(tǒng)。其絕大部分源碼是用ANSI C寫的,使其可以方便的移植并支持大多數(shù)類型的處理器。C/OS-II通過了聯(lián)邦航空局(FAA)商用航行器認(rèn)證。自1992年問世以來,C/OS
18、-II已經(jīng)被應(yīng)用到數(shù)以百計(jì)的產(chǎn)品中。C/OS-II占用很少的系統(tǒng)資源,并且在高校教學(xué)使用是不需要申請(qǐng)?jiān)S可證。3 Sept. 2008Confidential嵌入式應(yīng)用程序網(wǎng)絡(luò)協(xié)議文件系統(tǒng)其它部件C/C+支持庫KernelPOSIX支持設(shè)備驅(qū)動(dòng)調(diào)試工具設(shè)備I/O接口板級(jí)支持包BSP (Board Support Packet)目標(biāo)機(jī)硬件圖 嵌入式操作系統(tǒng)組成1. 4 1. 4 操作系統(tǒng)體系結(jié)構(gòu)操作系統(tǒng)體系結(jié)構(gòu)3 Sept. 2008Confidential思考:嵌入式系統(tǒng)任務(wù)的典型結(jié)構(gòu)由于嵌入式系統(tǒng)完成的是對(duì)一個(gè)裝置或設(shè)備的控制任務(wù),任務(wù)的功能相對(duì)固定,因此在一般情況下系統(tǒng)支持的典型任務(wù)是一個(gè)無
19、限循環(huán)結(jié)構(gòu),C語言任務(wù)結(jié)構(gòu)如下:void mytask(void *pdata)for(;)用戶編寫的代碼;從任務(wù)的代碼來看,任務(wù)實(shí)質(zhì)上就是一個(gè)返回為void的函數(shù),并在函數(shù)無限循環(huán)中完成用戶的工作。3 Sept. 2008Confidential1. 5 1. 5 操作系統(tǒng)常用的數(shù)據(jù)結(jié)構(gòu)操作系統(tǒng)常用的數(shù)據(jù)結(jié)構(gòu) 數(shù)組數(shù)組數(shù)組1、同一數(shù)據(jù)類型數(shù)據(jù)的集合;2、占用連續(xù)內(nèi)存空間;3、每個(gè)元素都有一個(gè)唯一編號(hào);4、數(shù)組名是個(gè)常地址。uchar a10a0a1a2a3a9aa+1使用上的特點(diǎn):1、分類存放;2、檢索速度快且恒定;3、缺點(diǎn):占用連續(xù)空間大a+2a+3a+9應(yīng)用:記錄同類事物的表3 Sept
20、. 2008Confidential位圖是數(shù)組的一種特殊應(yīng)用應(yīng)用:登記表uchar a10 ;(可以記錄80個(gè)事物的狀態(tài))a0a1a2a3a9aa+1a+2a+3a+91/0D7 D6 D5 D4 D3 D2 D1 D01. 5 1. 5 操作系統(tǒng)常用的數(shù)據(jù)結(jié)構(gòu)操作系統(tǒng)常用的數(shù)據(jù)結(jié)構(gòu) 位圖位圖3 Sept. 2008Confidential1. 5 1. 5 操作系統(tǒng)常用的數(shù)據(jù)結(jié)構(gòu)操作系統(tǒng)常用的數(shù)據(jù)結(jié)構(gòu) 結(jié)構(gòu)體結(jié)構(gòu)體1。不同數(shù)據(jù)類型數(shù)據(jù)的集合;2。占用連續(xù)內(nèi)存空間;struct Student char age; char*name; char sex;使用上的特點(diǎn):1。用來描述同一事物的不同
21、屬性;2。Struct Student stu10檢索速度快且恒定;3 Sept. 2008Confidential1. 5 1. 5 操作系統(tǒng)常用的數(shù)據(jù)結(jié)構(gòu)操作系統(tǒng)常用的數(shù)據(jù)結(jié)構(gòu) 鏈表鏈表next next 兩個(gè)元素的鏈表struct Student Student*next char age; char*name; char sex;1。不同數(shù)據(jù)類型數(shù)據(jù)的集合;2。對(duì)同類代碼進(jìn)行統(tǒng)一管理,不占用連續(xù)內(nèi)存空間。3 Sept. 2008Confidential1. 5 1. 5 操作系統(tǒng)常用的數(shù)據(jù)結(jié)構(gòu)操作系統(tǒng)常用的數(shù)據(jù)結(jié)構(gòu) 鏈表鏈表next next 兩個(gè)元素的鏈表struct Student
22、 Student*next char age; char*name; char sex;使用上的特點(diǎn):1??臻g上不連續(xù)(不需要大量的連續(xù)存儲(chǔ)空間);2。檢索耗費(fèi)的時(shí)間不固定;應(yīng)用:存放大量的較大的表,類似檔案柜3 Sept. 2008Confidential1. 5 1. 5 操作系統(tǒng)常用的數(shù)據(jù)結(jié)構(gòu)操作系統(tǒng)常用的數(shù)據(jù)結(jié)構(gòu) 隊(duì)列隊(duì)列按照先進(jìn)先出的規(guī)則組織的數(shù)據(jù)結(jié)構(gòu)可以用數(shù)組也可以用鏈表來實(shí)現(xiàn)應(yīng)用:主要用于對(duì)象的排隊(duì)?wèi)?yīng)用:主要用于對(duì)象的排隊(duì)3 Sept. 2008Confidential1. 5 1. 5 操作系統(tǒng)常用的數(shù)據(jù)結(jié)構(gòu)操作系統(tǒng)常用的數(shù)據(jù)結(jié)構(gòu) 堆棧堆棧按照先進(jìn)后出規(guī)則組織的數(shù)據(jù)結(jié)構(gòu)主要用數(shù)
23、組來實(shí)現(xiàn)主要用于程序模塊的嵌套運(yùn)行3 Sept. 2008Confidential1. 6 1. 6 操作系統(tǒng)的基本概念操作系統(tǒng)的基本概念代碼的臨界段也稱為臨界區(qū),指處理時(shí)不可分割的代碼,運(yùn)行這些代碼不允許被打斷。一旦這部分代碼開始執(zhí)行,則不允許任何中斷打入。為確保臨界區(qū)代碼的執(zhí)行,在進(jìn)入臨界區(qū)之前要關(guān)中斷,而臨界區(qū)代碼執(zhí)行完成以后要立即開中斷。 代碼的臨界段代碼的臨界段3 Sept. 2008Confidential1. 6 1. 6 操作系統(tǒng)的基本概念(續(xù))操作系統(tǒng)的基本概念(續(xù))共享資源共享資源可以被一個(gè)以上任務(wù)使用的資源叫做共享資源。為了防止數(shù)據(jù)被破壞,每個(gè)任務(wù)在與共享資源打交道時(shí),必
24、須獨(dú)占該資源,這叫做互斥。任務(wù)A共享資源任務(wù)B任務(wù)C信號(hào)量訪問共享資源之前申請(qǐng)信號(hào)量其它任務(wù)訪問受阻而不能使用共享資源得到允許后,才能使用共享資源3 Sept. 2008Confidential1. 6 1. 6 操作系統(tǒng)的基本概念(續(xù))操作系統(tǒng)的基本概念(續(xù))任務(wù)的優(yōu)先級(jí)任務(wù)的優(yōu)先級(jí) 每個(gè)任務(wù)都有其優(yōu)先級(jí)(priority),分為靜態(tài)優(yōu)先級(jí)和動(dòng)態(tài)優(yōu)先級(jí)兩種。 應(yīng)用程序執(zhí)行過程中各任務(wù)優(yōu)先級(jí)不變,則稱之為靜態(tài)優(yōu)先級(jí)。在靜態(tài)優(yōu)先級(jí)系統(tǒng)中,各任務(wù)以及它們的時(shí)間約束在程序編譯時(shí)是已知的。 應(yīng)用程序執(zhí)行過程中,如果任務(wù)的優(yōu)先級(jí)是可變的,則稱之為動(dòng)態(tài)優(yōu)先級(jí)。任務(wù)執(zhí)行時(shí)的順序3 Sept. 2008Con
25、fidential1. 6 1. 6 操作系統(tǒng)的基本概念(續(xù))操作系統(tǒng)的基本概念(續(xù))調(diào)度調(diào)度 調(diào)度器就緒任務(wù)隊(duì)列CPU 剝奪或自愿放棄新任務(wù)調(diào)度就是決定該輪到哪個(gè)任務(wù)運(yùn)行了執(zhí)行3 Sept. 2008Confidential1. 6 1. 6 操作系統(tǒng)的基本概念(續(xù))操作系統(tǒng)的基本概念(續(xù))調(diào)度的時(shí)機(jī)及方式調(diào)度的時(shí)機(jī)及方式1.當(dāng)一個(gè)新的任務(wù)被創(chuàng)建時(shí),是執(zhí)行新任務(wù)還是繼續(xù)執(zhí)行父任務(wù)?2.當(dāng)一個(gè)任務(wù)運(yùn)行完畢時(shí);3.當(dāng)一個(gè)任務(wù)由于I/O、信號(hào)量或其他的某個(gè)原因被阻塞時(shí);4.當(dāng)一個(gè)I/O中斷發(fā)生時(shí),表明某個(gè)I/O操作已經(jīng)完成,而等待該I/O操作的任務(wù)轉(zhuǎn)入就緒狀態(tài);5.當(dāng)一個(gè)時(shí)鐘節(jié)拍中斷發(fā)生時(shí)。不可搶
26、占(不可搶占(non-preemptivenon-preemptive)調(diào)度方式)調(diào)度方式:一個(gè)任務(wù)若被選中就一直運(yùn)行下去,直到它被阻塞(I/O,或正在等待其他任務(wù)),或主動(dòng)地交出CPU??蓳屨迹蓳屨迹╬reemptivepreemptive)調(diào)度方式:)調(diào)度方式:當(dāng)一個(gè)任務(wù)在運(yùn)行時(shí),調(diào)度程序可以打斷它。另外,在其他一些情形下,如就緒隊(duì)列中有新任務(wù)的優(yōu)先級(jí)高于當(dāng)前正運(yùn)行的任務(wù),也可能立即進(jìn)行調(diào)度。3 Sept. 2008Confidential1. 6 1. 6 操作系統(tǒng)的基本概念(續(xù))操作系統(tǒng)的基本概念(續(xù))非占先式非占先式( (不可剝奪型不可剝奪型) )內(nèi)核內(nèi)核非占先式(non-pree
27、mptive) 非占先式內(nèi)核要求每個(gè)任務(wù)自我放棄CPU的所有權(quán)。非占先式調(diào)度法也稱作合作型多任務(wù),各個(gè)任務(wù)彼此合作共享一個(gè)CPU。異步事件還是由中斷服務(wù)來處理。中斷服務(wù)可以使一個(gè)高優(yōu)先級(jí)的任務(wù)由掛起狀態(tài)變?yōu)榫途w狀態(tài)。但中斷服務(wù)以后控制權(quán)還是回到原來被中斷了的那個(gè)任務(wù),直到該任務(wù)主動(dòng)放棄CPU的使用權(quán)時(shí),那個(gè)高優(yōu)先級(jí)的任務(wù)才能獲得CPU的使用權(quán)。3 Sept. 2008Confidential1. 6 1. 6 操作系統(tǒng)的基本概念(續(xù))操作系統(tǒng)的基本概念(續(xù))占先式(可剝奪型)內(nèi)核占先式(可剝奪型)內(nèi)核占先式(preemptive)也稱為可剝奪型當(dāng)系統(tǒng)響應(yīng)時(shí)間很重要時(shí),要使用占先式內(nèi)核。因此絕大
28、多數(shù)商業(yè)上銷售的實(shí)時(shí)內(nèi)核都是占先式內(nèi)核。最高優(yōu)先級(jí)的任務(wù)一旦就緒,總能得到CPU的控制權(quán)。當(dāng)一個(gè)運(yùn)行著的任務(wù)使一個(gè)比它優(yōu)先級(jí)高的任務(wù)進(jìn)入了就緒狀態(tài),當(dāng)前任務(wù)的CPU使用權(quán)就被剝奪了,或者說被掛起了,那個(gè)高優(yōu)先級(jí)的任務(wù)立刻得到了CPU的控制權(quán)。如果是中斷服務(wù)子程序使一個(gè)高優(yōu)先級(jí)的任務(wù)進(jìn)入就緒態(tài),中斷完成時(shí),中斷了的任務(wù)被掛起,優(yōu)先級(jí)高的那個(gè)任務(wù)開始運(yùn)行。3 Sept. 2008Confidential1. 6 1. 6 操作系統(tǒng)的基本概念(續(xù))操作系統(tǒng)的基本概念(續(xù))- -可重入函數(shù)可重入函數(shù)( (多次調(diào)多次調(diào)用結(jié)果都正確)用結(jié)果都正確)一個(gè)不可重入型函數(shù)的例子int Temp;void swa
29、p (int *x,int*y)Temp=*x;*x=*y;*y=Temp; 一個(gè)可重入型函數(shù)的例子void swap (int *x,int*y)int Temp;Temp=*x;*x=*y;*y=Temp;可被一個(gè)以上的任務(wù)可被一個(gè)以上的任務(wù)調(diào)用而不必?fù)?dān)心數(shù)據(jù)調(diào)用而不必?fù)?dān)心數(shù)據(jù)被破壞(對(duì)于所有調(diào)被破壞(對(duì)于所有調(diào)用該函數(shù)的任務(wù)來講,用該函數(shù)的任務(wù)來講,結(jié)果都正確)。結(jié)果都正確)。3 Sept. 2008Confidential1. 6 1. 6 操作系統(tǒng)的基本概念(續(xù))操作系統(tǒng)的基本概念(續(xù))假如假如TempTemp是全局變量,那么是全局變量,那么swapswap函數(shù)是可重入函數(shù)函數(shù)是可重
30、入函數(shù)? ? 可以被一個(gè)以上的任務(wù)調(diào)用,而不必?fù)?dān)心數(shù)據(jù)的破壞??芍厝胄秃瘮?shù)任何時(shí)候都可以被中斷,一段時(shí)間以后又可以運(yùn)行,而相應(yīng)數(shù)據(jù)不會(huì)丟失??芍厝胄秃瘮?shù)最好只使用局部變量,即變量保存在CPU寄存器中或堆棧中。3 Sept. 2008Confidential1. 6 1. 6 操作系統(tǒng)的基本概念(續(xù))操作系統(tǒng)的基本概念(續(xù))死鎖死鎖死鎖(deadlock)指兩個(gè)任務(wù)無限期地互相等待對(duì)方控制著的資源。設(shè)任務(wù)T1正獨(dú)享資源R1 ,任務(wù)T2正獨(dú)享資源R2,此時(shí)任務(wù)T1又要使用資源R2,任務(wù)T2也要使用資源R1,于是兩個(gè)任務(wù)都無法繼續(xù)執(zhí)行了。防止死鎖的方法,讓每個(gè)任務(wù): 1)先得到全部需要的資源,再做下
31、一步的工作; 2)用同樣的順序申請(qǐng)多個(gè)資源,釋放時(shí)使用相反順序;另外內(nèi)核允許用戶定義等待超時(shí),以化解死鎖。死鎖一般發(fā)生在大型多任務(wù)系統(tǒng)中,嵌入式系統(tǒng)中不易出現(xiàn)。3 Sept. 2008Confidential1. 6 1. 6 操作系統(tǒng)的基本概念(續(xù))操作系統(tǒng)的基本概念(續(xù))中斷中斷 中斷是一種硬件機(jī)制,通知CPU有個(gè)異步事件發(fā)生了。 中斷一旦被識(shí)別,CPU保存部分或全部現(xiàn)場(context)后跳轉(zhuǎn)到中斷服務(wù)子程序(ISR) ,ISR結(jié)束后可返回到: 對(duì)不可剝奪型內(nèi)核,返回到被中斷了的任務(wù); 對(duì)可剝奪型內(nèi)核,返回到就緒狀態(tài)優(yōu)先級(jí)最高的任務(wù)。 中斷使得CPU可以在事件發(fā)生時(shí)才進(jìn)行處理,而不必讓C
32、PU不斷地查詢是否有事件發(fā)生。 通過開/關(guān)中斷可以讓CPU響應(yīng)或不響應(yīng)中斷。 在實(shí)時(shí)環(huán)境應(yīng)注意不要使關(guān)中斷時(shí)間過長。3 Sept. 2008Confidential1. 6 1. 6 操作系統(tǒng)的基本概念(續(xù))操作系統(tǒng)的基本概念(續(xù))時(shí)鐘節(jié)拍時(shí)鐘節(jié)拍 時(shí)鐘節(jié)拍(clock tick)是特定的周期性中斷,是實(shí)時(shí)內(nèi)核的心臟。 周期性中斷之間的時(shí)間間隔取決于系統(tǒng)實(shí)時(shí)性要求,一般為10-100ms。 時(shí)鐘節(jié)拍率越快,系統(tǒng)的額外開銷就越大。3 Sept. 2008Confidential1. 7 1. 7 任務(wù)運(yùn)行的基本要素任務(wù)運(yùn)行的基本要素任務(wù)代碼任務(wù)堆棧內(nèi)存處理器PCSP處理器通過兩個(gè)指針寄存器(PC
33、和SP)來與任務(wù)代碼和任務(wù)堆棧建立聯(lián)系并運(yùn)行它寄存器組程序運(yùn)行環(huán)境運(yùn)行環(huán)境包括了兩部分:處理器中的運(yùn)行環(huán)境和內(nèi)存中的運(yùn)行環(huán)境3 Sept. 2008Confidential1.7.1 多任務(wù)運(yùn)行時(shí)的問題任務(wù)代碼任務(wù)堆棧內(nèi)存處理器PCSP任務(wù)代碼任務(wù)堆棧內(nèi)存任務(wù)代碼任務(wù)堆棧內(nèi)存?當(dāng)有多個(gè)任務(wù)時(shí),處理器中的運(yùn)行環(huán)境應(yīng)該怎么辦?寄存器組程序運(yùn)行環(huán)境3 Sept. 2008Confidential1.7.2 多任務(wù)運(yùn)行時(shí)的問題處理程序 虛擬處理器PCSP 虛擬處理器PCSP 虛擬處理器PCSP 虛擬處理器PC調(diào)度器程序處理器PCSP1.在內(nèi)存中為每個(gè)任務(wù)創(chuàng)建一個(gè)虛擬的處理器由操作系統(tǒng)的調(diào)度器按某種規(guī)則來進(jìn)行這兩個(gè)復(fù)制工作復(fù)制2.當(dāng)需要中止當(dāng)前任務(wù)時(shí),則把任務(wù)對(duì)應(yīng)的實(shí)際處理器復(fù)制到虛擬處理器(內(nèi)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《高中化學(xué)總復(fù)習(xí)》課件
- 作品大賽回復(fù)函
- 文化和旅游交流合作協(xié)議
- 《課件版權(quán)問題》課件
- 《智能安防系統(tǒng)介紹》課件
- 尊重勞動(dòng) 創(chuàng)新未來
- 排球教學(xué)課件之防守與攔網(wǎng)
- 《產(chǎn)后護(hù)理》課件
- 《生物基因》課件
- 2025抵押擔(dān)保合同范本
- 配電網(wǎng)自動(dòng)化技術(shù)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 套管修復(fù)(2010大賽)
- 人居與環(huán)境-詩意的棲居 課件-2024-2025學(xué)年高中美術(shù)人美版(2019)美術(shù)鑒賞
- 遼寧省鞍山市(2024年-2025年小學(xué)五年級(jí)語文)部編版階段練習(xí)(下學(xué)期)試卷及答案
- 酒店工作安全培訓(xùn)(共60張課件)
- 歷史人物范仲淹介紹
- 四年級(jí)下冊(cè)數(shù)學(xué)方程題100道及答案
- 2024年中證金融研究院事業(yè)單位招聘23人歷年高頻難、易錯(cuò)點(diǎn)500題模擬試題附帶答案詳解
- 2024掛軌式巡檢機(jī)器人
- CJJT 182-2014 城鎮(zhèn)供水與污水處理化驗(yàn)室技術(shù)規(guī)范
- 排水暗渠施工方案
評(píng)論
0/150
提交評(píng)論