[更新中] 進程和線程

  書籍的簡稱:緩存

  CSPPSE: Computer System: a programmer's perspective Second Edition併發

  進程(process)是操做系統對一個正在運行的程序的一種抽象。在一個系統上能夠同時運行多個進程, 而每一個進程都好像在獨佔的使用硬件。而併發運行, 則是說一個進程的指令和另外一個進程的指令是交錯運行的。 在大多數系統中, 須要運行的進程數是多於可運行他們的CPU個數的。傳統系統在一個時刻只能執行一個程序, 而先進的多核處理器同時能執行多個程序。 不管是在單核仍是多核系統中, 一個CPU看上去都像是在併發地執行多個程序, 這是他經過處理器在進程間切換來實現的。 操做系統實現這種交錯執行的機制成爲上下文切換。(CSPPSE P11)oop

  獨立(independent)進程, 一個進程若是不影響其餘正在系統中運行的進程也不受其影響, 那麼這個進程就是獨立進程任何進程只要不與其餘進程共享數據, 它就是獨立進程。 spa

  合做(cooperating)進程, 一個進程若是影響其餘正在系統中運行的進程或受其影響, 那麼這個進程就是合做進程。 任何進程只要與其餘進程共享數據, 它就是合做進程操作系統

 

  進程間通訊IPC(Interprocess Communication)有兩種模型: 共享內存(Shared-Memory)和信息傳遞(Message Passing)。 共享內存比信息傳遞快可是當系統中進程愈來愈多時, 信息傳遞對於系統IPC來講是一個更好的通訊機制, 由於共享內存面臨着緩存一致性問題, 須要通訊的兩個進程之間會創建一個共享的內存區域, 共享數據在若干個緩存中遷移時, 會引發緩衝區一致性問題。 進程

  生產者-消費者問題就能夠利用共享內存實現。內存

相關文章
相關標籤/搜索