應用軟件工程師崗位培訓課程常用操作系統(tǒng)ppt課件
《應用軟件工程師崗位培訓課程常用操作系統(tǒng)ppt課件》由會員分享,可在線閱讀,更多相關(guān)《應用軟件工程師崗位培訓課程常用操作系統(tǒng)ppt課件(56頁珍藏版)》請在裝配圖網(wǎng)上搜索。
常用操作系統(tǒng),,windows版本及開發(fā)工具簡介 進程 線程 線程的建立與退出 線程調(diào)度 線程同步 動態(tài)連接庫 與其它操作系統(tǒng)區(qū)別,2,windows版本,Windows1.0 Windows是由微軟在1983年11月(在Lisa之后,Macintosh之前)宣布,并在兩年后(1985年11月)發(fā)行。在此后的兩年中,緊隨著Microsoft Windows早期版本1.0之后,又推出了幾種改進版本,以支持國際商業(yè)市場,并提供新型視訊顯示器和打印機的驅(qū)動程序。 Windows2.0 Windows版本2.0是在1987年11月正式在市場上推出的。該版本對使用者接口做了一些改進。這些改進中最有效的是使用了可重迭式窗口,而Windows 1.0中使用的是并排式窗口。Windows 2.0還增強了鍵盤和鼠標接口,特別是加入了菜單和對話框。 Windows3.x Microsoft Windows版本3.1是1992年4月發(fā)布的,其中包括的幾個重要特性是TrueType字體技術(shù)(給Windows帶來可縮放的輪廓字體)、多媒體(聲音和音樂)、對象連結(jié)和嵌入(OLE:Object Linking and Embedding)和通用對話框。跟OS/2一樣,Windows 3.1只能在保護模式下運作,并且要求至少配置了1MB內(nèi)存的286或386處理器。 Window NT 在1993年7月發(fā)表的Windows NT是第一個支持Intel 386、486和Pentium微處理器32位保護模式的Windows版本。Windows NT提供32位平坦尋址,并使用32位的指令集。(本章后面我會談到一些尋址空間的問題)。Windows NT還可以移植到非Intel處理器上,并在幾種使用RISC芯片的工作站上執(zhí)行。,3,windows版本,Windows95/98 Windows 95是在1995年8月發(fā)布的。和Windows NT一樣,Windows 95也支持Intel 386或更高等級處理器的32位,但是Windows 95具有需要較少硬件資源的優(yōu)點。 Windows 98在1998年6月發(fā)布,具有保護模式。雖然它缺少Windows NT中的某些功能,諸如高安全性和對RISC機器的可移植性等許多加強功能,包括執(zhí)行效能的提高、更好的硬件支持以及與因特網(wǎng)和全球信息網(wǎng)(WWW)更緊密的結(jié)合。 Windows ME 2000年9月微軟公司發(fā)行32位圖形操作系統(tǒng)Windows ME,該操作系統(tǒng)是在Windows 95和Windows 98的基礎上開發(fā)的。 Window2000 Windows 2000有四個版本:Professional、Server、Advanced Server和Datacenter Server。所有版本的Windows 2000都有共同的一些新特征:NTFS5,新的NTFS文件系統(tǒng);EFS,允許對磁盤上的所有文件進行加密;WDM,增強對硬件的支持。 WindowXP 2001年10月微軟發(fā)布了Windows XP,它包括了簡化了的Windows 2000的用戶安全特性,并整合了防火墻,以用來確保長期以來一直困擾微軟的安全問題。 WINDOWS 2003 2003年1月發(fā)布的Windows2003大量繼承了Windows XP的友好操作性和Windows 2000 sever的網(wǎng)絡特性,是一個同時適合個人用戶和服務器使用的操作系統(tǒng)。Windows 2003完全延續(xù)了Windows XP安裝時方便、快捷、高效的特點,幾乎不需要多少人工參與就可以自動完成硬件的檢測、安裝、配置等工作。雖然在名稱上,Windows 2003又延續(xù)了Windows家族的習慣命名法則,但從其提供的各種內(nèi)置服務以及重新設計的內(nèi)核程序來說,Windows 2003與Windows 2000/XP有著本質(zhì)的區(qū)別。,4,windows開發(fā)工具,常見的Windows應用程序開發(fā)語言和工具: Microsoft Visual C++ Microsoft Visual Basic Microsoft Visual J++ Borland Delphi …,5,,windows版本及開發(fā)工具簡介 進程 線程 線程的建立與退出 線程調(diào)度 線程同步 動態(tài)連接庫 與其它操作系統(tǒng)區(qū)別,6,進程,進程通常被定義為一個正在運行的程序的實例,它由兩個部分組成: 操作系統(tǒng)用來管理進程的內(nèi)核對象。 地址空間,它包含所有可執(zhí)行模塊或DLL模塊的代碼和數(shù)據(jù)。它還包含動態(tài)內(nèi)存分配的空間。如線程堆棧和堆分配空間。 每個進程至少擁有一個線程,來執(zhí)行進程的地址空間中的代碼。,7,進程句柄和優(yōu)先級,進程的實例句柄 加載到進程地址空間的每個可執(zhí)行文件或DLL文件均被賦予一個獨一無二的實例句柄。對于加載資源的函數(shù)調(diào)用來說,通常都需要該句柄的值。 表示進程句柄的兩種數(shù)據(jù)類型:HMODULE與HINSTANCE,進程的優(yōu)先級,8,創(chuàng)建進程,創(chuàng)建進程的幾種方式: 調(diào)用ShellExecute函數(shù) 調(diào)用WinExec函數(shù) 調(diào)用Createprocess函數(shù) 函數(shù)原型: HINSTANCE ShellExecute( HWND hwnd, LPCTSTR lpOperation, LPCTSTR lpFile, LPCTSTR lpParameters, LPCTSTR lpDirectory, INT nShowCmd ); UINT WinExec( LPCSTR lpCmdLine, UINT uCmdShow); BOOL CreateProcess( LPCTSTR lpApplicationName, LPTSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes, LPSECURITY_ATTRIBUTES lpThreadAttributes, BOOL bInheritHandles, DWORD dwCreationFlags, LPVOID lpEnvironment, LPCTSTR lpCurrentDirectory, LPSTARTUPINFO lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation );,9,終止進程,終止進程運行常用的四種方式: 主線程的進入點函數(shù)返回 進程中的一個線程調(diào)用ExitProcess函數(shù) 一個進程中的線程調(diào)用TerminateProcess函數(shù)(應該避免使用這種方法) 程中的所有線程自行終止運行(這種情況非常少)。,10,終止進程,思考調(diào)用和不調(diào)用ExitProcess函數(shù)程序輸出結(jié)果的不同: class CSample { public: CSample(){printf(“Constructor\n“);} ~CSample(){printf(“Destructor\n“);} }; CSample g_SampleObj; void main() { CSample SampleObj; ExitProcess(0); },不調(diào)用ExitProcess函數(shù)的輸出結(jié)果: Constructor Constructor Destructor Destructor 調(diào)用ExitProcess函數(shù)的輸出結(jié)果: Constructor Constructor,11,進程間通信方式,文件映射 文件映射(Memory-Mapped Files)能使進程把文件內(nèi)容當作進程地址區(qū)間一塊內(nèi)存那樣來對待。因此,進程不必使用文件I/O操作,只需簡單的指針操作就可讀取和修改文件的內(nèi)容。Win32 API允許多個進程訪問同一文件映射對象,各個進程在它自己的地址空間里接收內(nèi)存的指針。通過使用這些指針,不同進程就可以讀或修改文件的內(nèi)容,實現(xiàn)了對文件中數(shù)據(jù)的共享。應用程序有三種方法來使多個進程共享一個文件映射對象: 繼承:第一個進程建立文件映射對象,它的子進程繼承該對象的句柄 ; 命名文件映射:第一個進程在建立文件映射對象時可以給該對象指定一個名字(可與文件名不同)。第二個進程可通過這個名字打開此文件映射對象。另外,第一個進程也可以通過一些其它IPC機制(有名管道、郵件槽等)把名字傳給第二個進程。 句柄復制:第一個進程建立文件映射對象,然后通過其它IPC機制(有名管道、郵件槽等)把對象句柄傳遞給第二個進程。第二個進程復制該句柄就取得對該文件映射對象的訪問權(quán)限。,12,進程間通信方式,共享內(nèi)存 Win32 API中共享內(nèi)存(Shared Memory)實際就是文件映射的一種特殊情況。進程在創(chuàng)建文件映射對象時用0xFFFFFFFF來代替文件句柄(HANDLE),就表示了對應的文件映射對象是從操作系統(tǒng)頁面文件訪問內(nèi)存,其它進程打開該文件映射對象就可以訪問該內(nèi)存塊。由于共享內(nèi)存是用文件映射實現(xiàn)的,所以它也有較好的安全性,也只能運行于同一計算機上的進程之間。 匿名管道 匿名管道(Anonymous Pipe)是在父進程和子進程之間,或同一父進程的兩個子進程之間傳輸數(shù)據(jù)的無名字的單向管道。通常由父進程創(chuàng)建管道,然后由要通信的子進程繼承通道的讀端點句柄或?qū)懚它c句柄,然后實現(xiàn)通信。父進程還可以建立兩個或更多個繼承匿名管道讀和寫句柄的子進程。這些子進程可以使用管道直接通信,不需要通過父進程。 匿名管道是單機上實現(xiàn)子進程標準I/O重定向的有效方法,它不能在網(wǎng)上使用,也不能用于兩個不相關(guān)的進程之間。,13,進程間通信方式,命名管道 命名管道(Named Pipe)是服務器進程和一個或多個客戶進程之間通信的單向或雙向管道。不同于匿名管道的是命名管道可以在不相關(guān)的進程之間和不同計算機之間使用,服務器建立命名管道時給它指定一個名字,任何進程都可以通過該名字打開管道的另一端,根據(jù)給定的權(quán)限和服務器進程通信。 命名管道提供了相對簡單的編程接口,使通過網(wǎng)絡傳輸數(shù)據(jù)并不比同一計算機上兩進程之間通信更困難,但它不適合同時和多個進程通信。 郵件槽 郵件槽(Mailslots)提供進程間單向通信能力,任何進程都能建立郵件槽成為郵件槽服務器。其它進程,稱為郵件槽客戶,可以通過郵件槽的名字給郵件槽服務器進程發(fā)送消息。進來的消息一直放在郵件槽中,直到服務器進程讀取它為止。一個進程既可以是郵件槽服務器也可以是郵件槽客戶,因此可建立多個郵件槽實現(xiàn)進程間的雙向通信。,14,進程間通信方式,剪貼板 剪貼板(Clipped Board)實質(zhì)是Win32 API中一組用來傳輸數(shù)據(jù)的函數(shù)和消息,為Windows應用程序之間進行數(shù)據(jù)共享提供了一個中介,Windows已建立的剪切(復制)-粘貼的機制為不同應用程序之間共享不同格式數(shù)據(jù)提供了一條捷徑。當用戶在應用程序中執(zhí)行剪切或復制操作時,應用程序把選取的數(shù)據(jù)用一種或多種格式放在剪貼板上。然后任何其它應用程序都可以從剪貼板上拾取數(shù)據(jù),從給定格式中選擇適合自己的格式。 動態(tài)數(shù)據(jù)交換 動態(tài)數(shù)據(jù)交換(DDE)是使用共享內(nèi)存在應用程序之間進行數(shù)據(jù)交換的一種進程間通信形式。應用程序可以使用DDE進行一次性數(shù)據(jù)傳輸,也可以當出現(xiàn)新數(shù)據(jù)時,通過發(fā)送更新值在應用程序間動態(tài)交換數(shù)據(jù)。 對象連接與嵌入 應用程序利用對象連接與嵌入(OLE)技術(shù)管理復合文檔(由多種數(shù)據(jù)格式組成的文檔),OLE提供使某應用程序更容易調(diào)用其它應用程序進行數(shù)據(jù)編輯的服務。,15,進程間通信方式,動態(tài)連接庫 Win32動態(tài)連接庫(DLL)中的全局數(shù)據(jù)可以被調(diào)用DLL的所有進程共享,這就又給進程間通信開辟了一條新的途徑,當然訪問時要注意同步問題。 遠程過程調(diào)用 Win32 API提供的遠程過程調(diào)用(RPC)使應用程序可以使用遠程調(diào)用函數(shù),這使在網(wǎng)絡上用RPC進行進程通信就像函數(shù)調(diào)用那樣簡單。RPC既可以在單機不同進程間使用也可以在網(wǎng)絡中使用。 NetBios函數(shù) Win32 API提供NetBios函數(shù)用于處理低級網(wǎng)絡控制,這主要是為IBM NetBios系統(tǒng)編寫與Windows的接口。除非那些有特殊低級網(wǎng)絡功能要求的應用程序,其它應用程序最好不要使用NetBios函數(shù)來進行進程間通信。,16,進程間通信方式,Sockets Windows Sockets規(guī)范是一套Windows下的網(wǎng)絡編程接口。它不僅支持TCP/IP協(xié)議,而且還支持其它協(xié)議(如IPX) ,使程序員可以充分利用Windows的消息機制進行編程。 WM_COPYDATA消息 WM_COPYDATA是一種非常強大的消息。當一個應用向另一個應用傳送數(shù)據(jù)時,發(fā)送方只需使用調(diào)用SendMessage函數(shù),參數(shù)是目的窗口的句柄、傳遞數(shù)據(jù)的起始地址、WM_COPYDATA消息。接收方只需像處理其它消息那樣處理WM_COPY DATA消息,這樣收發(fā)雙方就實現(xiàn)了數(shù)據(jù)共享。,17,常用的進程相關(guān)函數(shù),GetExitCodeProcess 檢索進程退出碼 GetGuiResources 確定有多少用戶或圖形設備接口(GUI)對象在使用中 SetPriorityClass 設置進程的基準優(yōu)先級 GetPriorityClass 獲得進程的基準優(yōu)先級 SetProcessAffinityMask 確定進程選擇那個CPU GetProcessAffinityMask 設置為進程所選擇的CPU SetProcessPriorityBoost 允許或禁止來自動態(tài)地改變進程優(yōu)先級的Windows GetProcessPriorityBoost 讀取優(yōu)先級增加狀態(tài) SetProcessShutDownParameters 在系統(tǒng)關(guān)閉過程中 GetProcessShutDownParameters 讀取關(guān)閉參數(shù) SetProcessWorkingSetSize 設置進程占用的最小和最大物理存儲器 GetProcessWorkingSetSize 讀取工作區(qū) TerminateProcess 緩和地終止進程 ExitProcess 突然終止進程 GetProcessVersion 確定進程期望的Windows版本 GetProcessTimes 獲取進程的CPU占用率 GetStartUpInfo 獲取作為傳送到CreateProcess的啟動結(jié)構(gòu),18,,windows版本及開發(fā)工具簡介 進程 線程 線程的建立與退出 線程調(diào)度 線程同步 動態(tài)連接庫 與其它操作系統(tǒng)區(qū)別,19,線程,線程是由兩個部分組成的: 線程的內(nèi)核對象,操作系統(tǒng)用它來對線程實施管理。內(nèi)核對象也是系統(tǒng)用來存放線程統(tǒng)計信息的地方。 線程堆棧,它用于維護線程在執(zhí)行代碼時需要的所有函數(shù)參數(shù)和局部變量。,20,線程的創(chuàng)建,創(chuàng)建線程的三種方法: 激活一個新進程 調(diào)用Win32 API函數(shù)CreateThread 調(diào)用C運行庫函數(shù)_beginthread/_beginthreadex 函數(shù)原型: HANDLE CreateThread ( SEC_ATTRS SecurityAttributes, ULONG StackSize, SEC_THREAD_START StartFunction, PVOID ThreadParameter, ULONG CreationFlags, PULONG ThreadId ); uintptr_t _beginthread( void( __cdecl *start_address )( void * ), unsigned stack_size, void *arglist ); uintptr_t _beginthreadex( void *security, unsigned stack_size, unsigned ( __stdcall *start_address )( void * ), void *arglist, unsigned initflag, unsigned *thrdaddr );,21,線程的終止,若要終止線程的運行,可以使用下面的方法: 線程函數(shù)返回(最好使用這種方法)。 通過調(diào)用ExitThread(或_endthread/_endthreadex)函數(shù),線程將自行撤消(最好不要使用這種方法)。 同一個進程或另一個進程中的線程調(diào)用TerminateThread函數(shù)(應該避免使用這種方法)。 包含線程的進程終止運行(應該避免使用這種方法)。,22,線程的終止,線程終止運行時發(fā)生的操作: 線程擁有的所有用戶對象均被釋放。在Windows中,大多數(shù)對象是由包含創(chuàng)建這些對象的線程的進程擁有的。但是一個線程擁有兩個用戶對象,即窗口和掛鉤。當線程終止運行時,系統(tǒng)會自動撤消任何窗口,并且卸載線程創(chuàng)建的或安裝的任何掛鉤。其他對象只有在擁有線程的進程終止運行時才被撤消。 線程的退出代碼從STILL_ACTIVE改為傳遞給ExitThread或TerminateThread的代碼。 線程內(nèi)核對象的狀態(tài)變?yōu)橐淹ㄖ?如果線程是進程中最后一個活動線程,系統(tǒng)也將進程視為已經(jīng)終止運行。 線程內(nèi)核對象的使用計數(shù)遞減1。,23,線程的優(yōu)先級,線程的優(yōu)先級 獲取線程的優(yōu)先級 int GetThreadPriority( HANDLE hThread); 設置線程的優(yōu)先級 BOOL SetThreadPriority( HANDLE hThread, int nPriority);,24,線程的優(yōu)先級,進程優(yōu)先級類和線程相對優(yōu)先級的映射,25,線程調(diào)度,線程調(diào)度的方法: 暫停和恢復線程的運行 調(diào)用SuspendThread函數(shù)暫停一個線程的執(zhí)行 DWORD SuspendThread( HANDLE hThread); 調(diào)用ResumeThread函數(shù)恢復一個線程的執(zhí)行 DWORD ResumeThread( HANDLE hThread); 睡眠方式 調(diào)用Sleep函數(shù)告訴系統(tǒng)本線程不想在某個時間段被調(diào)度 VOID Sleep( DWORD dwMilliseconds); 轉(zhuǎn)換到另一個線程 調(diào)用SwitchToThread的函數(shù)使另一個線程得到調(diào)度 BOOL SwitchToThread(VOID);,26,線程同步,線程可以使自己進入等待狀態(tài),直到一個對象變?yōu)橐淹ㄖ獱顟B(tài)。 可處于已通知狀態(tài)或未通知狀態(tài)的內(nèi)核對象 : 進程 文件修改通知 線程 事件 作業(yè) 可等待定時器 文件 信標 控制臺輸入 互斥對象,27,線程同步,常用等待函數(shù): 等待一個內(nèi)核對象變?yōu)橐淹ㄖ獱顟B(tài)函數(shù): DWORD WaitForSingleObject( HANDLE hHandle, DWORD dwMilliseconds) 等待多個內(nèi)核對象變?yōu)橐淹ㄖ獱顟B(tài)函數(shù): DWORD WaitForMultipleObjects(DWORD nCount, CONST HANDLE *lpHandles, BOOL bWaitAll, DWORD dwMilliseconds);,28,事件內(nèi)核對象,創(chuàng)建事件內(nèi)核對象: HANDLE CreateEvent( LPSECURITY_ATTRIBUTES lpEventAttributes, BOOL bManualReset, BOOL bInitialState, LPCTSTR lpName); 打開事件內(nèi)核對象: HANDLE OpenEvent( DWORD dwDesiredAccess, BOOL bInheritHandle, LPCTSTR lpName); 將事件改為已通知狀態(tài): BOOL SetEvent( HANDLE hEvent); 將事件改為未通知狀態(tài): BOOL ResetEvent( HANDLE hEvent);,29,示例,30,人工重置事件,31,自動重置事件,32,信標內(nèi)核對象,信標內(nèi)核對象的創(chuàng)建 HANDLE CreateSemaphore( LPSECURITY_ATTRIBUTES lpSemaphoreAttribute, LONG lInitialCount, LONG lMaximumCount, LPCTSTR lpName); 打開信標內(nèi)核對象 HANDLE OpenSemaphore( DWORD dwDesiredAccess, BOOL bInheritHandle, LPCTSTR lpName); 釋放信標資源: BOOL ReleaseSemaphore( HANDLE hSemaphore, LONG lReleaseCount, LPLONG lpPreviousCount);,33,,信標內(nèi)核對象使用示例,34,互斥對象內(nèi)核對象,互斥對象的創(chuàng)建 HANDLE CreateMutex( LPSECURITY_ATTRIBUTES lpMutexAttributes, BOOL bInitialOwner, LPCTSTR lpName); 打開互斥對象 HANDLE OpenMutex( DWORD dwDesiredAccess, BOOL bInheritHandle, LPCTSTR lpName); 釋放互斥對象 BOOL ReleaseMutex( HANDLE hMutex);,35,內(nèi)核對象與線程同步之間的相互關(guān)系,36,,windows版本及開發(fā)工具簡介 進程 線程 線程的建立與退出 線程調(diào)度 線程同步 動態(tài)連接庫 與其它操作系統(tǒng)區(qū)別,37,庫,什么是庫? 庫的分類 靜態(tài)鏈接庫 動態(tài)鏈接庫,38,動態(tài)連接庫,為什么使用DLL 擴展了應用程序的特性。 可以用許多種編程語言來編寫。 簡化了軟件項目的管理 有助于節(jié)省內(nèi)存 有助于資源的共享 有助于應用程序的本地化 有助于解決平臺差異 可以用于一些特殊的目的,39,動態(tài)連接庫,動態(tài)鏈接庫的入口/出口點,40,動態(tài)鏈接庫,導出和導入DLL函數(shù)和數(shù)據(jù) 在庫的.def文件的EXPROTS部分中填寫出導出項目的名稱 使用工具相關(guān)的方法,比如Visual C++所使用的__declspec(dllexport)關(guān)鍵字。,41,動態(tài)鏈接庫,動態(tài)鏈接庫的調(diào)用 隱式調(diào)用 讓應用程序的源代碼只引用DLL中包含的符號。這樣,當應用程序啟動運行時,加載程序就能夠隱含加載(和鏈接)需要的DLL。 顯式調(diào)用 在應用程序運行時讓應用程序顯式加載需要的DLL并且顯式鏈接到需要的輸出符號。 顯式加載: HMODULE LoadLibrary( LPCTSTR lpFileName); 顯式卸載: BOOL FreeLibrary( HMODULE hModule); 顯式鏈接到一個輸出符號: FARPROC GetProcAddress( HMODULE hModule, LPCSTR lpProcName);,42,線程調(diào)用LoadLibrary時執(zhí)行的操作步驟,43,線程調(diào)用FreeLibrary時執(zhí)行的操作步驟,44,常用的線程相關(guān)函數(shù),AttachThreadInput 選用線程的處理另外的線程允許的輸入,其中,要設置的權(quán)能集中在每一個另外的窗口和共享輸入狀態(tài) CreateRemoteThread 在另一個進程中,創(chuàng)建線程 CreateThread 在當前進程中創(chuàng)建線程 ExitThread 退出當前線程 TerminateThread 沒有適當?shù)厍宄闆r下,終止線程 GetCurrentTherad 得到當前線程句柄 GetCurrentThreadId 得到當前線程ID GetExitCodeThread 得到線程的退出代碼 SetTheradPriority 設置線程優(yōu)先級 GetThreadPriority 讀取線程優(yōu)先級 SetThreadPriorityBoost 使能或不使該線程的動態(tài)優(yōu)先級增加 GetThreadPriorityBoost 讀取該線程動態(tài)優(yōu)先級增加的狀態(tài) GetThreadTimes 確定被創(chuàng)建、破壞的線程以及使用了多少進程時間 SuspendThread 掛起線程 ResumeThread 恢復線程(每個命令必須調(diào)用SuspendThread一次) SetThreadAffinityMask 確定線程在那個進程中運行 SetThreadIdealProcessor 設置線程所選擇運行的處理機 SwitchToThread 使處理機放棄另外的線程(沒有選擇哪個線程),45,,windows版本及開發(fā)工具簡介 進程 線程 線程的建立與退出 線程調(diào)度 線程同步 動態(tài)連接庫 與其它操作系統(tǒng)區(qū)別,46,,目前常見操作系統(tǒng)有 LINUX UNIX vxworks windows ……,47,嵌入式系統(tǒng),嵌入式系統(tǒng) 嵌入式系統(tǒng)是以嵌入式計算機為技術(shù)核心,面向用戶、面向產(chǎn)品、面向應用,軟硬件可裁減的;適用于對功能、可靠性、成本\體積、功耗等綜合性能有嚴格要求的專用計算機系統(tǒng)。 嵌入式系統(tǒng)的特點: 高可靠性 實時性 和具體應用有機地結(jié)合在一起 軟件代碼要求高質(zhì)量、高可靠性 一般都固化在只讀存儲器中或間存中,48,嵌入式操作系統(tǒng),嵌入式操作系統(tǒng) 嵌入式操作系統(tǒng)EOS(Embedded OperatingSystem)是一種用途廣泛的系統(tǒng)軟件,過去它主要應用于工業(yè)控制和國防系統(tǒng)領(lǐng)域。EOS負責嵌人系統(tǒng)的全部軟、硬件資源的分配、調(diào)度工作,控制協(xié)調(diào)并發(fā)活動;它必須體現(xiàn)其所在系統(tǒng)的特征,能夠通過裝卸某些模塊來達到系統(tǒng)所要求的功能。 嵌入式操作系統(tǒng)特有功能 可裝卸性 強實時性 統(tǒng)一的接口 操作方便、簡單、提供友好的圖形GUI 提供強大的網(wǎng)絡功能 強穩(wěn)定性,弱交互性 固化代碼 更好的硬件適應性,49,常用嵌入式操作系統(tǒng),常用嵌入式操作系統(tǒng) PALM OS Windows CE Linux VxWorks,50,常用嵌入式操作系統(tǒng),PALM OS 優(yōu)點 操作系統(tǒng)的節(jié)能功能 合理的內(nèi)存管理 數(shù)據(jù)是以數(shù)據(jù)庫(database)的格式來存儲的 外圍硬件十分豐富,51,常用嵌入式操作系統(tǒng),Windows CE優(yōu)點 具有靈活的電源管理功能,包括睡眠/喚醒摸式 高效率的操作系統(tǒng)特性 擁有良好的通信能力 支持嵌套中斷 更好的線程響應能力 擁有256個優(yōu)先級別 支持近1500個Win32 API,52,常用嵌入式操作系統(tǒng),Linux優(yōu)點 精簡的內(nèi)核,性能高、穩(wěn)定,多任務 適用于不同的CPU,支持多種體系結(jié)構(gòu) 能夠提供完善的嵌人式GUI以及嵌入式X.Wifld。WS。 提供完整的開發(fā)工具和SDK,同時提供PC上的開發(fā)版本 用戶可定制,可提供圖形化的定制和配置工具 常用嵌入式芯片的驅(qū)動集,支持大量的周邊硬件設備,驅(qū)動豐富 針對嵌人式的存儲方案,提供實時版本和完善的嵌入式解決方案 完善的中文支持,強大的技術(shù)支持,完整的文檔 開放源碼,豐富的軟件資源,廣泛的軟件開發(fā)者的支持,價格低廉,結(jié)構(gòu)靈活,適用面廣,53,常用嵌入式操作系統(tǒng),Linux OS與 Windows CE的比較 Linux是開放源代碼的,不存在黑箱技術(shù),遍布全球的眾多Linux愛好者都是Linux開發(fā)者的強大技術(shù)支持者;而Windows CE是非開放性OS;使第三方很難實現(xiàn)產(chǎn)品的定制。 Linux的源代碼隨處可得,注釋豐富,文檔齊全,易干解決各種問題。 Linux的內(nèi)核小、效率高;而 Windows CE在這方面是笨拙的,占用過多的RAM,應用程序龐大。 Linux是開放源代碼的OS,在價格上極具競爭力,適合中國國情。Windows CE的版權(quán)費用是廠家不得不考慮的因素。 Linux不僅支持X86芯片,還是一個跨平臺的系統(tǒng)。到目前為止,它可以支持20~30種CPU,很多 CPU(包括家電業(yè)的芯片)廠商都開始做Linux的平臺移植工作,而且移植的速度遠遠超過Java的開發(fā)環(huán)境。如果今天采用Linux環(huán)境開發(fā)產(chǎn)品,那么將來更換CPU時就不會遇到更換平臺的困擾。 Linux內(nèi)核的結(jié)構(gòu)在網(wǎng)絡方面是非常完整的,它提供了對包括十兆位、百兆位及千兆位的以太網(wǎng),還有無線網(wǎng)絡、Token ring(令牌環(huán))和光纖甚至衛(wèi)星的支持 Linux在內(nèi)核結(jié)構(gòu)的設計中考慮適應系統(tǒng)的可裁減性的要求,windows CE在內(nèi)核結(jié)構(gòu)的設計中并未考慮適應系統(tǒng)的高度可裁減性的要求,54,常用嵌入式操作系統(tǒng),VxWorks優(yōu)點 支持廣泛的工業(yè)標準 具備一個高效的微內(nèi)核 具有可伸縮性,55,,結(jié)束,56,- 1.請仔細閱讀文檔,確保文檔完整性,對于不預覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認領(lǐng)!既往收益都歸您。
下載文檔到電腦,查找使用更方便
200 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 應用 軟件工程師 崗位培訓 課程 常用 操作系統(tǒng) ppt 課件
鏈接地址:http://www.hcyjhs8.com/p-846426.html