一、簡答題
1. 動態鏈結庫和靜態鏈結庫的優缺點
2. 輪詢任務排程和可搶占式排程有什麼區別?
3. 列出資料庫中常用的鎖及其應用場景
二、演算法設計題
1. 給定n是乙個正整數,求比n大的最小「不重複數」,這裡的不重複是指沒有兩個相等的相鄰位,如1102中的11是相等的兩個相鄰位故不是不重複數,而12301是不重複數。
2. 設n是乙個大整數,求長度為n的字串的最長回文子串。
3. 座標軸上從左到右依次的點為a[0]、a[1]、a[2]……a[n-1],設一根木棒的長度為l,求l最多能覆蓋座標軸的幾個點?
三、系統設計題
1. 在現代系統的設計過程中,為了減輕請求的壓力,通常採用快取技術,為了進一步提公升快取的命中率,同常採用分布是快取方案。排程模組針對不同內容的使用者請求分配給不同的快取伺服器向使用者提供服務。請給出乙個分布式快取方案,滿足如下要求:
1) 單台快取伺服器故障,整個分布式快取集群,可以繼續提供服務。
2)通過一定得分配策略,可以保證充分利用每個快取服務的儲存空間,及負載均衡。當部分伺服器故障或系統擴容時,改分配策略可以保證較小的快取檔案重分配開銷。
3)當不同快取伺服器的儲存空間存在差異時,分配策略可以滿足比例分配
下面給出我自己的一些解答,不保證100%正確,歡迎批評指正。
一、簡答題
1.動態鏈結庫和靜態鏈結庫的優缺點
優點:多次呼叫時只需要記憶體中載入一次,節省了記憶體空間和頁面交換。
由於在執行時呼叫,減小了最終可執行檔案的大小。
可以在不編譯連線的情況下,只要輸出介面不變(名稱,引數,返回型別和呼叫約定)更改動態庫實現程式的修改。
適用於大規模的開發,使開發過程獨立,耦合度小,便於不同開發者之間合作及測試。
速度比靜態鏈結慢;
當某模組更新後,若與舊模組不相容,那麼需要改模組的程式統統出錯。
只要有靜態鏈結庫,就可以執行,不存在版本問題,不會引發dll地獄問題。
缺點:檔案體積較大,多處包含重複**,造成浪費。
2.輪詢任務排程和可搶占式排程有什麼區別
輪詢任務排程:是指按照請求的順序將請求從1到n分配到伺服器上。只有當請求掛起時,才會使伺服器被其他請求占用。
搶占式排程:按照請求的優先級別對請求進行先後分配。優先級別越高,越早分配。但是實現過程較複雜,級別較低的請求可能一直到不到分配。
3.列出資料庫中常用的鎖及其應用場景
(1)共享鎖:(s鎖),粒度為行或元組,當事務獲取共享鎖後,可以對鎖定的內容執行讀操作。
(2)排他鎖:(x鎖),粒度為行或元組,當事務獲取排他鎖,對鎖定的內容可執行寫操作。
t1獲取了乙個元組的共享鎖,其他事務也可以獲取該元組的共享鎖,但不能獲取排他鎖。
t2獲取了乙個元組的排他鎖,其他事務不可以獲取該元組的共享鎖和排他鎖。
(3)更新鎖:避免了兩個事務共享鎖同時轉換為排他鎖的過程中形成的死鎖。一次只有乙個事務可以獲得物件的更新鎖。當事務要修改物件時,更新鎖改為排他鎖。當事務只讀取物件時,更新鎖改為共享鎖。
(4)意向鎖:包含意向共享鎖,意向排它鎖和共享意向排它鎖。如果對乙個結點加意向鎖,說明該結點的下層結點正在被加鎖;對任意結點加鎖時,必須先對它的上層結點加意向鎖。這樣事務對錶加鎖時,不需要檢查每行記錄的鎖標誌位,系統效率大大提高。釋放鎖時則應按自下而上的次序進行。具有意向鎖的多粒度封鎖方法提高了系統的併發度,減少了加鎖和解鎖的開銷。
意向共享鎖(is鎖):如果對乙個資料物件加is鎖,表示它的後裔結點擬加s鎖。例如,事務t1要對r1中某個元組加s鎖,則要先對關係r1和資料庫加is鎖。
意向排它鎖(ix鎖):如果對乙個資料物件加ix鎖,表示它的後裔結點擬加x鎖。例如,事務t1要對r1中某個元組加x鎖,則要先對關係r1和資料庫加ix鎖。
共享意向排它鎖(six鎖):如果對乙個資料物件加six鎖,表示對它加s鎖,再加ix鎖,即six=s+ix。例如,對某個表加six鎖,則表示該事務要讀取整個表(所以要對該錶加s鎖),同時會更新個別元組(所以要對該錶加ix鎖)。
二、演算法設計題
1.n為正整數,求比這個數大且最小的不重複數,重複數為相鄰兩位數字相同,如1101為重複數,1231為不重複數。
未完待續
百度2023年校園招聘 軟體研發筆試題
昨天的筆試。今晚才抽出空來一下寫。下面內容基本是回憶的,正確性不敢保證。一 簡答題 30分 1.簡述資料庫及執行緒死鎖產生的必要條件,並簡述如何避免死鎖。2.簡述c 物件導向思想的3大要素和5大設計原則。3.簡述windows記憶體管理的幾種方式,及其優缺點。二 程式設計和演算法題 40分 1.某公...
百度 2015 武漢研發筆試題
一 簡答題 1.列出至少6中內排序方法,並寫出相應的時間複雜度和空間複雜度以及穩定性 2.多執行緒中的同步互斥方法都有哪些?3.程序間通訊的方式有哪些?哪種是效率最高的?socket,pipe,共享記憶體,訊息佇列,訊號,訊號量 效率最高的是 共享記憶體。360面試中問到了共享記憶體在系統中是如何實...
百度2015前端研發筆試卷
宣告位於文件中的最前面,處於 標籤之前。告知瀏覽器的解析器,用什麼文件型別 規範來解析這個文件。嚴格模式的排版和 js 運作模式是以該瀏覽器支援的最高標準執行。在混雜模式中,頁面以寬鬆的向後相容的方式顯示。模擬老式瀏覽器的行為以防止站點無法工作。doctype不存在或格式不正確會導致文件以混雜模式呈...