作業系統學習 1

2021-08-21 02:39:50 字數 2101 閱讀 8750

1 作業系統介面

1.1 作業系統的工作

1.2 作業系統通過界面向使用者提供服務

設計乙個好的介面很難。一方面我們希望介面設計得簡單和精準,易於正確地實現;另一方面,又想為應用提供一些更加複雜的功能。

解決這種矛盾的方法:介面的設計依賴於少量的機制 ,而通過這些機制的組合提供強大、通用的功能。

1.3 核心的概念

乙個向其它執行中的程式提供服務的特殊程式。每乙個執行中的程式(被稱為程序)都包含指令、資料、棧的記憶體空間。

程序通過系統呼叫使用核心服務。系統呼叫會進入核心,執行服務然後返回。所以程序總是在使用者空間和核心空間之間交替執行。

核心使用了cpu的硬體保護機制,保證了使用者程序只能訪問其自己的記憶體空間。核心擁有實現保護機制所需的硬體許可權,而使用者程式沒有這些許可權。當乙個使用者程式進行一次系統呼叫時,硬體會提公升特權並且開始執行一些核心中預定義的功能。

核心提供的系統呼叫,其實就是使用者程式可見的作業系統介面,下列了unix傳統系統呼叫的一部分,它們是:

系統呼叫

描述fork()

建立程序

exit()

結束當前程序

wait()

等待子程序結束

kill(pid)

結束pid所指程序

getpid()

獲得當前程序pid

sleep(n)

睡眠n秒

exec(filename, *argv)

載入並執行乙個檔案

sbrk(n)

為程序記憶體空間增加n位元組

open(filename, flags)

開啟檔案,flags指定讀/寫模式

read(fd, buf, n)

從檔案中讀n個位元組到buf

write(fd, buf, n)

從buf中寫n個位元組到檔案

close(fd)

關閉開啟的fd

dup(fd)

複製fd

pipe(p)

建立管道,並把讀和寫的fd返回到p

chdir(dirname)

改變當前目錄

mkdir(dirname)

建立新的目錄

mknod(name, major, minor)

建立裝置檔案

fstat(fd)

返回檔案資訊

link(f1,f2)

給f1建立乙個新名字(f2)

unlink(filename)

刪除檔案

2 程序和記憶體

2.1 程序的組成

乙個程序由兩部分組成,一部分是使用者記憶體空間,另一部分是僅對核心可見的程序狀態。

xv6作業系統提供了分時特性:它在可用cpu之間不斷切換,決定哪乙個等待中的程序被執行。當乙個程序不在執行時,xv6儲存它的cpu暫存器,當他們再次被執行時恢復這些暫存器的值。核心將每個程序和乙個pid(process identifier)關聯起來。

2.2 子程序

乙個程序可以通過呼叫fork()來建立乙個新的程序,fork建立的新程序被稱為子程序,子程序的記憶體內容同建立它的程序(父程序)一樣。fork函式在父程序、子程序中都返回,在父程序中,它返回子程序的pid,在子程序中,它返回0。

2.3 系統呼叫exit

exit會導致呼叫它的程序停止執行,並且釋放如記憶體和開啟檔案在內的資源。

2.4 系統呼叫wait

wait會返回乙個當前程序已退出的子程序,若子程序沒退出,wait會等待直到有乙個子程序退出。

2.5 系統呼叫exec

exec將從某個檔案(通常是可執行檔案)裡讀取記憶體映象,並將其替換到呼叫它的程序的記憶體空間。這份檔案必須符合特定的格式,規定檔案的哪一部分是指令,哪一部分是資料,**是指令的開始等等。

3 i/o和檔案描述符

3.1 檔案描述符

檔案描述符是乙個整數,它代表了乙個程序可以讀寫的被核心管理的物件。程序可以通過多種方式獲得乙個檔案描述符,如開啟檔案、目錄、裝置,或建立乙個管道,或者複製已經存在的檔案描述符。簡單起見,我們常常把檔案描述符指向的物件成為「檔案」。檔案描述符的介面是對檔案、管道、裝置等的抽象,這種抽象使得它們看上去就是位元組流。

作業系統學習

看了幾天的資料,今天終於有時間把測試環境搭建起來。模擬機bochs nasm ultraiso 模擬機bochs的設定不難,在網上搜了些資料和參考了bochs的說明檔案,基本上就可以組建並執行起來。在網上下了個dos的映象,執行bochs從a盤啟動,之後把硬碟分割槽格式化,乙個最基礎的測試環境就完成...

作業系統學習

1 處理器硬體故障中斷事件 由處理器,記憶體儲器,匯流排等故障引起 程式性中斷事件 2 處理器執行機器指令引起 1.1 除數為零,運算元溢位等算術異常 1.3 終止程序指令 終止程序 3 自願性中斷事件 1.1 處理器執行陷入指令請求os服務引起 1.2 請求分配外設,請求io等 1.3 處理流程是...

作業系統學習筆記

這裡專門摘錄作業系統相關筆試題和面試題!也當作自己的乙個複習!乙個很全的作業系統常考知識集合 1.分段式儲存和分頁式儲存,以及段頁式儲存的區別 分頁是一維儲存,分段是二維的 因為分頁給出虛擬位址後,作業系統會自動劃分頁號和偏移量 而分段給出位址後,需要知道段號和偏移量,段的長度是可變的!故是二維的 ...