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