計算機操作系統(tǒng)面試
計算機操作系統(tǒng)面試
計算機操作系統(tǒng)面試時經常會有不熟悉的問題,下面由學習啦小編為大家整理了計算機操作系統(tǒng)面試的相關知識,希望對大家有幫助!
計算機操作系統(tǒng)面試一、操作系統(tǒng)引論
操作系統(tǒng)目標
1:方面性,2:有效性,3:可擴展性,4:開放性
操作系統(tǒng)基本特性
1:并發(fā)、2:共享、3:虛擬、4:異步
描述多道批處理、分時、實時操作系統(tǒng)的特點各是什么?
批處理操作系統(tǒng):多道性、無序性、調度性,系統(tǒng)利用率高、吞吐量大、平均周轉時間長、但無交互能力。
分時操作系統(tǒng):有多路性、獨立性、及時性和交互性。 有較好的人機交互的特性,并且可以實現(xiàn)共享主機
實時系統(tǒng):有多路性、獨立性、及時性、交互性和可靠性。實際上是指操作系統(tǒng)工作時,其各種資源可以根據(jù)需要隨時進行動態(tài)分配。由于各種資源可以進行動態(tài)分配,因此,其處理事務的能力較強、速度較快。
總結:從可靠性:實時系統(tǒng)更強,從交互性:分時系統(tǒng)更強
計算機操作系統(tǒng)面試二、進程的描述與控制
程序并發(fā)執(zhí)行的特征
1:間斷性:程序在并發(fā)執(zhí)行的時候,因為是共享資源,以及完成同一項任務而相互合作,致使在這些并發(fā)執(zhí)行的程序之間形成了相互制約的關系,導致程序執(zhí)行呈現(xiàn):執(zhí)行--暫停--執(zhí)行
2:失去封閉性:當系統(tǒng)中有多個并發(fā)執(zhí)行的程序時,各個資源是他們所共享的,這些資源的狀態(tài)也由這些程序所改變,所以摸一個程序的運行環(huán)境會受到其他程序的影響。
3:不可再生性
進程的特征與三種基本狀態(tài)
1、特征:
1:動態(tài)性,2:并發(fā)性,3:獨立性,4:異步性。
2、狀態(tài):
1:就緒狀態(tài),2:執(zhí)行狀態(tài),3:阻塞狀態(tài)
3、三種基本狀態(tài)轉換:
處于就緒狀態(tài)的進程,在調度程序為之分配了處理機之后便開始執(zhí)行, 就緒 -> 執(zhí)行
正在執(zhí)行的進程如果因為分配他的時間片已經用完,而被剝奪處理劑, 執(zhí)行 -> 就緒
如果因為某種原因致使當前的進程執(zhí)行受阻,使之不能執(zhí)行。 執(zhí)行 -> 阻塞
4、創(chuàng)建狀態(tài)和終止狀態(tài)圖
進程控制塊PCB的作用
1:作為獨立運行基本單位的標志
2:能實現(xiàn)間斷性運行方式
3:提供進程通信管理所需要的信息
4:提供進程調度所需要的信息
線程與進程的區(qū)別聯(lián)系
1、定義:
進程:進程是具有一定獨立功能的程序關于某個數(shù)據(jù)集合上的一次運行活動,是系統(tǒng)進行資源分配和調度的一個獨立單位。(包括程序段,相關數(shù)據(jù)段,和進程控制塊PCB)
線程:線程是進程的一個實體,是CPU調度和分派的基本單位,它是比進程更小的能獨立運行的基本單位。線程自己基本上不擁有系統(tǒng)資源,只擁有一點在運行中必不可少的資源(如程序計數(shù)器,一組寄存器和棧),但是它可與同屬一個進程的其他的線程共享進程所擁有的全部資源.
2、關系:一個線程可以創(chuàng)建和撤銷另一個線程;同一個進程中的多個線程之間可以并發(fā)執(zhí)行.相對進程而言,線程是一個更加接近于執(zhí)行體的概念,它可以與同進程中的其他線程共享數(shù)據(jù),但擁有自己的??臻g,擁有獨立的執(zhí)行序列。
3、區(qū)別:主要差別在于它們是不同的操作系統(tǒng)資源管理方式。進程有獨立的地址空間,一個進程崩潰后,在保護模式下不會對其它進程產生影響,而線程只是一個進程中的不同執(zhí)行路徑。線程有自己的堆棧和局部變量,但線程之間沒有單獨的地址空間,一個線程死掉就等于整個進程死掉,所以多進程的程序要比多線程的程序健壯,但在進程切換時,耗費資源較大,效率要差一些。但對于一些要求同時進行并且又要共享某些變量的并發(fā)操作,只能用線程,不能用進程。
4.優(yōu)缺點:線程和進程在使用上各有優(yōu)缺點:線程執(zhí)行開銷小,但不利于資源的管理和保護;而進程正相反。同時,線程適合于在SMP機器上運行,而進程則可以跨機器遷移。
進程間的通信是如何實現(xiàn)的?
早期的屬于低級通信:原因:1:效率低,生產者每次只能向緩沖池投放一個信息 2:通信對用戶不透明,隱藏了通信的具體細節(jié)?,F(xiàn)在發(fā)展為高級通信:用戶可以利用操作系統(tǒng)所提供的一組通信命令傳送大量數(shù)據(jù)。操作系統(tǒng)隱藏了進程通信的實現(xiàn)細節(jié)?;蛘哒f,通信過程對用戶是透明的。
高級通信機制:
1:共享存儲器系統(tǒng)(存儲器中劃分的共享存儲區(qū))
實際操作中對應的是“剪貼板”(剪貼板實際上是系統(tǒng)維護管理的一塊內存區(qū)域)的通信方式。
2:消息傳遞系統(tǒng)(進程間的數(shù)據(jù)交換以消息(message)為單位)
當今最流行的微內核操作系統(tǒng)中,微內核與服務器之間的通信,都采用 了消息傳遞機制
3:管道通信系統(tǒng)(連接讀寫進程實現(xiàn)他們之間通信的共享文件(pipe文件,類似先進先出的隊列,由一個進程寫,另一進程讀))
管道分為匿名管道、命名管道。匿名管道是未命名的、單向管道,通過父進程和一個子進程之間傳輸數(shù)據(jù)。匿名管道只能實現(xiàn)本地機器上兩個進程之間的通信,不能實現(xiàn)跨網絡的通信。命名管道不僅可以在本機上實現(xiàn)兩個進程間的通信,還可以跨網絡實現(xiàn)進程間的通信。
4:客戶機-服務器系統(tǒng)
包括:套接字(socket),遠程過程調用和遠程方法調用
什么是臨界區(qū)?如何解決沖突?
每個進程中訪問臨界資源的那段程序稱為臨界區(qū),每次只準許一個進程進入臨界區(qū),進入后不允許其他進程進入。
1:如果有若干進程要求進入空閑的臨界區(qū),一次僅允許一個進程進入;
2:任何時候,處于臨界區(qū)內的進程不可多于一個。如已有進程進入自己的臨界區(qū),則其它所有試圖進入臨界區(qū)的進程必須等待;
3:進入臨界區(qū)的進程要在有限時間內退出,以便其它進程能及時進入自己的臨界區(qū);
4:如果進程不能進入自己的臨界區(qū),則應讓出CPU,避免進程出現(xiàn)“忙等”現(xiàn)象。
進程同步原則
進程同步的主要任務:是對多個相關進程在執(zhí)行次序上進行協(xié)調,以使并發(fā)執(zhí)行的諸進程之間能有效地共享資源和相互合作,從而使程序的執(zhí)行具有可再現(xiàn)性。同步機制遵循的原則:
1:空閑讓進;
2:忙則等待(保證對臨界區(qū)的互斥訪問);
3:有限等待(有限代表有限的時間,避免死等);
4:讓權等待,(當進程不能進入自己的臨界區(qū)時,應該釋放處理機,以免陷入忙等狀態(tài))。
進程同步
由于進程同步產生了一系列經典的同步問題“生產者-消費者”問題,“哲學家進餐”問題,“讀者-寫者”問題。
程序和進程的區(qū)別
程序:計算機指令的集合,它以文件的形式存儲在磁盤上。程序是靜態(tài)實體(passive Entity),在多道程序系統(tǒng)中,它是不能獨立運行的,更不能與其他程序并發(fā)執(zhí)行。
使用系統(tǒng)資源情況:不使用(程序不能申請系統(tǒng)資源,不能被系統(tǒng)調度,也不能作為獨立運行的單位,它不占用系統(tǒng)的運行資源)。
進程:進程是進程實體(包括:程序段、相關的數(shù)據(jù)段、進程控制塊PCB)的運行過程,是一個程序在其自身的地址空間中的一次執(zhí)行活動。是系統(tǒng)進行資源分配和調度的一個獨立單位。
使用系統(tǒng)資源情況:使用(進程是資源申請、調度和獨立運行的單位,因此,它使用系統(tǒng)中的運行資源)
計算機操作系統(tǒng)面試三、處理機調度與死鎖
處理機調度的層次:
1:高級調度
主要用于多道批處理系統(tǒng)中,又稱長作業(yè)調度,調度隊像是作業(yè),根據(jù)某種算法決定將后備隊列中的哪幾個作業(yè)調入內存。
2:低級調度
操作系統(tǒng)中最基本的一種調度方式(頻率最高),在多道批處理、分時和時實三中類型的OS中都存在,又稱為短作業(yè)調度。
3:中級調度
又稱為內存調度,目的是為了提高內存的利用率和系統(tǒng)的吞吐率,
作業(yè)調度的算法:
1:先來先服務算法(FSFS)
最簡單的調度算法,既可用于作業(yè)調度也可用于進程調度,系統(tǒng)按照作業(yè)到達的先后順序進行調度,或者是優(yōu)先考慮在系統(tǒng)中等待時間最長的作業(yè)
2:短作業(yè)優(yōu)先調度算法(SJF)
實際情況短作業(yè)占有比例很大,為了使他們比長作業(yè)優(yōu)先執(zhí)行,而產生了短作業(yè)優(yōu)先的調度算法 ,作業(yè)越短優(yōu)先級越高,
缺點:是必須知道作業(yè)的運行時間,對長作業(yè)不利,人機無法實現(xiàn)交互,未完全考慮作業(yè)的緊迫程度
3:優(yōu)先級調度算法(PSA)
優(yōu)先級:對于先來先服務算法,作業(yè)的等待時間就是他的優(yōu)先級,等待時間越長優(yōu)先級越高,對于短作業(yè)優(yōu)先級作業(yè)的長短就是他的優(yōu)先級。在優(yōu)先級算法中,基于作業(yè)的緊迫程度。
4:高響應比優(yōu)先調度算法(HRRN)
在FSFS中只是考慮作業(yè)的等待時間而忽略作業(yè)的運行時間,SJF算法正好相反,高響應比算法既考慮作業(yè)的等待時間有考慮作業(yè)的運行時間,
優(yōu)先權 = (等待時間+要求服務時間)/要求服務時間
由于等待時間與服務時間之和就是作業(yè)的相應時間,顧優(yōu)先級相當于響應比:Rp
Rp = (等待時間+要求服務時間)/要求服務時間 = 響應時間/要求服務時間
什么是死鎖,死鎖產生的4個條件
死鎖定義:
在兩個或多個并發(fā)進程中,如果每個進程持有某種資源而又都等待別的進程釋放它或它們現(xiàn)在保持著的資源,在未改變這種狀態(tài)之前都不能向前推進,稱這一組進程產生了死鎖。通俗地講,就是兩個或多個進程被無限期地阻塞、相互等待的一種狀態(tài)。
產生條件:
1:互斥條件 -- 一個資源一次只能被一個進程使用
2:請求保持條件 -- 一個進程因請求資源而阻塞時,對已經獲得資源保持不放
3:不可搶占條件 -- 進程已獲得的資源在未使用完之前不能強行剝奪
4:循環(huán)等待條件 -- 若干進程之間形成一種頭尾相接的循環(huán)等待資源的關系
預防避免死鎖的方法
1:破壞“請求和保持”條件:規(guī)定所有進程在開始運行之前,都必須一次性的申請其在整個運行過程所需要的全部資源。
優(yōu)點:簡單,安全。 缺點:資源嚴重浪費,惡化了系統(tǒng)的利用率;
2:破壞“不剝奪”條件:進程逐個的提出資源請求,當一個已經保持了某些資源的進程,再提出新的資源請求而不能立即得到滿足時,必須釋放它已經保持了的所有資源,待以后需要時再重新申請。
缺點:實現(xiàn)復雜,代價大,反復地申請和釋放資源,而使進程的執(zhí)行無限的推遲、延長了進程的周轉時間增加系統(tǒng)開銷、降低系統(tǒng)吞吐量。
3:破壞“環(huán)路等待”條件:將所有的資源按類型進行線性排隊,并賦予不同的序號。所有進程請求資源必須按照資源遞增的次序提出,防止出現(xiàn)環(huán)路。
缺點:1、序號必須相對穩(wěn)定,限制了新設備類型的增加2、作業(yè)(進程)使用資源順序和系統(tǒng)規(guī)定的順序不同而造成資源的浪費3、限制了用戶編程
注意:由于互斥條件是非共享設備所必需的,不能改變