context-switch

    3熱度

    2回答

    Wait(semaphore sem) { DISABLE_INTS sem.val-- if (sem.val < 0){ add thread to sem.L block(thread) } ENABLE_INTS Signal(semaphore sem){ DISABLE_INTS

    4熱度

    1回答

    考慮進程keventd。它花費在內核模式下的所有生命週期。 現在,據我所知,當進程從內核模式切換到用戶模式時,Linux會檢查上下文切換是否到期,並且據我所知,keventd不會從內核模式切換到用戶模式,所以, Linux內核將如何知道何時關閉它?

    3熱度

    3回答

    當過程是在執行時,PCB(這是在內核內存空間?)的內容被加載到CPU寄存器,和狀態寄存器,內核棧指針 ,用戶堆棧指針等 當上下文切換到另一個進程時,當前的「上下文」被存儲回到PCB中,並且開關切換到新的PCB。 現在,當內核想要將這個PCB帶回「上下文」時,它如何找到這個PCB,它現在在內存中?什麼信息幫助內核找到內存中的PCB?

    0熱度

    2回答

    我有關於上下文切換的內聯彙編指令的另一個問題。此代碼可能工作,但我不知道在100%,所以我提交此代碼的專業人士的計算器;-) 我編譯使用gcc(無優化)的arm7TDMI。在某些時候,代碼必須執行上下文切換。 /* Software Interrupt */ /* we must save lr in case it is called from SVC mode */ #define ngA

    0熱度

    1回答

    當有進程切換,並且必須使用新進程的頁表和頁目錄時,內核從哪裏知道關於新進程的頁面目錄的位置? 我知道新進程的頁面目錄存儲在物理內存中。但內核如何知道在哪裏可以找到它?

    5熱度

    1回答

    在內核模式和ISR例程中,一些重要的do和dont是什麼? 例如 - 運行中斷處理程序時禁用了上下文切換嗎? 當進程位於關鍵的 節中時,是否可以執行上下文切換? 內核模式下的什麼情況值得禁止進一步的中斷? 一個進程切換怎麼會發生在一個頁面錯誤,其中一個進程從磁盤中獲取數據,但在其他中斷髮生時不會發生。 如何分類可執行路徑是否可以被中斷/重新安排/預佔? 當進程處於內核模式或處理ISR例程時,需要記

    41熱度

    3回答

    我正在用C編寫一個小程序,我想測量它的性能。 我想看看它在處理器中運行了多少時間,以及有多少緩存命中+未命中。有關上下文切換和內存使用情況的信息也很好。 該程序需要不到一秒的時間執行。 我喜歡/ proc/[pid]/stat的信息,但是我不知道如何在程序死亡/被殺後看到它。 任何想法? 編輯:我認爲Valgrind增加了很多開銷。這就是爲什麼我想要一個簡單的工具,比如/ proc/[pid]/s

    0熱度

    1回答

    這與我的調用約定是否用於上下文切換有什麼關係?在AMD64中,前4個參數通過寄存器或其他東西傳遞。 上下文切換系統是否需要擔心這些細節?

    3熱度

    1回答

    在一些文章中,他們建議使用fistp指令以快速方式轉換float-> integer。這取決於CPU的當前舍入模式,因此您必須對其進行設置。 但是這個舍入模式是否可以在程序運行時被其他程序改變?由操作系統? 更糟的是,這是一種可能的情況(僞代碼)? set_rounding_mode(ROUND_TRUNCATE); /* process gets switched out and other

    0熱度

    2回答

    當上下文切換(由於任何原因)發生時線程Id的改變發生了嗎?