操作系统设计与实现第3版笔记与minix3心得(2)-minix3内核调用
minix3內核調用簡介
一般來說,內核調用允許系統進程請求內核服務,例如執行特權操作。
minix3內核調用API
Kernel Call Purpose
PROCESS MANAGEMENT
SYS_FORK Fork a process; copy parent process
SYS_EXEC Execute a process; initialize registers
SYS_CLEAR Exit a user process; clear process slot
SYS_EXIT Exit a system process
SYS_UPDATE Update state of a system process
SYS_SCHEDULE Scheduler
SYS_SCHEDCTL Change scheduler control
SYS_PRIVCTL Change system process privileges
SYS_TRACE Trace or control process execution
SYS_SETGRANT Tell kernel about grant table
SYS_RUNCTL Set/clear stop flag of a process
SYS_GETMCONTEXT Get context of a process
SYS_SETMCONTEXT Get context of a process
SIGNAL HANDLING
SYS_KILL Send a signal to a process
SYS_GETKSIG Check for pending kernel signals
SYS_ENDKSIG Tell kernel signal has been processed
SYS_SIGSEND Start POSIX-style signal handler
SYS_SIGRETURN Return POSIX-style signal
MEMORY MANAGEMENT
SYS_NEWMAP Install new or updated memory map
SYS_MEMSET Fill a physical memory area with a constant pattern byte
SYS_VMCTL (to be documented)
SYS_PADCONF (to be documented)
COPYING DATA
SYS_UMAP Map virtual to physical address
SYS_UMAP_REMOTE Map virtual to physical address
SYS_VUMAP Batch map virtual to physical addresses
SYS_VIRCOPY Copy data using virtual addressing
SYS_PHYSCOPY Copy data using physical addressing
SYS_SAFECOPYFROM Copy from a grant into own address space
SYS_SAFECOPYTO Copy from own address space into a grant
SYS_VSAFECOPY Handle vector with safe copy requests
SYS_SAFEMEMSET Fill a grant with a constant pattern byte
DEVICE I/O
SYS_DEVIO Read or write a single device register
SYS_SDEVIO Input or output an entire data buffer
SYS_VDEVIO Process vector with multiple requests
SYS_IRQCTL Set or reset an interrupt policy
SYS_IOPENABLE Give process I/O privilege
SYS_READBIOS Copy from the BIOS area
SYSTEM CONTROL
SYS_ABORT Abort MINIX: shutdown the system
SYS_GETINFO Get a copy system info or kernel data
SYS_DIAGCTL (to be documented)
CLOCK FUNCTIONALITY
SYS_SETALARM Set or reset a synchronous alarm timer
SYS_TIMES Get process times, boot time and uptime
SYS_STIME Set boot time
SYS_SETTIME Update time
SYS_VTIMER Set or retrieve a process virtual timer
PROFILING
SYS_SPROF (to be documented)
SYS_CPROF (to be documented)
SYS_PROFBUF (to be documented)
內核調用的組織
內核調用意味著將請求發送到內核,由內核任務之一處理。組裝請求消息、將其發送到內核和等待響應的細節被方便地隱藏在系統庫中。這個庫的頭文件是src/include/minix/syslib.h,它的實現在src/lib/syslib中。
內核調用的實際實現在系統內核任務中定義。假設一個程序進行sys_call()系統調用。按照慣例,這個調用被轉換成一個SYS_CALL類型的請求消息,該消息被發送到內核任務系統。系統任務在一個名為do_call()的函數中處理請求并返回結果。
內核調用號和處理器函數的映射是在系統任務的初始化響應期間完成的。src /kernel/ system.c。處理函數的原型是在src/kernel/system.h中聲明的。它們的實現包含在src/kernel/system/目錄下的獨立文件中。這些文件被編譯到庫/src/kernel/system/system中。連接到內核的。
內核調用號及其請求和響應參數在src/include/minix/com.h中定義。內核調用都以SYS_開頭,并且屬于同一個內核調用的所有參數共享一個公共前綴
總結
以上是生活随笔為你收集整理的操作系统设计与实现第3版笔记与minix3心得(2)-minix3内核调用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL常见面试题与答案
- 下一篇: 操作系统设计与实现第3版笔记与minix