操作系統恐龍書第十版課後答案CH01

1.1 What are the three main purposes of an operating system?

(1)為電腦使用者提供一個方便且高效的環境,以在電腦硬體上執行程序

(2)根據需要分配電腦的各種資源,分配過程應盡可能公平和高效。

(3)作為一個控制程序,它具有兩個主要功能:(1)監督使用者程序的執行,以防止錯誤和不當使用電腦,以及(2)管理I/O設備的操作和控制。

1.2 We have stressed the need for an operating system to make efficient use of the computing hardware. When is it appropriate for the operating system to forsake this principle and to “waste” resources? Why is such a system not really wasteful?

單使用者系統應該最大化用戶對系統的使用。圖形使用者介面(GUI)可能會「浪費」CPU週期,但它優化了用戶與系統的互動。

1.3 What is the main difficulty that a programmer must overcome in writing an operating system for a real-time environment?

主要困難在於將操作系統控制在實時系統的固定時間約束內。如果系統無法在特定時間內完成任務,可能會導致整個系統崩潰。因此,在為實時系統編寫操作系統時,編寫者必須確保他的調度方案不允許響應時間超過時間約束。

1.4 Keeping in mind the various definitions of operating system, consider whether the operating system should include applications such as web browsers and mail programs. Argue both that it should and that it should not, and support your answers.

將流行應用程序納入操作系統的一個支持觀點是,如果應用程序嵌入操作系統中,它很可能更能充分利用內核中的功能,因此在性能上優於運行在內核外部的應用程序。然而,通常反對將應用程序嵌入操作系統的論點佔上领先地位,原因如下:

(1) 這些應用程序是應用程序,而不是操作系统的一部分;

(2) 在內核內運行的性能優勢被安全性漏洞所抵消;

(3) 包含應用程序導致操作系統過於臃腫。

1.5 How does the distinction between kernel mode and user mode function as a rudimentary form of protection (security)?

核心模式(kernel mode)和用戶模式(user mode)之間的區別以以下方式提供了一種基本的保護機制。只有當CPU處於核心模式時,才能執行特定指令。同樣地,只有在程序處於核心模式時,才能訪問硬件設備,並且只有當CPU處於核心模式時才能啟用或禁用中斷。因此,當CPU在用戶模式下執行時,其功能非常有限,因此強制保護關鍵資源。这有助于防止用户程序对操作系统和硬件资源进行未授权的访问,提高了系统的稳定性和安全性。

1.6 Which of the following instructions should be privileged?
a. Set value of timer.
b. Read the clock.
c. Clear memory.
d. Issue a trap instruction.
e. Turn off interrupts.
f. Modify entries in device-status table.
g. Switch from user to kernel mode.
h. Access I/O device.

以下操作需要具有特權權限(privileged):設定計時器的值、清除記憶體、關閉中斷、修改設備狀態表中的項目、訪問I/O設備。其餘操作可以在用戶模式下執行。這些特權操作通常是操作系統的核心功能,只有操作系統具有足夠的權限來執行這些操作,以確保系統的穩定性和安全性。一般情況下,用戶程序不應該擁有這些特權,以避免潛在的不當操作。

1.7 Some early computers protected the operating system by placing it in a memory partition that could not be modified by either the user job or the operating system itself. Describe two difficulties that you think could arise with such a scheme.

操作系统所需的數據(例如密碼、訪問控制、會計信息等)必須存儲在或經過不受保護的內存,因此可以被未經授權的用戶訪問。這樣的設計會導致安全風險,因為未經授權的用戶可能會存取、修改或竊取這些數據,進而危及系統的安全性和隱私。因此,操作系統需要確保這些數據受到足夠的保護,只有授權的用戶或應用程序可以訪問它們。這通常通過訪問控制和安全性措施來實現。

1.8 Some CPUs provide for more than two modes of operation. What are two possible uses of these multiple modes?

雖然大多數系統只區分用戶模式和核心模式,但一些CPU支持多種模式。多種模式可用於提供更細粒度的安全策略。例如,不僅僅區分用戶模式和核心模式,還可以區分不同類型的用戶模式。也許屬於同一組的用戶可以執行彼此的代碼。當其中一個這些用戶運行代碼時,機器將進入指定的模式。在這種模式下,該組中的任何成員都可以運行屬於組中其他任何人的代碼。另一種可能性是在核心代碼內提供不同的區分。例如,特定模式可以允許運行USB設備驅動程序。這將意味著可以無需切換到核心模式來服務USB設備,從而基本上允許USB設備驅動程序在半用戶/半核心模式下運行。這樣的多模式架構可以為系統提供更靈活的權限管理和安全性控制。

1.9 Timers could be used to compute the current time. Provide a short description of how this could be accomplished.

一個程序可以使用以下方法來使用定時器中斷計算當前時間。程序可以設置一個定時器以在未來的某個時間醒來。當被中斷唤醒時,它可以更新本地狀態,用來跟踪迄今為止接收到的中斷的數量。然後,當實際引發中斷時,它可以重複這個設置定時器中斷和更新本地狀態的過程。這種方法可以用來實現一種簡單的計時器,用於測量經過的時間或執行某個操作,並在定時器中斷時更新計數器或執行其他操作。這種方法通常用於應用程序中需要精確時間控制的情況。

1.10 Give two reasons why caches are useful. What problems do they solve? What problems do they cause? If a cache can be made as large as the device for which it is caching (for instance, a cache as large as a disk), why not make it that large and eliminate the device?

快取(Cache)在兩個或多個組件需要交換數據,而這些組件以不同的速度執行數據傳輸時非常有用。快取通過提供中間速度的緩衝區解決了數據傳輸問題。如果快速設備在快取中找到所需的數據,則無需等待較慢的設備。快取中的數據必須與組件中的數據保持一致。如果組件的數據值發生更改,而該數據也存在於快取中,則必須更新快取中的數據。這在多處理器系統中尤其成為問題,因為可能有多個進程正在訪問一個數據。

可以通過一個等效大小的快取來取代組件,但前提是:(a)快取和組件具有相等的狀態保存容量(即,如果組件在斷電時保留其數據,則快取也必須保留數據),以及(b)快取是負擔得起的,因為更快的存儲通常更昂貴。這種方法可用於提高數據存取效率,尤其是在需要快速存取數據的場景中。

1.11 Distinguish between the client–server and peer-to-peer models of distributed systems.

客戶端-服務器模型明確區分了客戶端和服務器的角色。在這個模型下,客戶端請求由服務器提供的服務。而對等模型則沒有如此嚴格的角色區分。實際上,系統中的所有節點都被視為對等節點,因此可以充當客戶端或服務器,甚至兩者兼顧。一個節點可以從另一個對等節點請求服務,或者實際上可以向系統中的其他對等節點提供服務。

例如,考慮一個共享烹飪食譜的節點系統。在客戶端-服務器模型下,所有食譜都存儲在服務器上。如果客戶端希望訪問一個食譜,它必須從指定的服務器請求該食譜。而在對等模型中,一個對等節點可以向其他對等節點請求指定的食譜。擁有所請求食譜的節點(或者可能是多個節點)可以將其提供給請求的節點。請注意,每個對等節點可以同時充當客戶端(可以請求食譜)和服務器(可以提供食譜)的角色。这种模型的靈活性允许節點在不同情境下既提供服務又請求服務,而不受嚴格的角色約束。

1.12 How do clustered systems differ from multiprocessor systems? What is required for two machines belonging to a cluster to cooperate to provide a highly available service?

集群系統通常是通過將多台計算機組合成一個單一系統,以執行分佈在集群中的計算任務。另一方面,多處理器系統可以是一個單一的物理實體,包含多個CPU。集群系統比多處理器系統的耦合度較低。為了使兩台機器能夠提供高可用性的服務,這兩台機器上的狀態應該被複製並保持一致更新。當其中一台機器故障時,另一台機器可以接管故障機器的功能。

這種方法允許在發生故障時實現冗余和故障恢復。集群系統的設計通常用於需要高可用性和容錯能力的應用,例如網絡伺服器或數據庫系統。每台機器都可以處理一部分工作,並且當一台機器出現問題時,其他機器可以接管其工作,從而確保系統的持續運作。

1.13 What is the purpose of interrupts? How does an interrupt differ from a trap? Can traps be generated intentionally by a user program? If so, for what purpose?

中斷是系統內部硬體生成的流程變化。中斷處理程序被召喚來處理中斷的原因,然後將控制返回到被中斷的上下文和指令。陷阱是一個由軟體生成的中斷。陷阱可以用來調用操作系統例程或捕捉算術錯誤。

簡而言之,中斷是由硬體生成的,用於處理各種硬體事件,而陷阱是由軟體生成的,通常用於觸發操作系統例程或處理軟體異常情況。這兩種機制都允許系統處理不同的事件和情況,以確保系統的正確運行。

1.14 Direct memory access is used for high-speed I/O devices in order to avoid increasing the CPU’s execution load.
a. How does the CPU interface with the device to coordinate the transfer?
b. How does the CPU know when the memory operations are complete?
c. The CPU is allowed to execute other programs while the DMA controller is transferring data.
Does this process interfere with the execution of the user programs? If so, describe what forms of interference are caused.

CPU可以通過將數值寫入可以獨立訪問的特殊寄存器來啟動DMA操作。一旦設備接收到來自CPU的命令,它就會啟動相應的操作。當設備完成操作時,它會中斷CPU以指示操作的完成。

設備和CPU可以同時訪問內存。內存控制器以公平的方式為這兩個實體提供對內存匯流排的訪問權。因此,CPU可能無法以最高速度發出內存操作,因為它必須與設備競爭,以獲得對內存匯流排的訪問權。

這種情況下,CPU和設備之間的競爭可能導致性能下降,特別是當CPU需要頻繁訪問內存時。為了最大程度地提高性能,系統設計者需要考慮如何有效管理CPU和設備之間的資源分配,以確保兩者能夠有效地共享系統資源。

1.15 Some computer systems do not provide a privileged mode of operation in hardware. Is it possible to construct a secure operating system for these computer systems? Give arguments both that it is and that it is not possible.

對於這種類型的機器,操作系統需要始終處於控制模式(或監控模式)下。這可以通過兩種方法實現:

a. 要求對所有用戶程序進行軟體解釋(例如某些BASIC、Java和LISP系統)。軟體解釋器將提供硬體未提供的功能。

b. 要求所有程序都用高級語言編寫,以便所有目標代碼都是由編譯器生成的。編譯器將生成(無論是通過內聯還是通過函數調用)硬體缺失的保護檢查。

這兩種方法都旨在確保操作系統能夠有效地監控和保護系統,並確保用戶程序不會損害系統的穩定性和安全性。在第一種方法中,軟體解釋器負責提供必要的保護,而在第二種方法中,編譯器生成的目標代碼包含了保護檢查。這樣可以確保系統保持在一個安全和穩定的狀態。

1.16 Rank the following storage systems from slowest to fastest:
a. Hard-disk drives
b. Registers
c. Optical disk
d. Main memory
e. Nonvolatile memory
f. Magnetic tapes
g. Cache

a. Registers

b. Cache

c. Main memory

d. Nonvolatile memory

e. Hard-disk drives

f. Optical disk

g. Magnetic tapes

1.17 Discuss, with examples, how the problem of maintaining coherence of cached data manifests itself in the following processing environments:
a. Single-processor systems
b. Multiprocessor systems
c. Distributed systems

在單處理器系統中,當處理器發出對緩存值的更新時,內存需要被更新。這些更新可以立即執行,也可以以一種懈怠的方式執行。在多處理器系統中,不同的處理器可能會在本地緩存中緩存相同的內存位置。當進行更新時,其他緩存的位置需要被無效或更新。在分散式系統中,緩存的內存值的一致性不是一個問題。然而,當客戶端緩存文件數據時,一致性問題可能會出現。

簡而言之,單處理器系統中,主要關注緩存和內存之間的一致性,而在多處理器系統中,需要處理不同處理器之間的緩存一致性。在分散式系統中,一般不需要擔心緩存的內存一致性,但當客戶端緩存文件數據時,可能需要處理一致性問題。這些問題的處理通常需要使用一些同步和通信機制來確保數據的一致性。

1.18 Describe some of the challenges of designing operating systems for mobile devices compared with designing operating systems for traditional PCs

設計移動操作系統時面臨的最大挑戰包括:

  • 較少的存儲容量意味著操作系統必須謹慎管理內存。
  • 操作系統必須謹慎管理能源消耗。
  • 較少的處理能力和較少的處理器意味著操作系統必須謹慎分配處理器給應用程序。

這些挑戰主要涉及到移動設備的有限資源,包括存儲容量、能源和處理能力。為了應對這些挑戰,操作系統需要在有限的資源下實現優化,以確保良好的性能、良好的能源效率和有效的應用程序執行。这意味著操作系統必須謹慎管理內存、能源和處理器資源,以滿足用戶的需求。

1.19 Identify several advantages and several disadvantages of open-source operating systems. Identify the types of people who would find each aspect to be an advantage or a disadvantage.

開源操作系統具有許多優勢,包括有多人參與開發、多人參與錯誤修復、易於訪問和分發,以及快速的更新週期。此外,對於學生和程序員來說,能夠查看和修改源代碼肯定有優勢。通常情況下,開源操作系統在某些形式的使用上是免費的,通常只需要支付支持服務的費用。商業操作系統公司通常不喜歡開源操作系統帶來的競爭,因為這些特點很難競爭。一些開源操作系統不提供付費支持計劃。一些公司避免參與開源項目,因為他們需要付費支持,以便有某個實體負責解決問題或提供幫助。最後,有人抱怨開源操作系統編碼的不紀律性導致缺乏向後兼容性,使升級變得困難,而頻繁的釋放週期使這些問題更加嚴重,迫使用戶經常升級。

這些觀點反映了開源和專有操作系統之間的一些差異和爭議。開源操作系統提供了靈活性和共同參與的優勢,但也可能帶來一些挑戰,如支持和升級的問題。不同的使用情境和需求可能決定了何時選擇開源操作系統,何時選擇商業操作系統,或者可能需要兩者並存。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值