娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

Linux驅(qū)動之異步OR同步,阻塞OR非阻塞概念介紹

發(fā)布者:RainbowPromise最新更新時間:2024-08-20 來源: cnblogs關(guān)鍵字:Linux驅(qū)動 手機看文章 掃描二維碼
隨時隨地手機看文章

1.同步與異步
同步和異步關(guān)注的是消息通信機制 (synchronous communication/ asynchronous communication)
所謂同步,就是在發(fā)出一個*調(diào)用*時,在沒有得到結(jié)果之前,該*調(diào)用*就不返回。但是一旦調(diào)用返回,就得到返回值了。
換句話說,就是由*調(diào)用者*主動等待這個*調(diào)用*的結(jié)果。

而異步則是相反,*調(diào)用*在發(fā)出之后,這個調(diào)用就直接返回了,所以沒有返回結(jié)果。換句話說,當一個異步過程調(diào)用發(fā)出后,調(diào)用者不會立刻得到結(jié)果。而是在*調(diào)用*發(fā)出后,*被調(diào)用者*通過狀態(tài)、通知來通知調(diào)用者,或通過回調(diào)函數(shù)處理這個調(diào)用。

典型的異步編程模型比如Node.js

舉個通俗的例子:
你打電話問書店老板有沒有《分布式系統(tǒng)》這本書,如果是同步通信機制,書店老板會說,你稍等,”我查一下',然后開始查啊查,等查好了(可能是5秒,也可能是一天)告訴你結(jié)果(返回結(jié)果)。
異步通信機制,書店老板直接告訴你我查一下啊,查好了打電話給你,然后直接掛電話了(不返回結(jié)果)。然后查好了,他會主動打電話給你。在這里老板通過“回電”這種方式來回調(diào)。

2. 阻塞與非阻塞
阻塞和非阻塞關(guān)注的是程序在等待調(diào)用結(jié)果(消息,返回值)時的狀態(tài).

阻塞調(diào)用是指調(diào)用結(jié)果返回之前,當前線程會被掛起。調(diào)用線程只有在得到結(jié)果之后才會返回。
非阻塞調(diào)用指在不能立刻得到結(jié)果之前,該調(diào)用不會阻塞當前線程。

還是上面的例子,
你打電話問書店老板有沒有《分布式系統(tǒng)》這本書,你如果是阻塞式調(diào)用,你會一直把自己“掛起”,直到得到這本書有沒有的結(jié)果,如果是非阻塞式調(diào)用,你不管老板有沒有告訴你,你自己先一邊去玩了, 當然你也要偶爾過幾分鐘check一下老板有沒有返回結(jié)果。
在這里阻塞與非阻塞與是否同步異步無關(guān)。跟老板通過什么方式回答你結(jié)果無關(guān)


關(guān)鍵字:Linux驅(qū)動 引用地址:Linux驅(qū)動之異步OR同步,阻塞OR非阻塞概念介紹

上一篇:Linux驅(qū)動之同步、互斥、阻塞的應(yīng)用
下一篇:Linux驅(qū)動之異步通知的應(yīng)用

推薦閱讀最新更新時間:2025-06-07 23:41

linux設(shè)備驅(qū)動的學(xué)習之一
由于項目上要用到,于是乎我要學(xué)習linux設(shè)備驅(qū)動的編寫,開始的時候還比較清楚,能夠?qū)唵蔚腉PIO控制操作實現(xiàn)出來,但是項目上要用到的是SPI和GPIO的輸入中斷來讀取AD的電壓值,然后就陷入到了一個龐大的設(shè)備代碼閱讀中去了,尤其是platform device的學(xué)習,到現(xiàn)在都還沒有理清其中的關(guān)系,雖然搜索了很多網(wǎng)上的文章,但慶幸的是我有一種比著框框買鴨蛋的精神,我想要比著這些源碼畫一個出來。以前沒有在LPC1768上使用過SPI,導(dǎo)致對SPI是一個完全陌生的狀態(tài),不清楚他的傳輸方式,這也是學(xué)習中的一個問題,也是一開始我的盲目無方向感的原因,因為這里的linux SPI設(shè)備驅(qū)動和SPI協(xié)議就是兩個要學(xué)習的問題。 先來把“簡單
[單片機]
ARM-Linux S5PV210 UART驅(qū)動(3)----串口核心層、關(guān)鍵結(jié)構(gòu)體、接口關(guān)系
盡管一個特定的UART設(shè)備驅(qū)動完全可以按照tty驅(qū)動的設(shè)計方法來設(shè)計,即定義tty_driver并實現(xiàn)tty_operations其中的成員函數(shù),但是Linux已經(jīng)在文件serial_core.c中實現(xiàn)了UART設(shè)備的通用tty驅(qū)動層,稱為串口核心層,這樣,UART驅(qū)動的主要任務(wù)變成了實現(xiàn)serial_core.c中定義的一組uart_xxx接口而非tty_xxx接口。   uart設(shè)備是繼tty_driver的又一層封裝.實際上uart_driver就是對應(yīng)tty_driver.在它的操作函數(shù)中,將操作轉(zhuǎn)入uart_port.在寫操作的時候,先將數(shù)據(jù)放入一個叫做circ_buf的環(huán)形緩存區(qū).然后uart_port從緩存
[單片機]
ARM-<font color='red'>Linux</font> S5PV210 UART<font color='red'>驅(qū)動</font>(3)----串口核心層、關(guān)鍵結(jié)構(gòu)體、接口關(guān)系
Linux設(shè)備驅(qū)動中的異步通知與異步I/O
異步通知概念: 異步通知的意識是,一旦設(shè)備就緒,則主動通知應(yīng)用程序,這樣應(yīng)用程序根本就不需要查詢設(shè)備狀態(tài),這一點非常類似于硬件上的“中斷”概念,比較準確的稱謂是“信號驅(qū)動的異步IO”,信號是在軟件層次上對中斷機制的一種模擬,在原理上,一個進程收到一個信號與處理器收到一個中斷請求是一樣的。信號是異步的,一個進進程不必通過任何操作來等待信號的到達,事實上,進程也不知道信號到底什么時候到達。 異步通知與設(shè)備訪問: 阻塞IO意味著一直等待設(shè)備可訪問后訪問;非阻塞IO使用poll意味著查詢設(shè)備是否可以訪問;而異步通知則意味著設(shè)備通知自身可訪問,實現(xiàn)了異步I/O。 用kill -l 命令可以查看Linux可用的信號 信號的接收
[單片機]
<font color='red'>Linux</font>設(shè)備<font color='red'>驅(qū)動</font>中的<font color='red'>異步</font>通知與<font color='red'>異步</font>I/O
Linux驅(qū)動同步、互斥、阻塞的應(yīng)用
同步、互斥、阻塞的概念: 同步:在并發(fā)程序設(shè)計中,各進程對公共變量的訪問必須加以制約,這種制約稱為同步。 互斥機制:訪問共享資源的代碼區(qū)叫做臨界區(qū),這里的共享資源可能被多個線程需要,但這些共享資源又不能被同時訪問,因此臨界區(qū)需要以某種互斥機制加以保護,以確保共享資源被互斥訪問。 阻塞與非阻塞:阻塞調(diào)用是指調(diào)用結(jié)果返回之前,當前線程會被掛起,調(diào)用線程只有在得到結(jié)果之后才會返回。非阻塞調(diào)用指在不能立刻得到結(jié)果之前,該調(diào)用不會阻塞當前線程,而是直接返回。 在按鍵驅(qū)動的例子中,如果有多個應(yīng)用程序調(diào)用按鍵驅(qū)動的設(shè)備文件,這時候就要利用同步與互斥的概念對這個種情況進行處理: 1、利用原子變量標志來判斷設(shè)備文件是否被打開,
[單片機]
linux驅(qū)動學(xué)習(1)-環(huán)境及hello world程序
驅(qū)動開發(fā)使用的是tq2440的開發(fā)板,linux內(nèi)核版本為linux-2.6.30.4。 首先解壓linux源碼,拷貝配置文件cp -f config_EmbedSky_W35_256MB .config (否則會出現(xiàn)version magic '2.6.30.4 mod_unload modversions ARMv5 ' should be '2.6.30'的版本錯誤) Make distclean Make oldconfig Make 之后就可以編譯hello驅(qū)動文件了 $ make modules make -C /opt/EmbedSky/linux-2.6.30.4 M=/opt/E
[單片機]
<font color='red'>linux</font><font color='red'>驅(qū)動</font>學(xué)習(1)-環(huán)境及hello w<font color='red'>or</font>ld程序
英特爾 Gaudi2C AI 加速卡現(xiàn)身 Linux 驅(qū)動,消息稱是中國特供版
12 月 20 日消息,今年 7 月,英特爾面向中國市場推出了一款 Gaudi2 處理器,主要應(yīng)用于加速 AI 訓(xùn)練及推理。 據(jù) Phoronix 報道,還有一個新的加速卡版本將至,英特爾已在其 Linux 驅(qū)動程序中添加了對 Gaudi2C 的支持。 目前尚不清楚 Gaudi2C 和 Gaudi2 之間的區(qū)別,報道稱可能是一個“有限”變體,依然是中國市場特供產(chǎn)品。外媒 tomshardware 也表示可能是 Gaudi2 的精簡版。 Linux 補丁顯示,該產(chǎn)品是一個 PCI 版本 ID 為“3”的 Gaudi2,并且遵循與 Gaudi2 和 Gaudi2B 版本相同的驅(qū)動程序代碼路徑。 據(jù)IT之家援引 Serve th
[嵌入式]
Linux高級驅(qū)動】觸摸屏驅(qū)動的移植
觸摸屏驅(qū)動的移植 流程 注意:看框架圖 1.添加input.c組件 Device Drivers --- Input device support --- Generic input layer (needed for keyboard, mouse, ...) 2.添加evdev.c組件 Device Drivers --- Input device support --- * Event interface 3.添加s3c2410_ts.c觸摸屏驅(qū)動 修改driver/input/touchscreen/Kconfig config TOUCHSCREEN_S3C2410 tristate Samsun
[單片機]
[linux 底層]u-boot EMMC驅(qū)動
山寨機的時代,很多年輕的朋友可能比較陌生,手機上會安裝一個SD卡,做存儲擴展;目前的智能手機會在PCB板上焊接一個EMMC芯片,做大容量數(shù)據(jù)存儲,安全性好了很多,手機丟了也不用擔心照片或者資料泄露的問題; 1、EMMC特性 -符合JEDEC/MMC標準版本5.0 -高級12信號接口 -x1、x4和x8I/O,可由主機選擇 -SDR/DDR模式,可達52MHz時鐘速度 -HS200/HS400模式 -命令類:class 0 (basic); class 2 (blockread); class 4 (block write); class 5 (erase);class 6 (write protecti
[單片機]
[<font color='red'>linux</font> 底層]u-boot EMMC<font color='red'>驅(qū)動</font>
小廣播
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機文章

 
EEWorld訂閱號

 
EEWorld服務(wù)號

 
汽車開發(fā)圈

 
機器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務(wù)審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 曲阳县| 浦城县| 庄浪县| 连城县| 嘉义县| 九寨沟县| 阿坝| 阆中市| 武义县| 军事| 曲水县| 封丘县| 黄大仙区| 益阳市| 科技| 宁德市| 北流市| 吉林省| 蓬安县| 清河县| 望城县| 互助| 胶南市| 甘谷县| 克东县| 蕲春县| 景谷| 芜湖市| 瑞丽市| 昔阳县| 石城县| 扶绥县| 石嘴山市| 阿拉善右旗| 通化市| 咸宁市| 北流市| 富宁县| 台南市| 特克斯县| 抚顺县|