正文 第100章 perfect(2 / 2)

IBM公司的談判代表們彼此看了看,薩姆斯向他身側的一位隨行人員點了點頭,得到薩姆斯的許可後,這位40歲左右的長得虎背熊腰的工程師說道:“我們看過你們公司提供給新聯想計算機公司的操作係統使用介紹,我們知道你們把操作係統的工作分為進程管理、存儲管理、文件管理和設備管理這麼4大模塊,那麼我想問的是在一個進程集合中,假如每個進程都在等待某些事情的發生(釋放資源),而這些時間又必須由這個進程集合中的某些進程來產生,那麼這就形成了一個死循環,當然我們通行的說法是操作係統近入了死鎖狀態,如果操作係統的處理機製有問題,就會造成頻繁的死機,我想問你們是如何解決這個問題?”

這個問題很有技術含量,無論是對操作係統內部程序的合理性還是對於用戶的使用體驗上來說,都是必須慎重對待的問題,可以想見如果因此問題頻繁死機,那麼作為普通用戶的使用體驗將會多差,如此差的體驗還想裝有此係統的微型機大火嗎?

從這個問題上也可以得知眼前此人對操作係統有很深入的研究,這的確是個刁鑽的難題,係統共享資源的不足,資源分配不當和進程的推進順序不當等都會造成死鎖,好在張億誠前世在自己的研究中也經常會遇到這種讓人煩惱的問題,可以說他現在已經對此有了相當的經驗,而且這還是80年代,此時很多的難題在他那個時候已經被無數人給解決了,所以他對這種不算深入的難題說道:“我們都知道隻有當進程發生互斥、占用並等待、不可搶占和循環等待這4個條件完全具備的時候,才會發生進程死鎖,所以我們也就有了明確的解決目標。”

在坐的各位大部分都是工程師,無論是硬件工程師還是軟件工程師,他們都是需要對另外一方領域有所了解的,所以這些人也都不自禁的點點頭,作為雙方的律師和業務人員(薩姆斯)則有些茫然,不過這並不妨礙他們認真傾聽下去,從周圍人的態度中也可以看出這個年輕人解決問題的方向性的正確性。

張億誠又慢慢的說道:“針對死鎖,我們同樣采取了4種對策來解決這個問題,首先我們在設計操作係統的時候就需要盡可能的避免死鎖的產生,我們會采用靜態、按序和剝奪式的資源分配方法來盡量預防死鎖的出現,這將從進程的並發、共享資源、共享資源向量和係統能力向量上做出針對性的設計上優先著手。”

對麵的IBM公司的工程師們依然沒有出現異樣的反對或者準備討論的聲音,張億誠繼續說道:“在采用預防的前提下,我們的操作係統還引入了銀行家算法來盡可能的避免死鎖,我們設計了這麼一個機製,每一個進程在開始前必須事先就聲明它需要使用的最大量,而這個進程請求資源,它因此可能需要等待,在這個進程得到所有的資源後,它必須在有限的規定時間內釋放它們,通過這些措施,就可以很好的避免這種令人不愉快的體驗。當然對於因為係統內自帶的進程自動檢測而需要用到的資源分配圖的使用和真正的產生死鎖用到的恢複機製,在UNIX出現很久的今天已經算是操作係統程序員應該具備的最基本的素質體現了。”

看著這個陽光般充滿自信,語調緩慢但堅定的年輕人,IBM公司提問的工程師也不禁為他的才智鼓掌:“perfect”