linux內(nèi)核進程調(diào)度與控制.rar
linux內(nèi)核進程調(diào)度與控制,linux內(nèi)核進程調(diào)度與控制——源代碼分析與研究11萬字135頁摘要 本文對linux內(nèi)核中進程調(diào)度和進程控制部分的源代碼分別進行了詳細的流程分析與代碼注釋,并對這兩部分的代碼實現(xiàn)進行了研究,闡述了它們的優(yōu)缺點。在進程調(diào)度部分,主要涉及了linux的調(diào)度算法及實現(xiàn)、時鐘中斷、定時器、linux內(nèi)核機制以及系統(tǒng)調(diào)用nan...
該文檔為壓縮文件,包含的文件列表如下:


內(nèi)容介紹
原文檔由會員 xiaowei 發(fā)布
Linux內(nèi)核進程調(diào)度與控制
——源代碼分析與研究
11萬字 135頁
摘要
本文對Linux內(nèi)核中進程調(diào)度和進程控制部分的源代碼分別進行了詳細的流程分析與代碼注釋,并對這兩部分的代碼實現(xiàn)進行了研究,闡述了它們的優(yōu)缺點。在進程調(diào)度部分,主要涉及了Linux的調(diào)度算法及實現(xiàn)、時鐘中斷、定時器、Linux內(nèi)核機制以及系統(tǒng)調(diào)用nanosleep、pause。在進程控制部分,主要涉及了Linux系統(tǒng)調(diào)用的實現(xiàn)和進程的創(chuàng)建、裝入執(zhí)行、等待、消亡的過程。
關(guān)鍵詞:操作系統(tǒng) 進程 進程調(diào)度 中斷 定時器 運行隊列 系統(tǒng)調(diào)用 門 內(nèi)核空間 用戶空間
ABSTRACT
In this article ,we have written the program flow and comment of the code that about The Process Scheduling and Control of Linux Kernel。We also make a research on implementation of the code and indicate the strongpoint and shortcoming of it. In Process Scheduling,the things we have done include the algorithms and implementation of process scheduling,time interrupt,timer,bottom half,nanosleep and pause. In Process Control, the things what we have done include the implementation of System Call and the course of the process creating,exec,wait and exit.
Key Words: Oprerating system Process Process sceduling Interrupt Timer Run-queue System call Gate Kernel space User space
目錄
第1章 引言 ………………………………………………………………1
第2章 Linux內(nèi)核的整體結(jié)構(gòu)……………………………………………2
第3章 Linux進程調(diào)度……………………………………………………4
3.1 相關(guān)概念簡述……………………………………………………………………4
3.1.1 Linux進程的四個要素……………………………………………………4
3.1.2 task_struct結(jié)構(gòu)描述……………………………………………………4
3.1.3 調(diào)度與時間片……………………………………………………………14
3.1.4 實時進程與非實時進程…………………………………………………14
3.1.5 Linux進程優(yōu)先級 ………………………………………………………14
3.1.6 Linux進程系統(tǒng)的特點 …………………………………………………15
3.2 進程的調(diào)度 ……………………………………………………………………17
3.2.1 Linux進程調(diào)度的策略 …………………………………………………18
3.2.2 Linux進程的調(diào)度算法 …………………………………………………18
3.2.3 Linux進程的調(diào)度時機 …………………………………………………18
3.2.4 Linux進程的隊列 ………………………………………………………18
3.2.5 Linux進程調(diào)度全過程 …………………………………………………20
3.2.6 schedule( )及其調(diào)用函數(shù) ……………………………………………22
3.3 時鐘中斷 ………………………………………………………………………23
3.3.1 時鐘………………………………………………………………………23
3.3.2 實時時鐘中斷……………………………………………………………23
3.3.3 bottom half處理機制 …………………………………………………24
3.3.4 系統(tǒng)定時器 ……………………………………………………………25
3.4系統(tǒng)調(diào)用nanosleep( )和pause( ) …………………………………………27
3.4.1 nanosleep( )及部分子程序……………………………………………28
3.4.2 sys_pause( )……………………………………………………………29
3.5對于Linux進程調(diào)度的研究總結(jié) ……………………………………………30
3.5.1 Linux對調(diào)度算法的應用 ………………………………………………30
3.5.2 Linux進程優(yōu)先級的代碼實現(xiàn) …………………………………………30
3.5.3 Linux對CPU的充分利用 ………………………………………………30
第4章 Linux進程的控制 ………………………………………………31
4.1 進程的創(chuàng)建、執(zhí)行、消亡 ……………………………………………………31
4.1.1 系統(tǒng)調(diào)用的實現(xiàn)…………………………………………………………32
4.1.2 子進程的創(chuàng)建……………………………………………………………41
4.1.3 子進程的執(zhí)行……………………………………………………………46
4.1.4 父進程的等待……………………………………………………………48
4.1.5 子進程的消亡……………………………………………………………49
4.1.6 進程控制的全過程………………………………………………………51
4.2 對于Linux進程控制的研究總結(jié) ……………………………………………52
4.2.1 Linux系統(tǒng)的內(nèi)核保護與系統(tǒng)調(diào)用 ……………………………………52
4.2.2 Linux進程的創(chuàng)建、執(zhí)行、等待和消亡 ………………………………52
4.2.3 Linux進程的并發(fā)特性 …………………………………………………52
第5章 Linux內(nèi)核源碼模塊功能 ………………………………………53
5.1 進程調(diào)度 ………………………………………………………………………53
5.1.1 schedule( )………………………………………………………………53
5.1.2 goodness( )………………………………………………………………54
5.1.3 switch_mm( ) ……………………………………………………………56
5.1.4 add_to_runqueue( ) ……………………………………………………56
5.1.5 del_from_runqueue( ) …………………………………………………57
5.1.6 move_last_runqueue( )…………………………………………………57
5.1.7 move_first_runqueue( ) ………………………………………………57
5.2 nanosleep,pause及時鐘函數(shù) ………………………………………………58
5.2.1 sys_nanosleep ( )………………………………………………………58
5.2.2 schedule_timeout ( ) …………………………………………………58
5.2.3 internal_add_timer( ) ………………………………………………59
5.2.4 run_timer_list( ) ……………………………………………………61
5.2.5 sys_pause ( )……………………………………………………………61
5.2.6 do_timer_interrupt( ) ………………………………………………62
5.2.7 do_timer ( )……………………………………………………………63
5.2.8 do_bottom_half( ) ……………………………………………………63
5.2.9 timer_bh ( )……………………………………………………………65
5.3 系統(tǒng)調(diào)用總控入口 ……………………………………………………………65
5.4 子進程的創(chuàng)建 …………………………………………………………………66
5.4.1 sys_fork ( ) ……………………………………………………………66
5.4.2 sys_clone ( )……………………………………………………………66
5.4.3 sys_vfork ( )……………………………………………………………67
5.4.4 do_fork ( )………………………………………………………………67
5.4.5 get_pid ( )………………………………………………………………70
5.4.6 copy_fs ( )………………………………………………………………70
5.4.7 copy_mm ( )………………………………………………………………72
5.4.8 copy_files ( ) …………………………………………………………73
5.4.9 copy_sighand ( ) ………………………………………………………73
5.4.10 copy_thread ( ) ………………………………………………………77
5.5 子進程的裝入和執(zhí)行 …………………………………………………………78
5.5.1 sys_execve ( ) …………………………………………………………78
5.5.2 getname ( ) ……………………………………………………………79
5.5.3 do_execve ( ) …………………………………………………………79
5.5.4 search_binary_handler ( ) …………………………………………81
5.6 父進程的等待 …………………………………………………………………82
5.6.1 sys_wait4 ( ) …………………………………………………………82
5.6.1 release_task ( ) ………………………………………………………83
5.7 子進程的消亡 …………………………………………………………………86
5.7.1 sys_exit ( ) …………………………………………………………86
5.7.2 do_exit ( )………………………………………………………………86
5.7.3 __exit_mm ( )……………………………………………………………87
5.7.4 __exit_files ( ) ………………………………………………………88
5.7.5 __exit_fs ( )……………………………………………………………89
5.7.6 __exit_notify ( ) ……………………………………………………89
5.7.7 __exit_sighand ( ) …………………………………………………90
第6章 Linux內(nèi)核源代碼分析 …………………………………………92
6.1 進程調(diào)度 ………………………………………………………………………92
6.2 nanosleep,pause及時鐘函數(shù) ………………………………………………99
6.3 系統(tǒng)調(diào)用總控入口……………………………………………………………105
6.4 子進程的創(chuàng)建…………………………………………………………………106
6.5 子進程的裝入和執(zhí)行…………………………………………………………118
6.6 父進程的等待…………………………………………………………………123
6.7 子進程的消亡…………………………………………………………………126
結(jié)束語 …………………………………………………………………133
致謝 ……………………………………………………………………134
參考文獻 ………………………………………………………………135
翻譯譯文 ………………………………………………………………136
參考文獻
[1] 陳莉君編著. Linux操作系統(tǒng)內(nèi)核分析.北京: 人民郵電出版社,2000
[2] 馮銳等譯. Linux內(nèi)核源代碼分析.北京: 機械工業(yè)出版社,2000
[3] 李善平等編著.Linux操作系統(tǒng)及實驗教程.北京: 機械工業(yè)出版社,1999
——源代碼分析與研究
11萬字 135頁
摘要
本文對Linux內(nèi)核中進程調(diào)度和進程控制部分的源代碼分別進行了詳細的流程分析與代碼注釋,并對這兩部分的代碼實現(xiàn)進行了研究,闡述了它們的優(yōu)缺點。在進程調(diào)度部分,主要涉及了Linux的調(diào)度算法及實現(xiàn)、時鐘中斷、定時器、Linux內(nèi)核機制以及系統(tǒng)調(diào)用nanosleep、pause。在進程控制部分,主要涉及了Linux系統(tǒng)調(diào)用的實現(xiàn)和進程的創(chuàng)建、裝入執(zhí)行、等待、消亡的過程。
關(guān)鍵詞:操作系統(tǒng) 進程 進程調(diào)度 中斷 定時器 運行隊列 系統(tǒng)調(diào)用 門 內(nèi)核空間 用戶空間
ABSTRACT
In this article ,we have written the program flow and comment of the code that about The Process Scheduling and Control of Linux Kernel。We also make a research on implementation of the code and indicate the strongpoint and shortcoming of it. In Process Scheduling,the things we have done include the algorithms and implementation of process scheduling,time interrupt,timer,bottom half,nanosleep and pause. In Process Control, the things what we have done include the implementation of System Call and the course of the process creating,exec,wait and exit.
Key Words: Oprerating system Process Process sceduling Interrupt Timer Run-queue System call Gate Kernel space User space
目錄
第1章 引言 ………………………………………………………………1
第2章 Linux內(nèi)核的整體結(jié)構(gòu)……………………………………………2
第3章 Linux進程調(diào)度……………………………………………………4
3.1 相關(guān)概念簡述……………………………………………………………………4
3.1.1 Linux進程的四個要素……………………………………………………4
3.1.2 task_struct結(jié)構(gòu)描述……………………………………………………4
3.1.3 調(diào)度與時間片……………………………………………………………14
3.1.4 實時進程與非實時進程…………………………………………………14
3.1.5 Linux進程優(yōu)先級 ………………………………………………………14
3.1.6 Linux進程系統(tǒng)的特點 …………………………………………………15
3.2 進程的調(diào)度 ……………………………………………………………………17
3.2.1 Linux進程調(diào)度的策略 …………………………………………………18
3.2.2 Linux進程的調(diào)度算法 …………………………………………………18
3.2.3 Linux進程的調(diào)度時機 …………………………………………………18
3.2.4 Linux進程的隊列 ………………………………………………………18
3.2.5 Linux進程調(diào)度全過程 …………………………………………………20
3.2.6 schedule( )及其調(diào)用函數(shù) ……………………………………………22
3.3 時鐘中斷 ………………………………………………………………………23
3.3.1 時鐘………………………………………………………………………23
3.3.2 實時時鐘中斷……………………………………………………………23
3.3.3 bottom half處理機制 …………………………………………………24
3.3.4 系統(tǒng)定時器 ……………………………………………………………25
3.4系統(tǒng)調(diào)用nanosleep( )和pause( ) …………………………………………27
3.4.1 nanosleep( )及部分子程序……………………………………………28
3.4.2 sys_pause( )……………………………………………………………29
3.5對于Linux進程調(diào)度的研究總結(jié) ……………………………………………30
3.5.1 Linux對調(diào)度算法的應用 ………………………………………………30
3.5.2 Linux進程優(yōu)先級的代碼實現(xiàn) …………………………………………30
3.5.3 Linux對CPU的充分利用 ………………………………………………30
第4章 Linux進程的控制 ………………………………………………31
4.1 進程的創(chuàng)建、執(zhí)行、消亡 ……………………………………………………31
4.1.1 系統(tǒng)調(diào)用的實現(xiàn)…………………………………………………………32
4.1.2 子進程的創(chuàng)建……………………………………………………………41
4.1.3 子進程的執(zhí)行……………………………………………………………46
4.1.4 父進程的等待……………………………………………………………48
4.1.5 子進程的消亡……………………………………………………………49
4.1.6 進程控制的全過程………………………………………………………51
4.2 對于Linux進程控制的研究總結(jié) ……………………………………………52
4.2.1 Linux系統(tǒng)的內(nèi)核保護與系統(tǒng)調(diào)用 ……………………………………52
4.2.2 Linux進程的創(chuàng)建、執(zhí)行、等待和消亡 ………………………………52
4.2.3 Linux進程的并發(fā)特性 …………………………………………………52
第5章 Linux內(nèi)核源碼模塊功能 ………………………………………53
5.1 進程調(diào)度 ………………………………………………………………………53
5.1.1 schedule( )………………………………………………………………53
5.1.2 goodness( )………………………………………………………………54
5.1.3 switch_mm( ) ……………………………………………………………56
5.1.4 add_to_runqueue( ) ……………………………………………………56
5.1.5 del_from_runqueue( ) …………………………………………………57
5.1.6 move_last_runqueue( )…………………………………………………57
5.1.7 move_first_runqueue( ) ………………………………………………57
5.2 nanosleep,pause及時鐘函數(shù) ………………………………………………58
5.2.1 sys_nanosleep ( )………………………………………………………58
5.2.2 schedule_timeout ( ) …………………………………………………58
5.2.3 internal_add_timer( ) ………………………………………………59
5.2.4 run_timer_list( ) ……………………………………………………61
5.2.5 sys_pause ( )……………………………………………………………61
5.2.6 do_timer_interrupt( ) ………………………………………………62
5.2.7 do_timer ( )……………………………………………………………63
5.2.8 do_bottom_half( ) ……………………………………………………63
5.2.9 timer_bh ( )……………………………………………………………65
5.3 系統(tǒng)調(diào)用總控入口 ……………………………………………………………65
5.4 子進程的創(chuàng)建 …………………………………………………………………66
5.4.1 sys_fork ( ) ……………………………………………………………66
5.4.2 sys_clone ( )……………………………………………………………66
5.4.3 sys_vfork ( )……………………………………………………………67
5.4.4 do_fork ( )………………………………………………………………67
5.4.5 get_pid ( )………………………………………………………………70
5.4.6 copy_fs ( )………………………………………………………………70
5.4.7 copy_mm ( )………………………………………………………………72
5.4.8 copy_files ( ) …………………………………………………………73
5.4.9 copy_sighand ( ) ………………………………………………………73
5.4.10 copy_thread ( ) ………………………………………………………77
5.5 子進程的裝入和執(zhí)行 …………………………………………………………78
5.5.1 sys_execve ( ) …………………………………………………………78
5.5.2 getname ( ) ……………………………………………………………79
5.5.3 do_execve ( ) …………………………………………………………79
5.5.4 search_binary_handler ( ) …………………………………………81
5.6 父進程的等待 …………………………………………………………………82
5.6.1 sys_wait4 ( ) …………………………………………………………82
5.6.1 release_task ( ) ………………………………………………………83
5.7 子進程的消亡 …………………………………………………………………86
5.7.1 sys_exit ( ) …………………………………………………………86
5.7.2 do_exit ( )………………………………………………………………86
5.7.3 __exit_mm ( )……………………………………………………………87
5.7.4 __exit_files ( ) ………………………………………………………88
5.7.5 __exit_fs ( )……………………………………………………………89
5.7.6 __exit_notify ( ) ……………………………………………………89
5.7.7 __exit_sighand ( ) …………………………………………………90
第6章 Linux內(nèi)核源代碼分析 …………………………………………92
6.1 進程調(diào)度 ………………………………………………………………………92
6.2 nanosleep,pause及時鐘函數(shù) ………………………………………………99
6.3 系統(tǒng)調(diào)用總控入口……………………………………………………………105
6.4 子進程的創(chuàng)建…………………………………………………………………106
6.5 子進程的裝入和執(zhí)行…………………………………………………………118
6.6 父進程的等待…………………………………………………………………123
6.7 子進程的消亡…………………………………………………………………126
結(jié)束語 …………………………………………………………………133
致謝 ……………………………………………………………………134
參考文獻 ………………………………………………………………135
翻譯譯文 ………………………………………………………………136
參考文獻
[1] 陳莉君編著. Linux操作系統(tǒng)內(nèi)核分析.北京: 人民郵電出版社,2000
[2] 馮銳等譯. Linux內(nèi)核源代碼分析.北京: 機械工業(yè)出版社,2000
[3] 李善平等編著.Linux操作系統(tǒng)及實驗教程.北京: 機械工業(yè)出版社,1999
TA們正在看...
- 2010年中國農(nóng)業(yè)發(fā)展銀行招聘綜合素質(zhì)能力測試試題...doc
- 2010年中國農(nóng)業(yè)銀行分行招聘筆試真題及答案解析.doc
- 2010年中國農(nóng)業(yè)銀行四川分行柜員招聘行測言語理解...doc
- 2010年中國農(nóng)業(yè)銀行招聘筆試試題含答案.doc
- 2010年中國農(nóng)業(yè)銀行招聘行測言語理解與表達部分真題.doc
- 2010年中國農(nóng)業(yè)銀行浙江分行柜員招聘筆試真題及答案.doc
- 2010年中國工商銀行分行招聘考試行政能力測試真題...doc
- 2010年中國工商銀行總行校園招聘筆試試題含答案.doc
- 2010年中國建設銀行分行招聘考試綜合測試試題及答...doc
- 2010年中國建設銀行北京分行柜員類筆試真題含答案.doc