歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux教程

Linux 操作系統 - Advanced of 進程

由於進程都有自己的私有地址空間,只能由自己來訪問,那就意味著其它進程不能訪問這個進程的地址空間,下文將用通俗的話和圖解細說進程間是怎麼通信的。

共享內存

共享內存是linux IPC通信最快的,基本原理是:多個進程共享一個物理內存(物理內存映射到共享此內存的進程地址空間)(公共的),看下圖:

一個進程向共享內存中寫入數據,共享這塊內存的進程可以立即看到,在共享的時候 數據是一直保存在共享內存中的,並沒有寫入數據就會把數據寫入文件, 這裡就是mmap()這個函數干的事了

對共享內存的訪問的數據稱為臨界區,臨界區也就意味著任何時候只有一個進程訪問臨界區,

A先T1時間進入臨界區,然後B想進入的時候,被互斥在外,等A在T2離開的時候B順利進入!

Copyright © Linux教程網 All Rights Reserved