<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    安全微服務服務通信 IO 模型包括哪些操作模式


    發現錯別字 9個月前 提問
    回答
    1
    瀏覽
    107
    請勿發布不友善或者負能量的內容。與人為善,比聰明更重要!
    回答數量: 1
    CISO 高級信息系統項目管理師 PMP

    安全微服務服務通信IO模型包括以下操作模式:

    • 阻塞IO:阻塞IO(Blocking IO,BIO)在默認情況下,所有套接口都是阻塞的,意味著IO的發起和結束都需等待。任何一個系統調用都會產生一個由用戶態到內核態切換,再從內核態到用戶態切換的過程,而進程上下文切換是通過系統中斷程序來實現的,需要保存當前進程的上下文狀態,這是一個成本很高的過程。

    • 非阻塞IO:如果采用非阻塞 IO(Non-blocking IO,NIO),即當我們把套接口設置成非阻塞時,會由用戶進程不停地詢問內核某種操作是否準備就緒,這就是我們常說的輪詢(Polling)。這同樣是一件比較浪費CPU的方式。

    • IO復用:IO復用主要依賴于操作系統提供的select和poll機制。同樣會阻塞進程,但是這里進程是阻塞在select或者poll這兩個系統調用上,而不是阻塞在真正的IO操作上。另外還有一點不同于阻塞 IO 的就是,盡管看起來 IO 復用阻塞了兩次,但是第一次阻塞是在 select 上, select可以監控多個套接口上是否已有IO操作準備就緒,而不是像阻塞IO那種,一次只能監控一個套接口。

    • 信號驅動IO:信號驅動IO就是說我們可以通過sigaction系統調用注冊一個信號處理程序,然后主程序可以繼續向下執行,當我們所監控的套接口有IO操作準備就緒時,由內核通知觸發前面注冊的信號處理程序執行,然后將我們所需要的數據從內核空間復制到用戶空間。

    • 異步IO:異步IO(Asynchronous IO,AIO)與信號驅動IO最主要的區別就是信號驅動IO是由內核通知我們何時可以進行IO操作,而異步IO則是由內核告訴我們IO操作何時完成了。具體來說,信號驅動IO中當內核通知觸發信號處理程序時,信號處理程序還需要阻塞在從內核空間緩沖區復制數據到用戶空間緩沖區這個階段,而異步IO是在第二個階段完成后內核直接通知可以進行后續操作。

    回答所涉及的環境:聯想天逸510S、Windows 10。

    9個月前 / 評論
    亚洲 欧美 自拍 唯美 另类