(二)操作系统设计技术知识重点笔记
一、內核導論
文件子系統:負責管理文件包括:分配文件空間、管理空閑空間,控制對文件的存取,為用戶檢索數據。
進程控制子系統: 進程同步;進程間通信;存儲管理;進程調度。
硬件控制:負責處理中斷及與機器通信,中斷不是由特殊的進程服務的,而是由內核中特殊的函數服務的,這些特殊函數是在當前運行的進程的上下文被調用的
二、文件的內部表示:
1、索引節點表(inode table)
每個文件都有一個索引節點(inode)(包含文件所有者、存取權限、及其存取時間等信息)。但是,每個文件可以有多個名字,每個名字被稱為一個link(鏈接)。一個進程使用名字檢索一個文件時,內核每次分析文件名中的一個分量,檢查該進程是否有檢索路徑中的目錄,并且最終檢索到該文件所對應的索引節點。如:open(“/fs2/mjb/rje/sourcefile”,1);當一個進程建立一個新文件時,內核分配給它一個尚未使用的索引節點。索引節點被存儲在文件系統中(即磁盤索引節點表),但是當操作文件時,內核將它們讀到內存索引節點表中,即:對系統中的每個活動的文件(被某個進程打開了),內存中索引節點表都包含一個條目。幾個系統文件表條目可能對應于同一個內存索引節點表(不同進程打開同一個文件)以Linux為例,每個文件在內核中用inode結構體表示。
| 所有者 | mjb |
| 用戶組 | root |
| 類型 | 整個文件 |
| 許可權 | rwxr-xr-x |
| 最近一次讀文件時間 | 1984.10.23下午1:45 |
| 最近一次寫文件時間 | 1984.10.22上午10:30 |
| 最近一次改變索引節點時間 | 1984.10.23下午1:30 |
| 大小 | 6030字節 |
?
2、文件表(file table)
是一個全局表,為系統中所有的進程共享。對每個活動的open, 它都包含一個條目。每個系統文件表的條目都包含文件偏移量、訪問模式(讀、寫、or 讀-寫)以及指向它的文件描述符表的條目計數。以Linux為例,已打開的文件在內核中用file結構體表示,文件描述符表中的指針指向file結構體
3、用戶文件描述符表(user filedescriptor table)
是每個進程分配一個。標識著一個進程的所有打開了的文件。用戶區的一部分,除非通過使用文件描述符的函數,否則程序無法對其進行訪問。對進程中每個打開的文件,文件描述符表都包含一個條目。以Linux為例,每個進程用一個files_struct 結構體來記錄文件描述符的使用情況,files_struct結構稱為用戶打開文件表,它是進程的私有數據。此外,每個進程用一個fs_struct結構體來描述進程的當前工作目錄及其所在文件系統根目錄下的索引節點。
父進程創建子進程,資源共享。每個進程都有唯一的標識,不同用戶啟動程序,產生不同的進程。
三、進程結構
一個進程是一個程序的執行,它是由一系列有格式的字節組成的,這些字節被解釋成:機器指令、數據和棧區。當內核調度各個進程使之執行時,這些進程看似是同時執行的。而且,可以有多個進程是一個程序的實例。一個進程循著一個嚴格的指令序列執行,這個指令序列是自包含的,不會跳轉到別的進程的指令序列上。進程通過系統調用與其他進程及外界進行通信。
進程包括以下八個:
1.標識號2.狀態信息3.調度信息4.有關進程間通信信息5.進程鏈接信息6.時間定時器7.文件系統信息8.虛地址和物理內存之間的關系
其他:
1.?? 進程的標識:系統通過進程標識號(PID)唯一標識一個進程(是線性增長的)
2.?? 進程樹及進程之間關系:0進程是一個特殊進程,它是在系統引導時被“手工”創建的,當它創建一個子進程(1進程-init進程,是系統中其他每個進程的祖先)之后,0進程就變成對換進程。
If(euid==0)判斷是否為根用戶。
除了0進程以外,每個進程都是被另外一個進程執行fork創建的。
3.?? 進程的上下文:
用戶級上下文:由進程的正文、數據、用戶棧和共享存儲區組成
寄存器級上下文:程序計數器、處理機狀態寄存器、棧指針、通用寄存器
系統級上下文:進程表表項、進程u區、本進程區表項、區表及頁表、核心棧
4.?? 進程的控制
四、I/O子系統
1.UNIX/Linux系統包含兩類設備:塊設備、字符設備。每個設備有一個特殊文件名,可按文件方式存取。設備特殊文件有一個索引節點,在文件系統目錄樹中占據一個節點。設備特殊文件以存儲在它的索引節點中的文件類型與其他文件相區別,其類型為:字符特殊文件或者 塊特殊文件。當一個設備既有塊接口又有字符接口時,由兩個設備特殊文件所代表。
2.由塊設備開關表(block deviceswitch table)和字符設備開關表(character device switch table)描述。每一種設備類型在表中有若干表項,這些表項在系統調用時引導內核轉向適當的設備驅動程序接口設備文件的系統調用根據文件的類型通過這兩個設備開關表匯集。對塊設備,系統調用mount和umount也調用設備打開和關閉的過程塊設備以及安裝在文件系統上的文件的系統調用read和write調用高速緩沖算法,該算法又調用相應設備的策略過程。字符設備特殊文件的系統調用read,write,ioctl轉向字符設備開關表中相應的過程。
3.是由機器相關的控制寄存器或操作設備的I/O指令,以及中斷向量組成的:當一個設備中斷出現時,系統識別發出中斷的設備,并調用適當的中斷處理程序。
?
總結
以上是生活随笔為你收集整理的(二)操作系统设计技术知识重点笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (一)操作系统概论复习要点笔记
- 下一篇: (三)虚拟化技术重点笔记与总结