- 操作系統的功能:處理器管理、存儲管理、文件管理、I/O設備管理、用戶接口
- 操作系統的主要功能是管理系統中的: 資源
- 操作系統的特性:並發性、共享性、虛擬性、異步性
並發性、共享性是最重要的特性
- 分時系統是聯機的多用戶交互式操作系統
- 設計批處理操作系統時,首先應該考慮操作系統的:周轉時間和系統吞吐量
- 引入多道程序設計的目的是:充分利用CPU、減少CPU的等待時間
- 並發性(concurrency)是指:兩個或多個事件在同一時間間隔內發生
- 操作系統為用戶提供兩類接口:①作業級接口 ②程序級接口
系統調用(system call)是操作系統提供給程序員的唯一接口
- 作業級接口分為:①脫機接口(批處理系統) ②聯機接口(分時系統)
- 作業說明書主要包括三個部分:①作業基本描述 ②作業控制描述 ③作業資源要求描述
- 聯機用戶接口:①命令式 ②批處理 ③用戶圖形接口
- 用戶使用操作系統通常有3中手段,它們是:①終端命令 ②系統調用命令 ③作業控制語言
- 系統調用的目的是:請求系統服務
- 在批處理系統中,用戶使用作業說明書對作業的各種可能的控制要求進行控制。
- 會導致用戶從用戶態切換到核心態的操作是:①系統調用 ②異常 ③外設中斷
eg. 整數除以零、read系統調用
- 系統調用是操作系統提供給應用程序的接口。
- 本地用戶通過鍵盤⌨登錄系統時,首先會獲得鍵盤輸入信息的時中斷處理程序
- 在用戶態執行的是命令解釋程序(命令接口)
- 進程切換是不可能在用戶態下發生的。
- 操作系統代碼在核心態下運行,用戶一般程序在用戶態下運行。
- 當用戶程序要調用系統服務時,需要通過一條專門的指令來進行CPU運行狀態的切換,這條指令被稱為訪管指令
- Shell有兩種執行方式:命令行方式和批處理(腳本)方式
- 用戶進行系統調用時,CPU的運行狀態應該從用戶態切換到核心態
- 批處理方式下的用戶接口稱為脫機用戶接口,交互方式下的用戶接口聯機用戶接口
- 多道程序設計系統中,讓多個計算問題同時裝入計算機系統的主存儲器:並發執行
- 導致創建新進程的操作是:用戶登錄、作業調度、提供服務、應用請求
eg. 用戶登錄成功、啟動程序執行
- 進程是:執行中的程序
- 進程控制塊是進程實體的一部分,是對進程當前情況的靜態描述,是進程存在的唯一標志。
- 進程特性:動態性、並發性、共享性、異步性、結構性
動態性和並發性是進程的兩個很重要的特性。
- 進程是【分配資源和執行的獨立實體】 線程是【執行的獨立實體】
- 進程的3中基本狀態:執行態、就緒態、阻塞態
線程(light-process)是輕量級的進程(process)
- 就緒態是已經獲得除了CPU以外所有運行所需資源的進程。
- 並發執行是對單處理器系統來說,允許若干進程同時執行,輪流占用處理器。
- 若干個等待占有CPU並運行的進程按一定次序鏈接🔗起來的隊列為:就緒隊列
后備隊列在外存上里面是作業序列, 就緒隊列在內存上里面是進程序列
- 操作系統根據進程控制塊控制管理進程,它是進程存在的標志。
- 線程不是資源分配的單位進程才是!
正確的敘述✔ =》 1. 不同的進程可以執行相同的程序 2. 線程是調度和執行的單位 3.同一進程中的線程可共享進程的主存空間
- 在支持多線程的系統中,進程P創建的若干個線程不能共享的是進程P中某進程的棧指針
- 把一個程序在一個數據集上的一次執行稱為一個進程
- 程序是靜止的,進程是動態的
- 進程狀態變化時,【運行態】和【阻塞態】都有可能變為【就緒態】
- 操作系統依據【進程控制塊(Process Control Block)】對進程進行控制和管理。
- 進程中有兩個基本隊列:就緒隊列、阻塞隊列
- 可再現性是指當進程再次重復執行時,必定獲得相同結果
- 線程是處理器的獨立調度單位,多個進程可以並發執行
- 在多進程操作系統中,線程與進程的根本區別在於進程作為資源分配和調度執行單位,線程作為調度執行單位
在多道程序設計環境下,任務被分解成了多個進程,而一個進程只能完成某個任務中的一部分,多個進程的共同執行才可以使一項任務順利完成。
- 進程之間相互制約關系:同步和互斥兩種情形。
- 臨界資源(Critical Resource, CR):一次僅允許一個進程使用的資源
- 臨界區(Critical Section, CS): 每個進程中訪問臨界資源的那段程序代碼
進程之間的異步並發必然會產生時間相關的錯誤為了避免發生該錯誤,諸進程必須互斥的進入臨界區訪問臨界資源。
-
同步機構設計原則:閑則讓進、忙則等待、有限等待、讓權等待
-
信號量的種類: 1.公用信號量 2.同步信號量
① 公用信號量 其初值僅允許取值為0或1,主要用於控制進程互斥地進入臨界區,也稱之為互斥信號量。
② 私有信號量 其初值為初始資源數目,主要用於控制進程間的同步運行,也稱為同步信號量。 -
消息傳遞系統的通信種類: 共享存儲區系統、管道通信系統、消息傳遞系統和客戶/服務器系統
服務器系統利用套接字或者RPC
在多道程序系統中,進程是異步並發的,為保證進程有序正確執行需要引入通信機制
- 信號量是進程間實現通信的【低級通信方式】,只能傳遞少量信息。 進程間的高級通信方式有【共享存儲區系統】【管道通信系統】【消息傳遞系統】【客戶/服務系統】
- 有3個進程P1、P2、P3共享同一個程序段,而每次最多允許兩個進程進入該程序段,則信號量S的初始值為【2】 其S的范圍是【2,-1】
- 在OS中,wait、signal操作是一種低級進程通信
- 用signal操作喚醒一個進程時,被喚醒進程的狀態應變成就緒狀態
- 用來實現進程同步與互斥的wait操作和signal操作,實際上是兩個不可被中斷的過程
- 信號量S>0:當前資源空閑數量;S<0:有進程在等待
S=0: 資源耗盡但是沒有進程在等待 - 用戶在一次解題或事務處理中要求計算機所要進行工作的集合即作業(job)
- 作業構成:用戶程序、數據對象、作業說明書
作業說明書是用戶使用作業控制語言(JCL)編寫的用來控制用戶對作業意圖的程序
只有批處理系統才具有作業調度,在分時系統和實時系統中都沒有作業調度的概念。
分時系統中要進行人機交互,系統必須能夠及時響應,用戶從終端輸入的作業直接送入內存而不是建立在外存上,因此,不再需要專門把作業從外存調入內存的作業調度過程。
- 評價分時系統的性能指標: 響應時間
響應時間(response time): 從用戶開始鍵入一個請求開始,直到系統首次產生響應為止的時間(屏幕顯示結果)的時間。
- 作業的四種狀態: 提交狀態、后備狀態、運行狀態、完成狀態
- 當作業進入完成狀態時,操作系統將該作業的控制塊從當前作業隊列中刪除,收回其所占資源,並輸出結果。
- 在批處理系統中,周轉時間是: 作業等待時間和運行時間之和
- 在操作系統中,作業處於提交狀態時,已處於進程管理之下。
- 降低進程優先級合理時機是:進程的時間片被用完
- 一個作業被成功調度后,系統為其創建相應的進程,該進程的初始狀態是就緒態
- 滿足短作業優先而且不會發生飢餓現象的調度算法是:最高響應比優先
- 在進程的整個生命周期中都是可以進行處理機調度的(進程是系統進行資源分配和處理機調度執行的單位,線程是處理機調度執行的單位。
- 作業調度是從處於后備狀態的對立中選取適當的作業投入運行。
- 周轉時間是從作業提交給系統到作業完成的時間間隔
- 等待時間是作業進入后備隊列到被調到程序中的時間間隔
- 死鎖是由於兩個或兩個以上的進程因為競爭資源而等待一個永遠不可能發生的事件!的現象。
- 死鎖產生的原因: 1.競爭資源 2.進程推進順序不合理
- 死鎖產生的必要條件: 1.互斥(mutual exclusion) 2.不可剝奪(no preemption) 3.請求和保持(hold and wait) 4.循環等待(circle waiting)
- 死鎖處理的策略: 1.預防策略 2.避免策略 3.檢測策略 4.解除策略
死鎖預防是通過破壞死鎖產生的四個條件之一實現的。
死鎖避免是通過銀行家算法實現的,防止系統進入不安全狀態。
- 某計算機系統中有8台打印機🖨。由K個進程競爭使用每個進程最多需要3台打印機。該系統可能會發生死鎖的K的最小值是: 【4】
首先判斷最多不會發生死鎖的情況 Need: 3 Provider: 8 可以給每個進程分配2台打印機,在總的資源中減1個出來分配給一個進程就能避免死鎖。 最多不會死鎖的情況M = 7 / 2 = 3.5 = 3 (向下取3) 最少發生死鎖的情況K = 4
- 當系統處於安全狀態的時候,系統中一定無死鎖進程!
- 死鎖的檢測和解除是配合使用的,當系統檢測到出現死鎖的時候,就通過死鎖解除方法解除死鎖.
- 當系統處於不安全狀態的時候,系統可能會發生死鎖!
- 資源的靜態分配算法在解決死鎖問題中用於死鎖預防
- 有3個進程共享7個同類資源,為讓系統不會發生死鎖,每個進程最多可以申請【4】個資源
- 解決死鎖的方法有多種
- 死鎖的預防(prevention): 是通過破壞產生死鎖的四個必要條件實現的。。
- 死鎖的避免(avoid): 是通過合理的資源分配算法(eg.銀行家算法)來避免系統進入不安全狀態來實現死鎖的避免。。
死鎖的避免是通過避免系統進入不安全狀態。
- 死鎖檢測要解決的問題: 1. 判斷系統是否出現了死鎖 2. 當有死鎖發生的時候如何解除死鎖
- 為了避免死鎖,可以采用銀行家算法進行資源安全分配
- 系統出現死鎖,不僅與設備分配策略有關,而且與進程執行的相對速度有關
- 存儲器管理技術可以分為兩大類: 1.實存儲器管理 2.虛擬存儲管理
- 實存管理的內容有
- 內存資源保護
- 內存資源分配
- 內存邏輯擴充
- 內存地址映射
- 存儲管理分類:1.連續分配方式 2.離散分配方式 3.虛擬存儲管理。
存儲管理方式: - 連續分配方式 - 單一連續分配方式 - 分區式分配方式 - 固定分區分配方式 - 可變分區分配方式 - 離散分配方式 - 分頁式存儲管理 - 分段式存儲管理 - 段頁式存儲管理 - 虛擬存儲管理 - 請求分頁存儲管理 - 請求分段存儲管理 - 段頁式存儲管理
-
地址映射基本概念
相對地址: 邏輯地址、虛存地址。相對地址的集合形成地址空間。
絕對地址: 物理地址、實存地址。絕對地址的集合形成存儲空間。 -
靜態重定位適用於【單一連續分配方式】和【固定分區分配方式】
-
存儲保護采用【界地址方法】和【保護鍵方法】
內存擴充是指內存邏輯擴充。
-
計算機開機之后,操作系統最終被加載到RAM(Random Access Memory)。
-
把以0為參考地址的裝配模塊裝入到以550為起始地址的存儲空間,若采用靜態重定位,則原程序中的指令"LOAD 1455"應該為 LOAD 11005程序執行下去。
-
分區分配內存管理方式的主要保護措施是:界地址保護 (boundary address protection)。
-
在固定分區存儲管理中,裝入內存的所有作業的相對地址空間總和一般小於內存中除操作系統之外的所有空間
-
可變分區存儲管理中的移動技術可以為集中空閑區
-
采用分區式存儲管理使處理器執行指令的速度降低
-
在分段式存儲管理中以段為單位分配內存,每段是一個連續存儲區
-
段頁式存儲管理中,邏輯地址的格式一般為【段號 | 段內地址】
-
頁式存儲管理中,頁式虛擬地址與內存物理地址的映射是由【頁表】和【硬件地址轉換機構】來完成的。
-
段頁式存儲管理中,虛擬空間的最小單位是【段】而不是【頁】,內存可以等分成若干個【物理塊】,而且每個段所擁有的程序和數據在【內存】中可以分開【存放】
-
局部性原理是實現虛擬存儲器的理論依據。
-
局部性原理表現在兩個方面:1.時間局限性 2.空間局限性
-
虛擬存儲器的定義: 虛擬存儲利用部分裝入和部分對換的技術從邏輯上對虛擬內存進行擴充,能夠以較小的內存實現較大程序的執行。
-
虛擬存儲器是: 可以容納總和容量超過主存容量的多個作業同時運行的一個地址空間。
-
在塊表(聯想存儲器)中的頁,其信息:一定在內存中
-
在請求分頁系統中,最近最久未使用算法(Least Recently Used Algorithm)是指近期最長時間以來未使用頁的淘汰算法
-
在請求分頁式存儲管理方式中,能使用戶程序大大超過內存的實際容量。虛存利用【外存】為用戶構建一個虛擬空間。
-
實現虛擬存儲后,從系統角度看,【擴充了內存】。從用戶角度看,用戶可以在超出【用戶作業空間】的存儲空間中編寫程序,大大方便了用戶。
-
在請求分頁式存儲管理中,當查找的頁不在【內存】, 要產生【缺頁中斷】
-
在提供虛擬存儲管理的系統中,用戶的邏輯地址空間主要受【系統的尋址能力】【外存容量】的限制
-
頁面置換算法的好壞將直接影響系統的性能,不適當的置換算法可能導致進程發生【抖動】