91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

RTOS入門之掃盲篇-理解任務、線程、進程的概念

zhangxiaognag ? 來源:zhangxiaognag ? 作者:zhangxiaognag ? 2023-06-06 11:52 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在我們實際開發(fā)或者構思項目的過程中,會根據(jù)產(chǎn)品的定義或者客戶需求對產(chǎn)品的功能上進行分解從而轉(zhuǎn)換成我們軟件的開發(fā)的概要設計需求表現(xiàn),比如我們需要做一個多路可調(diào)的電源輸出并且可以通過 PC 端控制電源的當前輸出以及實時顯示當前的輸出電壓和電流,但是接上負載之后可能由于線阻問題可能會導致負載端的電壓低于實際輸出端的電壓,所以還需要一個負載端(遠端)的電壓補償功能,如下圖1所示:

pYYBAGR929qAVE2uAAECGzy8z88824.png圖1 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖2

1.1 任務定義
在上述圖 1 和圖 2 的設計模塊的功能圖和功能關系圖之后,此時我們可以通過上述圖能發(fā)現(xiàn)哪些功能或者說模塊需要設計的,其實這里的“多通道電源控制”就是我們的“任務”。現(xiàn)在我們把這個大的任務已經(jīng)分解開上述圖 1 所示的 5 個小功能,這個 5 個小的功能咱們也可以稱之為任務。


1.2 觀察者角度
所以這里我們軟件上對“ 任務” 的理解,其實它是我們對所要做的一件事情從某種角度上的抽象出來的一功能或者一個執(zhí)行活動。 這里面為什么是從某種角度呢?這個很好理解,就是通常我們看到一個事情可以有很多方面去觀察的,比如事物的功能去劃分觀察,又或者是對事物的顏色或者活動狀態(tài)去劃分。所以在我們軟件開發(fā)過程中“某種角度”也就是說觀察者的觀察方向很重要,因為它直接的影響到了我們的軟件模塊劃分以及后續(xù)針對這個模塊進行線程或者進程的執(zhí)行有著直接影響。

1.3 操作系統(tǒng)的調(diào)度
這里面我們不得不說些關于操作系統(tǒng)的調(diào)度這個概念了, 當有一堆任務需要被處理,但由于資源有限,比如說只有一臺打印機,現(xiàn)在有很多人都需要打印各自的文檔那怎么辦呢?現(xiàn)在的資源(打印機)只有一個,但任務(很多人需要打印)比較多。 這就需要確定某種規(guī)則來決定處理這些任務,這就是調(diào)度要做的事情了。 現(xiàn)在回到我們的 CPU 上,就拿現(xiàn)在的單核 CPU, CPU 在同一個時間點只能做一件事情,那它是如何處理多件不同的事情呢? 這里一般情況分為搶占式和時間片式的調(diào)度方式,當然還有很多其它的調(diào)度算法,咱們只是
了解即可。

1.4 線程
線程則是某一進程中一路單獨運行的程序。也就是說,線程存在于進程之中。一個進程由一個或多個線程構成,各線程共享相同的代碼和全局數(shù)據(jù),但各有其自己的堆棧。由于堆棧是每個線程一個,所以局部變量對每一線程來說是私有的。由于所有線程共享同樣的代碼和全局數(shù)據(jù),它們比進程更緊密,比單獨的進程間更趨向于相互作用,線程間的相互作用更容易些,因為它們本身就有某些供通信用的共享內(nèi)存:進程的全局數(shù)據(jù)。線程是進程中執(zhí)行運算的最小單位,亦即執(zhí)行處理機調(diào)度的基本單位。 如果把進程理解為在邏輯上操作系統(tǒng)所完成的任務,那么線程表示完成該任務的許多可能的子任務之一。 還是列舉上述圖 1 的例子“多通道電源控制”項目。這里面的“多通道電源控制”的這個大任務,如果把它當作一個進程的話,那么它下面 5 個小任務就可以理解為我們的線程(子任務)。線程可以在處理器上獨立調(diào)度執(zhí)行,這樣,在多處理器環(huán)境下就允許幾個線程各自在單獨處理器上進行。操作系統(tǒng)提供線程就是為了方便而有效地實現(xiàn)這種并發(fā)性,當然在單處理器上的線程,其實從宏觀角度來看也是并行執(zhí)行的。

1.5 進程
進程是表示資源分配的基本單位,又是調(diào)度運行的基本單位。例如,用戶運行自己的程序,系統(tǒng)就創(chuàng)建一個進程,并為它分配資源,包括各種表格、內(nèi)存空間、磁盤空間、 I/O 設備等。然后,把該進程放人進程的就緒隊列。進程調(diào)度程序選中它,為它分配 CPU 以及其它有關資源,該進程才真正運行。所以,進程是系統(tǒng)中的并發(fā)執(zhí)行的單位。一個進程和一個線程最顯著的區(qū)別是:線程有自己的全局數(shù)據(jù)。線程存在于進程中,因此一個進程的全局變量由所有的線程共享。由于線程共享同樣的系統(tǒng)區(qū)域,操作系統(tǒng)分配給一個進程的資源對該進程的所有線程都是可用的,正如全局數(shù)據(jù)可供所有線程使用一樣。

pYYBAGR93OGAN_BBAADS75DRFTk820.png

poYBAGR93TKAByUXAA0UFMzfick296.png實戰(zhàn)項目應用


郵箱:TianjiStar.work@outlook.com

審核編輯:湯梓紅


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • cpu
    cpu
    +關注

    關注

    68

    文章

    11286

    瀏覽量

    225152
  • FreeRTOS
    +關注

    關注

    14

    文章

    499

    瀏覽量

    66974
  • 線程
    +關注

    關注

    0

    文章

    510

    瀏覽量

    20829
  • 進程
    +關注

    關注

    0

    文章

    211

    瀏覽量

    14544
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    RTOS中的線程、進程和協(xié)程詳解

    看到有小伙伴在討論【RTOS任務屬于線程還是進程】的話題,這里就來分析一下OS中的線程、進程和協(xié)
    的頭像 發(fā)表于 11-09 12:36 ?3055次閱讀
    <b class='flag-5'>RTOS</b>中的<b class='flag-5'>線程</b>、<b class='flag-5'>進程</b>和協(xié)程詳解

    進程線程概念及其區(qū)別

    今天浩道跟大家分享一關于進程線程之間關聯(lián)的硬核干貨,看看大神如何通過通俗易懂的圖文,讓大家更加深刻理解進程
    的頭像 發(fā)表于 11-21 10:50 ?2417次閱讀
    <b class='flag-5'>進程</b>和<b class='flag-5'>線程</b>的<b class='flag-5'>概念</b>及其區(qū)別

    深入理解和實現(xiàn)RTOS_連載

    ,那里有更詳細的注釋,而且是全中文的。深入理解和實現(xiàn)RTOS_連載5_多任務機制應用演示本節(jié)我們通過在評估板上的實例來演示有關線程調(diào)度和管理的API。因為每個例子中都包括了
    發(fā)表于 05-29 11:20

    深入理解和實現(xiàn)RTOS_連載

    和trcohili的帖子。trochili rtos完全是作者興趣所在,且行且堅持,比沒有duo。深入理解和實現(xiàn)RTOS_連載1_RTOS的前生今世今天發(fā)布的是第一
    發(fā)表于 05-30 01:02

    【MiCOKit試用體驗】慶科MiCO系統(tǒng)(1)MiCO RTOS線程

    2mico_rtos_delete_thread刪除進程,使進入終止狀態(tài),并在IDLE線程中清除資源3mico_rtos_suspend_
    發(fā)表于 10-24 16:26

    請問uCOS-II中的任務進程還是線程?

    個提問,然后上面的定義是百度的。按照定義任務應該是進程。有沒大佬從rtos的角度剖析一下進程線程的區(qū)別。
    發(fā)表于 06-03 05:07

    理解任務切換和任務狀態(tài)改變的關鍵是什么?

    理解任務調(diào)度與切換的關鍵是從代碼層面理解各種列表的操作邏輯思路:狀態(tài)列表(Running,Ready,Blocked,Suspended)和事件列表(比如隊列,信號量等中的阻塞事件列表)。這些操作是在各個API 函數(shù)中的,綜合起來感覺還是有些霧水?,F(xiàn)在遇到一個問題麻煩大佬
    發(fā)表于 06-13 09:00

    【資料】RT-Threa操作系統(tǒng)中任務概念及實現(xiàn)任務所用到的數(shù)據(jù)結構

    。因為在RT-Thread操作系統(tǒng)中不會區(qū)分進程線程概念,因此可以理解為CPU可執(zhí)行的最基本實例。如果你一定要用進程
    發(fā)表于 03-23 15:11

    進程與多線程的基本概念

    ,如此往復,宏觀上看來,就好像是多個線程在一起執(zhí)行.由于這多個線程分屬于不同的進程,因此在我們看來,就好像是多個進程在同時執(zhí)行,這樣就實現(xiàn)了多任務
    發(fā)表于 04-02 14:49 ?1012次閱讀

    LEDs狀態(tài)燈任務(線程)設計 (基于RTOS

    LEDs狀態(tài)燈任務(線程)設計(基于RTOS
    的頭像 發(fā)表于 03-12 11:30 ?3182次閱讀

    淺析OS中的線程進程和協(xié)程與RTOS任務屬于那種

    今天為大家講解講解OS中的線程、進程和協(xié)程的這幾個概念,同時一起看看RTOS中的任務到底屬于哪一種。
    的頭像 發(fā)表于 04-19 10:06 ?3917次閱讀
    淺析OS中的<b class='flag-5'>線程</b>、<b class='flag-5'>進程</b>和協(xié)程與<b class='flag-5'>RTOS</b><b class='flag-5'>任務</b>屬于那種

    RTOS的最通俗理解】行業(yè)大佬用一文章帶你快速理解RTOS

    電子產(chǎn)品2.2 要深入理解RTOS就必須深入理解CPU架構3. 課程重點系統(tǒng)課程學習 5分鐘拿下你的三連,RTOS
    發(fā)表于 12-20 19:08 ?17次下載
    【<b class='flag-5'>RTOS</b>的最通俗<b class='flag-5'>理解</b>】行業(yè)大佬用一<b class='flag-5'>篇</b>文章帶你快速<b class='flag-5'>理解</b><b class='flag-5'>RTOS</b>

    RTOS中的任務線程?進程?還是協(xié)程?

    今天為大家講解講解OS中的線程、進程和協(xié)程的這幾個概念,同時一起看看RTOS中的任務到底屬于哪一種。
    的頭像 發(fā)表于 06-04 17:19 ?2398次閱讀
    <b class='flag-5'>RTOS</b>中的<b class='flag-5'>任務</b>是<b class='flag-5'>線程</b>?<b class='flag-5'>進程</b>?還是協(xié)程?

    基于RTOS的應用進程中的典型線程

    RTOS中的關鍵因素是最小的中斷延遲和最小的線程切換延遲。RTOS的價值在于它的響應速度或可預測性,而不是它在給定時間段內(nèi)可以執(zhí)行的工作量。
    發(fā)表于 03-05 09:32 ?1568次閱讀
    基于<b class='flag-5'>RTOS</b>的應用<b class='flag-5'>進程</b>中的典型<b class='flag-5'>線程</b>

    RTOS 必學概念任務、信號量、隊列一次搞懂

    個FIFO緩沖區(qū)?”這些問題聽起來基礎,但又總是繞在初學者腦子里。很多人直接拿FreeRTOS、RTX這樣的RTOS例程開搞,能跑起來,卻完全沒理解任務調(diào)度、信號
    的頭像 發(fā)表于 11-17 10:53 ?500次閱讀
    <b class='flag-5'>RTOS</b> 必學<b class='flag-5'>概念</b>:<b class='flag-5'>任務</b>、信號量、隊列一次搞懂