作業系統課堂筆記二 作業系統執行環境

2021-09-11 20:59:59 字數 2628 閱讀 2876

作業系統執行機制

中斷異常機制工作原理

系統呼叫機制

系統呼叫實戰

參考舉例

陷入指令(訪管指令): 是一條特殊的指令, 通過這條指令, 可以使使用者程式向作業系統提出各種各樣的請求,例如: 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使用,通常放在記憶體低址部分 使用者區 除系統區以外的全部記憶體空間,提供給使用者使用。最簡單的一種儲存管理方式,只能用於單使用者 單任務的作業系統中。優點 易於管理。缺點 對要求記憶體空間少的程式,造成記憶體浪費...