freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

第7課armlinux內(nèi)核(編輯修改稿)

2024-11-16 22:15 本頁面
 

【文章內(nèi)容簡介】 ()wake _ up _ pr oces s ()wake _ up ()_ up ()TASK _ZOMBLE sy s _ exi t () do _ exi t () WAIT ING STA TU Swake _ up _ i nt er ru pt i bl e ()do _ si gnal () SIG _ KILL || S I G _ C ON T wa k e _ up _ p r o c e s s ()24 Linux進程的創(chuàng)建、執(zhí)行和消亡 ? 1. Linux進程的創(chuàng)建 ? 系統(tǒng)的第一個真正的進程, init內(nèi)核線程(或進程)的標志符為 1 ? 新進程通過克隆老進程或當前進程來創(chuàng)建 ,系統(tǒng)調(diào)用 fork或 clone可以創(chuàng)建新任務 ? 復制完成后, Linux允許兩個進程共享 資源 25 ? 2. Linux進程的執(zhí)行 ? 要讓若干新進程按照需要處理不同的事情,就必須通過系統(tǒng)調(diào)用 exec ? 函數(shù) sys_execve將可執(zhí)行文件的名字從用戶空間取入內(nèi)核空間以后就調(diào)用 do_execve( )執(zhí)行具體的操作 26 ? do_execve( )執(zhí)行的流程 : – 打開可執(zhí)行文件 ,獲取該文件的 file結(jié)構。 – 獲取參數(shù)區(qū)長度 ,將存放參數(shù)的頁面清零。 – 對 linux_binprm結(jié)構的其它項作初始化 – 通過對參數(shù)和環(huán)境個數(shù)的計算來檢查是否在這方面有錯誤 – 調(diào)用 prepare_binprm() 對數(shù)據(jù)結(jié)構 linux_binprm作進一步準備 – 把一些參數(shù) (文件名、環(huán)境變量、文件參數(shù) )從用戶空間復制到內(nèi)核空間 – 調(diào)用 search_binary_handler(),搜尋目標文件的處理模塊并執(zhí)行 27 ? 3. Linux進程的消亡 ? 進程終止由可終止進程的系統(tǒng)調(diào)用通過調(diào)用 do_exit()實現(xiàn) ? do_exit(long code)帶一 個參數(shù) code,用于傳遞終止進程的原因 28 ? do_exit(long code)流程 : – ( 1)如果進程在中斷服務程序中調(diào)用 do_exit(),則打印提示信息 。 – ( 2)記錄進程的記帳信息。 – ( 3)進程標志置為 PF_EXITING。 – ( 4)釋放定時器鏈表。 – ( 5)釋放臨界區(qū)數(shù)據(jù)。 – ( 6)將消息隊列中和 current進程有關項刪除。 – ( 7)釋放進程的存儲管理信息。 – ( 8)釋放進程已打開文件的信息。 – ( 9)釋放進程的文件系統(tǒng)。 – ( 10)釋放進程的信號響應函數(shù)指針數(shù)組等管理信息。 – ( 11)釋放進程的 LDT。 – ( 12)進程狀態(tài)置為 TASK_ZOMBIE。 – ( 13)置上退出信息,通知所有相關進程,它要退出了。 – ( 14) exec_domain結(jié)構共享計數(shù)減 1, binfmt結(jié)構共享計數(shù)減 1。 – ( 15)重新調(diào)度,將 current進程從 runqueue中刪除,交出 CPU控制權 29 ? 以下情況要調(diào)用 do_exit()函數(shù): – 具體對應的系統(tǒng)調(diào)用出錯,不得不終止進程 ,如: ? do_page_fault() ? sys_sigreturn() ? setup_frame() ? save_v86_state() – 其他終止進程的情況,通過調(diào)用以下函數(shù)實現(xiàn)終止: ? sys_exit() ? sys_reboot() ? do_signal() 30 ? LINUX系統(tǒng)進程的切換包括三個層次 : – 用戶數(shù)據(jù)的保存: ? 正文段、數(shù)據(jù)段、棧段、共享內(nèi)存段 – 寄存器數(shù)據(jù)的保存 ? PC、 PSW、 SP、 PCBP、 FP… – 系統(tǒng)層次的保存 ? proc、 u、虛擬存儲空間管理表格、中斷處理棧 31 ARMLinux進程的調(diào)度 ? Linux進程調(diào)度由函數(shù) schedule()實現(xiàn)的,其基本流程可以概括為五步: – 清理當前運行中的進程 – 選擇下一個投入運行的進程 – 設置新進程的運行環(huán)境 – 執(zhí)行進程上下文切換 – 后期整理 ? Linux調(diào)度的時機有兩種: – 在內(nèi)核應用中直接調(diào)用 schedule() – 被動調(diào)用 schedule() 32 4 ARMLinux 的中斷響應和處理 ? 中斷是一個流程,一般來說要經(jīng)過三個環(huán)節(jié): – 中斷響應 – 中斷處理 – 中斷返
點擊復制文檔內(nèi)容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1