作業系統面試題

2021-06-10 00:05:00 字數 931 閱讀 9222

一、linux下程序間通訊的幾種主要手段簡介:

管道(pipe)及有名管道(named pipe):管道可用於具有親緣關係程序間的通訊,有名管道克服了管道沒有名字的限制,因此,除具有管道所具有的功能外,它還允許無親緣關係程序間的通訊;

訊號(signal):訊號是比較複雜的通訊方式,用於通知接受程序有某種事件發生,除了用於程序間通訊外,程序還可以傳送訊號給程序本身;linux除了支援unix早期訊號語義函式sigal外,還支援語義符合posix.1標準的訊號函式sigaction(實際上,該函式是基於bsd的,bsd為了實現可靠訊號機制,又能夠統一對外介面,用sigaction函式重新實現了signal函式);

報文(message)佇列(訊息佇列):訊息佇列是訊息的鏈結表,包括posix訊息佇列system v訊息佇列。有足夠許可權的程序可以向佇列中新增訊息,被賦予讀許可權的程序則可以讀走佇列中的訊息。訊息佇列克服了訊號承載資訊量少,管道只能承載無格式位元組流以及緩衝區大小受限等缺點。

共享記憶體:使得多個程序可以訪問同一塊記憶體空間,是最快的可用ipc形式。是針對其他通訊機制執行效率較低而設計的。往往與其它通訊機制,如訊號量結合使用,來達到程序間的同步及互斥。

訊號量(semaphore):主要作為程序間以及同一程序不同執行緒之間的同步手段。

套介面(socket):更為一般的程序間通訊機制,可用於不同機器之間的程序間通訊。起初是由unix系統的bsd分支開發出來的,但現在一般可以移植到其它類unix系統上:linux和system v的變種都支援套接字。

二、死鎖的必要條件

(1) 互斥條件:乙個資源每次只能被乙個程序使用。

(2) 請求與保持條件:乙個程序因請求資源而阻塞時,對已獲得的資源保持不放。

(3) 不剝奪條件:程序已獲得的資源,在末使用完之前,不能強行剝奪。

(4) 迴圈等待條件:若干程序之間形成一種頭尾相接的迴圈等待資源關係。

三、執行緒同步機制

作業系統面試題

作業系統 1.select,poll和epoll 其實所有i o都是輪詢的方法,只不過實現的層面不同罷了 基本select有三個缺點 1.連線受限 2.查詢配對速度慢 3.資料由核心態拷貝到使用者態 poll改善了第乙個缺點 epoll改善了第三個缺點 2.排程演算法 實時排程演算法 1.最早截至時...

作業系統面試題

內容源自 一 請分別簡單說一說程序和執行緒以及它們的區別。二 執行緒同步的方式有哪些?三 程序的通訊方式有哪些?主要分為 管道 系統ipc 包括訊息佇列 訊號量 共享儲存 socket 管道主要分為 普通管道pipe 流管道 s pipe 命名管道 name pipe 四 什麼是緩衝區溢位?有什麼危...

作業系統面試題彙總

死鎖?死鎖產生的原因?死鎖的必要條件?怎麼處理死鎖?解析 1 什麼是死鎖?死鎖是相互等待資源而產生的一種僵持狀態,如果沒有外力的干預將一直持續這個狀態 2 死鎖產生的原因?系統資源不足 相互競爭資源 請求資源順序不當 3 死鎖的必要條件?互斥 不可搶占 迴圈等待 請求與保持 4 怎麼處理死鎖?因為互...