操作系統(tǒng)面試題
操作系統(tǒng)面試題
哪些面試題涉及到操作系統(tǒng)的呢?下面是學習啦小編為大家?guī)淼牟僮飨到y(tǒng)面試題,相信對你會有幫助的。
操作系統(tǒng)面試題(一)
1、使用多進程與多線程有什么區(qū)別?
用多進程時,每個進程有自己的地址空間,線程則共享地址空間。所有其他區(qū)別都由此而來:
* 速度:線程產(chǎn)生的速度快,線程間的通信、切換快等,因為他們在同一個地址空間內(nèi)。
* 資源利用率: 線程的資源利用率比較好,也是因為它們在同一個地址空間中
* 同步問題: 線程使用公共變量/內(nèi)存時,需要使用同步機制,還是因為他們在同一個地址空間內(nèi)。
2、 在Windows 編程中互斥器(mutex)的作用和臨界區(qū)(critical section)類似,請說一下二者區(qū)別。
mutex 可以用于進程之間互斥,critical section是線程之間的互斥。
3、垃圾回收的優(yōu)點和原理是什么?
java語言中一個顯著的特點就是引入了垃圾回收機制,使C++程序員最頭疼的內(nèi)存管理問題迎刃而解,而Java程序員不再需要考慮內(nèi)存管理。垃圾回收可以有效防止內(nèi)存泄露。
4、CPU中的緩存 和 OS 中的緩存分別是什么?
* 塊表——Cache在OS 中運用的典型范例。
小結(jié):快表是聯(lián)想寄存器訪問速度比內(nèi)存快,不用快表要兩次訪問內(nèi)存;用了快表只需要一次訪問內(nèi)存。
在OS中,為提高系統(tǒng)的存取速度,在地址映射機制中增加一個小容量的聯(lián)想寄存器,即塊表。用來存放當前訪問最頻繁的少數(shù)活動頁面的頁號。先訪問快表中是否有需要的邏輯頁號,加上頁內(nèi)地址得到物理地址。如果快表中沒有才訪問內(nèi)存中的頁表這樣兩次訪問內(nèi)存。
* 高速緩沖存儲器: Cache 在CPU中運用的典型范例。
引入原因:內(nèi)存的存取速度跟不上CPU的執(zhí)行速度
它的容量比內(nèi)存小,但是交換速度快! Cache對CPU的性能影響很大。
5、DOS 與 Windows NT 的權(quán)限區(qū)別是什么?
DOS 是個單任務、單用戶的操作系統(tǒng)。打開裝有DOS操作系統(tǒng)的計算機時,就擁有了該操作系統(tǒng)的管理員權(quán)限,且該權(quán)限無處不在。所以只能說,DOS不支持權(quán)限的設置。
在Windows NT里,用戶被分成許多組,組和組之間有不同的權(quán)限。當然一個組的用戶和用戶之間也可以有不同的權(quán)限。NT中常見的用戶組:Administrators 管理員組、 Users 普通用戶組、Guests 來賓組、Everyone計算機上所有用戶
操作系統(tǒng)面試題(二)
1、進程和線程有什么區(qū)別?
進程間是獨立,這體現(xiàn)在內(nèi)存空間,上下文環(huán)境上,線程運行在進程空間內(nèi);
一般而言(不使用特殊技術(shù)),進程無法突破進程邊界存取其他進程內(nèi)的存儲空間,而線程由于處于進程空間內(nèi),所以同一進程所產(chǎn)生的線程共享同一內(nèi)存空間;
同一進程中的兩段代碼不能夠同時執(zhí)行,除非引入線程;
線程是屬于進程的,當進程退出時該進程所產(chǎn)生的線程都會被強制退出并清除。線程占用的資源要少于進程所占用的資源。進程和線程都可以有優(yōu)先級。
2、AND信號量集機制的基本思想是什么,它能解決什么問題?
AND同步機制的基本思想是,將進程在整個運行過程中所需要的所有臨界資源一次性全部分配給進程,待該進程使用完后在一起釋放。只要尚有一個資源未能分配 給該進程,其他所有可能為之分配的資源也不分配給它。亦即,對若干個臨界資源的分配采取原子操作方式,要么全部分配到進程,要么一個也不分配。它能解決的 問題:避免死鎖的發(fā)生。
3、進程間的通信方式?
信號量、信號、socket、管道、共享內(nèi)存、消息隊列
4、在網(wǎng)絡編程中設計并發(fā)服務器,使用多進程與多線程有什么區(qū)別?
用多進程時每個進程有自己的地址空間,線程則共享地址空間。所有其他區(qū)別都是由此而來:
速度:線程產(chǎn)生的速度快,線程間的通信快、切換快等,因為它們在同一個地址空間內(nèi);
資源利用率:線程的資源利用率比較好也是因為它們在同一個地址空間內(nèi);
同步問題:線程使用公共變量/內(nèi)存時需要使用同步機制,還是因為它們在同一個地址空間內(nèi)。
5、進程進入等待狀態(tài)有哪幾種方式?
調(diào)用P操作,而信號量小于0;進程申請資源不能被分配;
6、CPU中的緩存和操作系統(tǒng)中的緩存分別是什么?
操作系統(tǒng)的緩存是指快表。在操作系統(tǒng)中,為提高系統(tǒng)的存取速度,在地址映射機制中增加一個小容量的聯(lián)想寄存器,即快表,用來存放當前訪問最頻繁的少數(shù)活動 頁面的頁號。當某用戶需要存取數(shù)據(jù)時,根據(jù)數(shù)據(jù)所在的邏輯頁號在快表中找到其對應的內(nèi)存塊號,再聯(lián)系頁內(nèi)地址,形成物理地址。如果在快表中沒有相應的邏輯 頁號,則地址映射仍可以通過內(nèi)存中的頁表進行,得到空閑塊號后必須將該塊號填入快表的空閑塊中。如果快表中沒有空閑塊,則根據(jù)淘汰算法淘汰某一行,再填入 新的頁號和塊號。快表查找內(nèi)存塊的物理地址消耗的時間大大降低了,使得系統(tǒng)效率得到了極大的提高。
CPU中的緩存是指高速緩存。CPU的執(zhí)行速度越來越快,系統(tǒng)架構(gòu)越來越先進,而主存的結(jié)構(gòu)和存取速度改進則較慢,因此,高速緩存技術(shù)將越來越重要。
高速緩沖存儲器是位于CPU和內(nèi)存之間的臨時存儲器,它的容量比內(nèi)存小但交換速度快。在高速緩沖存儲器中的數(shù)據(jù)是內(nèi)存中的一小部分,但這一小部分是短時間內(nèi)CPU即將訪問的。當CPU調(diào)用大量數(shù)據(jù)時,就可避開內(nèi)存直接從高速緩沖存儲器中調(diào)用,從而加快讀取速度。
看過“操作系統(tǒng)面試題”的人還看了:
1.安卓面試題及答案
3.C#面試題大全