金山雲筆試:
1.兩個進程爭奪同一個資源會發生死鎖嗎?(死鎖發生的四個必要條件)
(1)互斥條件:一個資源每次只能別一個進程使用。
(2)請求和保持條件:一個進程由於請求資源而阻塞時,對持有資源保持不放。
(3)不剝奪條件:在進程沒有執行完成的狀況下,持有資源不會被剝奪。
(4)循環等待條件:若個進程之間由於等待資源而造成一種循環關係。緩存
在其餘狀況不明確的狀況下,沒法判斷兩個進程是否僅須要這一個資源就能完成,若是須要其餘的資源,而資源被另一個進程所持有,就有可能發生死鎖。線程
2.關於寄存器和高速緩存?blog
寄存器是中央處理器(cpu)的的組成部分,是有限存儲容量的高速存儲部件,能夠暫存指令,數據和地址(指令寄存器(IR),程序計數器(pc),累加器(ACC))。進程
Cache,位於CPU和主內存之間容量小但速度很快的存儲器,是爲了彌補CPU與內存之間的運算差距而設置的部件。事務
3.實現原子加操做內存
鎖總線,資源
恩~~,果真不是很明白,難受。。。it
4.信號量,互斥體,自旋鎖。table
信號量,至關於一個計數器,每當一個進程使用一個資源,信號量-1;進程釋放一個資源,信號量+1;當信號量爲0時,進程沒法使用該資源。ast
互斥體,在任何線程進入臨界區以前都先得到臨界區的互斥體,其餘進程沒有得到互斥體便不能執行。
自旋鎖,跟互斥鎖挺像,可是未得到執行權的進行不阻塞,而是循環請求,適應於持有鎖時間短的進程。
5.TCP中服務端和客戶端的執行完操做後的各類狀態。
(1)三次握手時:
客戶端:closed->syn-send->establised
服務端:listened->syn-rcvd->establised
(2)四次揮手時:
客戶端:fin-wait-1->fin-wait-2->time-wait->close
服務端:close-wait->last-ack->close
6.事務的隔離機制。
(1)readunCommited 事務修改數據加了X鎖,結束後釋放。解決了更新丟失。
(2)readCommited 在(1)的基礎上,每次事務讀數據時+S鎖,讀完(不是事務結束)釋放。解決了髒讀。
(3)repeatableRead 在(1)的基礎上,每次事務讀數據時+S鎖,事務結束後釋放。解決了不可重複度。
(4)serializable 事務串行執行。。。。
7.會引發全表查詢的狀況。
(1)模糊查詢:右模糊查詢,全模糊查詢必定會產生全表掃描。
(2)查詢條件中含有 is null的select語句
(3)其他我真的不知道去哪查了。。。知道的能夠回覆我啊。