- 相關(guān)推薦
操作系統(tǒng)面試題
1、 在Windows 編程中互斥器(mutex)的作用和臨界區(qū)(critical section)類似,請(qǐng)說(shuō)一下二者區(qū)別。
mutex 可以用于進(jìn)程之間互斥,critical section是線程之間的互斥。
2、垃圾回收的優(yōu)點(diǎn)和原理是什么?
java語(yǔ)言中一個(gè)顯著的特點(diǎn)就是引入了垃圾回收機(jī)制,使C++程序員最頭疼的內(nèi)存管理問(wèn)題迎刃而解,而Java程序員不再需要考慮內(nèi)存管理。垃圾回收可以有效防止內(nèi)存泄露。
3、CPU中的緩存 和 OS 中的緩存分別是什么?
* 塊表——Cache在OS 中運(yùn)用的典型范例。
小結(jié):快表是聯(lián)想寄存器訪問(wèn)速度比內(nèi)存快,不用快表要兩次訪問(wèn)內(nèi)存;用了快表只需要一次訪問(wèn)內(nèi)存。
在OS中,為提高系統(tǒng)的存取速度,在地址映射機(jī)制中增加一個(gè)小容量的聯(lián)想寄存器,即塊表。用來(lái)存放當(dāng)前訪問(wèn)最頻繁的少數(shù)活動(dòng)頁(yè)面的頁(yè)號(hào)。先訪問(wèn)快表中是否有需要的邏輯頁(yè)號(hào),加上頁(yè)內(nèi)地址得到物理地址。如果快表中沒有才訪問(wèn)內(nèi)存中的頁(yè)表這樣兩次訪問(wèn)內(nèi)存。
* 高速緩沖存儲(chǔ)器: Cache 在CPU中運(yùn)用的典型范例。
引入原因:內(nèi)存的存取速度跟不上CPU的執(zhí)行速度
它的容量比內(nèi)存小,但是交換速度快! Cache對(duì)CPU的性能影響很大。
4、DOS 與 Windows NT 的權(quán)限區(qū)別是什么?
DOS 是個(gè)單任務(wù)、單用戶的操作系統(tǒng)。打開裝有DOS操作系統(tǒng)的計(jì)算機(jī)時(shí),就擁有了該操作系統(tǒng)的管理員權(quán)限,且該權(quán)限無(wú)處不在。所以只能說(shuō),DOS不支持權(quán)限的設(shè)置。
在Windows NT里,用戶被分成許多組,組和組之間有不同的權(quán)限。當(dāng)然一個(gè)組的用戶和用戶之間也可以有不同的權(quán)限。NT中常見的用戶組:Administrators 管理員組、 Users 普通用戶組、Guests 來(lái)賓組、Everyone計(jì)算機(jī)上所有用戶.
5、進(jìn)程和線程的差別。
線程是指進(jìn)程內(nèi)的一個(gè)執(zhí)行單元,也是進(jìn)程內(nèi)的可調(diào)度實(shí)體.
與進(jìn)程的區(qū)別:
(1)調(diào)度:線程作為調(diào)度和分配的基本單位,進(jìn)程作為擁有資源的基本單位
(2)并發(fā)性:不僅進(jìn)程之間可以并發(fā)執(zhí)行,同一個(gè)進(jìn)程的多個(gè)線程之間也可并發(fā)執(zhí)行
(3)擁有資源:進(jìn)程是擁有資源的一個(gè)獨(dú)立單位,線程不擁有系統(tǒng)資源,但可以訪問(wèn)隸屬于進(jìn)程的資源.
(4)系統(tǒng)開銷:在創(chuàng)建或撤消進(jìn)程時(shí),由于系統(tǒng)都要為之分配和回收資源,導(dǎo)致系統(tǒng)的開銷明顯大于創(chuàng)建或撤消線程時(shí)的開銷。
6、談?wù)処A32下的分頁(yè)機(jī)制
小頁(yè)(4K)兩級(jí)分頁(yè)模式,大頁(yè)(4M)一級(jí)
7、在IA32中一共有多少種辦法從用戶態(tài)跳到內(nèi)核態(tài)?
通過(guò)調(diào)用門,從ring3到ring0,中斷從ring3到ring0,進(jìn)入vm86等等
8、網(wǎng)絡(luò)編程中設(shè)計(jì)并發(fā)服務(wù)器,使用'多進(jìn)程'與'多線程',請(qǐng)問(wèn)有什么區(qū)別?
進(jìn)程:子進(jìn)程是父進(jìn)程的復(fù)制品。子進(jìn)程獲得父進(jìn)程數(shù)據(jù)空間、堆和棧的復(fù)制品。
線程:相對(duì)與進(jìn)程而言,線程是一個(gè)更加接近與執(zhí)行體的概念,它可以與同進(jìn)程的其他線程共享數(shù)據(jù),但擁有自己的?臻g,擁有獨(dú)立的執(zhí)行序列。
兩者都可以提高程序的并發(fā)度,提高程序運(yùn)行效率和響應(yīng)時(shí)間。
線程和進(jìn)程在使用上各有優(yōu)缺點(diǎn):線程執(zhí)行開銷小,但不利于資源管理和保護(hù);而進(jìn)程正相反。同時(shí),線程適合于在SMP機(jī)器上運(yùn)行,而進(jìn)程則可以跨機(jī)器遷移。
9、列舉幾種進(jìn)程的同步機(jī)制,并比較其優(yōu)缺點(diǎn)。
原子操作
信號(hào)量機(jī)制
自旋鎖
管程,會(huì)合,分布式系統(tǒng)
10、進(jìn)程之間通信的途徑
共享存儲(chǔ)系統(tǒng)
消息傳遞系統(tǒng)
管道:以文件系統(tǒng)為基礎(chǔ)
11、描述實(shí)時(shí)系統(tǒng)的基本特性
在特定時(shí)間內(nèi)完成特定的任務(wù),實(shí)時(shí)性與可靠性
12、Windows消息調(diào)度機(jī)制是:
A.指令隊(duì)列;B.指令堆棧;C.消息隊(duì)列;D.消息堆棧;
13、線程與進(jìn)程的區(qū)別和聯(lián)系? 線程是否具有相同的堆棧?dll是否有獨(dú)立的堆棧?
進(jìn)程是死的,只是一些資源的集合,真正的程序執(zhí)行都是線程來(lái)完成的,程序啟動(dòng)的時(shí)候操作系統(tǒng)就幫你創(chuàng)建了一個(gè)主線程。
每個(gè)線程有自己的堆棧。
DLL中有沒有獨(dú)立的堆棧,這個(gè)問(wèn)題不好回答,或者說(shuō)這個(gè)問(wèn)題本身是否有問(wèn)題。因?yàn)镈LL中的代碼是被某些線程所執(zhí)行,只有線程擁有堆棧,如果DLL中的代碼是EXE中的線程所調(diào)用,那么這個(gè)時(shí)候是不是說(shuō)這個(gè)DLL沒有自己獨(dú)立的堆棧?如果DLL中的代碼是由DLL自己創(chuàng)建的線程所執(zhí)行,那么是不是說(shuō) DLL有獨(dú)立的堆棧?
以上講的是堆棧,如果對(duì)于堆來(lái)說(shuō),每個(gè)DLL有自己的堆,所以如果是從DLL中動(dòng)態(tài)分配的內(nèi)存,最好是從DLL中刪除,如果你從DLL中分配內(nèi)存,然后在EXE中,或者另外一個(gè)DLL中刪除,很有可能導(dǎo)致程序崩潰。
【操作系統(tǒng)面試題】相關(guān)文章:
DELL的英文面試題(硬件部分和操作系統(tǒng))11-06
組件機(jī)制與操作系統(tǒng)的實(shí)現(xiàn)03-18
操作系統(tǒng)專業(yè)簡(jiǎn)歷模板12-27
嵌入式操作系統(tǒng)的功能02-23
linux操作系統(tǒng)目錄結(jié)構(gòu)詳解02-26
面試題精選02-18
分享面試題目 教育職業(yè)面試題11-20
淺析組件機(jī)制和操作系統(tǒng)的實(shí)現(xiàn)12-11