第1章 操作系統(tǒng)的基本概念_第1頁
第1章 操作系統(tǒng)的基本概念_第2頁
第1章 操作系統(tǒng)的基本概念_第3頁
第1章 操作系統(tǒng)的基本概念_第4頁
第1章 操作系統(tǒng)的基本概念_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、3 Sept. 2008Confidential嵌入式操作系統(tǒng)原理嵌入式操作系統(tǒng)原理東軟IT人才實訓(xùn)中心Copyright 2008 By Neusoft Group. All rights reserved3 Sept. 2008Confidential引言引言嵌入式操作系統(tǒng)(嵌入式操作系統(tǒng)(RTOS)早期情況:)早期情況:只有硬件系統(tǒng)的“裸機”,沒有操作系統(tǒng)作為開發(fā)平臺。RTOS商業(yè)軟件價格昂貴,而且大部分不提供源碼。早期MCU存儲資源有限,容不下RTOS本身的開銷。隨著半導(dǎo)體技術(shù)的發(fā)展,嵌入式系統(tǒng)的存儲容量也逐漸增加,RTOS的使 用也隨之越來越普及;而且開源的實時操作系統(tǒng)越來越多。學(xué)習(xí)

2、操作系統(tǒng)的必要性:學(xué)習(xí)操作系統(tǒng)的必要性: 軟件的系統(tǒng)設(shè)計、架構(gòu)設(shè)計必不可少 。學(xué)習(xí)操作系統(tǒng)對于修正系統(tǒng)相關(guān)的疑難Bug必不可少 。學(xué)習(xí)操作系統(tǒng)對于深入了解計算機知識必不可少 。如何學(xué)好本門課程如何學(xué)好本門課程:多看源碼,多做練習(xí);理論與實踐相結(jié)合,知行合一。本課程學(xué)習(xí)目標(biāo):本課程學(xué)習(xí)目標(biāo):理解uC/OS-II內(nèi)核,掌握在uC/OS-II環(huán)境下并發(fā)程序設(shè)計思想。 3 Sept. 2008Confidential課程結(jié)構(gòu)內(nèi)容內(nèi)容課時(課時(H H)第一章:操作系統(tǒng)的基本概念第一章:操作系統(tǒng)的基本概念3.03.0第二章:第二章:COS與與COS-II的任務(wù)的任務(wù)9.09.0第三章:第三章:COS-I

3、I的中斷和時鐘的中斷和時鐘3.03.0第四章:任務(wù)的同步與通信第四章:任務(wù)的同步與通信6.06.0第五章:信號量集第五章:信號量集3.03.0第六章:內(nèi)存的動態(tài)分配第六章:內(nèi)存的動態(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)該掌握如下知識: 操作系統(tǒng)概述 常用的操作系統(tǒng) 操作系統(tǒng)常用的數(shù)據(jù)結(jié)構(gòu) 操作系統(tǒng)基本概念學(xué)時:學(xué)時:3.03.0學(xué)時學(xué)時教學(xué)方法:講授教學(xué)方法:講授pptppt點評點評案例分析案例

4、分析3 Sept. 2008Confidential為什么要學(xué)習(xí)C/OS-II對于初學(xué)者,從C/OS-II開始是個明智的選擇。 1、提供源代碼和詳盡的注釋; 2、可移植性強:大部分源碼采用C語言編寫,與微處理 器硬件相關(guān)的部分用匯編語言編寫; 3、可固化、可裁剪; 4、具有主流嵌入式操作系統(tǒng)的一些通用功能:多任務(wù)調(diào) 度管理、任務(wù)間的通信機制(信號量、事件標(biāo)志、消 息郵箱等)、內(nèi)存管理、中斷管理等; 5、可以學(xué)習(xí)實時系統(tǒng)的一些C編程技巧;也是學(xué)習(xí)數(shù)據(jù) 結(jié)構(gòu)應(yīng)用的好例子。3 Sept. 2008Confidential軟件與硬件接口應(yīng)用編程接口 API應(yīng)用程應(yīng)用程序序計算機硬件操作系統(tǒng)操作系統(tǒng)圖

5、應(yīng)用軟件與操作系統(tǒng)1. 1 1. 1 操作系統(tǒng)概述操作系統(tǒng)概述操作系統(tǒng)是一種為應(yīng)用程序提供服務(wù)的系統(tǒng)軟件,管理計算機系統(tǒng)資源,是一個完整計算機系統(tǒng)的有機組成部分。從層次來看,操作系統(tǒng)位于計算機硬件之上,應(yīng)用軟件之下。所以也把它叫做應(yīng)用軟件的運行平臺。3 Sept. 2008Confidential1.1.1 操作系統(tǒng)的作用OS在計算機應(yīng)用程序與計算機硬件系統(tǒng)之間,屏蔽了計算機硬件工作的一些細節(jié),并對系統(tǒng)中的資源進行有效的管理。通過提供對硬件操作的抽象模型,使應(yīng)用程序員可以相對容易的使用計算機的硬件資源,得以在一個友好的平臺上進行應(yīng)用程序的設(shè)計和開發(fā),大大地提高了應(yīng)用程序的開發(fā)效率。 計算機硬件

6、匯編語言編寫的硬件抽象層高級語言的接口應(yīng)用軟件操作系統(tǒng)OS從用戶的角度來看,它就是一大堆函數(shù)(API和系統(tǒng)函數(shù)),用戶可以調(diào)用(普通調(diào)用或系統(tǒng)調(diào)用)它們來對系統(tǒng)資源進行操作。3 Sept. 2008Confidential1.1.2 操作系統(tǒng)的分類監(jiān)控程序操作系統(tǒng)實時操作系統(tǒng)分時操作系統(tǒng)多道批處理操作系統(tǒng) 時 間 先 后 適用于多個用戶共享系統(tǒng)資源適用于計算中心等較大的計算機系統(tǒng)適用于嵌入式設(shè)備和有實時性要求的系統(tǒng)中批處理操作系統(tǒng)服務(wù)于一系列作業(yè)(job),一個作業(yè)是將程序和數(shù)據(jù)按預(yù)先確定的次序結(jié)合在一起,并可以提交給系統(tǒng)的一個組織單位。3 Sept. 2008Confidential1.1.

7、2 操作系統(tǒng)的分類(續(xù))監(jiān)控程序操作系統(tǒng)實時操作系統(tǒng)分時操作系統(tǒng)多道批處理操作系統(tǒng) 時 間 先 后 適用于多個用戶共享系統(tǒng)資源適用于計算中心等較大的計算機系統(tǒng)適用于嵌入式設(shè)備和有實時性要求的系統(tǒng)中實時操作系統(tǒng)是我們介紹的重點3 Sept. 2008Confidential1. 2 1. 2 實時系統(tǒng)概述實時系統(tǒng)概述實時系統(tǒng)與非實時系統(tǒng)的本質(zhì)區(qū)別就在于實時系統(tǒng)中的任務(wù)以及對外部事件的響應(yīng)都有時間限制。任務(wù)的時間限制有兩種:一種是啟動時間的限制,如按一定周期啟動執(zhí)行,稱為周期性任務(wù);而隨機啟動執(zhí)行的任務(wù)稱為非周期性任務(wù)。另一種時間限制為執(zhí)行時間的限制,即要求任務(wù)在規(guī)定時間內(nèi)完成處理內(nèi)容。3 Sep

8、t. 2008Confidential因為總體來說實時系統(tǒng)是事件驅(qū)動的,因此對外部事件響應(yīng)的時間限制指的是:能對來自外界的作用和信號在限定的時間范圍內(nèi)作出響應(yīng)。從實時系統(tǒng)的應(yīng)用來看實時操作系統(tǒng)可以分為兩種:和。1. 2 1. 2 實時系統(tǒng)概述實時系統(tǒng)概述3 Sept. 2008Confidential1.2.1 實時系統(tǒng)的特點應(yīng)用于實時處理系統(tǒng)的上位機和實時查詢系統(tǒng)等實時性較弱的實時系統(tǒng),并且提供了開發(fā)、調(diào)試、應(yīng)用一致的環(huán)境。應(yīng)用于實時性要求高的實時控制系統(tǒng),而且應(yīng)用程序的開發(fā)過程是通過一體一體化編程化編程和交叉開發(fā)交叉開發(fā)來完成的。嵌入式實時操作系統(tǒng)具有規(guī)模小(一般在幾K-幾十K 內(nèi))、可固

9、化、實時性強(在毫秒或微秒數(shù)量級上)的特點 。3 Sept. 2008Confidential1.2.2 實時系統(tǒng)外部過程分類 按外部過程的要求劃分對于軟實時系統(tǒng)來說,未能實時完成處理的結(jié)果,僅僅是帶來了額外的代價,且通常這種代價能夠被接受。軟實時 系統(tǒng)硬實時 系統(tǒng)對于硬實時系統(tǒng)來說,未能實時完成處理是堅決不允許的,它往往導(dǎo)致致命危害。如剎車系統(tǒng)、制導(dǎo)系統(tǒng)。3 Sept. 2008Confidential1.2.3 實時系統(tǒng)響應(yīng)時間分類 按系統(tǒng)響應(yīng)時間劃分強實時 系統(tǒng)一般實時系統(tǒng)弱實時系統(tǒng)響應(yīng)時間在100ms、10ms、ms或ms級以下響應(yīng)時間在s、10s以下響應(yīng)時間在10s以上或更長,隨負載

10、變化3 Sept. 2008Confidential1.2.4 實時系統(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ū)動系統(tǒng)前后臺系統(tǒng)多任務(wù)系統(tǒng)多處理器系統(tǒng)3 Sept. 2008Confidential1.2.5 前后臺系統(tǒng)中斷服務(wù)程序處理異步事件,這部分可以看成前臺行為,前臺也叫中斷

11、級。時間相關(guān)性很強的關(guān)鍵操作一定是靠中斷服務(wù)程序來保證的。循環(huán)中調(diào)用相應(yīng)的函數(shù)完成相應(yīng)的操作,這部分可以看成后臺行為,后臺也可以叫做任務(wù)級。這種系統(tǒng)在處理的及時性上比實際可以做到的要差。 ISRISRISRISR后臺前臺中斷服務(wù)程序時間3 Sept. 2008Confidential1.2.6 多任務(wù)系統(tǒng)簡單地說,就是能用一個處理器并發(fā)(注意,不是同時! )地運行多個任務(wù)(程序)的計算機管理系統(tǒng)。并發(fā):由同一個處理器輪換地運行多個任務(wù)?;蛘哒f是由多個任務(wù)輪流地占用處理器這個資源。且在占用這個資源期間,并不一定能夠把程序運行完畢。并發(fā)過程示意圖處理器如何進行程序的切換?3 Sept. 2008C

12、onfidential1.2.7 使用實時操作系統(tǒng)的必要性嵌入式實時操作系統(tǒng)在目前的嵌入式應(yīng)用中用得越來越廣泛,尤其在功能復(fù)雜、系統(tǒng)龐大的應(yīng)用中顯得愈來愈重要。在嵌入式應(yīng)用中,只有把CPU嵌入到系統(tǒng)中,同時又把操作系統(tǒng)嵌入進去,才是真正的計算機嵌入式應(yīng)用。使用實時操作系統(tǒng)主要有以下幾個因素:v 嵌入式實時操作系統(tǒng)提高了系統(tǒng)的可靠性。 v 提高了開發(fā)效率,縮短了開發(fā)周期。 v 嵌入式實時操作系統(tǒng)充分發(fā)揮了CPU處理多任 務(wù)潛力。 3 Sept. 2008Confidential1.2.8 實時操作系統(tǒng)的優(yōu)缺點:在嵌入式實時操作系統(tǒng)環(huán)境下開發(fā)實時應(yīng)用程序使程序的設(shè)計和擴展變得容易,不需要大的改動就

13、可以增加新的功能。通過將應(yīng)用程序分割成若干獨立的任務(wù)模塊,使應(yīng)用程序的設(shè)計過程大為簡化;而且對實時性要求苛刻的事件都得到了快速、可靠的處理。通過有效的系統(tǒng)服務(wù),嵌入式實時操作系統(tǒng)使得系統(tǒng)資源得到更好的利用。:但是,使用嵌入式實時操作系統(tǒng)還需要額外的ROM/RAM開銷,25%的CPU額外負荷,以及內(nèi)核的費用。 3 Sept. 2008Confidential1. 3 1. 3 常見的嵌入式操作系統(tǒng)常見的嵌入式操作系統(tǒng) - - 嵌入式嵌入式LINUXLINUX uClinux是一個完全符合GNU/GPL公約的操作系統(tǒng),完全開放代碼。uClinux從Linux2.0/2.4內(nèi)核派生而來,沿襲了主流L

14、inux的絕大部分特性。它是專門針對沒有MMU的CPU,并且為嵌入式系統(tǒng)做了許多小型化的工作。適用于沒有虛擬內(nèi)存或內(nèi)存管理單元(MMU)的處理器,例如ARM7TDMI。它通常用于具有很少內(nèi)存或Flash的嵌入式系統(tǒng)。它保留了Linux的大部分優(yōu)點:。 3 Sept. 2008Confidential1. 3 1. 3 常見的嵌入式操作系統(tǒng)常見的嵌入式操作系統(tǒng) - WINCE- WINCE 是微軟開發(fā)的一個開放的、可升級的32位嵌入式操作系統(tǒng),是基于掌上型電腦類的電子設(shè)備操作,它是精簡的Windows 95。Windows CE的圖形用戶界面相當(dāng)出色。Win CE具有模塊化、結(jié)構(gòu)化和基于Win3

15、2應(yīng)用程序接口以及與處理器無關(guān)等特點。Win CE不僅繼承了傳統(tǒng)的Windows圖形界面,并且在Win CE平臺上可以使用Windows 95/98上的編程工具(如Visual Basic、Visual C+等)、 3 Sept. 2008Confidential1. 3 1. 3 常見的嵌入式操作系統(tǒng)常見的嵌入式操作系統(tǒng) - - VxWorksVxWorks VxWorks操作系統(tǒng)是美國 公司于1983年設(shè)計開發(fā)的一種嵌入式實時操作系統(tǒng)(RTOS),是嵌入式開發(fā)環(huán)境的關(guān)鍵組成部分。良好的持續(xù)發(fā)展能力、高性能的內(nèi)核以及友好的用戶開發(fā)環(huán)境,在嵌入式實時操作系統(tǒng)領(lǐng)域占據(jù)一席之地。它以其良好的可靠性

16、和卓越的實時性被廣泛地應(yīng)用在通信、軍事、航空、航天等高精尖技術(shù)及實時性要求極高的領(lǐng)域中,如衛(wèi)星通訊、軍事演習(xí)、彈道制導(dǎo)、飛機導(dǎo)航等,甚至在1997年4月登陸火星表面的火星探測器上也使用到了VxWorks。3 Sept. 2008Confidential1. 3 1. 3 常見的嵌入式操作系統(tǒng)常見的嵌入式操作系統(tǒng) uITRONuITRON TRON是指“實時操作系統(tǒng)內(nèi)核(The Real-time Operating system Nucleux)”,它是在1984年由東京大學(xué)的Sakamura博士提出的,目的是為了建立一個理想的計算機體系結(jié)構(gòu)。通過工業(yè)界和大學(xué)院校的合作,TRON方案正被逐步用

17、到全新概念的計算機體系結(jié)構(gòu)中。 uITRON是TRON的一個子方案,它具有標(biāo)準(zhǔn)的實時內(nèi)核,適用于任何小規(guī)模的嵌入式系統(tǒng),日本國內(nèi)現(xiàn)有很多基于該內(nèi)核的產(chǎn)品,其中消費電器較多。目前已成為日本事實上的工業(yè)標(biāo)準(zhǔn)。 3 Sept. 2008Confidential1. 3 1. 3 常見的嵌入式操作系統(tǒng)常見的嵌入式操作系統(tǒng) uC/OS-II uC/OS-II C/OS-II是一個源碼公開、可移植、可固化、可裁剪、占先式的實時多任務(wù)操作系統(tǒng)。其絕大部分源碼是用ANSI C寫的,使其可以方便的移植并支持大多數(shù)類型的處理器。C/OS-II通過了聯(lián)邦航空局(FAA)商用航行器認證。自1992年問世以來,C/OS

18、-II已經(jīng)被應(yīng)用到數(shù)以百計的產(chǎn)品中。C/OS-II占用很少的系統(tǒng)資源,并且在高校教學(xué)使用是不需要申請許可證。3 Sept. 2008Confidential嵌入式應(yīng)用程序網(wǎng)絡(luò)協(xié)議文件系統(tǒng)其它部件C/C+支持庫KernelPOSIX支持設(shè)備驅(qū)動調(diào)試工具設(shè)備I/O接口板級支持包BSP (Board Support Packet)目標(biāo)機硬件圖 嵌入式操作系統(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)完成的是對一個裝置或設(shè)備的控制任務(wù),任務(wù)的功能相對固定,因此在一般情況下系統(tǒng)支持的典型任務(wù)是一個無

19、限循環(huán)結(jié)構(gòu),C語言任務(wù)結(jié)構(gòu)如下:void mytask(void *pdata)for(;)用戶編寫的代碼;從任務(wù)的代碼來看,任務(wù)實質(zhì)上就是一個返回為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、每個元素都有一個唯一編號;4、數(shù)組名是個常地址。uchar a10a0a1a2a3a9aa+1使用上的特點:1、分類存放;2、檢索速度快且恒定;3、缺點:占用連續(xù)空間大a+2a+3a+9應(yīng)用:記錄同類事物的表3 Sept

20、. 2008Confidential位圖是數(shù)組的一種特殊應(yīng)用應(yīng)用:登記表uchar a10 ;(可以記錄80個事物的狀態(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;使用上的特點: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 兩個元素的鏈表struct Student Student*next char age; char*name; char sex;1。不同數(shù)據(jù)類型數(shù)據(jù)的集合;2。對同類代碼進行統(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 兩個元素的鏈表struct Student

22、 Student*next char age; char*name; char sex;使用上的特點:1??臻g上不連續(xù)(不需要大量的連續(xù)存儲空間);2。檢索耗費的時間不固定;應(yīng)用:存放大量的較大的表,類似檔案柜3 Sept. 2008Confidential1. 5 1. 5 操作系統(tǒng)常用的數(shù)據(jù)結(jié)構(gòu)操作系統(tǒng)常用的數(shù)據(jù)結(jié)構(gòu) 隊列隊列按照先進先出的規(guī)則組織的數(shù)據(jù)結(jié)構(gòu)可以用數(shù)組也可以用鏈表來實現(xiàn)應(yīng)用:主要用于對象的排隊?wèi)?yīng)用:主要用于對象的排隊3 Sept. 2008Confidential1. 5 1. 5 操作系統(tǒng)常用的數(shù)據(jù)結(jié)構(gòu)操作系統(tǒng)常用的數(shù)據(jù)結(jié)構(gòu) 堆棧堆棧按照先進后出規(guī)則組織的數(shù)據(jù)結(jié)構(gòu)主要用數(shù)

23、組來實現(xiàn)主要用于程序模塊的嵌套運行3 Sept. 2008Confidential1. 6 1. 6 操作系統(tǒng)的基本概念操作系統(tǒng)的基本概念代碼的臨界段也稱為臨界區(qū),指處理時不可分割的代碼,運行這些代碼不允許被打斷。一旦這部分代碼開始執(zhí)行,則不允許任何中斷打入。為確保臨界區(qū)代碼的執(zhí)行,在進入臨界區(qū)之前要關(guān)中斷,而臨界區(qū)代碼執(zhí)行完成以后要立即開中斷。 代碼的臨界段代碼的臨界段3 Sept. 2008Confidential1. 6 1. 6 操作系統(tǒng)的基本概念(續(xù))操作系統(tǒng)的基本概念(續(xù))共享資源共享資源可以被一個以上任務(wù)使用的資源叫做共享資源。為了防止數(shù)據(jù)被破壞,每個任務(wù)在與共享資源打交道時,必

24、須獨占該資源,這叫做互斥。任務(wù)A共享資源任務(wù)B任務(wù)C信號量訪問共享資源之前申請信號量其它任務(wù)訪問受阻而不能使用共享資源得到允許后,才能使用共享資源3 Sept. 2008Confidential1. 6 1. 6 操作系統(tǒng)的基本概念(續(xù))操作系統(tǒng)的基本概念(續(xù))任務(wù)的優(yōu)先級任務(wù)的優(yōu)先級 每個任務(wù)都有其優(yōu)先級(priority),分為靜態(tài)優(yōu)先級和動態(tài)優(yōu)先級兩種。 應(yīng)用程序執(zhí)行過程中各任務(wù)優(yōu)先級不變,則稱之為靜態(tài)優(yōu)先級。在靜態(tài)優(yōu)先級系統(tǒng)中,各任務(wù)以及它們的時間約束在程序編譯時是已知的。 應(yīng)用程序執(zhí)行過程中,如果任務(wù)的優(yōu)先級是可變的,則稱之為動態(tài)優(yōu)先級。任務(wù)執(zhí)行時的順序3 Sept. 2008Con

25、fidential1. 6 1. 6 操作系統(tǒng)的基本概念(續(xù))操作系統(tǒng)的基本概念(續(xù))調(diào)度調(diào)度 調(diào)度器就緒任務(wù)隊列CPU 剝奪或自愿放棄新任務(wù)調(diào)度就是決定該輪到哪個任務(wù)運行了執(zhí)行3 Sept. 2008Confidential1. 6 1. 6 操作系統(tǒng)的基本概念(續(xù))操作系統(tǒng)的基本概念(續(xù))調(diào)度的時機及方式調(diào)度的時機及方式1.當(dāng)一個新的任務(wù)被創(chuàng)建時,是執(zhí)行新任務(wù)還是繼續(xù)執(zhí)行父任務(wù)?2.當(dāng)一個任務(wù)運行完畢時;3.當(dāng)一個任務(wù)由于I/O、信號量或其他的某個原因被阻塞時;4.當(dāng)一個I/O中斷發(fā)生時,表明某個I/O操作已經(jīng)完成,而等待該I/O操作的任務(wù)轉(zhuǎn)入就緒狀態(tài);5.當(dāng)一個時鐘節(jié)拍中斷發(fā)生時。不可搶

26、占(不可搶占(non-preemptivenon-preemptive)調(diào)度方式)調(diào)度方式:一個任務(wù)若被選中就一直運行下去,直到它被阻塞(I/O,或正在等待其他任務(wù)),或主動地交出CPU??蓳屨迹蓳屨迹╬reemptivepreemptive)調(diào)度方式:)調(diào)度方式:當(dāng)一個任務(wù)在運行時,調(diào)度程序可以打斷它。另外,在其他一些情形下,如就緒隊列中有新任務(wù)的優(yōu)先級高于當(dāng)前正運行的任務(wù),也可能立即進行調(diào)度。3 Sept. 2008Confidential1. 6 1. 6 操作系統(tǒng)的基本概念(續(xù))操作系統(tǒng)的基本概念(續(xù))非占先式非占先式( (不可剝奪型不可剝奪型) )內(nèi)核內(nèi)核非占先式(non-pree

27、mptive) 非占先式內(nèi)核要求每個任務(wù)自我放棄CPU的所有權(quán)。非占先式調(diào)度法也稱作合作型多任務(wù),各個任務(wù)彼此合作共享一個CPU。異步事件還是由中斷服務(wù)來處理。中斷服務(wù)可以使一個高優(yōu)先級的任務(wù)由掛起狀態(tài)變?yōu)榫途w狀態(tài)。但中斷服務(wù)以后控制權(quán)還是回到原來被中斷了的那個任務(wù),直到該任務(wù)主動放棄CPU的使用權(quán)時,那個高優(yōu)先級的任務(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)時間很重要時,要使用占先式內(nèi)核。因此絕大

28、多數(shù)商業(yè)上銷售的實時內(nèi)核都是占先式內(nèi)核。最高優(yōu)先級的任務(wù)一旦就緒,總能得到CPU的控制權(quán)。當(dāng)一個運行著的任務(wù)使一個比它優(yōu)先級高的任務(wù)進入了就緒狀態(tài),當(dāng)前任務(wù)的CPU使用權(quán)就被剝奪了,或者說被掛起了,那個高優(yōu)先級的任務(wù)立刻得到了CPU的控制權(quán)。如果是中斷服務(wù)子程序使一個高優(yōu)先級的任務(wù)進入就緒態(tài),中斷完成時,中斷了的任務(wù)被掛起,優(yōu)先級高的那個任務(wù)開始運行。3 Sept. 2008Confidential1. 6 1. 6 操作系統(tǒng)的基本概念(續(xù))操作系統(tǒng)的基本概念(續(xù))- -可重入函數(shù)可重入函數(shù)( (多次調(diào)多次調(diào)用結(jié)果都正確)用結(jié)果都正確)一個不可重入型函數(shù)的例子int Temp;void swa

29、p (int *x,int*y)Temp=*x;*x=*y;*y=Temp; 一個可重入型函數(shù)的例子void swap (int *x,int*y)int Temp;Temp=*x;*x=*y;*y=Temp;可被一個以上的任務(wù)可被一個以上的任務(wù)調(diào)用而不必擔(dān)心數(shù)據(jù)調(diào)用而不必擔(dān)心數(shù)據(jù)被破壞(對于所有調(diào)被破壞(對于所有調(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ù)? ? 可以被一個以上的任務(wù)調(diào)用,而不必擔(dān)心數(shù)據(jù)的破壞??芍厝胄秃瘮?shù)任何時候都可以被中斷,一段時間以后又可以運行,而相應(yīng)數(shù)據(jù)不會丟失。可重入型函數(shù)最好只使用局部變量,即變量保存在CPU寄存器中或堆棧中。3 Sept. 2008Confidential1. 6 1. 6 操作系統(tǒng)的基本概念(續(xù))操作系統(tǒng)的基本概念(續(xù))死鎖死鎖死鎖(deadlock)指兩個任務(wù)無限期地互相等待對方控制著的資源。設(shè)任務(wù)T1正獨享資源R1 ,任務(wù)T2正獨享資源R2,此時任務(wù)T1又要使用資源R2,任務(wù)T2也要使用資源R1,于是兩個任務(wù)都無法繼續(xù)執(zhí)行了。防止死鎖的方法,讓每個任務(wù): 1)先得到全部需要的資源,再做下

31、一步的工作; 2)用同樣的順序申請多個資源,釋放時使用相反順序;另外內(nèi)核允許用戶定義等待超時,以化解死鎖。死鎖一般發(fā)生在大型多任務(wù)系統(tǒng)中,嵌入式系統(tǒng)中不易出現(xiàn)。3 Sept. 2008Confidential1. 6 1. 6 操作系統(tǒng)的基本概念(續(xù))操作系統(tǒng)的基本概念(續(xù))中斷中斷 中斷是一種硬件機制,通知CPU有個異步事件發(fā)生了。 中斷一旦被識別,CPU保存部分或全部現(xiàn)場(context)后跳轉(zhuǎn)到中斷服務(wù)子程序(ISR) ,ISR結(jié)束后可返回到: 對不可剝奪型內(nèi)核,返回到被中斷了的任務(wù); 對可剝奪型內(nèi)核,返回到就緒狀態(tài)優(yōu)先級最高的任務(wù)。 中斷使得CPU可以在事件發(fā)生時才進行處理,而不必讓C

32、PU不斷地查詢是否有事件發(fā)生。 通過開/關(guān)中斷可以讓CPU響應(yīng)或不響應(yīng)中斷。 在實時環(huán)境應(yīng)注意不要使關(guān)中斷時間過長。3 Sept. 2008Confidential1. 6 1. 6 操作系統(tǒng)的基本概念(續(xù))操作系統(tǒng)的基本概念(續(xù))時鐘節(jié)拍時鐘節(jié)拍 時鐘節(jié)拍(clock tick)是特定的周期性中斷,是實時內(nèi)核的心臟。 周期性中斷之間的時間間隔取決于系統(tǒng)實時性要求,一般為10-100ms。 時鐘節(jié)拍率越快,系統(tǒng)的額外開銷就越大。3 Sept. 2008Confidential1. 7 1. 7 任務(wù)運行的基本要素任務(wù)運行的基本要素任務(wù)代碼任務(wù)堆棧內(nèi)存處理器PCSP處理器通過兩個指針寄存器(PC

33、和SP)來與任務(wù)代碼和任務(wù)堆棧建立聯(lián)系并運行它寄存器組程序運行環(huán)境運行環(huán)境包括了兩部分:處理器中的運行環(huán)境和內(nèi)存中的運行環(huán)境3 Sept. 2008Confidential1.7.1 多任務(wù)運行時的問題任務(wù)代碼任務(wù)堆棧內(nèi)存處理器PCSP任務(wù)代碼任務(wù)堆棧內(nèi)存任務(wù)代碼任務(wù)堆棧內(nèi)存?當(dāng)有多個任務(wù)時,處理器中的運行環(huán)境應(yīng)該怎么辦?寄存器組程序運行環(huán)境3 Sept. 2008Confidential1.7.2 多任務(wù)運行時的問題處理程序 虛擬處理器PCSP 虛擬處理器PCSP 虛擬處理器PCSP 虛擬處理器PC調(diào)度器程序處理器PCSP1.在內(nèi)存中為每個任務(wù)創(chuàng)建一個虛擬的處理器由操作系統(tǒng)的調(diào)度器按某種規(guī)則來進行這兩個復(fù)制工作復(fù)制2.當(dāng)需要中止當(dāng)前任務(wù)時,則把任務(wù)對應(yīng)的實際處理器復(fù)制到虛擬處理器(內(nèi)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論