填空题
1.实时系统有4个周期性事件,周期分别为50、100、200和150ms,其处理分别需要25、20、20和δms,则该系统可调度允许的δ最大值为( )ms。
答案: 30 概念核對: 實時系統的可調度性 (Schedulability)。對於多個週期性任務,要保證它們都能在截止時間前完成,其總 CPU 使用率 (Utilization, ) 不能超過系統的最大處理能力。 原理解析: 根據系統資源利用率的公式,總使用率 ,其中 是執行時間, 是週期。在理想的動態優先級排程(如最早截止時間優先 EDF)下,系統可調度的理論上限為 。 代入數值: 即:,解得 。 易錯點: 學生常會將此題與速率單調排程 (RMS) 的充分條件 搞混。除非題目明確指定使用「靜態優先級/RMS 排程」,否則求「系統可調度允許的最大值」時,預設採用理論最佳情況(即 )。
2.进程调度的方式通常有( )和( )两种方式。
答案: 非抢占式 (Nonpreemptive) 、 抢占式 (Preemptive) 概念核對: 行程排程的決策模式 (Decision Mode)。 原理解析: 作業系統在決定何時切換行程時分為兩大類:
- 非搶占式 (Nonpreemptive): 行程一旦獲得 CPU,就會一直執行直到終止,或者因為等待 I/O 而主動阻塞。
- 搶占式 (Preemptive): 作業系統可以在新行程到達、中斷發生或時間片耗盡時,強行中斷當前正在執行的行程,將其移回就緒佇列。 易錯點: 不要與「排程演算法」(如 FCFS, RR 等)混淆,這裡問的是「方式/機制」。
3.每个索引文件都必须有一张( )表,其中的地址登记项用来指出文件在外存上的位置信息。
答案: 索引 (Index) 概念核對: 索引檔案結構 (Indexed file structure)。 原理解析: 為了能隨機且快速地存取檔案中特定長度或變長的記錄,檔案系統會為該檔案建立一張「索引表」。索引表中的每一個項目都指向對應記錄在磁碟(外存)上的實際物理位址,這突破了順序檔案必須連續讀取的限制。 易錯點: 記得區分「索引表 (Index table)」與「檔案配置表 (FAT)」。FAT 記錄的是整個磁碟區塊的配置,而索引表是針對「單一索引檔案」內部記錄的定位。
4.在一请求分页系统中,假如一个作业的页面走向为:4、3、2、1、4、3、5、4、3、2、1、5,当分配给该作业的物理块数为4时(开始时没有装入页面),采用LRU页面淘汰算法将产生( )次缺页中断。
答案: 8 概念核對: 最近最少使用演算法 (Least Recently Used, LRU)。 原理解析: LRU 演算法會在需要淘汰分頁時,選擇「最長時間未被存取」的分頁進行替換。物理區塊數為 4:
- 4, 3, 2, 1: 皆不在記憶體,產生 4 次缺頁。目前記憶體為 ``。
- 4, 3: 皆命中,不缺頁。最近使用順序更新為 `` (3最常使用)。
- 5: 缺頁 (第5次)。淘汰最久未用的 2。記憶體變為 ``。
- 4, 3: 命中。使用順序更新為 ``。
- 2: 缺頁 (第6次)。淘汰最久未用的 1。記憶體變為 ``。
- 1: 缺頁 (第7次)。淘汰 5。記憶體變為 ``。
- 5: 缺頁 (第8次)。淘汰 4。記憶體變為 ``。 總缺页次数 = 初始4次 + 替換4次 = 8次。 易錯點: 模擬 LRU 時,千萬要記得在「命中 (Hit)」時,必須將該分頁的「新鮮度」更新為最新,否則會把它誤當成舊分頁淘汰。
5.信号量被广泛用于三个目的是( )、( )和描述前趋关系。
答案: 互斥 (Mutual exclusion) 、 同步 (Synchronization) 概念核對: 號誌 (Semaphores) 的應用場景。 原理解析: 號誌是 Dijkstra 提出的一種非常靈活的整數變數,主要用來解決並發行程間的三大問題:
- 互斥: 確保同時只有一個行程能進入臨界區(保護共用資源)。
- 同步: 協調多個行程的執行順序(例如生產者/消費者模型,必須先產生資料才能消費)。
- 前趨關係: 是同步的一種延伸,用來規定哪段程式碼必須在另一段之前執行。 易錯點: 互斥與同步經常被學生混為一談。互斥是「排他性(你進我就不能進)」,同步是「協作性(我等你做完才做)」。
6.程序并发执行时的特征是( )、( )、( )和独立性。
答案: 间断性 (Asynchrony/Pause-and-go) 、 失去封闭性 (Loss of closedness) 、 不可再现性 (Non-reproducibility) 概念核對: 行程並發執行的基礎特徵。 原理解析: 當多個程式在記憶體中交錯執行(並發)時,它們會競爭資源。這導致了:
- 間斷性: 程式走走停停,執行速度不可預測。
- 失去封閉性: 程式共享全域資源,其狀態可能會受到其他並發程式的干擾。
- 不可再現性: 因為執行順序(Race condition)不可預測,相同的輸入可能因為干擾而產生不同的結果。 易錯點: 這些特徵正是作業系統為什麼必須引入「行程(Process)」和「同步機制」的根本原因。
7.如果信号量的当前值为3,表示可用的资源数目为3,如果信号量的当前值为-3,则表示( )。
答案: 有3个进程正在等待该资源 (There are 3 processes waiting to be unblocked) 概念核對: 計數型號誌 (Counting Semaphore) 數值的物理意義。 原理解析:
- 當 時,數值代表目前系統中可用資源的數量。
- 當 時,該數值的絕對值代表因為請求此資源而被阻塞(在等待佇列中)的行程數量。因此,-3 表示有 3 個行程正在排隊等待。 易錯點: 負號代表「欠債」,欠了3個資源,就意味著有3個行程在排隊。
8.I/O控制的方式有程序直接控制方式、中断控制方式、( )和通道方式。
答案: DMA方式 (直接存储器访问 / Direct Memory Access) 概念核對: I/O 設備資料傳輸的演進。 原理解析: 為了不斷減少 CPU 在 I/O 操作上的介入,I/O 控制方式演進了四個階段:
- 程式直接控制(輪詢,CPU 佔用率最高)。
- 中斷控制(CPU 啟動後去忙別的,好了再回來)。
- DMA(由硬體控制器接管,讓 I/O 設備與記憶體直接交換一整塊資料,CPU 只在開頭和結尾介入)。
- 通道控制(有了專門的 I/O 處理器,自主性最高)。 易錯點: 留意 DMA 是 "Direct Memory Access" 的縮寫。
9. 在首次适应算法中,要求空闲分区按地址递增顺序链接成空闲分区链;在最佳适应算法中是按空闲分区( )形成空闲分区链。
答案: 大小递增顺序 (Increasing size) 概念核對: 動態分區配置演算法 (Dynamic partitioning algorithms)。 原理解析: 最佳適應 (Best-fit) 的目標是找到「最接近需求大小」的空閒區塊。為了讓搜尋速度最快,系統會預先將所有空閒區塊按照容量(大小)由小到大進行排序。這樣只要從頭開始找,找到的第一個能放得下的區塊,就一定是最佳區塊。 易錯點: 最佳適應算法雖然名字叫「最佳」,但它反而最容易產生大量極小且無法利用的記憶體碎片 (Fragmentation)。
10. 文件的物理结构有顺序文件、链接文件和( )三种。
答案: 索引文件 (Indexed file) 概念核對: 檔案的物理結構 (Physical File Organization)。 原理解析: 檔案資料在磁碟上有幾種典型的實體存放方式:
- 連續/順序配置(要求連續的磁碟區塊)。
- 連結配置(利用指標將散落的區塊串起來,如 FAT 表)。
- 索引配置(用一個專門的索引區塊來登記檔案所有資料區塊的磁碟位址,支援高效的隨機存取)。 易錯點: 請將「邏輯結構」(流式、記錄式)與「物理結構」(順序、連結、索引)明確區分開來。
11. 现代操作系统的特征是并发、( )、虚拟和异步性。
答案: 共享 (Sharing) 概念核對: 作業系統的四大基本特徵。 原理解析:
- 並發:多個行程在宏觀上同時執行。
- 共享: 系統中的資源供記憶體中的多個並發行程共同使用。
- 虛擬:將實體實體(如 CPU、記憶體)映射為多個邏輯實體。
- 非同步:行程執行的走走停停。 易錯點: 並發和共享是作業系統最基礎的兩個特徵,兩者互為存在條件。
12.产生死锁的四个必要条件是互斥条件和请求和保持,( )和环路条件。
答案: 不可剥夺条件 (No preemption / 非抢占条件) 概念核對: 死結的四個必要條件 (Necessary conditions for Deadlock)。 原理解析: 如果系統發生死結,必然同時滿足四個條件:
- 互斥:資源一次只能給一個行程用。
- 請求和保持 (Hold and wait):拿著部分資源不放,同時請求新資源。
- 不可剝奪 (No preemption): 行程持有的資源在它用完主動釋放前,系統不能強行搶走。
- 循環等待 (Circular wait):存在一個等待環路。 易錯點: 「不可剝奪」的意思是,OS 不具備強制奪取該類資源的權力(例如印表機正在列印時不能被搶走)。
13.操作系统的五大功能是( )、存储管理、设备管理、文件系统和用户接口。
答案: 处理机管理 (Processor management / 进程管理) 概念核對: OS 的核心功能模組。 原理解析: 作業系統的核心任務是管理硬體資源。這包括對 CPU 的分配與排程,也就是處理機管理(或稱行程/執行緒管理)。 易錯點: 在多道程式系統中,處理機管理實質上就是對「行程(Process)」的管理。
14.按逻辑结构可把文件分为( )和( )两类。
答案: 流式文件 (Stream file / 无结构文件) 、 记录式文件 (Record file / 有结构文件) 概念核對: 檔案的邏輯結構。 原理解析: 從使用者的角度來看,檔案有兩種:
- 無結構/流式檔案: 將檔案視為一串連續的字元或位元組流(如 UNIX 系統的文字檔)。
- 有結構/記錄式檔案: 檔案由一組相似的記錄 (Records) 組合而成,每條記錄由多個欄位組成(如資料庫表格)。 易錯點: 邏輯結構是使用者眼中的檔案,而實體結構是磁碟眼中的檔案,不要混淆。
15.UNIX系统中提供了( )、异步写和( )三种写方式。
答案: 同步写 (Synchronous write) 、 延迟写 (Delayed write) 概念核對: UNIX 的磁碟 I/O 寫入策略。 原理解析: UNIX 檔案系統為了兼顧效能與資料安全性,提供了不同的寫入策略:
- 異步寫:寫入緩衝區後直接返回,由系統稍後自動寫入磁碟。
- 同步寫: 程式必須等待資料確確實實地寫入物理磁碟後,操作才算完成,這能保證最高的安全性。
- 延遲寫: 寫入緩衝區後只做個標記,直到緩衝區需要被替換時才真正寫入磁碟(極大地減少了磁碟 I/O 次數)。 易錯點: 延遲寫 (Lazy write) 是現代作業系統提升磁碟效能最核心的緩衝機制。
16.请求分页式虚拟存储系统必须至少具有三种硬件支持,即( )、( )和地址变换机构。
答案: 页表机制 (Page table mechanism) 、 缺页中断机构 (Page fault interrupt mechanism) 概念核對: 虛擬記憶體硬體支援。 原理解析: 要實現「請求分頁(程式不必全裝入,用到了再調入)」,硬體必須支援:
- 頁表機制: 頁表不僅要記錄塊號,還必須增加「存在位元」、「修改位元」等來追蹤頁面狀態。
- 缺頁中斷機構: 當地址變換發現頁面不在記憶體時,能觸發中斷,通知 OS 去磁碟抓取。
- 位址變換機構:用來在執行時將邏輯位址快速轉換為實體位址。 易錯點: 缺頁中斷是一種特殊的「內部異常 (Trap)」,它是在指令執行「期間」發生的,且處理完後會重新執行該指令。
17.解决死锁的基本方法有( )、( )、检测死锁和解除死锁。
答案: 预防死锁 (Deadlock prevention) 、 避免死锁 (Deadlock avoidance) 概念核對: 死結處理策略。 原理解析: 作業系統應對死結的方法按「嚴格程度」遞減分為四種:
- 預防死鎖: 從機制上破壞死結的四個必要條件之一(例如要求一次性申請所有資源)。
- 避免死锁: 允許資源動態申請,但在分配前用演算法(如銀行家演算法)檢查是否會進入不安全狀態。
- 檢測:允許死結發生,定期檢查。
- 解除:發現死結後,強行剝奪資源或殺死行程。 易錯點: 預防 (Prevention) 是一種靜態約束;避免 (Avoidance) 是一種動態檢查,兩者概念不同。
18.如果把一本词典的内容作为一个文件存放,每个单词和对它的解释组成一个记录。为了便于该词典的使用者迅速查到所需的单词,这个文件的存储结构采用( )文件结构比较合适。
答案: 索引顺序 (Indexed sequential) (或 直接/散列 Hashed 文件) 概念核對: 檔案邏輯組織。 原理解析: 詞典需要按照字母順序排列(順序性),同時又需要支援對單一單詞的快速「隨機查找」。索引順序檔案 為順序排列的記錄建立一個多級索引表,極大地加快了搜尋速度,是最符合這種情境的結構。 易錯點: 單純的順序檔案尋找極慢;單純的索引檔案又浪費空間。索引順序檔案結合了兩者的優點。
19.通过操作系统对外围设备的管理,可以实现外围设备和计算机系统的( )之间的并行操作。
答案: 处理机 (CPU / 处理器) 概念核對: I/O 管理的目標。 原理解析: 多道程式設計和中斷、DMA 機制的核心目的,就是要讓慢速的外部設備與高速的 CPU (處理機) 能夠同時工作(並行操作),避免 CPU 陷入無謂的等待 (busy-waiting)。 易錯點: 這裡強調的是 CPU 運算與 I/O 傳輸的重疊 (Overlapping)。
20.如果某文件系统以成组方式存放记录,每个磁盘块最多可以存放8个记录,用于记录成组和分解的主存缓冲区的大小与磁盘块大小相同。若0-7号记录存放在第0个磁盘块,8—15号记录存放在第1个磁盘块……,那么为了依次读出第23、24、25、17号记录,需要进行( )次读盘操作。
答案: 3 概念核對: 記錄的成組與分解 (Blocking & Unblocking)。 原理解析: 每個磁碟塊 (Block) 包含 8 個記錄:
- Block 0: 記錄 0~7
- Block 1: 記錄 8~15
- Block 2: 記錄 16~23
- Block 3: 記錄 24~31 讀取順序與磁碟 I/O:
- 讀記錄 23:位於 Block 2。系統將 Block 2 讀入緩衝區(第 1 次讀盤)。
- 讀記錄 24:位於 Block 3。系統將 Block 3 讀入緩衝區,覆蓋舊資料(第 2 次讀盤)。
- 讀記錄 25:位於 Block 3。此時 Block 3 已在緩衝區中,直接命中,不需讀盤。
- 讀記錄 17:位於 Block 2。此時緩衝區是 Block 3,所以必須重新將 Block 2 讀入緩衝區(第 3 次讀盤)。 因此,共需 3 次實體讀盤操作。 易錯點: 緩衝區只能存放一個磁碟塊的資料,當請求跨越磁碟塊又折返時,會產生重複讀取的開銷(這也是為何作業系統會引入多重緩衝或 LRU 緩衝池的原因)。
21.若信号量S的初值定义为10,则在S上调用了12次P操作和10次V操作后S的值应该为( )。
答案: 8 概念核對: 號誌 P/V 操作的數值計算。 原理解析: P 操作 (Wait) 會消耗資源:S = S - 1。 V 操作 (Signal) 會釋放資源:S = S + 1。 S 最終值 = 初始值 - P操作次數 + V操作次數 = 10 - 12 + 10 = 8。 易錯點: 由於 S > 0,這意味著還有 8 個資源可以使用,沒有行程被阻塞。
22.如果系统中有n个进程,则在就绪队列中进程的个数最多为( )。
答案: n-1 概念核對: 行程狀態轉換與資源限制。 原理解析: 假設這是一個單處理機(單核心 CPU)系統。同一時刻只能有 1 個行程處於「執行 (Running)」狀態。所以剩下的行程最多只能有 個處於「就緒 (Ready)」狀態排隊等待 CPU。 易錯點: 不要回答 ,因為必然要有 1 個行程正在執行,才會有排隊的現象產生。
23.计算机有缓存、内存、辅存实现虚拟存储器。如果数据在缓存中,访问它需要20ns;如果在内存但不在缓存,需要60ns将其装入缓存,然后才能访问;如果不在内存而在辅存,需要12μs将其读入内存,用60ns再读入缓存,然后才能访问。假设缓存命中率为0.9,内存命中率为0.6。数据平均访问时间为( )ns。
答案: 506 概念核對: 階層式記憶體的有效存取時間 (Effective Access Time, EAT)。 原理解析: 請注意時間單位的統一:。 平均存取時間 = 。 這是一個階層讀取:如果錯過上一層,就必須付出把資料搬上來的懲罰時間。
- 快取 (Cache) 命中: 命中率 = 0.9。耗時 = 20ns。
- 快取未命中,但記憶體 (Memory) 命中: 機率 = (1 - 0.9) × 0.6 = 0.06。 耗時 = 載入快取(60) + 存取(20) = 80ns。
- 記憶體也未命中(需找輔存): 機率 = (1 - 0.9) × (1 - 0.6) = 0.1 × 0.4 = 0.04。 耗時 = 從輔存讀入記憶體(12000) + 從記憶體載入快取(60) + 存取(20) = 12080ns。 EAT = (0.9 × 20) + (0.06 × 80) + (0.04 × 12080) = 18 + 4.8 + 483.2 = 506 ns。易錯點: 資料從下層搬到上層後,最終還是要從最上層(快取)進行存取。所以在未命中的耗時計算中,千萬別漏加了上一層的載入時間和最終的存取時間。
24.设文件索引节点中有7个地址项,其中4个为直接地址索引,2个是一级间接地址索引,1个是二级间接地址索引,地址项大小为4字节,若磁盘索引块和磁盘数据块大小均为256字节,则可表示的单个文件的最大长度是( )。
答案: 1057 KB (或 1082368 字节) 概念核對: UNIX 的多級索引節點 (inode) 容量計算。 原理解析: 每個區塊可以容納的指標數量 = 磁碟塊大小 / 指標大小 = 256 B / 4 B = 64 個指標。 這意味著一個一級間接區塊可以指向 64 個資料區塊;一個二級間接區塊可以指向 個資料區塊。
- 4 個直接索引: 指向 4 個資料區塊。容量 = 4 × 256 B = 1024 B = 1 KB。
- 2 個一級間接索引: 指向 2 × 64 = 128 個資料區塊。容量 = 128 × 256 B = 32768 B = 32 KB。
- 1 個二級間接索引: 指向 1 × 64 × 64 = 4096 個資料區塊。容量 = 4096 × 256 B = 1048576 B = 1024 KB (也就是 1 MB)。 總最大長度 = 1 KB + 32 KB + 1024 KB = 1057 KB。 易錯點: 記得先算出「一個區塊能裝幾個指標」,再依據層級計算次方。這類題目要特別注意單位是 Byte、KB 還是 MB。
25.实时系统有4个周期性事件,周期分别为50、100、200和200ms,其处理分别需要30、20、20和δms,则该系统可调度允许的δ最大值为( )。
答案: 20 概念核對: 實時系統的可調度性(與第 1 題類似)。 原理解析: 最大允許 CPU 總使用率 。 計算:30/50 + 20/100 + 20/200 + /200 1 即:,解得 。 易錯點: 只要列對利用率方程求和即可,非常簡單,但要小心分數加法。
26.系统提供24位虚存空间,主存为218B,分页式虚拟存储管理,页面尺寸为1KB。用户程序虚拟地址11123456(八进制),页面分得块号为200(八进制),物理地址( )。
答案: 201456 (八进制) 概念核對: 虛擬位址到實體位址的轉換。 原理解析: 這種八進位轉換題,利用八進位運算會比轉回二進位更安全。
- 找出偏移量 (Offset): 頁面大小為 Bytes。 在八進位中, 剛好是 ()。 虛擬位址的「頁內偏移量」等於 虛擬位址 。 ,只要取低位的數字,注意 。 所以,偏移量 (Offset) = 。
- 計算實體位址 (Physical Address): 實體位址 = (物理塊號 頁面大小) + 偏移量。 塊號為 。 塊號的基礎位址 = 。 實體位址 = 。 易錯點: 切忌將八進位的 直覺當成 。 轉換為八進位是 。這一步是解題的關鍵。
27.计算机系统中,屏幕显示分辨率为640×480,若要存储一屏256彩色的图像,需要( )KB存储空间。
答案: 300 概念核對: 影像記憶體容量計算。 原理解析: 256 彩色表示每個像素需要 8 bits(即 ),也就是 1 Byte 的存儲空間。 總位元組數 = 。 換算為 KB = 。 易錯點: 要除以 1024,而不是 1000。
28.信号量S初值10,则在S上调用16 次P操作和15 次V操作后,S的值应该为( )。
答案: 9 概念核對: 號誌值的累加(與第 21 題類似)。 原理解析: S = 初始值 - P操作次數 + V操作次數 = 10 - 16 + 15 = 9。 易錯點: 這是一道送分題,細心加減即可。
29.系统提供24 位虚存空间,主存为2^18B,分页式虚拟存储管理,页面尺寸为2KB。用户程序虚拟地址11124457(八进制),页面分得块号为100(八进制),物理地址( )。
答案: 400457 (八进制) 概念核對: 虛擬位址到實體位址的轉換(同第 26 題)。 原理解析: 頁面大小為 Bytes。 在八進位中, 剛好是 ()。
- 偏移量 (Offset): 。 只看末四碼 。因為 。 所以偏移量 = 。
- 實體位址: (物理塊號 頁面大小) + 偏移量。 塊號 = 。 塊號基礎位址 = 。 實體位址 = 。 易錯點: 靈活運用八進位乘法和求餘數,比起轉換成二進位再去截斷位元,不僅速度快幾倍,而且極難出錯。
30.设分区存储管理系统有45KB,作业A分配15KB,作业B分配20KB。系统释放作业A,有作业C申请8KB和作业D申请6KB,按照最佳分配算法,则最大碎片是( )KB。
答案: 9 概念核對: 最佳適應 (Best-Fit) 分配演算法的推演。 原理解析:
- 初始狀態: 45KB 空閒。
- A=15, B=20: 記憶體佈局變為 [A:15] [B:20] [空閒:10]。
- 釋放 A: 記憶體變為 [空閒:15] [B:20] [空閒:10]。因為中間隔著 B,兩個空閒區無法合併。
- C 申請 8KB (最佳適應): 在 15KB 和 10KB 之間,選擇最接近 8KB 的 10KB 區塊。分配後,該區塊剩餘 2KB。目前空閒:[15KB], [2KB]。
- D 申請 6KB (最佳適應): 只能分配到 15KB 區塊。分配後剩餘 9KB。目前空閒:[9KB], [2KB]。 因此,系統中剩下的最大碎片是 9KB。 易錯點: 分區釋放時,必須注意它與相鄰分區是否能合併。這裡由於作業 B 還在,A 釋放的空間無法與最後尾部的空閒空間合併。
31.每执行一次V操作,信号量的数值S加1。若( ),则该进程继续执行;否则,从对应的( )队列中移出一个进程并将( )状态赋予该进程。
答案: S > 0 、 阻塞 (或等待) 、 就绪 (Ready) 概念核對: V 操作 (Signal) 的底層邏輯。 原理解析: V 操作的核心是「釋放資源」。
- 執行 。
- 如果加 1 後 ,說明原本 ,表示根本沒有行程在排隊等待這個資源,所以當前行程直接繼續執行即可。
- 否則(也就是加 1 後 ),說明原本 S 是負數,有行程正在阻塞佇列中。這時要喚醒佇列中的一個行程,將其狀態從「阻塞」改為「就緒」,讓它有機會被 CPU 執行。 易錯點: 若寫成 會不夠精確。因為如果加 1 後 ,說明原本 ,表示有 1 個行程在等,此時「必須」喚醒它,所以喚醒的條件包含了 。
32.利用信号量实现进程的( ),应为临界区设置一个信号量mutex,其初值为1,表示该资源尚未使用,临界区应置于( )和( )原语之间。
答案: 互斥 (Mutual exclusion) 、 P操作 (Wait / semWait) 、 V操作 (Signal / semSignal) 概念核對: 號誌實現互斥的標準範式。 原理解析: 為了保證每次只有一個行程能進入臨界區(即互斥),我們會將號誌初始化為 1(代表有 1 把鎖)。行程進入臨界區前必須執行 P 操作(拿鎖),離開時執行 V 操作(還鎖)。 易錯點: 順序絕不能反。P 操作相當於「申請」,V 操作相當於「釋放」。如果先 V 再 P,就徹底失去保護作用了。
33.计算机系统中,屏幕显示分辨率为1024x768,若要存储一屏256彩色的图像,需要( )字节存储空间。
答案: 786432 概念核對: 影像記憶體容量計算(同第 27 題)。 原理解析: 256 色 = 8 bits = 1 Byte。 總位元組數 = 。 易錯點: 題目問的是「字節 (Bytes)」,不需要再除以 1024 轉換成 KB。仔細看清題目要求的單位。
34.在一个单处理机系统中,若有4个用户进程且假定当前时刻有一个进程处于执行状态,则处于就绪状态的进程最多有( )个,最少有( )个。
答案: 3 、 0 概念核對: 單處理機的行程狀態數量分佈(同第 22 題)。 原理解析: 總共 4 個行程,1 個在執行。剩下 3 個行程。
- 最多: 如果這 3 個行程都不需要等待 I/O,它們都在排隊搶 CPU,那就全在就緒狀態,最多為 3。
- 最少: 如果這 3 個行程剛好都發起了 I/O 請求,那它們全都會陷入「阻塞/等待」狀態。這時就緒佇列裡空無一人,最少為 0。 易錯點: 極端情況的考量是作業系統排程分析的基本功。
35.按使用情况,文件可分为( )、( )和档案文件。
答案: 临时文件 (Temporary file) 、 永久文件 (Permanent file) 概念核對: 檔案的分類。 原理解析: 從檔案的生命週期和使用目的來分,通常會分為:
- 臨時檔案(如程式編譯過程產生的中間檔,用完即刪)。
- 永久檔案(如使用者的文件、系統執行檔,長期保留)。
- 檔案/歸檔檔案 (Archive file)(如歷史備份、日誌)。 易錯點: 這屬於較傳統作業系統課程的分類法,記住生命週期的三個階段即可。
36.面对一般用户,通过( )方式控制操作系统;面对编程人员,通过( )控制。
答案: 操作命令 (Command line / 命令行 / 终端界面) 、 系统调用 (System call) 概念核對: 作業系統的使用者介面 (User Interface)。 原理解析: 作業系統對外提供兩種類型的介面:
- 給「人類」用的:終端機輸入指令(Command line)或是圖形化介面(GUI)。
- 給「程式」用的:程式設計師在寫程式時,如果需要調用 OS 的特權服務(如讀寫磁碟),必須使用 OS 提供的應用程式介面,即系統呼叫 (System calls)。 易錯點: 系統呼叫是程式從「使用者態」切換到「核心態」的唯一合法橋樑。
37.在动态分区算法中,( )倾向与优先利用内存中的低地址部分的空闲分区,从而保留了高地址部分的大空闲分区。
答案: 首次适应算法 (First-fit algorithm) 概念核對: 首次適應演算法的特徵。 原理解析: 首次適應要求空閒區塊按「實體位址遞增」的順序連結。每次分配時都從鏈表頭(低位址)開始找,只要夠大就切。這導致低位址不斷被切碎,但卻能有效保護高位址的連續大區塊不被動到。 易錯點: 與最佳適應(產生最多碎塊)、最差適應(專切最大區塊)的特徵作好比較。
38.作业执行期间,当访问到指令或数据时才进行地址变换的方式为( )。
答案: 动态重定位 (Dynamic relocation / 动态地址映射) 概念核對: 記憶體位址轉換的時機。 原理解析: 位址轉換可以分為靜態(裝入時一次性全改好)和動態。動態重定位依賴硬體 MMU(記憶體管理單元),程式在記憶體中始終維持邏輯位址不變,只有在 CPU 真正抓取指令執行的「那一瞬間」,才加上基址暫存器算出實體位址。這允許程式在記憶體中浮動和進行虛擬記憶體管理。 易錯點: 這是現代作業系統分頁與分段機制的絕對基礎。
39.在有m个进程的系统中出现死锁时,死锁进程的个数k应该满足的条件是( )。
答案: 概念核對: 死結的定義。 原理解析: 死結是指一組行程互相等待對方釋放資源,形成了一個「循環等待」的殭局。一個行程自己等自己那叫無限迴圈或普通阻塞,要構成「環路」,至少需要 2 個行程參與。因此死結行程數 k 的範圍是從 2 到所有系統行程數 m。 易錯點: 不能寫 ,死結無法由單一行程構成。
40.( )是指由于一个作业装入到与其地址空间不一致的存储空间所引起的对有关地址部分的调整过程。
答案: 重定位 (Relocation) 概念核對: 重定位的定義。 原理解析: 程式編譯出來後,它的邏輯位址通常是從 0 開始的。但主記憶體的 0 號位址通常是留給作業系統核心的。將程式裝入到記憶體中的某個實際位置時,必須將程式內部所有的位址參照進行相應的偏移調整,這個調整的過程就叫做「重定位 (Relocation)」。 易錯點: 記得結合第 38 題,重定位又分為「靜態重定位」與「動態重定位」。
41.单个分区存储管理仅适用于( )和( )系统。
答案: 单用户 (Single-user) 和 单道程序 (Uniprogramming) 概念核对: 单一连续分区(Single Partitioning)是最早、最简单的内存管理方式。整个内存被分为两个部分:操作系统区和用户区。 原理解析: 在这种机制下,主存中永远只能同时驻留一个用户程序。正如参考资料指出,在单道程序系统(uniprogramming system)中,主存被划分为两部分,一部分给操作系统内核,另一部分给当前正在执行的唯一程序。因此,它完全不支持多道程序并发,仅适用于早期的单用户、单任务操作系统(如MS-DOS)。 易错点: 不要填成“批处理”,因为多道批处理系统(Multiprogrammed Batch Systems)需要内存中同时存在多个作业,这必须依赖于多分区(Multi-partition)管理。
42.每个索引文件都必须有一张( )表,其中每个登记项用来指出一个逻辑记录的( )。
答案: 索引 (Index) / 物理地址 (Physical address) 概念核对: 索引文件(Indexed file)是一种为了支持快速随机访问而设计的文件逻辑与物理结构。 原理解析: 当我们需要快速定位文件中的某一条特定记录时(尤其是在记录长度可变时),顺序查找效率极低。参考资料表明,索引文件通过建立一个附加的“索引(index)”,使得记录只能通过其索引被访问。这个索引表中的每一行(登记项)都包含了一个指针,直接指向该逻辑记录在磁盘上的“物理地址(或逻辑块号/相对位置)”。 易错点: 学生容易把“物理地址”写成“逻辑地址”。索引表的根本目的就是完成从“逻辑记录关键字”到实际存储的“物理地址”的映射。
43.操作系统是运行在计算机( )系统上的最基本的系统软件。
答案: 硬件 (Hardware) 概念核对: 操作系统的定义与层次结构。 原理解析: 计算机平台由一系列硬件资源组成。操作系统是直接覆盖在“裸机(硬件)”之上的第一层软件。它屏蔽了底层硬件的复杂细节,为上层的应用程序和用户提供了一个一致的、易于使用的抽象接口。 易错点: 注意题目问的是运行在什么“系统”上,底层即是“硬件系统(Hardware System)”。
44.实现SPOOL系统时必须在磁盘上辟出称为( )和( )的专门区域,以存放作业信息和作业执行结果。
答案: 输入井 (Input well / buffer) 和 输出井 (Output well / buffer) 概念核对: SPOOLing (Simultaneous Peripheral Operations On-Line) 即假脱机技术。 原理解析: SPOOLing 的核心思想是利用高速的磁盘空间来模拟慢速的独占设备(如打印机)。参考资料中描述了一个SPOOLing系统的模型,它由输入进程、用户进程和输出进程组成,这些进程通过“缓冲(buffers)”进行连接,并且这些块被缓存在磁盘上。在标准的操作系统术语中,磁盘上开辟出来的这两块巨大的缓冲区域分别被称为“输入井(用于存放尚未处理的作业信息)”和“输出井(用于存放作业产生的输出结果)”。 易错点: 不要与内存中的“输入/输出缓冲区(I/O buffers)”混淆。SPOOLing 的“井”是建立在**磁盘(Secondary Storage)**上的大容量区域。
45.用户调用( )和( )文件操作来申请对文件的使用权。
答案: 打开 (Open) 和 关闭 (Close) 概念核对: 逻辑I/O与文件操作API。 原理解析: 操作系统通过逻辑I/O模块,允许用户进程以设备标识符和简单的命令(诸如 open, close, read, write)来处理设备和文件。其中,open 操作(如参考资料列出的UNIX系统调用)的作用是建立进程与文件之间的连接,实际上就是“申请使用权”并加载文件的属性到内存;而 close 则是释放使用权,断开连接。 易错点: read和write是进行数据交换的操作,而申请/释放使用权的动作必须由 open 和 close 来完成。
46.主存储器与外围设备之间的信息传送操作称为( )。
答案: I/O操作 (Input/Output operation 或 输入输出操作) 概念核对: I/O 模块的职责。 原理解析: 计算机系统四大主要结构元素之一就是 I/O 模块(I/O Modules),它的核心作用就是负责在计算机(主要是主存或处理器)与它的外部环境(外围设备)之间“移动数据(Move data)”。这种信息传送的过程统称为I/O操作。 易错点: 此处不应填DMA。DMA只是执行I/O操作的其中一种“方式”,而题目问的是这种传送操作的“统称”。
47.若干个等待访问磁盘者依次要访问的磁道为20,44,40,4,80,12,76,移动臂当前位于40号柱面,则先来先服务算法的平均寻道长度为( ); 最短寻道时间优先算法的平均寻道长度为( );扫描算法(当前磁头移动的方向为磁道递增)的平均寻道长度为( )。
答案: 41.7 (或 292/7) ; 17.1 (或 120/7) ; 16.6 (或 116/7) 概念核对: 磁盘调度算法 (Disk Scheduling Policies) 的性能评估。 原理解析: 总共有 7 个请求需要满足。我们分别计算总移动距离,然后除以 7:
- 先来先服务 (FCFS - First-Come-First-Served): 严格按照队列顺序移动。 路线:40(起点) 20 44 40 4 80 12 76。 距离:。 平均长度:。
- 最短寻道时间优先 (SSTF - Shortest Seek Time First): 每次选择离当前磁头最近的磁道。 初始磁头在 40。队列中有 40 本身,所以首先满足 40(移动 0)。 路线:40 40(距离0) 44(距离4) 20(距离24) 12(距离8) 4(距离8) 76(距离72) 80(距离4)。 总距离:。 平均长度:。
- 扫描算法 (SCAN / Elevator Algorithm): 磁头单向移动直到遇到最高需求,再反向。 初始磁头在 40,方向递增。 路线:40 40(距离0) 44(距离4) 76(距离32) 80(距离4)。到达80后,递增方向再无请求,反向递减。 20(距离60) 12(距离8) 4(距离8)。 总距离:。 平均长度:。 易错点: 在 SSTF 和 SCAN 计算时,学生经常忘记“40”既是起点也是请求队列中的一个元素,处理40到40的距离应计入完成了一次请求(距离为0)。除数必须是请求队列的总数 7。
48.在生产者—消费者问题中,消费者进程的两个wait原语的正确顺序为( )和( )。
答案: wait(full) / P(full) 和 wait(mutex) / P(mutex) 概念核对: 生产者/消费者模型与信号量同步(Semaphore Synchronization)。 原理解析: 在并发编程中,消费者需要从缓冲区取走数据。它必须先确保缓冲区中有数据可取,即检查资源信号量 full;然后再锁住缓冲区,即申请互斥信号量 mutex。 如果顺序颠倒(先 wait(mutex) 后 wait(full)),一旦消费者抢到了锁(mutex)但发现缓冲区为空(full=0),它就会抱着锁进入睡眠。而此时生产者想要生产数据,却因为拿不到互斥锁 mutex 而被永远阻塞,这就造成了死锁 (Deadlock)。 易错点: P操作(wait)的顺序生死攸关:先同步(检查资源),后互斥(加锁)。
49.在请求页式管理中,当硬件变换机构发现所需的页不在内存时,产生( ),中断处理程序作相应的处理。
答案: 缺页中断 (Page fault) 概念核对: 虚拟内存中的请求调页(Demand paging)。 原理解析: 虚拟内存允许程序执行时不必全部加载进内存。当硬件的地址变换机构在页表中查找某个页,但发现其“有效位 (Valid bit)”指示该页不在主存中时,它会触发一种特殊的异常或中断——即缺页中断 (Page Fault)。随后,操作系统的缺页中断处理程序会接管CPU,去磁盘将缺失的页面调入主存。 易错点: 缺页中断属于内部异常(Trap / 陷入),它是在指令执行中途发生的,并且在处理完成后,系统会重新执行那条引发缺页的指令。
50.置换算法是在内存中没有( )时被调用的,它的目的是选出一个被淘汰的页面。
答案: 空闲物理块 (Free frames) 或 空闲页面 概念核对: 页面置换策略 (Page Replacement Policy)。 原理解析: 当发生缺页中断且系统需要将新页调入主存时,操作系统首先会去检查“空闲物理块链表 (free-frame list)”。如果内存中仍有充足的空闲帧,就可以直接装入。只有当内存已经塞满,没有空闲物理块时,才必须调用页面置换算法(如LRU、FIFO等),“牺牲”掉一个已在内存中的旧页面以为新页面腾出空间。 易错点: 置换不是每次缺页都会发生,它只在“内存已满(无 free frames)”的极端情况下才被激活。
51.在段页式存储管理系统中,面向( )的地址空间是段式划分,面向物理实现的地址空间是页式划分。
答案: 用户 (User) 或 程序员 (Programmer) 概念核对: 段页式结合的虚拟内存 (Combined Paging and Segmentation)。 原理解析: 分段和分页的设计初衷不同:
- 分页对用户是透明的,它是为了消除外部碎片,由硬件/OS负责切分,面向的是物理内存的管理效率。
- 分段则是对程序员可见的(visible to the programmer)。它将程序按逻辑意义(如代码段、数据段、堆栈段)切分,面向用户/程序员,便于实现模块化、共享与保护。在段页式系统中,逻辑地址依然呈现出段式结构给用户,但在底层被操作系统进一步切分为页以存入物理内存。 易错点: 分页是为了“方便系统”,分段是为了“方便用户”。牢记这一设计哲学。
52.文件的存储器是分成大小相等的( ),并以它为单位交换信息。
答案: 物理块 (Blocks / Disk blocks) 概念核对: 块设备 (Block-oriented devices) 的信息交互单元。 原理解析: 磁盘和磁带是典型的块设备。参考资料明确指出:“面向块的设备将信息存储在通常为固定大小的块(blocks)中,并且数据传输也是一次一个块地进行”。文件系统的存储以及主存与磁盘之间的I/O,均是以物理块(也称磁盘块)为最小单位进行的。 易错点: 这里的单位不是“字节(Byte)”或“扇区(Sector)”。在文件系统和操作系统的宏观管理中,标准交换单位是逻辑化的“物理块 (Block)”。
53.为文件 file 增加执行权限的 UNIX 命令为( )。
答案: chmod +x file (或 chmod a+x file) 概念核对: UNIX 权限管理。 原理解析: 在UNIX系统中,每个文件都有一组权限掩码字段(Permission modes fields)用于控制创建和访问。改变权限的命令是 chmod (Change Mode)。+x 代表增加(+)执行(eXecute)权限。 易错点: 不熟悉 Linux/UNIX 基本命令的学生可能只会写纯理论知识。注意操作系统的实操题。
54.显示目录 mydir 中文件的详细信息的 UNIX 命令为( )。
答案: ls -l mydir概念核对: UNIX 目录查看命令。 原理解析: ls (List) 命令用于列出目录内容。带上 -l (long format) 选项后,除了文件名,还会详细列出文件的读写权限、硬链接数、所有者、文件大小以及最后修改时间等长格式信息。 易错点: -l 是小写的 L,不是数字 1。
55. 操作系统提供给编程人员的唯一接口是( )。
答案: 系统调用 (System calls) 概念核对: 操作系统的双重模式与接口。 原理解析: 一般用户可以通过命令行或图形界面使用计算机;但对于应用程序的编程人员 (Programmers),若他们的程序需要在用户模式(User mode)下请求操作系统内核代表其执行特权操作(如读写文件、申请内存),他们能够跨越用户态到内核态的唯一合法桥梁就是发起系统调用 (System calls)。 易错点: 系统调用本质上是由一组用C/汇编语言写成的 API 组成的。
56. 按文件的逻辑存储结构分,文件分为有结构文件,又称为( )和无结构文件,又称( )。
答案: 记录式文件 (Record file) 和 流式文件 (Stream file) 概念核对: 文件的逻辑结构组织。 原理解析: 从操作系统的逻辑视角来看:
- 如果文件由一条条具有固定格式的相似数据记录(Record)组成(例如数据库表),我们称之为有结构文件或记录式文件。
- 如果操作系统对文件内部内容一无所知,仅仅把它看作是一连串无格式、无间隔的字节流(Stream of bytes)——就像典型的UNIX处理方式那样,我们称之为无结构文件或流式文件。 易错点: 这是操作系统的经典二分法,不要和“顺序文件、索引文件”等具体的组织方式混淆。
57. UNIX的文件系统空闲空间的管理是采用( )。
答案: 成组链接法 (Grouped Link Method) 概念核对: 磁盘空闲空间管理策略。 原理解析: 为了记录哪些磁盘块是空闲的,普通的操作系统可能采用空闲表法(Free block list)或位示图法(Bit tables)。然而在经典的 UNIX 系统 V (SVR4) 文件系统中,为了兼顾大容量磁盘和内存开销,采用的是一种巧妙的结合体:成组链接法。它将空闲块分组,每组第一块记录下一组的所有空闲块号,大幅减少了文件操作时的磁盘 I/O 寻道时间。
58. 逻辑设备表(LUT)的主要功能是实现( )。
答案: 设备独立性 (Device independence) 或 逻辑设备到物理设备的映射 概念核对: 逻辑I/O模块的职责设计。 原理解析: 参考资料指出:“逻辑 I/O 模块将设备视为逻辑资源,并允许用户进程通过设备标识符与之交互,而不用关心底层具体物理控制细节”。操作系统通过引入逻辑设备表(LUT),在程序中使用“逻辑设备名”,而在运行时通过LUT将其动态映射到真正的“物理设备名”上。这实现了设备独立性,使得用户程序可以不加修改地适配不同的外设。 易错点: 深刻理解“独立性”一词,即软件与具体硬件设备的解耦。
59. 文件系统中,用于文件的描述和控制并与文件一一对应的是( )。
答案: 文件控制块 (FCB - File Control Block) 或 索引节点 (inode) 概念核对: 文件的控制结构。 原理解析: 正如进程需要“进程控制块 (PCB)”来被操作系统管理一样,每一个文件也必须有一个专属的数据结构来存储它的属性信息(如大小、权限、磁盘位置指针等)。在一般OS理论中称为文件控制块 (FCB)。而在 UNIX/Linux 系统中,这个包含了操作系统所需关键控制信息的结构被称为 索引节点 (inode)。 易错点: FCB与文件是绝对一一对应的。它是文件存在的唯一标志。
60. 所谓( ),是一块能控制一台或多台外围设备与CPU并行工作的硬件。
答案: 通道 (I/O Channel) 或 I/O 处理器 (I/O Processor) 概念核对: I/O 模块的演进。 原理解析: 为了彻底将 CPU 从繁重的 I/O 控制中解放出来,I/O 模块进化成了一个拥有自己定制专用指令集的独立处理器。系统配置中这种独立的I/O处理器,通常被称为通道 (Channel)。它能执行通道程序,独立控制一台或多台设备,从而实现设备与主CPU的高度并行工作。 易错点: DMA控制器也能并行工作,但通道比DMA更高级:DMA只能实现一次块传输,而通道可以通过执行一套“通道程序”完成复杂的、多次跨设备的传输。
61.多道程序系统中,有关程序的执行可能受到另一个程序的( )。
答案: 制约 (Constraint) 或 干扰 (Interference) 概念核对: 并发执行时的制约关系。 原理解析: 当多个进程在内存中共享系统资源时(多道程序设计),如果没有有效的同步和互斥机制,一个程序的执行就必然会受到其他程序执行的相互影响。参考资料提到,操作系统必须保护每个进程的数据和物理资源免受其他进程的“意外干扰(unintended interference)”。这种由于竞争资源或需要协作而产生的互相等待或互相阻塞现象,统称为程序的制约。 易错点: 制约分为两种:直接制约(因合作同步而等待)和间接制约(因竞争互斥资源而等待)。
62.进程有三个特性,它们是动态性、并发性和( )。
答案: 独立性 (Independence) 或 异步性 (Asynchrony) 概念核对: 进程 (Process) 的基本属性。 原理解析: 虽然“进程”的确切特征总结因教材而异,但在经典的计算机科学考点中,进程的主要特性通常概括为:动态性(进程是程序的一次执行过程,有生命周期)、并发性(多个进程能在内存中同时推进)、独立性(进程是系统进行资源分配和调度的一个独立单位)、以及异步性(进程按照各自独立的、不可预知的速度向前推进)。 易错点: “异步性”正是操作系统必须引入信号量、管程等同步机制的根本原因,因为你无法预判哪个进程跑得更快。
63.计算机系统中,处理器是按程序状态字寄存器中的指示控制( )。
答案: 执行模式 (Execution mode / 工作状态) 或 程序的执行 概念核对: 程序状态字 (Program Status Word, PSW) 寄存器的功能。 原理解析: PSW 寄存器包含了当前运行进程的状态信息。除了保存数学运算的条件码(如溢出、进位),它最重要的任务是控制处理器的当前执行模式(Kernel mode 还是 User mode)以及中断是否被允许(Interrupt enable/disable)。处理器根据PSW中的这一位来决定当前是否有权限执行特权指令。 易错点: PSW不仅仅是一个“结果存储器”,它是一个控制CPU行为最高权限的“开关面板”。
64.把逻辑地址转换成绝对地址的工作称为( )。
答案: 重定位 (Relocation) 或 地址映射 (Address Mapping) 概念核对: 内存地址转换 (Address Translation)。 原理解析: 程序员编写程序和编译器生成代码时,使用的通常是从0开始的相对/逻辑地址。然而,当程序被装入到物理内存中的某个随机区域时,所有的地址都必须加上基址进行调整。操作系统自动划分内存并在程序运行中调整相关地址的过程,就叫做重定位 (Relocation)。 易错点: 重定位分为静态重定位(装入内存时一次性修改)和动态重定位(执行每条指令时由硬件MMU实时修改)。
65. 如果把一本词典的内容作为一个文件存放,每个单词和对它的解释组成一个记录。为了便于该词典的使用者迅速查到所需的单词,这个文件的存储结构采用( )文件结构比较合适。
答案: 索引顺序 (Indexed sequential) (或者 哈希/直接文件 Hashed file) 概念核对: 文件的逻辑组织方式。 原理解析: 词典具有两个非常显著的特点:第一,它的记录是按字典序(如A到Z的字母顺序)排列的;第二,用户极其需要“随机、快速的单条记录查找”。 仅仅是“顺序文件”,查找时间会随着文件变大而极其漫长。参考资料建议,如果在顺序文件的基础上,保留记录按关键字段排序的特性,同时增加一个索引表(Index)来支持随机快速访问,这种结构即为索引顺序文件 (Indexed sequential file)。它完美契合了词典的存取需求。
66. 操作系统为用户提供了三种接口,它们是( )接口,( )接口和图形接口。
答案: 命令(行) (Command / Command line) 接口,系统调用 (System call) 或 程序 (Program) 接口 概念核对: 操作系统提供给外界的服务接口类型。 原理解析: 操作系统需要服务两种受众:
- 面对普通用户,系统提供了方便操作的 命令接口 (如 Bash, CMD) 和 图形用户接口 (GUI,如 Windows 桌面)。
- 面对程序员/应用程序,系统提供了一套由核心函数构成的 程序接口 / 系统调用 (System calls) 供其在代码中请求操作系统服务。 易错点: “程序接口”实际上就是指API(应用编程接口)或者系统调用。
67. 计算机系统能及时处理过程控制数据并做出响应的操作系统称为( )。
答案: 实时操作系统 (Real-Time Operating System / RTOS) 概念核对: 操作系统分类。 原理解析: 参考资料在探讨调度时提到了一种特殊的系统:如果任务未能满足其“截止时间(deadline)”,可能会对系统造成不期望的破坏甚至致命错误,这类任务属于“硬实时任务(Hard real-time task)”。能够在这个严苛的时间约束内及时接收、处理外部控制数据并做出确定性响应的OS,就是实时操作系统。常见于工业自动控制、航空航天等领域。
68. ( )和( )是操作系统的两个基本特征,两者之间互为条件。
答案: 并发 (Concurrency) 和 共享 (Sharing) 概念核对: 操作系统的基石特性。 原理解析: 现代操作系统最核心的两个特征:
- 并发: 多个程序在宏观时间段内同时处于运行状态。
- 共享: 系统中的软硬件资源可供内存中多个并发执行的程序共同使用。 两者互为依存条件:如果系统不能并发,就谈不上让多个程序去共享资源;而如果系统不能提供有效的资源共享机制,进程之间必然冲突崩溃,并发也就无法实现。 易错点: 并发(Concurrency)和并行(Parallelism)不同。并发是在单个CPU上交替执行,而并行是在多个CPU上同时执行。
69. 在一段时间内只允许一个进程访问的资源,称为( )。
答案: 临界资源 (Critical resource) 概念核对: 互斥与共享资源。 原理解析: 系统中有许多资源(如打印机、共享内存变量等),如果允许多个进程同时去写或修改,就会导致数据错乱。参考资料中在讨论互斥(Mutual exclusion)时强调:“一次仅允许一个进程使用的资源(Only one process may use a resource at a time)”。这种必须排他性、互斥地被访问的共享资源,在操作系统中被定义为临界资源。 易错点: 访问临界资源的那段“程序代码”,则被称为临界区 (Critical Section)。务必分清“资源”和“代码”的概念区别。
70. 为了使多个进程能有效地同时处理输入和输出,最好使用( )。
答案: SPOOLing技术 (或 缓冲池技术 Buffering) 概念核对: 改善 I/O 效率并实现设备共享的高级技术。 原理解析: 当多个进程同时想要向同一台独占设备(如打印机)输出时,如果让它们排队抢夺该设备的物理控制权,会导致CPU被极大地浪费。通过 SPOOLing(假脱机) 技术(参考资料中描述的带有输入和输出缓冲区的 spooling 系统),操作系统在高速磁盘上划出区域作为缓冲,截获所有进程的输出请求并暂存。这样,对用户进程而言,就像它们“同时”完成了输出,随后由后台的输出守护进程慢慢处理。SPOOLing 将独占设备成功地改造成了可共享的虚拟设备。