描繪水果的擬人句
一:簡(jiǎn)答題(30)

1:數據庫以及線(xiàn)程發(fā)生死鎖的原理及必要條件,如何避免死鎖
答:
產(chǎn)生死鎖的原因主要是:
(1) 因為系統資源不足。
(2) 進(jìn)程運行推進(jìn)的順序不合適。
(3) 資源分配不當等。
產(chǎn)生死鎖的四個(gè)必要條件:
(1)互斥條件:一個(gè)資源每次只能被一個(gè)進(jìn)程使用。
(2)請求與保持條件:一個(gè)進(jìn)程因請求資源而阻塞時(shí),對已獲得的資源保持不放。
(3)不剝奪條件:進(jìn)程已獲得的資源,在末使用完之前,不能強行剝奪。
(4)循環(huán)等待條件:若干進(jìn)程之間形成一種頭尾相接的循環(huán)等待資源關(guān)系。
避免死鎖:
死鎖的預防是通過(guò)破壞產(chǎn)生條件來(lái)阻止死鎖的產(chǎn)生,但這種方法破壞了系統的并行性和并發(fā)性。
死鎖產(chǎn)生的前三個(gè)條件是死鎖產(chǎn)生的必要條件,也就是說(shuō)要產(chǎn)生死鎖必須具備的條件,而不是存在這3個(gè)條件就一定產(chǎn)生死鎖,那么只要在邏輯上回避了第四個(gè)條件就可以避免死鎖。
避免死鎖采用的是允許前三個(gè)條件存在,但通過(guò)合理的資源分配算法來(lái)確保永遠不會(huì )形成環(huán)形等待的封閉進(jìn)程鏈,從而避免死鎖。該方法支持多個(gè)進(jìn)程的并行執行,為了避免死鎖,系統動(dòng)態(tài)的確定是否分配一個(gè)資源給請求的進(jìn)程。
預防死鎖:具體的做法是破壞產(chǎn)生死鎖的四個(gè)必要條件之一
2:面向對象的三個(gè)基本元素,五個(gè)基本原則
答:
三個(gè)基本元素:
封裝
繼承
多態(tài)
五個(gè)基本原則:
單一職責原則(Single-Resposibility Principle):一個(gè)類(lèi),最好只做一件事,只有一個(gè)引起它的變化。單一職責原則可以看做是低耦合、高內聚在面向對象原則上的引申,將職責定義為引起變化的原因,以提高內聚性來(lái)減少引起變化的原因。
開(kāi)放封閉原則(Open-Closed principle):軟件實(shí)體應該是可擴展的,而不可修改的。也就是,對擴展開(kāi)放,對修改封閉的。
Liskov替換原則(Liskov-Substituion Principle):子類(lèi)必須能夠替換其基類(lèi)。這一思想體現為對繼承機制的約束規范,只有子類(lèi)能夠替換基類(lèi)時(shí),才能保證系統在運行期內識別子類(lèi),這是保證繼承復用的基礎。
依賴(lài)倒置原則(Dependecy-Inversion Principle):依賴(lài)于抽象。具體而言就是高層模塊不依賴(lài)于底層模塊,二者都同依賴(lài)于抽象;抽象不依賴(lài)于具體,具體依賴(lài)于抽象。
接口隔離原則(Interface-Segregation Principle):使用多個(gè)小的專(zhuān)門(mén)的接口,而不要使用一個(gè)大的總接口。
3:windows內存管理的機制以及優(yōu)缺點(diǎn)
答:
分頁(yè)存儲管理基本思想:
用戶(hù)程序的地址空間被劃分成若干固定大小的區域,稱(chēng)為“頁(yè)”,相應地,內存空間分成若干個(gè)物理塊,頁(yè)和塊的大小相等?蓪⒂脩(hù)程序的任一頁(yè)放在內存的任一塊中,實(shí)現了離散分配。
分段存儲管理基本思想:
將用戶(hù)程序地址空間分成若干個(gè)大小不等的段,每段可以定義一組相對完整的邏輯信息。存儲分配時(shí),以段為單位,段與段在內存中可以不相鄰接,也實(shí)現了離散分配。
段頁(yè)式存儲管理基本思想:
分頁(yè)系統能有效地提高內存的利用率,而分段系統能反映程序的邏輯結構,便于段的共享與保護,將分頁(yè)與分段兩種存儲方式結合起來(lái),就形成了段頁(yè)式存儲管理方式。
在段頁(yè)式存儲管理系統中,作業(yè)的地址空間首先被分成若干個(gè)邏輯分段,每段都有自己的段號,然后再將每段分成若干個(gè)大小相等的頁(yè)。對于主存空間也分成大小相等的頁(yè),主存的分配以頁(yè)為單位。
段頁(yè)式系統中,作業(yè)的地址結構包含三部分的內容:段號 頁(yè)號 頁(yè)內位移量
程序員按照分段系統的地址結構將地址分為段號與段內位移量,地址變換機構將段內位移量分解為頁(yè)號和頁(yè)內位移量。
為實(shí)現段頁(yè)式存儲管理,系統應為每個(gè)進(jìn)程設置一個(gè)段表,包括每段的段號,該段的頁(yè)表始址和頁(yè)表長(cháng)度。每個(gè)段有自己的頁(yè)表,記錄段中的每一頁(yè)的頁(yè)號和存放在主存中的物理塊號。
二:程序設計題(40)
1:公司里面有1001個(gè)員工,現在要在公司里面找到最好的羽毛球選手,也就是第一名,每個(gè)人都必須參賽,問(wèn)至少要比賽多少次才能夠找到最好的羽毛球員工。
答:兩兩比賽,分成500組剩下一人,類(lèi)似于歸并排序的方式,比出冠軍后,讓冠軍之間再比,主要是要想想多余的那一個(gè)選手如何處理,必然要在第一次決出冠軍后加入比賽組。
2:現在有100個(gè)燈泡,每個(gè)燈泡都是關(guān)著(zhù)的,第一趟把所有的燈泡燈泡打開(kāi),第二趟把偶數位的燈泡制反(也就是開(kāi)了的關(guān)掉,關(guān)了的打開(kāi)),第三趟讓第3,6,9....的燈泡制反.......第100趟讓第100個(gè)燈泡制反,問(wèn)經(jīng)過(guò)一百趟以后有多少燈泡亮著(zhù)
答:
1.對于每盞燈,拉動(dòng)的次數是奇數時(shí),燈就是亮著(zhù)的,拉動(dòng)的次數是偶數時(shí),燈就是關(guān)著(zhù)的。
2.每盞燈拉動(dòng)的次數與它的編號所含約數的個(gè)數有關(guān),它的編號有幾個(gè)約數,這盞燈就被拉動(dòng)幾次。
3.1——100這100個(gè)數中有哪幾個(gè)數,約數的個(gè)數是奇數。我們知道一個(gè)數的約數都是成對出現的,只有完全平方數約數的個(gè)數才是奇數個(gè)。
所以這100盞燈中有10盞燈是亮著(zhù)的。
它們的編號分別是: 1、4、9、16、25、36、49、64、81、100。
3:有20個(gè)數組,每個(gè)數組有500個(gè)元素,并且是有序排列好的,現在在這20*500個(gè)數中找出排名前500的數
答:TOP-K問(wèn)題,用個(gè)數為K的最小堆來(lái)解決
4. 字符串左移,void *pszStringRotate(char *pszString, intnCharsRotate),比如ABCDEFG,移3位變DEFGABC,要求空間復雜度O(1),時(shí)間復雜度O(n)
【描繪水果的擬人句】相關(guān)文章:
描繪冬天的擬人句170句05-08
寫(xiě)水果的擬人句05-31
描寫(xiě)水果的擬人句100句08-06
水果蔬菜的擬人句160句12-10
描寫(xiě)水果的擬人句300句11-08
描寫(xiě)水果的擬人句220句10-28
舉例擬人句08-21
擬人句最長(cháng)的12-02
- 相關(guān)推薦