作業系統面試題

  哪些面試題涉及到作業系統的呢?下面是小編為大家帶來的,相信對你會有幫助的。

  ***一***

  1、使用多程序與多執行緒有什麼區別?

  用多程序時,每個程序有自己的地址空間,執行緒則共享地址空間。所有其他區別都由此而來:

  * 速度:執行緒產生的速度快,執行緒間的通訊、切換快等,因為他們在同一個地址空間內。

  * 資源利用率: 執行緒的資源利用率比較好,也是因為它們在同一個地址空間中

  * 同步問題: 執行緒使用公共變數/記憶體時,需要使用同步機制,還是因為他們在同一個地址空間內。

  2、 在Windows 程式設計中互斥器***mutex***的作用和臨界區***critical section***類似,請說一下二者區別。

  mutex 可以用於程序之間互斥,critical section是執行緒之間的互斥。

  3、垃圾回收的優點和原理是什麼?

  java語言中一個顯著的特點就是引入了垃圾回收機制,使C++程式設計師最頭疼的記憶體管理問題迎刃而解,而Java程式設計師不再需要考慮記憶體管理。垃圾回收可以有效防止記憶體洩露。

  4、CPU中的快取 和 OS 中的快取分別是什麼?

  * 塊表——Cache在OS 中運用的典型範例。

  小結:快表是聯想暫存器訪問速度比記憶體快,不用快表要兩次訪問記憶體;用了快表只需要一次訪問記憶體。

  在OS中,為提高系統的存取速度,在地址對映機制中增加一個小容量的聯想暫存器,即塊表。用來存放當前訪問最頻繁的少數活動頁面的頁號。先訪問快表中是否有需要的邏輯頁號,加上頁內地址得到實體地址。如果快表中沒有才訪問記憶體中的頁表這樣兩次訪問記憶體。

  * 高速緩衝儲存器: Cache 在CPU中運用的典型範例。

  引入原因:記憶體的存取速度跟不上CPU的執行速度

  它的容量比記憶體小,但是交換速度快! Cache對CPU的效能影響很大。

  5、DOS 與 Windows NT 的許可權區別是什麼?

  DOS 是個單任務、單使用者的作業系統。開啟裝有DOS作業系統的計算機時,就擁有了該作業系統的管理員許可權,且該許可權無處不在。所以只能說,DOS不支援許可權的設定。

  在Windows NT裡,使用者被分成許多組,組和組之間有不同的許可權。當然一個組的使用者和使用者之間也可以有不同的許可權。NT中常見的使用者組:Administrators 管理員組、 Users 普通使用者組、Guests 來賓組、Everyone計算機上所有使用者

  ***二***

  1、程序和執行緒有什麼區別?

  程序間是獨立,這體現在記憶體空間,上下文環境上,執行緒執行在程序空間內;

  一般而言***不使用特殊技術***,程序無法突破程序邊界存取其他程序內的儲存空間,而執行緒由於處於程序空間內,所以同一程序所產生的執行緒共享同一記憶體空間;

  同一程序中的兩段程式碼不能夠同時執行,除非引入執行緒;

  執行緒是屬於程序的,當程序退出時該程序所產生的執行緒都會被強制退出並清除。執行緒佔用的資源要少於程序所佔用的資源。程序和執行緒都可以有優先順序。

  2、AND訊號量集機制的基本思想是什麼,它能解決什麼問題?

  AND同步機制的基本思想是,將程序在整個執行過程中所需要的所有臨界資源一次性全部分配給程序,待該程序使用完後在一起釋放。只要尚有一個資源未能分配 給該程序,其他所有可能為之分配的資源也不分配給它。亦即,對若干個臨界資源的分配採取原子操作方式,要麼全部分配到程序,要麼一個也不分配。它能解決的 問題:避免死鎖的發生。

  3、程序間的通訊方式?

  訊號量、訊號、socket、管道、共享記憶體、訊息佇列

  4、在網路程式設計中設計併發伺服器,使用多程序與多執行緒有什麼區別?

  用多程序時每個程序有自己的地址空間,執行緒則共享地址空間。所有其他區別都是由此而來:

  速度:執行緒產生的速度快,執行緒間的通訊快、切換快等,因為它們在同一個地址空間內;

  資源利用率:執行緒的資源利用率比較好也是因為它們在同一個地址空間內;

  同步問題:執行緒使用公共變數/記憶體時需要使用同步機制,還是因為它們在同一個地址空間內。

  5、程序進入等待狀態有哪幾種方式?

  呼叫P操作,而訊號量小於0;程序申請資源不能被分配;

  6、CPU中的快取和作業系統中的快取分別是什麼?

  作業系統的快取是指快表。在作業系統中,為提高系統的存取速度,在地址對映機制中增加一個小容量的聯想暫存器,即快表,用來存放當前訪問最頻繁的少數活動 頁面的頁號。當某使用者需要存取資料時,根據資料所在的邏輯頁號在快表中找到其對應的記憶體塊號,再聯絡頁內地址,形成實體地址。如果在快表中沒有相應的邏輯 頁號,則地址對映仍可以通過記憶體中的頁表進行,得到空閒塊號後必須將該塊號填入快表的空閒塊中。如果快表中沒有空閒塊,則根據淘汰演算法淘汰某一行,再填入 新的頁號和塊號。快表查詢記憶體塊的實體地址消耗的時間大大降低了,使得系統效率得到了極大的提高。

  CPU中的快取是指快取記憶體。CPU的執行速度越來越快,系統架構越來越先進,而主存的結構和存取速度改進則較慢,因此,快取記憶體技術將越來越重要。

  高速緩衝儲存器是位於CPU和記憶體之間的臨時儲存器,它的容量比記憶體小但交換速度快。在高速緩衝儲存器中的資料是記憶體中的一小部分,但這一小部分是短時間內CPU即將訪問的。當CPU呼叫大量資料時,就可避開記憶體直接從高速緩衝儲存器中呼叫,從而加快讀取速度。