作業系統執行機制
中斷異常機制工作原理
系統呼叫機制
系統呼叫實戰
參考舉例
陷入指令(訪管指令): 是一條特殊的指令, 通過這條指令, 可以使使用者程式向作業系統提出各種各樣的請求,例如: int, trap, syscall, sysenter/sy***it
核心態->使用者態
概念: cpu對系統發生某個事件的一種反應, cpu會主動中斷當前的任務, 保留現場, 切換到需要處理的事件, 然後回來繼續上次的任務.
特點
為什麼引入 中斷機制?
為什麼引入異常機制?
中斷和異常的不同點?
異常(內中斷)
所以中斷和異常又可以理解為程式外部遇到的問題叫做中斷
, 程式內部問題叫做異常
。中斷是正在執行的外部程式所不期望的,異常是由正在執行的指令引發的。
類別原因
非同步/同步
返回行為
中斷interrupt
來自i/o裝置,其他硬體
非同步返回下一條指令
陷入trap
有意識安排的
同步返回下一條指令
故障fault
可恢復的錯誤
同步返回當前指令
終止abort
不可恢復的錯誤
同步不返回
軟體做了什麼? --中斷/異常處理程式
中斷向量表
下面通過一張圖我們了解一下linux中的中斷向量表,**這裡
下面按照自己的理解總結下中斷響應的流程
中斷處理程式
總的來說就是兩句話: 軟體提前設定好, 硬體部件來執行
軟體方面
中斷處理結束後, cpu檢測到中斷返回指令,從系統堆疊中恢復被中斷程式的上下文, 也就是將psw和pc設定回原來的值, 等下乙個指令週期繼續執行。(硬體完成)
系統呼叫的作用?
典型的系統呼叫
系統呼叫,庫函式,api,核心函式之間的區別
#**檔案是helloworld.c
#include
intmain
(int argc,
char
const
*ar**)
;write(1
, hello,7)
;return0;
}
$ gcc -s helloworld.c -o hello.s
$ cat hello.s
.section __text,__text,regular,pure_instructions
.build_version macos, 10, 14
.globl _main ## -- begin function main
.p2align 4, 0x90
_main: ## @main
.cfi_startproc
## %bb.0:
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset %rbp, -16
movq %rsp, %rbp
.cfi_def_cfa_register %rbp
subq $32, %rsp
movl $1, %eax // 主要看這一行開始 write(1...)就是代表功能號1 這一行就是給暫存器傳參
movl $7, %ecx
movl %ecx, %edx
leaq -21(%rbp), %r8
movl $0, -4(%rbp)
movl %edi, -8(%rbp)
movq %rsi, -16(%rbp)
movl l_main.hello(%rip), %ecx
movl %ecx, -21(%rbp)
movb l_main.hello+4(%rip), %r9b
movb %r9b, -17(%rbp)
movl %eax, %edi
movq %r8, %rsi
callq _write
xorl %ecx, %ecx
movq %rax, -32(%rbp)
## 8-byte spill
movl %ecx, %eax
addq $32, %rsp
popq %rbp
retq
.cfi_endproc
## -- end function
.section __text,__const
l_main.hello: ## @main.hello
.ascii "hello"
[1] 操作系 作業系統課堂筆記一 作業系統概述
作業系統的特徵 作業系統架構 作業系統的分類 核心點參考 include intmain int argc,char const ar 使用者告知作業系統 方式很多 作業系統判斷檔案是否是可執行檔案 pe,elf 作業系統建立乙個程序,將可執行檔案格式對映到程序結構,由該程序執行程式 作業系統將控制...
作業系統課堂筆記一
一 作業系統的功能 資源管理 協調管理計算機的軟硬體資源,提高其利用率 使用者角度 為使用者提供使用計算機的環境和服務 計算機四大資源 cpu 記憶體 外設 資訊檔案 二 作業系統的特徵 併發性 共享性 虛擬性 非同步性 三 作業系統的型別 四 程序的三種基本狀態 就緒狀態 執行狀態 阻塞狀態 程序...
作業系統課堂筆記七
連續分配方式 1 單一連續分配 記憶體分為系統區和使用者區兩部分 系統區 僅提供給os使用,通常放在記憶體低址部分 使用者區 除系統區以外的全部記憶體空間,提供給使用者使用。最簡單的一種儲存管理方式,只能用於單使用者 單任務的作業系統中。優點 易於管理。缺點 對要求記憶體空間少的程式,造成記憶體浪費...