多工系統

2022-10-05 15:51:22 字數 1197 閱讀 5621

多工系統的事件響應是在中斷中完成的,但事件的處理是在任務中完成的。

在多工系統中,任務與中斷一樣,也具有優先順序,優先順序高的任務會被優先執行。當乙個緊急事件在中斷中被標記之後,如果事件對應的任務的優先順序足夠高,就會立刻得到響應。

相比前後臺系統,多工系統的實時性又被提高了。

int flag1 = 0;

int flag2 = 0;

int flag3 = 0;

int main()

hardwareinit();//硬體初始化

rtosinit();//rtos初始化

rtosstart();//rtos啟動,多任務排程,不再返回

void isr1(void){

flag1 = 1;//置標誌位

void isr2void){

flag1 = 2;//置標誌位

void isr3(void){

flag1 = 3;//置標誌位

void taskthread1(void){

while(1){//無限迴圈,不能返回

if(flag1){//任務實體

... .....//處理事件

flag1=0;

waitdelay();//阻塞等待

void taskthread2(void){

while(1){//無限迴圈,不能返回

if(flag2){//任務實體

... .....//處理事件

flag2=0;

waitdelay();//阻塞等待

void taskthread3(void){

while(1){//無限迴圈,不能返回

if(flag3){//任務實體

... .....//處理事件

flag3=0;

waitdelay();//阻塞等待

在多工系統中,根據程式的功能,我們把這個程式主體分割成乙個個獨立的、無限迴圈且不能返回的小程式,這個小程式我們稱之為任務。

每個任務都是獨立的、互不干擾的,且具備自身的優先順序,它由作業系統排程管理。

加入作業系統後,我們在程式設計時不需要精心地設計程式的執行流,不用擔心每個功能模組之間是否存在干擾,程式設計反而變得簡單了。

無論是裸機系統中的輪詢系統、前後臺系統還是多工系統,我們不能簡單地說孰優孰劣,它們是不同時代的產物,在各自的領域都還有相當大的應用價值,只有合適的才是最好的。

多工作業系統

單使用者單任務作業系統是指一台計算機同時只能有乙個使用者在使用,該使用者一次只能提交乙個作業,乙個使用者獨自享用系統的全部硬體和軟體資源。多使用者與多工作業系統是指一台計算機可以同時有多個使用者同時使用,並且同時可以執行由多個使用者提交的多個任務。windows多工處理採用的是虛擬機器技術,為每乙個...

多工作業系統的任務切換

在學習os時,對於多工作業系統的任務切換,一直不能理解 控制權是怎麼麼回到排程程式上的?記得在描述任務切換時,一般都是這麼描述的 在每乙個時鐘滴答,都將檢查當前程序是否是乙個運 行超過100毫秒的使用者程序。如果是,則呼叫排程程式來檢視是否有另乙個使用者程序在等待cpu,我這裡舉個例子 我用 寫了乙...

多工 同步

實現多工之間通訊的最簡便的辦法是使用共享的資料結構。雖然共享資料區簡化了任務間的通訊,但是必須保證 每個任務在處理共享資料時的排他性。以避免競爭和資料破壞。共享資源滿足互斥性的一般方法有 1.關中斷,開中斷 2.使用測試並置位指令 3.禁止做任務切換 4.利用訊號量 一.關中斷 開中斷 這估計是最簡...