Linux控制流 處理器模式與上下文切換

2021-10-24 22:23:55 字數 948 閱讀 4022

【核心模式與使用者模式】

處理器需要提供一種機制,限制乙個應用可以執行的指令以及可以訪問的位址空間。

處理器通過乙個控制暫存器的模式位來控制當前執行程序的指令執行許可權。

設定了模式位:程序處於核心模式,可以執行處理器指令集的全部指令以及訪問任何乙個記憶體位置

未設定模式位:程序處於使用者模式,使用者模式只能執行處理器指令集中的部分指令,即不允許執行特權指令:

停止處理器(關機)、改變模式位、發出乙個io操作。

同時也不允許訪問其它程序位址空間的內容,不允許修改唯讀的資料段、**段。

從使用者模式切換到核心模式的方式:

【上下文切換】

作業系統核心基於context_switch上下文切換的方式來完成控制的轉移,從而實現多工併發。

併發:乙個任務的執行流在時間上與另乙個任務發生重疊,多個任務按照一定的順序執行。
核心為每乙個程序維護乙個task_struct結構,其中包含的資訊即程序的上下文。乙個典型的linux程序上下文包括:

程序在執行過程中,linux核心基於cfs排程器來完成程序切換,核心選定乙個新的程序調入執行,上下文切換的過程:

儲存當前程序的上下文

恢復先前被搶占程序的上下文

控制轉移到這個新恢復的程序

上下文切換由核心來完成,其基於一定的排程策略以充分發揮處理器的作用

以系統呼叫read為例:

流處理器知識概述 什麼是流處理器?

什麼是流處理器 stream processor 在我們介紹流處理器這個概念之前,首先讓我們來了解一下流處理器這個概念是如何演變而來的。早在微軟推出的directx 7.0當中就曾經提出過乙個概念 t l 中文名稱是座標轉換和光源 它幾乎可以看作是流處理器的鼻祖了。不過t l的處理能力相對於現在的顯...

linux 指令碼常用流處理器sed

4.sed options 5.sed script addresscommand 5.3 sed address sed 是 linux 下常用的流式文字處理器,將輸入流按行處理,可以滿足大部分場景的文字處理需要。然而第一次使用的時候基本是懵逼的,除了最簡單的 s a b g 其餘的語法都是似懂非...

物理處理器與邏輯處理器

記錄解決方案,自己實際處理過,方案可用,在自己的部落格中記錄一下。cpu central processing unit 是 處理單元,本文介紹物理cpu,物理cpu核心,邏輯cpu,以及他們三者之間的關係。乙個物理cpu可以有1個或者多個物理核心,乙個物理核心可以作為1個或者2個邏輯cpu。物理c...