在 CentOS(一種基于 Red Hat Enterprise Linux 的 Linux 發行版)中,上下文(context)和系統調用(system call)是兩個不同的概念,但它們之間有一定的關聯。
上下文(Context): 上下文通常指的是進程的執行環境,包括進程的狀態、寄存器值、程序計數器等信息。在多任務操作系統中,操作系統需要在多個進程之間切換,以便每個進程都能獲得一定的計算資源。當操作系統從一個進程切換到另一個進程時,它會保存當前進程的上下文,并恢復下一個要運行的進程的上下文。這樣,每個進程都認為自己獨占了整個系統資源,而實際上它們是在共享硬件資源。
系統調用(System Call): 系統調用是用戶空間程序請求操作系統提供服務的一種機制。當用戶空間程序需要執行某些特權操作(如文件讀寫、進程管理等)時,它不能直接執行這些操作,因為這可能導致系統不穩定或安全問題。相反,程序會通過系統調用向操作系統發出請求,操作系統會在適當的權限級別下執行所需的操作,并將結果返回給程序。
關系: 上下文和系統調用之間的關系在于,當一個進程發起系統調用時,操作系統需要切換到該進程的上下文,以便在正確的執行環境中運行系統調用。系統調用完成后,操作系統會恢復原來的進程上下文,使進程繼續執行。這種上下文切換機制確保了多個進程可以安全地共享系統資源,同時允許用戶空間程序請求操作系統提供的服務。