B001 作業系統 設計及實現 第一章練習答案

2021-08-13 08:10:30 字數 4431 閱讀 9226

作業系統的兩個主要功能是什麼?

答:擴充套件機和資源管理;那兩個主要功能怎麼理解?

擴充套件機就是基於硬體上再封裝一層介面(術語叫系統呼叫)的等價計算機。程式設計師可以通過呼叫這些特殊的指令來使用底層硬體。

資源管理,因為本身電腦有很多硬體,比如處理器、硬碟(塊裝置)、滑鼠(字元流裝置)、網路介面、印表機等等,作業系統就是解決這些硬體裝置的控制分配。

核心態和使用者態的區別是什麼?對於乙個作業系統 來說,這種區別為什麼很重要?

核心態受硬體保護,作業系統就是在核心態上執行的,不允許使用者改動。

使用者態,執行的是使用者級的軟體,使用者可以基於作業系統,編寫自己的軟體。

最重要的區別是:核心態不允許修改,這樣可以保護作業系統的穩定性!而使用者態可以修改。

什麼是多道程式?

記憶體劃分為多個分割槽,每個分割槽存放不同作業。

比如a作業正在使用i/o操作,那b或者其它作業可以使用cpu。這樣多道程式可以充分利用i/o和cpu的能力,而不會浪費。

什麼是假離線? 你認為將來的高檔個人計算機會將假離線作為標準特性嗎?

假離線,我理解是將計算機輸入及輸出自動化。原來是要人工將任務輸入計算機中,等待任務的完成,再輸出到指定地方,再進行下乙個迴圈。

而假離線技術,相當:

1. 所有進來的任務直接放在輸入佇列;

2. 計算機從輸入佇列自動取任務;

3. 計算機處理完後,將結果輸出,然後又走到1;

優點: 整個流程無須人工干擾。將獨佔式變為了共享式。我們當前的生活中,最常見的就是印表機。很好地使用了假離線技術。

在早期的計算機中,每乙個位元組資料的讀寫都是由cpu直接進行處理的(那時沒有dma,即直接儲存器訪問)。這種組織結構對多道程式技術有什麼影響?

多道程式:乙個作業在使用io,另乙個作業在使用cpu.

如果每個位元組資料的讀寫都要cpu處理,那說明cpu一直是忙碌的。當乙個作業在使用io時,這個作業也要占用cpu。那就達不到多道程式技術的效果。

什麼是分時系統

一台計算機,多個使用者聯機終端。每個使用者可以使用終端連上計算機,而操作互不干擾,如果要做到互不干擾,須採用什麼技術呢?最終用回的是多道程式,所以說分時系統是多道程式的變種。

有乙個更容易理解的例子,那就是電力**系統,如果要用電,就只要在家裡把電器的插頭插上到插座上就好了……

為什麼分時系統未被二代計算機廣泛採用?

因為第二代計算機的設計沒有採用所需要的硬體保護機制,不能很好的保護記憶體中的各個作業,使它們不會相互妨礙攻擊。

哪些指令可以在核心態執行?

請指出個人計算機作業系統與大型主機作業系統的不同之處?

個人計算機是給個人使用者使用,所以要求更好的使用者體驗,以圖形介面展示;

大型主機是給專業人員使用的,對使用者介面要求不高,一般是以命令列與計算機互動。

給出乙個理由,說明為什麼源**不公開的商業作業系統(如windows)要比乙個開源**的作業系統(如linux)具有更好的品質?

然後再給乙個理由,為什麼乙個開源**的作業系統(如linux)會比乙個源**不公開的商業作業系統(如windows)有更好的品質?

要說windows比linux好,那是其作業系統自我保護性、穩定性。相當乙個盒子,不允許別人隨意修改,這樣能保證其穩定性。

要說linux比windows好,那是因為開源,所以有更多創新,有更快速的發展。

乙個minix檔案的所有者的uid=12,gid=1,該檔案的許可權模式碼為rwxr-x—。別乙個使用者的uid=6,gid=1,如果他試圖去執行該檔案,結果會如何?

看gid為同組使用者。 rwxr-x—為檔案所有者有讀寫執行許可權,同組使用者有讀加執行許可權,其它使用者無許可權。

既然超級使用者的存在將導致許多安全問題,為什麼還要使用這個概念?

超級使用者是系統中的乙個特殊的使用者,超級使用者擁有系統的最高許可權,許多保護規則對它無效。可以管理系統所有的許可權,管理系統非常方便。

unix的所有版本都檔案的命名方式,即絕對路徑名(相對於根目錄)和相對路徑(相對於當前工作目錄)。能否去掉其中一種,只使用一種統一的命名方式?如果要這樣做,你建議保留哪一種。

可以去掉其中的一種,但是使用起來就沒有兩種方式混合用那麼方便。如果要去掉一種,建議去掉第二種,因為第一種可以進行全域性定位,不需要知道當前目錄是**。

在分時系統中為什麼需要程序表?假設在乙個pc機系統中,只有乙個程序,該程序點有整個的系統資源,直至它執行結束。在這種情形下,是否還需要程序表?

在分時系統中,每隔一定的週期,作業系統就會暫停當前程序的執行,轉而啟動另乙個程序。程序被暫時掛起,那麼後來當它需要重新執行的時候,就要求此刻的狀態與先前暫停時的狀態完全相同。這就意味著當我們掛起乙個程序時,必須把它所有資訊都要儲存在某個地方(程序表)。

所以只有乙個程序,則不需要程序表。

塊裝置檔案和字元裝置檔案的本質區別是什麼?

塊裝置檔案描述的是以隨機訪問的資料塊為單元的裝置,如磁碟。在開啟乙個塊裝置檔案後,可以直接去訪問它的某乙個資料塊,如第4個資料塊,而不用考慮其檔案系統的內部結構。類似地,字元裝置檔案指那些以字元流方式進行操作的裝置,如印表機、數據機等。他們的本質區別是操作的物件不一樣和訪問資料的方式不一樣,歸根到底是裝置特性引起的。

在minix3系統中,使用者2對使用者1的乙個檔案建立了乙個鏈結,然後使用者1刪除了這個檔案,如果此時使用者2去訪問該檔案,結果會如何?

會報檔案找不到。

管道是一種必備的工具嗎?如果沒有管道,系統的許多功能會失效嗎?

計算機為什麼要每30s執行update程式?

minix3在記憶體里弄了乙個叫塊快取區來儲存訪問過的資料,這樣能避免重複從磁碟讀取資料,這樣能提高io。但這裡會有乙個資料同步的問題。乙個場景:快取裡的乙個資料被修改,在被寫回磁碟之前系統崩潰,那檔案就會出現損壞。

為了減少資料丟失的風險(只能減少,不能完全避免),那就要每30s執行同步操作,將快取區的資料寫到磁碟中。

現代消費電子產品,如立體音響和數位相機,通常會有乙個顯示螢幕,可以輸入命令並顯示相應的結果。在這些裝置內部有乙個原始的作業系統。這種命令處理功能與個人計算機軟體上的哪一部分類似?

windows作業系統沒有fork系統呼叫,但它也能建立新程序。請你猜測一下,windows用來建立乙個新程序的系統呼叫的語義是什麼?

createprocess

為什麼chroot系統呼叫僅限於超級使用者使用?

chroot只能在程序擁有超級使用者的許可權時才能執行。chroot一般用來設定對系統的限制訪問許可權。

分析一下圖1.9中的系統呼叫列表。你認為執行速度最快的系統呼叫是哪乙個?為什麼?

假設一台機算機的執行速度為10億條指令/秒,乙個系統呼叫需要1000條指令,包括陷阱指令和所有的上下文切換指令。請問,在保留一半的cpu容量來執行應用程式的情形下,該系統每秒鐘能執行多少次系統呼叫?

= (10億 /2)/1000

在圖1.16 中有乙個mknod系統呼叫,但卻沒有rmnod呼叫。這是否意味著我們在建立新節點時,必須非常小心,因為沒有辦法去刪掉它們。

暫時沒有找到答案。。。。

在什麼情形下,忽略sigalrm訊號是有意義的。

當乙個程式要後台執行時。

客戶-伺服器模型在分布式系統中很流行,它能在單機系統中嗎?

可以。不管是分布式還是單機,客戶不關注,只要發出乙個請求,收到乙個應答。

pentium處理器的初始版本不支援虛擬機器監控程式。一台機器需要具備什麼樣的特徵才能使之虛擬化?

虛擬化技術是一套解決方案。完整的情況需要cpu、主板晶元組、bios和軟體的支援。

編寫乙個程式或者一組程式,來測試所有的minix3系統呼叫。對每個系統呼叫,嘗試使用不同的引數,包括錯誤的引數,以驗證它們能否被檢測出來。

編寫乙個類似圖1.10的shell,要求其中包括足夠多的**,使之能正常工作,這樣才能對它進行測試。可以加入一些特徵,如輸入輸出的重定向、管道和後台作業等。

作業系統 作業系統的設計與實現

系統設計的首要問題是定義目標和規範。從高層來說,系統設計取決於所選硬體和系統型別 批處理 分時 單使用者 多使用者 分布式 實時或通用。除了最高設計層外,需求可能很難說清,但需求可以分為兩類 使用者目標和系統目標。使用者要求系統具有一定的優良效能 系統應該易於學習和使用 可靠 安全和快速。研發人員為...

作業系統設計與實現

額,沒有看完,但是 目前看得還是沒有壓力就是 好奇心和問題都太多,丟下一段 對於如下一條命令 cp file1 file2 其功能是為檔案file1作乙個拷貝file2,在shell建立乙個子程序後,子程序執行程式cp,同時向該程式傳遞執行的引數 源檔名和目標檔名。cp程式的主函式格式如下 main...

作業系統 第一章 作業系統引論

二 os發展過程 三 os基本特性 四 os主要功能 五 os結構設計 設計現代os的主要目標是什麼?os的作用可表現在那幾個方面?為什麼說os實現了對計算機資源的抽象?試說明推動多道批處理系統形成和發展的主要動力是什麼。何謂離線i o和聯機i o?試說明推動分時系統形成和發展的主要動力是什麼。實現...