1. 程式人生 > >現代作業系統讀書筆記--第一章 引論

現代作業系統讀書筆記--第一章 引論

*引論*
1.使用者與作業系統的互動方式(使用者介面程式):shell(基於文字),圖形使用者介面GUI(基於影象)
2.主要部件簡化圖:*1.1 什麼是作業系統*
1.作業系統任務:為程式設計師提供一個資源集的清晰抽象,管理這些硬體資源。1.1.1 作為擴充套件機器的作業系統1.1.2 作為資源管理器的作業系統
1.作業系統主要任務:記錄哪個程式在使用什麼資源,對資源請求進行分配,評估使用代價,並且為不同的程式和使用者調解互相沖突的資源請求。
多路複用:時間複用,空間複用*1.2 作業系統的歷史*
1.2.1 第一代:真空管和穿孔卡片
1.2.2 第二代:電晶體和批處理系統
1.2.3 第三代:積體電路與多道程式設計
1.2.4 第四代:個人計算機
1.2.5 第五代:移動計算機1.3.1 處理器*1.3 計算機硬體簡介*
1.3.1 處理器
1.所有CPU內部都有一些用來儲存關鍵變數和臨時資料的暫存器
2.程式計數器:暫存器之一,用於儲存將要取出的下一條指令的記憶體地址
3.堆疊指標暫存器:指向記憶體中當前棧的頂端
4.程式狀態字(PSW):儲存條件碼位,CPU優先順序、模式,以及各種其他控制位
5.流水線:一個CPU有單獨的取指單元、解碼單元和執行單元
6.超標量CPU:有多個執行單元(CPU)

7.系統呼叫:從使用者態切換到核心態,使用者陷入核心並呼叫作業系統,TRAP指令把使用者切換成核心態
8.計算機使用陷阱而不是一條指令來執行系統呼叫
9.moore定律:晶片上的電晶體的數量每18個月翻一倍
10. 使用大量電晶體處理方式:具有多個功能部件的超標量體系結構,多個控制邏輯(多執行緒或超執行緒)
11. 每個執行緒在作業系統看來就像是單個的CPU
12.多核CPU晶片
1.3.2 儲存器

1.暫存器和cpu一樣快
2.主存被分割為快取記憶體行,在快取記憶體中找到,即快取記憶體命中
3.通常通過將引用記憶體地址的高位計算應該使用的快取行。
4.L1快取與L2快取的差別:L1不存在任何時延,L2存在一到兩個時鐘週期時延
5。主存(隨機訪問儲存器RAM)
6.只讀儲存器ROM、EEPROM\快閃記憶體:斷電不丟失資料
7.CMOS:易失真的,電池驅動,記錄時間。8.主存和記憶體關係:1.3.3 磁碟1.磁軌:每個磁頭讀取的一段環形區域
2.柱面:給定臂位置上所有磁軌的合併
3.扇區:磁軌的組成單位,典型值為512位元組
4.固態硬碟:不屬於磁碟,而是快閃記憶體
5.虛擬記憶體機制:對於執行大於實體記憶體的程式,將程式放在磁碟上,主存作為一種快取,用來儲存使用最頻繁的部分程式,通過儲存管理單元(MMU)快速映像記憶體地址到主存中的實體地址。
6.上下文切換:由一個程式切換到另一個程式1.3.4 I/O裝置
1.I/O裝置一般由裝置控制器和裝置本身組成
2.控制器的任務:為作業系統提供一個簡單的介面
3.裝置驅動程式:每類裝置控制器需要不同軟體進行控制
4.裝置驅動程式裝入作業系統的三個途徑
5.I/O埠空間:所有裝置暫存器
6.實現輸入輸出的三種方式: (1)忙等待 (2)中斷 (3)直接儲存訪問(DMA)
1.3.5 匯流排1.傳統PCI:並行匯流排架構 PCIe:序列匯流排架構
2.傳統PCI.USB,SCSI等連線到整合中心
3.即插即用:每塊I/O卡有一個固定的中斷請求級別和用於其I/O暫存器的固定地址,系統自動菜雞有關I/O裝置的資訊,集中賦予中斷級別和I/O地址,然後通知每塊卡所使用的數值。1.3.6 啟動計算機
1.BIOS(基本輸入輸出系統)程式:存放在一塊閃速RAM中,內含底層I/O軟體
BISO執行->檢查各個硬體是否正常->嘗試儲存再CMOS儲存器中的裝置清單決定啟動裝置(從啟動裝置(USB或硬碟)第一個扇區讀取分割槽表檢查程式,檢查哪個分割槽是活動的,從該分割槽讀入第二個啟動裝在模組讀入作業系統,並啟動之)->作業系統詢問BIOS,獲得配置資訊,將裝置驅動程式調入核心,初始化表格,在終端啟動登陸*1.4 作業系統大觀園*
1.4.1 大型機作業系統
1.4.2 伺服器作業系統
1.4.3 多處理器作業系統
1.4.4 個人計算機作業系統
1.4.5 掌上計算機作業系統
1.4.6 嵌入式作業系統
1.4.7 感測器節點作業系統
1.4.8 實時作業系統
1.4.9 智慧卡作業系統*1.5 作業系統概念*
1.5.1 程序
1.程序: 本質上是一個正在執行的程式。基本上是指容納一個程式所需要所用資訊的容器。
2.地址空間、資源集、程序表
3.一個(掛起的)程序包括:程序的地址空間、對應的程序表項
4.子程序、程序間通訊
5.警告資訊、程序UID、使用者UID、GID、超級使用者
6.子程序和父程序UID相同7. mount指令:mount是Linux下的一個命令,它可以將分割槽掛接到Linux的一個資料夾下,從而將分割槽和該目錄聯絡起來1.5.2 地址空間1.5.3 檔案
1.目錄、檔案系統2.根目錄、路徑名、工作目錄、檔案描述符(檔案描述符的有效範圍是 0 到 OPEN_MAX。一般來說,每個程序最多可以開啟 64 個檔案(0 — 63),習慣上,標準輸入(standard input)的檔案描述符是 0,標準輸出(standard output)是 1,標準錯誤(standard error)是 2)、錯誤碼、特殊檔案(塊特殊檔案、字元特殊檔案。儲存在/dev目錄下)
3.管道:一種虛檔案,可以連線兩個程序1.5.4 輸入/輸出
1.5.5 保護(rwx位)
1.5.6 shell
1.提示符、重定向1.5.7 個體重複系統發育
1.大型記憶體
2.保護硬體
3.硬碟
4.虛擬記憶體1.6 系統呼叫
1.任何單CPU計算機一次只能執行一條指令2.TRAP指令與過程指令差別:前者切換到核心態,後者不改變模式;前者不能跳轉到任意地址3.POSIX(可移植作業系統介面):POSIX標準定義了作業系統應該為應用程式提供的介面標準,是IEEE為要在各種UNIX作業系統上執行的軟體而定義的一系列API標準的總稱,其正式稱呼為IEEE 1003,而國際標準名稱為ISO/IEC 99451.6.1 用於程序管理的系統呼叫
1.fork建立一個原有程序的精確副本,子程序中為0,父程序中等於子程序的PID號。
2.父程序執行waitpid系統呼叫等待子程序終止
3.execve引起整個核心映像被一個檔案替代
4.exit:程序執行後的操作
5. UNIX的程序將儲存空間分為三段:正文段(程式碼)、資料段(變數)、堆疊段。資料向上增長,堆疊反之1.6.2 用於檔案管理的系統呼叫
1.open函式、close函式、read、write、lseek指標
2.stat,fstat(針對開啟的檔案):檢視檔案資訊1.6.3 用於目錄管理的系統呼叫
1.mkdir(建立空目錄)、rmdir(刪除空目錄)、link(允許同一個檔案以多個名稱出現)
2.共享檔案不同於複製,共享者共同改變檔案。3.i-節點  目錄(包含(i-編號,ASCII名稱)對的一個集合)4.mount系統呼叫:允許將兩個檔案系統和合併為一個1.6.4 各種系統呼叫
1.chdir(呼叫改變當前的工作目錄)、chmod(改變檔案模式)、kill1.6.5 Windows win32 API

1.UNIX程式包括做各種處理的程式碼以及完成特定服務的系統呼叫,Windows程式通常是事件驅動程式

2.Win32應用程式設計介面(API)UNIX系統呼叫與庫過程一一對應,win不是這樣。1.7 作業系統結構(內部)
1.7.1 單體系統
1.概念:整個作業系統在核心態以單一程式的方式執行,整個作業系統以過程集合的方式編寫,連結成一個大型方式編寫。
2.共享庫,動態連結庫(ddl)1.7.2 層次式系統
1.概念:上層軟體都是在下一層軟體的基礎上構建的  MULTICS、THE 系統1.7.3 微核心
1.概念:為了減小錯誤代價,將作業系統劃分成小的、良好定義的模組,只有其中一個模組-微核心-執行在核心態,其他的作為普通使用者程序使用。  MINIX
2.機制(核心態)與策略(使用者態)分離1.7.4 客戶端-伺服器模式
1.概念:本質就是客戶端程序和伺服器程序1.7.5 虛擬機器(1)VM/370
1.分時系統提供:多道程式;一個比裸機更方便的、有擴充套件介面的計算機 。VM目的將兩者徹底隔離
2.核心:虛擬機器監控程式,在裸機執行並且具備了多道程式功能
3.會話監控系統(CMS)(2) 虛擬機器的再次發現
1.虛擬化用在web託管:共享託管、獨佔託管
2. 虛擬機器監控程式重新命名為第一類虛擬機器管理程式。3.模擬器、二進位制翻譯4. 兩類的區別:二類利用宿主作業系統,一類必須實現所有功能。(3) java虛擬機器
1.JVM1.7.6 外核
1.為虛擬機器分配資源1.8 依靠C的世界
1.8.1 C語言
1.8.2 標頭檔案
1.8.3 大型程式設計專案
1.make的作用:讀入makefile(記錄各個檔案之間的相關)在構建作業系統二進位制碼時,檢查此刻需要哪個檔案,而且對每個檔案,檢查自上次目標檔案建立之後是否有任何它依賴的檔案已經被修改1.8.4 執行模型
1.作業系統程式碼都是直接在硬體上執行的,不用直譯器,也不用即使編譯。
1.9 有關作業系統的研究
1.10 本書其他部分概要
1.從程式設計師的觀點來看,作業系統的基本目的是提供一些關鍵的抽象,其中最重要的是程序和執行緒、地址空間以及檔案1.11 公制單位
1.工業實踐(採用10的冪)與計算機內部(採用2的冪)不統一1.12 小結