馬哥云原生/微服務(wù)治理大廠沖刺班/名師親授
用戶態(tài)和內(nèi)核態(tài)之間的切換是通過系統(tǒng)調(diào)用、中斷、異常等方式實現(xiàn)的。當應(yīng)用程序需要訪問操作系統(tǒng)提供的服務(wù)時,它會觸發(fā)系統(tǒng)調(diào)用,從用戶態(tài)切換到內(nèi)核態(tài),操作系統(tǒng)會執(zhí)行相應(yīng)的操作并返回結(jié)果給應(yīng)用程序,之后再從內(nèi)核態(tài)切換回用戶態(tài)。因為用戶態(tài)和內(nèi)核態(tài)之間的切換需要進行狀態(tài)的保存和恢復(fù),所以切換的開銷比較大,應(yīng)盡量避免過多的切換操作。
常見的阻塞進程的系統(tǒng)調(diào)用函數(shù)
read():讀取文件或者其他的輸入設(shè)備時,如果沒有可用的數(shù)據(jù),會將進程掛起等待數(shù)據(jù)到來,直到數(shù)據(jù)到來或者出現(xiàn)錯誤才會返回。
write():寫入數(shù)據(jù)到輸出設(shè)備時,如果設(shè)備緩沖區(qū)已滿,就會將進程掛起等待設(shè)備空閑,直到寫入的數(shù)據(jù)全部被寫入或者出現(xiàn)錯誤才會返回。
標簽:
馬哥云原生/微服務(wù)治理大廠沖刺班/名師親授的評論 (共 條)
