arm rtx教程_ARM RTX操作系统—Overview—Product Description
Product Description
RTX內(nèi)核提供了基本的功能,可以創(chuàng)建和注銷任務(wù)進(jìn)程。同時(shí)RTX內(nèi)核還提供了一些額外的功能,用于任務(wù)進(jìn)程之間的通信。利用這些通信功能,可以同步任務(wù)進(jìn)程,管理系統(tǒng)公用的資源(例如外設(shè)或者內(nèi)存),在任務(wù)進(jìn)程之間傳遞消息。
開發(fā)者可以設(shè)置任務(wù)進(jìn)程的調(diào)度優(yōu)先級(jí)。
RTX內(nèi)核提供了以下的任務(wù)進(jìn)程通信功能:
1,事件標(biāo)志位(Event flags)
事件標(biāo)志位是實(shí)現(xiàn)任務(wù)進(jìn)程之間同步的首要手段。每個(gè)任務(wù)進(jìn)程有16個(gè)事件標(biāo)志位。因此每個(gè)任務(wù)進(jìn)程都可以等待16件事情或者其中一部分事件的發(fā)生,然后處理他們。
一個(gè)任務(wù)進(jìn)程的事件標(biāo)志位,可以被其他的任務(wù)進(jìn)程或者ARM中斷程序置位。通過在ARM中斷程序中將事件標(biāo)志位置位的方式,可以實(shí)現(xiàn)外部異步事件和RTX內(nèi)核的同步。
簡(jiǎn)單的來說,就是其他任務(wù)進(jìn)程或者中斷程序置位標(biāo)志位,而當(dāng)前任務(wù)進(jìn)程選擇等待某個(gè)任務(wù)標(biāo)志位,如果某個(gè)標(biāo)志位置位了,表明有某件事情已經(jīng)發(fā)生了,那么當(dāng)前進(jìn)程可以根據(jù)事件標(biāo)志位代表的含義完成相應(yīng)的工作。
2,信號(hào)量(Semaphores)
當(dāng)多個(gè)任務(wù)需要同時(shí)訪問一個(gè)公用的資源時(shí),會(huì)發(fā)生競(jìng)爭(zhēng)。競(jìng)爭(zhēng)會(huì)因?yàn)槎鄠€(gè)進(jìn)程的交叉訪問,使得系統(tǒng)公用的資源工作不正常。
信號(hào)量(二進(jìn)制信號(hào)量)就是解決這一問題的主要手段。信號(hào)量確保了一個(gè)時(shí)刻只有一個(gè)任務(wù)進(jìn)程在訪問公用的資源。
RTX內(nèi)核的具體實(shí)現(xiàn)方式為:
信號(hào)量是軟體實(shí)現(xiàn)一個(gè)對(duì)象,這個(gè)對(duì)象里面包含一個(gè)虛擬token。RTX內(nèi)核將這個(gè)token授予給第一個(gè)請(qǐng)求公用資源的那個(gè)任務(wù)進(jìn)程。當(dāng)有其他的任務(wù)進(jìn)程再請(qǐng)求這個(gè)公用資源時(shí),會(huì)因?yàn)楫?dāng)前token未被釋放給信號(hào)量,而被RTX內(nèi)核設(shè)置為sleep狀態(tài)進(jìn)行等候。直到第一個(gè)任務(wù)進(jìn)程釋放掉token,token被RTX內(nèi)核還給信號(hào)量,其他的任務(wù)進(jìn)程會(huì)被RTX內(nèi)核立即放置到ready list中,準(zhǔn)備開始運(yùn)行。
RTX內(nèi)核還提供了超時(shí)機(jī)制,放置任務(wù)進(jìn)程因?yàn)榈却粋€(gè)信號(hào)量而永久的處于sleep狀態(tài)。
互斥鎖(Mutexes)
互斥鎖也是解決競(jìng)爭(zhēng)和內(nèi)存訪問問題的手段之一。
互斥鎖是軟體實(shí)現(xiàn)的一個(gè)對(duì)象,任務(wù)進(jìn)程可以利用他來鎖住某個(gè)公用資源。只有鎖住公用進(jìn)程的這個(gè)任務(wù)進(jìn)程擁有鎖,并可以訪問對(duì)應(yīng)的公用資源。其他任務(wù)進(jìn)程因?yàn)闊o法得到鎖而無法訪問公用資源。RTX內(nèi)核會(huì)一直阻塞這些請(qǐng)求互斥鎖的任務(wù)進(jìn)程,直到擁有鎖的任務(wù)進(jìn)程釋放鎖。
郵件信箱(Mailboxes,原諒翻譯的不夠好)
郵件信箱應(yīng)該是用來存放消息的。
任務(wù)進(jìn)程之間可以通過郵件信箱的方式相互傳遞消息(message)。這種方式在創(chuàng)建一些高層級(jí)的協(xié)議時(shí)經(jīng)常被用到,例如TCP-IP,UDP,以及ISDN。
消息其實(shí)是一個(gè)指針,指向一塊包含有消息內(nèi)容的內(nèi)存區(qū)域。任務(wù)進(jìn)程必須負(fù)責(zé)動(dòng)態(tài)創(chuàng)建和釋放掉這些內(nèi)存區(qū)域,以防止出現(xiàn)內(nèi)存泄露。
如果消息還未到達(dá),RTX內(nèi)核會(huì)將等待消息的任務(wù)進(jìn)程設(shè)置為sleep狀態(tài)。內(nèi)核會(huì)盡快的喚醒任務(wù)進(jìn)程,當(dāng)有其他任務(wù)進(jìn)程發(fā)送消息過來。
總結(jié)
以上是生活随笔為你收集整理的arm rtx教程_ARM RTX操作系统—Overview—Product Description的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 论文笔记之:Deep Attention
- 下一篇: 系统服务器如何给指定磁盘扩容_刀片服务器