操作系統面試知識複習

線程和進程的比較:

概念:

進程:是計算機中的程序關於某數據集合上的一次運行活動,是系統進行資源分配和調度的基本單位,是操作系統結構的基礎。在當代面向線程設計的計算機結構中,進程是線程的容器。程序是指令、數據及其組織形式的描述,進程是程序的實體。
進程是資源分配的最小單位。

線程:是操作系統能夠進行運算調度的最小單位,它被包含在進程之中,是進程中的實際運作單位。一個進程中可以併發多個線程,每條線程並行執行不同的任務。
線程是程序執行的最小單位。

理解:

在這裏插入圖片描述
進程=線程+內存+文件/網絡句柄

  • 內存指代系統分配的邏輯內存,指的是內存的尋址空間,每個進程的內存是相互獨立的。
  • 文件/網絡句柄:它們是所有進程共用的,例如打開同一個文件,去搶同一個網絡的端口這樣的操作是被允許的。

在這裏插入圖片描述
線程=棧+PC+TLS

  • 棧:從主線程入口的main函數,會不斷的進行函數調用,每次調用的時候,會把所有的參數和返回地址壓入到棧中。
  • PC:Program Counter是指程序計數器。程序計數器是一塊較小的內存空間,它可以看做是當前線程所執行的字節碼的行號指示器(java),字節碼解釋器工作時,就是通過改變這個計數器的值來選取下一條需要執行的字節碼指令,分支、循環、跳準、異常處理、線程恢復等基礎功能都需要依賴這個計數器來完成。
  • TLS:Therad local storage:線程的獨立內存就是TLS,可以用來存儲線程所獨有的數據。

https://www.cnblogs.com/coder-programming/p/10595804.html
https://blog.csdn.net/w584212179/article/details/90904303

進程間的通信方式:

進程間的通信(IPC)是指在不同進程之間傳播或交換信息。IPC的方式通常有管道(包括無名管道和命名管道)、消息隊列、信號量、共享存儲、Socket、Streams等。其中Socket和Streams支持不同主機上的兩個進程IPC

管道:
管道通常指無名管道,是UNIX系統IPC最古老的形式

特點:

  1. 它是半雙工的(即數據只能在一個方向上流動),具有固定的讀端和寫端。
  2. 它只能用於具有親緣關係的進程之間的通信(也就是父子進程或者兄弟進程之間)
  3. 它可以看成是一種特殊的文件,對於它的讀寫也可以使用普通的read、write等函數。但是它不是普通的文件,並不屬於其他任何文件系統,並且只存在於內存中。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章