考研複試問答(操作系統部分)

轉載請註明出處:https://blog.csdn.net/xuezoutianya/article/details/106038799

1、什麼是操作系統?
    答:操作系統是指控制和管理計算機硬件與軟件資源,合理地組織、調度計算機的工作與資源的分配,進而爲用戶和其他軟件提供接口與環境的程序集合,是計算機系統中最基本的系統軟件。

2、操作系統的基本特徵和功能?
    答:基本特徵:併發:兩個或多個事件在同一時間間隔內發生
                  共享:系統中的資源可供內存中多個併發執行的進程共同使用
                  虛擬:把一個物理上的實體變爲若干邏輯上的對應物
                  異步:進程的執行以不可預知的速度向前推進
        功能:資源管理(處理機管理,存儲器管理,文件管理和設備管理),作爲用戶與計算機硬件的接口(命令接口,程序接口),擴充機器(覆蓋了軟件)。

3、硬實時和軟實時操作系統的概念?
    答:硬實時操作系統:動作必須在規定的時間範圍內發生。
        軟實時操作系統:能接受偶爾違反時間規定且不會引起永久性的損害。

4、簡述系統調用的過程?
    答:正在運行的進程傳遞系統調用參數,執行訪管指令從用戶態轉換爲內核態,並將返回地址壓棧留作備用,接下來CPU執行相應的內核態服務程序,最後返回用戶態繼續執行進程。

5、庫函數與系統調用的區別?
    答:庫函數屬於語言或應用程序的一部分,運行在用戶空間,系統調用是操作系統的一部分,運行在內核空間中,是內核爲用戶提供的程序接口。

6、大內核和微內核的概念?
    答:大內核:將操作系統的主要功能模塊都作爲一個緊密聯繫的整體運行在覈心態,從而爲應用程序提供高性能的系統服務。
        微內核:將內核中最基本的功能保留在內核,將不需要在覈心態執行的功能遷移到用戶態執行,從而降低內核設計複雜度,接口更加清晰,維護代價更小,系統更加可靠。

7、進程的特徵?
    答:動態性:進程是程序的一次執行,具有生命週期
        併發性:內存中的多個進程能在一段時間內同時運行
        獨立性:進程是一個獨立擁有資源和獨立接受調度的基本單位
        異步性:進程按各自獨立的、不可預知的速度向前推進
        結構性:進程由程序段、數據段和進程控制塊組成

8、    進程和線程的區別?
    答:調度:傳統操作系統中,進程是CPU調度的基本單位,在引入線程的操作系統中,線程是CPU調度的基本單位。
        擁有資源:在傳統操作系統或者引入線程的操作系統中,進程都是擁有資源的基本單位,而線程幾乎不擁有系統資源,但線程可以訪問其隸屬進程的系統資源。
        併發性:進程之間可以併發執行,線程之間也可以併發執行。
        系統開銷:由於創建或撤銷進程時,操作系統都要爲之分配或回收資源,如內存空間/IO設備等,所以操作系統爲進程所付出的開銷遠大於線程。
        地址空間和其他資源:進程之間的地址空間互相獨立,同一進程內的線程共享進程的資源。

9、線程/進程空間是什麼?
    答:進程空間:用戶進程所能看到的內存空間,包括靜態存儲區,棧區,堆區,常量區,代碼區。
        線程空間:線程運行必不可少的資源,主要是棧和寄存器。

10、進程和程序的區別?
    答:進程是程序的一次執行過程,一個動態的概念,存在生命週期。進程映像包括程序、數據、PCB。
        程序是一組有序的指令集合,是一個靜態的概念,是永久存在的。

11、作業與進程的聯繫與區別?
    答:進程是對程序的執行過程的描述,是資源分配的基本單位。作業是一組用戶要求計算機完成的任務。其主要區別如下:
        1、在用戶向計算機提交作業後,系統將它放入外存中的作業等待隊列中等待執行。而進程只要被創建,總有相應的部分存在於內存中。
        2、一個作業可由多個進程組成,且必須至少由一個進程組成,反過來則不成立。

12、進程的三種基本狀態,以及之間轉換的過程?
    答:就緒->運行,獲得處理機;運行->就緒,處理機被剝奪;運行->阻塞,進程需要的資源(除處理機)沒準備好;阻塞->就緒,進程需要的資源(除處理機)已準備好。

13、進程有哪些高級通信方式?
    答:共享存儲(互斥訪問)、消息傳遞(直接通信方式即消息隊列、間接通信方式即信箱通信)、管道通信(半雙工通信)。

14、有哪些進程調度算法?
    答:先來先服務,短作業優先,優先級調度,高響應比優先,時間片輪轉,多級反饋隊列。

15、臨界資源和臨界區的概念?
    答:臨界資源是一次僅允許一個進程使用的資源,臨界區是進程中訪問臨界資源的那段代碼。

16、爲禁止兩個進程同時進入臨界區,同步機制應遵循的準則是什麼?
    答:1.空閒讓進 2.忙則等待 3.有限等待 4.讓權等待

17、什麼是原子操作?具有什麼特點?
    答:概念:完成某種功能且不會被分割,不會被中斷執行的操作序列。
        特點:1.處於操作系統的最底層,是最接近硬件的部分
              2.程序的運行具有原子性,只能一氣呵成
              3.程序的運行時間都較短,而且調用頻繁

18、操作系統中的信號量的概念?
    答:信號量是一種實現進程同步和互斥的工具。
        整型信號量:一個表示資源個數的整型量。
        記錄型信號量:用一個結構體實現,裏面包含了表示資源個數的整型量和一個等待隊列。

19、什麼是PV操作?
    答:P、V 操作是一對低級通信原語,信號量的值只能由這兩條原語改變。P操作相當於申請資源,V操作相當於釋放資源。P操作和V操作必定成對出現,但未必在同一個進程中。

20、什麼是管程?由哪些基本特性?
    答:定義:管程是由共享數據及定義在其上的操作組成的軟件模塊,這組操作能同步進程和改變管程中的數據。實質是個抽象類,沒有實體。
        特性:    1.局部於管程的數據只能被管程內的過程所訪問(安全性)
                2.進程通過調用管程內的過程訪問共享數據(封裝性)
                3.多個進程對管程的訪問是互斥的(互斥性)

21、死鎖的定義是什麼?死鎖產生的必要條件?
    答:死鎖是指多個進程因競爭資源而造成的一種互相等待的現象,若無外力作用,它們都將無法向前推進。
        必要條件:互斥條件,請求和保持條件,不剝奪條件,循環等待條件。

22、死鎖形成原因?死鎖的處理方法?
    答:形成原因:非剝奪資源的競爭和進程的不恰當推進順序
        處理方法:    1.死鎖預防:破壞產生死鎖的四個必要條件中的一個或者幾個
                    2.避免死鎖:在資源的動態分配過程中,用某種方法去防止系統進入不安全狀態
                    3.死鎖的檢測和解除:系統及時檢測出死鎖地發生,然後採取某種措施解除死鎖(資源剝奪法,撤銷進程法,進程回退法)

23、介紹下銀行家算法?介紹下安全性算法?
    答:銀行家算法:1.檢查此次申請是否超過了之前聲明的最大需求數
                    2.檢查此時系統剩餘可用資源能否滿足此次請求
                    3.試探着分配,修改各數據結構
                    4.用安全性算法檢查此次分配是否會導致系統進入不安全狀態
        安全性算法:1.檢查當前剩餘可用資源是否能滿足某進程的最大需求,若可以則將該進程加入安全序列,並回收該進程持有的資源
                    2.不斷重複上述過程,看最終能否所有的進程都加入安全序列

24、什麼是飢餓?和死鎖的區別?
    答:概念:由於操作系統對某類資源的分配策略不公平導致某些進程長時間等待的情況。
        區別:數量:飢餓狀態的進程可以只有一個;死鎖狀態進程至少有兩個
              狀態:飢餓狀態的進程可以是就緒進程;死鎖狀態進程一定是阻塞進程

25、存儲器管理應具有的功能?
    答:1、內存的分配和回收 2、地址轉換 3、擴充內存空間 4、存儲保護

26、常用存儲保護方法有哪些?
    答:1、在CPU中設置一對上、下限寄存器
        2、採用重定位寄存器(基址寄存器)和界地址寄存器(限長寄存器)

27、程序鏈接方式有哪些?程序的裝入方式有哪些?
    答:鏈接方式(形成邏輯地址):1.靜態鏈接:將各目標模塊及庫函數鏈接成一個完整的可執行程序
                                  2.裝入時動態鏈接:編譯得到一組目標模塊,邊裝入邊鏈接
                                  3.運行時動態鏈接:程序執行中需要目標模塊纔對目標模塊鏈接
        裝入方式(完成地址變換):1.絕對裝入:編譯時就知道程序將要駐留在內存的物理地址
                                  2.靜態重定位:地址變換在裝入時一次完成,之後不再改變
                                  3.動態重定位:裝入模塊在內存中是相對地址,地址轉換在程序執行時才進行,可在內存中移動位置

28、什麼是覆蓋技術?什麼是交換技術?兩者有什麼區別?
    答:覆蓋技術:把用戶空間分成一個固定區和若干覆蓋區,將經常活躍的部分放在固定區,其餘部分按調用關係分段,放在外存中的段在需要調用前,系統再將其調入覆蓋區,替換覆蓋區中原有的段。
        交換技術:把處於等待狀態的程序從內存移到輔存,把內存空間騰出來,這一過程又稱換出;把準備好競爭cpu運行的程序從輔存移到內存,這一過程又稱換入。
        主要區別: 1、交換主要是在不同進程(或作業)之間進行 2、覆蓋主要在同一個程序或進程中進行

29、連續分配管理方式有哪幾種?
    答:1、單一連續分配:適合單道程序 2、固定分區分配:適合多道程序,簡單。 3、動態分區分配:根據內存實際需要,動態地爲進程分配空間。

30、動態分區分配算法有哪些?
    答:首次適應算法,最佳適應算法,最壞適應算法,鄰近適應算法。

31、什麼是拼接技術?
    答:拼接技術/緊湊技術:移動所有已分配區到存儲器的一端,將其餘空閒分區合併爲一個大的空閒分區。

32、什麼是塊/物理塊?什麼是頁面?什麼是頁表?
    答:塊/物理塊:將主存空間劃分爲大小相等且固定的區域,這些區域被稱爲塊。
        頁面:進程中的塊稱爲頁,爲了便於地址轉換,頁面大小應是2的整數冪。
        頁表:用於在內存中找到進程的每個頁面所對應的物理塊的索引表。

33、分頁管理方式和分段管理方式有什麼區別?
    答:目的:頁是信息的物理單位,分頁是爲了實現離散分配方式,提高內存利用率;段是信息的邏輯單位,分段是爲了能更好地滿足用戶的需要。
        長度:頁的大小固定且由系統決定,段的長度不固定且決定於用戶所編寫的程序。
        維度:分頁管理的地址空間是一維的,分段管理的地址空間是二維的(段號和段內偏移量)。
        碎片:分頁管理有內部碎片,無外部碎片,分段管理有外部碎片,無內部碎片。
        共享和動態鏈接:分頁管理不容易實現共享和動態鏈接,分段管理容易實現共享和動態鏈接。

34、什麼內部碎片?什麼是外部碎片?
    答:內部碎片:系統分配給進程的存儲空間中未被利用的部分。
        外部碎片:內存中由於太小而難以利用的空閒分區。

35、什麼是虛擬存儲器?爲什麼要引入虛擬存儲器?
    答:虛擬存儲器是一種藉助於外存空間,從而允許一個進程在其運行過程中部分地裝入內存的技術。之所以引入虛擬存儲管理方式,是爲了在邏輯上擴充內存。

36、什麼是局部性原理?
    答:1.時間局部性:程序對某存儲單元的一次訪問和下次訪問,可能集中在一個較短時間內。
        2.空間局部性:程序在一段時間內所訪問的存儲單元,可能集中在一個較小區域內。

37、傳統存儲管理器的特徵?虛擬存儲管理器的特徵?
    答:傳統存儲管理器:一次性:作業必須一次性全部裝入內存後,才能開始運行
                        駐留性:作業被裝入內存後,就一直駐留在內存中
        虛擬存儲管理器:多次性:允許作業分多次調入內存運行
                        對換性:允許作業在運行過程中換入換出
                        虛擬性:從邏輯上擴充內存的容量

38、有哪些頁面置換算法?
    答:最佳置換算法(OPT),先進先出置換算法(FIFO),最近最久未使用(LRU)算法,Clock置換算法(LRU 算法的近似實現)。

39、有哪些頁面分配策略?
    答:固定分配局部置換,可變分配全局置換,可變分配局部置換。
        (固定分配和可變分配指駐留集大小不變和可變;局部置換指缺頁時只能和本進程的物理塊進行置換,全局置換指缺頁時還可與操作系統的空閒塊或者其他進程的物理塊進行置換)

40、什麼是抖動?抖動的主要原因是什麼?
    答:抖動指頻繁發生缺頁,進行頁面調度的現象。
        抖動的主要原因是某個進程頻繁訪問的頁面數目高於可用的物理頁框數目。

41、什麼是文件?什麼是文件系統?文件系統的功能?
    答:文件是以計算機硬盤爲載體的存儲在計算機上的信息集合。
        文件系統即文件管理系統,是操作系統中負責管理和存儲文件的軟件。
        文件系統功能:1.對用戶而言,文件系統的功能包括實現對文件的基本操作、文件共享和文件保護
                      2.對系統而言,文件系統的功能包括管理與磁盤的信息交換,完成文件邏輯結構和物理結構的互相轉換,組織文件在磁盤上的存放以及磁盤調度

42、打開文件的過程?
    答:用戶進程首次使用文件時,使用系統調用open將指明文件的FCB從外存複製到系統打開文件表的一個表目中,並將該表目的索引返回給用戶進程,然後進程打開文件表中會增加相應的表目,並通過指針與系統打開文件表中的表目相連。

43、軟鏈接和硬鏈接的區別?
    答:軟鏈接就是把到達共享文件的路徑記錄下來,當要訪問文件時,根據路徑尋找文件。
        硬鏈接就是多個FCB的索引指針指向一個索引結點。

44、文件的邏輯結構分類?索引文件和索引順序文件的區別?
    答:無結構文件(流式文件)
        有結構文件(記錄式文件):1.順序文件 2.索引文件 3.索引順序文件 4.散列文件
        區別:索引文件每個記錄對應一個索引表項(類似索引查找);索引順序文件每組記錄對應一個索引表項(類似分塊查找)

45、什麼是文件分配表(FAT)?
    答:文件的顯式鏈接分配把用於鏈接文件各物理塊的指針顯式地存放在內存的一張鏈接表中,每個表項中存放對應塊的下一塊鏈接指針。(每個磁盤對應一張FAT)

46、有哪些文件分配方式?文件存儲空間管理有哪些方法?
    答:文件分配方式:連續分配,鏈接分配(隱式鏈接,顯式鏈接),索引分配(單級索引,多層索引,混合索引)
        文件存儲空間管理:空閒表法,空閒鏈表法,位示圖法,成組鏈接法。

47、操作系統中磁盤調度的目的和算法?哪幾種不會導致磁臂黏着?
    答:磁盤調度的目標是使磁盤的平均尋道時間最少。
        調度算法:先來先服務(FCFS:First Come First Serve),最短尋道時間優先 (SSTF:Shorted Seek Time First) ,掃描算法(SCAN)==電梯調度,循環掃描算法(CSCAN)
        不會導致磁臂黏着的算法只有先來先服務

48、操作系統如何被加載?
    答:計算機首先從rom中加載一個自舉裝入程序,自舉裝入程序再加載完整的自舉程序,自舉程序完成初始化cpu和內存等工作,然後將操作系統加載到ram,再跳轉到起始地址,從而開始操作系統的運行。

49、I/O系統的層次劃分?
    答:用戶層I/O軟件、設備獨立性軟件、設備驅動程序、中斷處理程序、硬件

50、高速緩存存儲器cache和緩衝區的區別?
    答:存放數據:cache存放的是低速設備上的某些數據的副本;緩衝區存放的是低速設備傳送給高速設備的數據或者是高速設備傳送給低速設備的數據
        通信過程:若高速設備訪問的數據不在cache中,則需要訪問低速設備;高速設備和低速設備的通信都要經過緩衝區,高速設備不會直接訪問低速設備

51、什麼是設備獨立性?怎麼實現?
    答:概念:設備獨立性是指應用程序獨立於具體使用的物理設備。
        實現:在系統中設置一張邏輯設備表(LUT),用於將邏輯設備名映射爲物理設備名

52、文件區緩衝算法?
    答:在主存上設立一片緩衝區,外部設備與處理機的數據交互都經過緩衝區,這樣外部設備和處理機就都不用互相等待。
        單緩衝:磁盤輸入緩衝區和CPU處理工作區數據並行,緩衝區搬運到工作區單道
        雙緩衝:緩衝區搬運到工作區和CPU處理工作區數據分別和磁盤輸入緩衝區並行

53、緩衝區的特性?
    答:沒寫滿,不允許讀;沒讀空,不允許寫

54、內核態和用戶態的理解?爲什麼要區分用戶態和內核態?
    答:特權:內核態與用戶態是操作系統的兩種運行級別,用戶態只能執行非特權指令,核心態可以執行除了訪管指令外的所有指令
        轉換:用戶態轉核心態只能通過中斷實現;核心態轉用戶態通過一個特權指令將程序狀態字標誌位設置爲用戶態
        原因:爲了安全性。在cpu的一些指令中,有的指令如果用錯,將會導致整個系統崩潰。分了內核態和用戶態後,當用戶需要操作這些指令時候,內核爲其提供了API,可以通過系統調用陷入內核,讓內核去執行這些操作。

55、頁表存放在內存還是磁盤上?
    答:單級頁表:頁表是全部在內存的
        多級頁表:高層頁表(相對級別比較高的)放在內存,部分底層頁表在內存,另外的一些就被塞在磁盤,被高層頁表點名之後,才調入內存。

56、操作系統中用到哪些數據結構?
    答:1.LRU算法:堆棧
        2.進程調度:隊列
        3.空閒內存:鏈表
        4.FAT文件系統:樹
        5.磁盤空閒分區:鏈表
        6.銀行家算法:矩陣

57、PCB包含的內容?如果進程創建PCB失敗會怎麼樣?如果進程成功創建PCB但沒有分配運行需要的內存資源會怎麼樣?
    答:PCB包含進程標識符信息,處理機相關信息,進程調度信息。
        PCB是進程存在的唯一標誌,創建PCB失敗則創建進程失敗
        進程創建PCB成功之後,沒有得到進程運行所需要內存資源,進入阻塞狀態

58、操作系統的性能指標?
    答:吞吐率,響應時間,可靠性,併發度

59、頁表寄存器存放的內容?
    答:頁表寄存器存放的是頁表的始址和頁表長度(段表寄存器也類似)

60、進程線程樹圖是什麼?
    答:進程樹是一個形象化的比喻,比如一個進程啓動了一個程序,而啓動的這個進程就是原來那個進程的子進程,依此形成的一種樹形的結構,我們可以在進程管理器選擇結束進程樹,就可以結束其子進程和派生的子進程。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章