最終更新:ID:VtWC1e6LcA 2011年05月16日(月) 18:49:04履歴
- Kernel Processes
- swapper(0):kernel mode
- メモリと補助記憶装置とのやり取り。
- pagedaemon(2):kernel mode
- キャッシュを書きだす。
- swapper(0):kernel mode
- User Process
- init(1):user mode
- ログインプロセスの準備など。
- init(1):user mode
- linuxのカーネルスレッド
- swapper process(0)
- keventd
- kapmd
- kswapd
- pdflush
- kblockd
- ksoftirqd
- (init)
- wholly:完全に
- Hardware interrupt(asynchronous)
- I/O device, clock, timer, etc.
- Hardware trap(synchronous or asynchronous)
- related to current executing process
- illegal arithmetic operation, etc.
- Software-initiated trap
- scheduling, system call
- hardware supported
- a top half
- system call
- processor priority levelを設定して割り込みをブロックする。
- a bottom half
- interrupts(never scheduled, cannot block)
- top half start I/O
- top half release CPU
- process begin to sleep
- bottom half notice the end of the I/O
- process structure
- pid, privilege, descriptors, memory map, resource, etc.
- user structure
- hardware Process Control Block(PCB), statistics, debug information, etc.
- in rich OS, not needed?
- relinquish:放棄する
context switch (HP300)
handlers
- Syscall()
- system-call number
- Trap()
- type of trap, exception frame
- device-driver interrupt
- unit(board) number
- system call handler
- verify the parameters and copy to kernel space
- call kernel routine
- HP300 architecture
- carry bit means success/fail
- data register 0 means return value
- in C global variable errno means return value
- fail situation
- system call error
- interrupted(specification)
- kernel must not modify process address space
- system call does not perform any actions that cannot be repeated
- cause
- terminal
- clocks
- software-initiated interrupts
- networking
非同期に発生するために、実行中のプロセスとは無関係。
最新コメント