微處理機作業系統
This presentation is the property of its rightful owner.
Sponsored Links
1 / 34

微處理機作業系統 PowerPoint PPT Presentation


  • 44 Views
  • Uploaded on
  • Presentation posted in: General

微處理機作業系統. 微處理機作業系統架構的演進. 微處理機作業系統特色. 記憶體空間需求小且整體效率高 良好的省電功能 與 PC 溝通的功能 開放應用程式撰寫環境與動態載入應用程式 通訊功能. 行程與執行緒. 為了方便管理應用程式,微處理機作業系統會分別以一個執行單位來看待一項工作或是一個程式,這個執行單位在不同的微處理機作業系統中會有不同的名稱與意義,大多為 行程與執行緒. A single execution unit. main ( ) { ….. a_task ( ); ….. }

Download Presentation

微處理機作業系統

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


5963630

微處理機作業系統


5963630

微處理機作業系統架構的演進


5963630

微處理機作業系統特色

  • 記憶體空間需求小且整體效率高

  • 良好的省電功能

  • 與PC溝通的功能

  • 開放應用程式撰寫環境與動態載入應用程式

  • 通訊功能


5963630

行程與執行緒

  • 為了方便管理應用程式,微處理機作業系統會分別以一個執行單位來看待一項工作或是一個程式,這個執行單位在不同的微處理機作業系統中會有不同的名稱與意義,大多為行程與執行緒


5963630

A single

execution unit

main()

{ …..

a_task();

…..

}

void a_task()

{

…..

}

應用程式執行單位


5963630

Process 1

/* program 1*/

main()

{

program1();

}

void program1()

{

}

/* program 2*/

main()

{

program2();

}

void program2 ()

{

}

Process 2

/* program 3*/

main()

{

program3();

}

void program3()

{

}

Process 3

Process 4

/* program 4*/

main()

{

program4();

}

void program4()

{

}

行程代表著不同的應用程式


Process thread task

行程(process)/ 執行緒(thread)/工作(task)

  • 通常作業系統會配給行程(process)裡一塊記憶體空間,放著該行程所有的程式碼與資料,以及一些系統服務的紀錄資料,例如檔案開啟的紀錄表、虛擬記憶對應表等,當然還包含了該行程每次執行時,微處理機的執行狀態

  • 但對於這個行程內的執行緒(thread)/工作(task)而言,分配到的可能是位於該行程內的一段記憶體空間,紀錄著該執行緒/工作的程式碼與資料,以及每次微處理機的執行狀態,而那些屬於全域性的紀錄資料,並不會複製到每一個執行緒/工作內,像是上述的檔案開啟的紀錄表、虛擬記憶對應表等。


5963630

Memory

CPU

Process 1 data, code

Program counter

Process 2 data, code

Register Files

Process 3 data, code

Process 4 data, code

Process 1 record

Process 2 record

Process 3 record

Process 4 record

行程、記憶體與微處理器的關係


5963630

Memory

CPU Status in Thread 1 of Process 1

Process 1 code, data

Program counter

Register Files

CPU Status in Thread 2 of Process 1

Program counter

Process 1 record

Register Files

執行緒/工作、記憶體與微處理器的關係


C os ii s task control block

µC/OS-II’s Task Control Block 資料結構

typedef struct os_tcb {

OS_STK *OSTCBStkPtr;

#if OS_TASK_CREATE_EXT_EN

void *OSTCBExtPtr;

OS_STK *OSTCBStkBottom;

INT32U OSTCBStkSize;

INT16U OSTCBOpt;

INT16U OSTCBId;

#endif

struct os_tcb *OSTCBNext;

struct os_tcb *OSTCBPrev;

#if (OS_Q_EN && (OS_MAX_QS >= 2)) || OS_MBOX_EN || OS_SEM_EN

OS_EVENT *OSTCBEventPtr;

#endif

#if (OS_Q_EN && (OS_MAX_QS >= 2)) || OS_MBOX_ EN

void *OSTCBMsg;

#endif

INT16U OSTCBDly;

INT8U OSTCBStat;

INT8U OSTCBPrio;

INT8U OSTCBX;

INT8U OSTCBY;

INT8U OSTCBBitX

INT8U OSTCBBitY;

#if OS_TASK_DEL_EN

BOOLEAN OSTCBDelReq;

#endif

} OS_TCB;


5963630

排程

  • 排程可以說是作業系統核心中最重要工作之一,因為CPU只有一個,所以在一個多工的系統中,核心必須適當的安排分配每個程式的執行時間,讓整各系統看起來就像是有許許多多的程式同時在執行一樣。通常核心會以分時(Time Slicing)的觀念來讓大家共享CPU資源。把CPU執行的時間,分成一段段的,每個程式就分配到這些時間來執行任務。這一段一段的時間,在不同的作業系統中,有的長,可能是200個分時,有的短,也有只有20個分時,有的是固定的,也有可以調整的,而每一段的執行時間到了,就必須輪替換下一個程式執行,那要輪到哪一個,就必須要由核心的排程器來決定。


5963630

Process 1

Process 2

Process 4

Process 3

排程


5963630

即時系統

  • Real time in operating systems: the ability of the operating system to provide a required level of service in a bounded response time.


5963630

本文切換

  • 當透過作業系統的排程器的選擇機制,決定下一個CPU的使用權是交給那一個工作來執行之後,作業系統就必須要做切換的動作。有個專有名詞來描述這種切換的動作,稱為本文切換(context switch)。

  • 做本文切換的時候,必須要將目前的工作狀態(task context)全部記錄起來,包括了程式指標(program counter/instruction pointer)、堆疊指標(stack pointer)及所有微處理器的其他暫存器內容。


C os context switch

µC/OS 本文切換(context switch)

步驟一


C os context switch1

µC/OS本文切換(context switch)

步驟二


C os context switch2

µC/OS 本文切換(context switch)

步驟三


C os context switch3

µC/OS本文切換(context switch)

步驟四


C os context switch4

µC/OS 本文切換(context switch)

步驟五


C os context switch5

µC/OS 本文切換(context switch)

步驟六


C os context switch6

µC/OS本文切換(context switch)

步驟七


C os context switch7

µC/OS本文切換(context switch)

步驟八


C os context switch8

µC/OS本文切換(context switch)

步驟九


5963630

內部行程通訊

  • 在有些特殊需求的時候,會有至少一個以上的行程(process)來完成單一應用程式。但這些不同的行程或是執行緒享有的系統資源往往是獨立的,無法直接分享,因此作業系統核心必須要提供所謂的內部行程通訊IPC(Inter-Process Communication),讓這些不同的行程間可以互相交換訊息,也可以藉此知道彼此的意圖來做出相對應的行為


5963630

內部行程通訊方法

  • 透過作業系統中的記憶體子系統,也就是一般所說的共用記憶體(share memory)。 Mail Box、Message Queue也是利用相同的觀念所設計出來的通訊機制。

  • 透過作業系統中的檔案系統。

  • 透過作業系統所提供的虛擬溝通機制 。例如管道(pipe)。

  • 透過作業系統所提供的信號(signal)機制 。


5963630

共用記憶體機制


5963630

檔案系統共用機制


5963630

作業系統提供的虛擬溝通管道


5963630

信號型態的行程間通訊


Wince net

WinCE .Net


Symbian os

Symbian OS


Vxworks

VxWorks


Nucleus

Nucleus


5963630

總結

  • 本章內容由行程與執行緒、排程、本文切換、記憶體管理、內部行程通訊等主題讓大家了解微處理機作業系統的運作原理,行程或執行緒乃為系統程式的執行單位,之間的排程選擇、切換流程皆為微處理機作業系統的重點,

  • 除此之外,記憶體管理、內部行程通訊,對於系統的執行效能也是非常之重要。另外也帶入了在微處理機作業系統中一個重要的研究方向-即時系統,讓讀者了解即時系統的定義。


  • Login