1. 程式人生 > >面試題必問——簡述線程、進程、並發、並行

面試題必問——簡述線程、進程、並發、並行

text 輸入數據 fff center 32位 -c 選擇 emma .bss

多線程是面試必問的知識點,多多少少都會有人掉進面試官挖的坑中。

1.說一下什麽是進程?

進程是資源分配的的基本單位,啟動一個程序就是一個進程。每個進程都有彼此獨立的地址空間,不同的進程之間無法訪問彼此的數據。但是可以通過通道,文件,套接字等進行訪問

2.不同進程中哪些資源可以共享

  • 堆】由於堆是在進程空間中開辟出來的,所以它是理所當然地被共享的;因此new出來的都是共享的(16位平臺上分全局堆和局部堆,局部堆是獨享的)

  • 全局變量】全局定義的變量單位,因此也是共享的

  • 局部靜態變量】雖然對於局部變量來說,它在代碼中是“放”在某一函數中的,但是其存放位置和全局變量一樣,存於堆中開辟的.bss和.data段,是共享的

  • 文件等公用資源】這個是共享的,使用這些公共資源的線程必須同步。Win32 提供了幾種同步資源的方式,包括信號、臨界區、事件和互斥體。

3.說一下什麽是線程?

進程的最小單位,一個進程包含多個線程,當關閉進程時線程也會相應被關閉。

舉例:

一個瀏覽器就相當於一個線程,每個tab頁是一個進程。關閉瀏覽器之後每個網頁也會被關閉。

需要頻繁銷毀創建的使用線程,因為進程的銷毀和創建需要消耗大量的資源,需要保證程序穩定安全,推薦使用進程。需要加快執行速度選用線程。

4.說一下什麽是並行?

同一時間節點,多個任務同時進行。比如洗澡的時候可以唱歌,多核CPU,多個進程可以運行在不同的物理核心上。每個CPU各司其職執行不同的任務。

5.說一下什麽是並發?

一段段時間內,多個任務交替執行,類似多線程。單核cpu,某一時刻只能一個進程執行。但是可以通過不斷切換的方式(如時間片輪巡),因為cpu執行速度非常快,所以我們看起來好像是同時進行,實際上是快速交替執行

========================================================================================================================================================

附加並行資料

特點

1、各數據位同時傳輸,傳輸速度快、效率高,多用在實時、快速的場合。 2、微機系統中最基本的信息交換方式。 3、並行傳遞的信息不要求固定的格式。 4、並行接口的數據傳輸率比串行接口快8倍,標準並口的數據傳輸率理論值為1Mbps(兆比特/秒). 5、並行傳輸的數據寬度可以是1~128位,甚至更寬,但是有多少數據位就需要多少根數據線,因此傳輸的成本較高。 6、並行通信抗幹擾能力差。 7、在集成電路芯片的內部、同一插件板上各部件之間、同一機箱內個插件板之間的數據傳輸都是並行的。 8、以計算機的字長,通常是8位、16位或32位為傳輸單位,一次傳送一個字長的數據。 9、適合於外部設備與微機之間進行近距離、大量和快速的信息交換。 10、並行數據傳輸只適用於近距離的通信,通常傳輸距離小於30米。

工作原理:

一般地並行接口有 3 個方面的功能:

⑴實現與系統總線的連接:提供數據的輸入輸出功能。 ⑵實現與外設連接:確保與外設間有效進行數據的接收和發送。 ⑶具有中斷請求處理功能:外設輸入輸出采用中斷的方法來實現。

接口連接

典型的雙向並行接口與外設連接 技術分享圖片 ⒈並行接口與CPU的連接 ⑴數據總線:是CPU與並行接口進行數據交換的通道。 ⑵讀出寫入信號線:控制數據流向,確定操作是讀還是寫。 ⑶復位線,準備好狀態線:並行接口數據準備就緒。 ⑷中斷請求線:並行接口向CPU進行中斷請求。 ⑸地址譯碼電路:進行選擇不同的接口電路,選擇接口電路內部不同的寄存器。 ⒉並行接口與外設的連接 ⑴輸入設備:數據輸入線,設備數據準備就緒狀態線和接口接收數據回答線。 ⑵輸出設備:數據輸出線,接口數據準備就緒狀態線和外設接收數據回答線。 ⒊並行接口 ⑴控制寄存器:接收CPU發來的控制命令。 ⑵數據輸入緩沖器、數據輸出緩沖器:進行數據的輸入、輸出。 ⑶狀態寄存器:提供接口電路工作狀態供CPU查詢。

傳輸原理

⒈ 並行接口輸入數據的過程 外設將數據送到“數據輸入線”,通過“輸入數據準備好” 狀態線通知並行接口取走,接口將數據鎖存到“輸入緩沖器”,通過“數據輸入回答”線通知外設,接口數據緩沖器已滿,不要再送數據,接口在其內“狀態寄存器” 的相應位置 1,便於CPU 查詢和接口向CPU 發中斷請求之用。 CPU 從接口將數據取走後,接口將“數據輸入準備好”、“數據輸入回答” 信號清除,以便外設輸入下一個數據。 ⒉ 並行接口輸出數據的過程 接口“數據輸出緩沖器” 空,“數據輸出準備好” 狀態線送 1,收到CPU 發的數據,將之復位清0,數據通過“數據輸出” 線送外設,由“數據輸出準備好” 線通知外設取數據。

實例

微機系統中最基本的信息交換方法 例如:微機與並行接口打印機、磁盤驅動器 例如:系統板上各部件之間,接口電路板上各部件之間

面試題必問——簡述線程、進程、並發、並行