Linux网络编程(一):Linux内核
生活随笔
收集整理的這篇文章主要介紹了
Linux网络编程(一):Linux内核
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Linux內(nèi)核:進(jìn)程調(diào)度、內(nèi)存管理、虛擬文件系統(tǒng)、網(wǎng)絡(luò)接口、進(jìn)程通信
進(jìn)程調(diào)度:系統(tǒng)對進(jìn)程的多種狀態(tài)之間的轉(zhuǎn)換策略。
? SCHED_OTHER 針對普通進(jìn)程的時(shí)間片輪轉(zhuǎn)調(diào)度策略。系統(tǒng)給所有的運(yùn)行狀態(tài)的進(jìn)程分配時(shí)間片,在當(dāng)前進(jìn)程的時(shí)間片用完之后,系統(tǒng)從進(jìn)程中優(yōu)先級最高的進(jìn)程中選擇進(jìn)程運(yùn)行。
? SCHED_FIFO? 針對運(yùn)行的實(shí)時(shí)性要求比較高,運(yùn)行時(shí)間短的進(jìn)程調(diào)度策略。系統(tǒng)按照進(jìn)入隊(duì)列的先后進(jìn)行進(jìn)程的調(diào)度,在沒有更高優(yōu)先級進(jìn)程到來或當(dāng)前進(jìn)程沒有因?yàn)榈却Y源而阻塞的情況下,會一直運(yùn)行下去
? SCHED_RR? ? 針對實(shí)時(shí)性要求比較高,運(yùn)行時(shí)間比較長的進(jìn)程調(diào)度策略。與SCHED_OTHER類似,不過SCHED_RR進(jìn)程調(diào)度的優(yōu)先級高得多。系統(tǒng)分配給SCHED_RR進(jìn)程時(shí)間片,然后通過輪循運(yùn)行這些進(jìn)程,將時(shí)間片運(yùn)行完的進(jìn)程放入隊(duì)列的末尾
? 1.對于SCHED_OTHER,即普通進(jìn)程調(diào)度策略,它應(yīng)該是基于CFS, 它的特點(diǎn)是即使是最低優(yōu)先級,他也能獲得一定的時(shí)間片。
? 2.SCHED_FIFO:高優(yōu)先級會搶占低優(yōu)先級,高優(yōu)先級運(yùn)行期間,低優(yōu)先級沒法搶占,只能等到高優(yōu)先級主動(dòng)退出;對于同等優(yōu)先級,先運(yùn)行的進(jìn)程會一直占據(jù)cpu, 只有等到先運(yùn)行的進(jìn)程主動(dòng)退出,后續(xù)進(jìn)程才能得到時(shí)間片。?
? 3.SCHED_RR: 同上,高優(yōu)先級會搶占低優(yōu)先級,高優(yōu)先級運(yùn)行期間,低優(yōu)先級沒法搶占,只能等到高優(yōu)先級主動(dòng)退出, ;對于同等優(yōu)先級的進(jìn)程,各個(gè)進(jìn)程會輪流運(yùn)行一定的時(shí)間片(大約100ms)。
? 進(jìn)程的優(yōu)先級范圍:0-139, 0-99是實(shí)時(shí)進(jìn)程,100-139是普通進(jìn)程
內(nèi)存管理:多個(gè)進(jìn)程間的內(nèi)存共享策略。
? 虛擬內(nèi)存可以讓進(jìn)程擁有比實(shí)際物理內(nèi)存更大的內(nèi)存,可以是實(shí)際內(nèi)存的很多倍,每一個(gè)進(jìn)程的虛擬內(nèi)存有不同的地址空間,多個(gè)進(jìn)程的虛擬內(nèi)存不會沖突。
? 虛擬內(nèi)存的分配策略是每個(gè)進(jìn)程都可以公平地使用虛擬內(nèi)存。虛擬內(nèi)存的大小通常設(shè)置為物理內(nèi)存的兩倍。
虛擬文件系統(tǒng)
? Linux常用的文件系統(tǒng)ext2和ext3,ext2文件系統(tǒng)用于固定文件系統(tǒng)和可活動(dòng)文件系統(tǒng)。ext3文件系統(tǒng)是在ext2上增加日志功能后的擴(kuò)展,兩者可以互相轉(zhuǎn)換
網(wǎng)絡(luò)接口:分為網(wǎng)絡(luò)協(xié)議和驅(qū)動(dòng)程序
? 網(wǎng)絡(luò)協(xié)議是一種網(wǎng)絡(luò)傳輸?shù)耐ㄐ艠?biāo)準(zhǔn),網(wǎng)絡(luò)驅(qū)動(dòng)是對硬件設(shè)備的驅(qū)動(dòng)程序。
進(jìn)程間通信:進(jìn)程之間需要進(jìn)行數(shù)據(jù)的交流才能完成控制、協(xié)同工作
? 通信方式:共享內(nèi)存、消息隊(duì)列、信號、管道、套接字、信號量
進(jìn)程調(diào)度:系統(tǒng)對進(jìn)程的多種狀態(tài)之間的轉(zhuǎn)換策略。
? SCHED_OTHER 針對普通進(jìn)程的時(shí)間片輪轉(zhuǎn)調(diào)度策略。系統(tǒng)給所有的運(yùn)行狀態(tài)的進(jìn)程分配時(shí)間片,在當(dāng)前進(jìn)程的時(shí)間片用完之后,系統(tǒng)從進(jìn)程中優(yōu)先級最高的進(jìn)程中選擇進(jìn)程運(yùn)行。
? SCHED_FIFO? 針對運(yùn)行的實(shí)時(shí)性要求比較高,運(yùn)行時(shí)間短的進(jìn)程調(diào)度策略。系統(tǒng)按照進(jìn)入隊(duì)列的先后進(jìn)行進(jìn)程的調(diào)度,在沒有更高優(yōu)先級進(jìn)程到來或當(dāng)前進(jìn)程沒有因?yàn)榈却Y源而阻塞的情況下,會一直運(yùn)行下去
? SCHED_RR? ? 針對實(shí)時(shí)性要求比較高,運(yùn)行時(shí)間比較長的進(jìn)程調(diào)度策略。與SCHED_OTHER類似,不過SCHED_RR進(jìn)程調(diào)度的優(yōu)先級高得多。系統(tǒng)分配給SCHED_RR進(jìn)程時(shí)間片,然后通過輪循運(yùn)行這些進(jìn)程,將時(shí)間片運(yùn)行完的進(jìn)程放入隊(duì)列的末尾
? 1.對于SCHED_OTHER,即普通進(jìn)程調(diào)度策略,它應(yīng)該是基于CFS, 它的特點(diǎn)是即使是最低優(yōu)先級,他也能獲得一定的時(shí)間片。
? 2.SCHED_FIFO:高優(yōu)先級會搶占低優(yōu)先級,高優(yōu)先級運(yùn)行期間,低優(yōu)先級沒法搶占,只能等到高優(yōu)先級主動(dòng)退出;對于同等優(yōu)先級,先運(yùn)行的進(jìn)程會一直占據(jù)cpu, 只有等到先運(yùn)行的進(jìn)程主動(dòng)退出,后續(xù)進(jìn)程才能得到時(shí)間片。?
? 3.SCHED_RR: 同上,高優(yōu)先級會搶占低優(yōu)先級,高優(yōu)先級運(yùn)行期間,低優(yōu)先級沒法搶占,只能等到高優(yōu)先級主動(dòng)退出, ;對于同等優(yōu)先級的進(jìn)程,各個(gè)進(jìn)程會輪流運(yùn)行一定的時(shí)間片(大約100ms)。
? 進(jìn)程的優(yōu)先級范圍:0-139, 0-99是實(shí)時(shí)進(jìn)程,100-139是普通進(jìn)程
內(nèi)存管理:多個(gè)進(jìn)程間的內(nèi)存共享策略。
? 虛擬內(nèi)存可以讓進(jìn)程擁有比實(shí)際物理內(nèi)存更大的內(nèi)存,可以是實(shí)際內(nèi)存的很多倍,每一個(gè)進(jìn)程的虛擬內(nèi)存有不同的地址空間,多個(gè)進(jìn)程的虛擬內(nèi)存不會沖突。
? 虛擬內(nèi)存的分配策略是每個(gè)進(jìn)程都可以公平地使用虛擬內(nèi)存。虛擬內(nèi)存的大小通常設(shè)置為物理內(nèi)存的兩倍。
虛擬文件系統(tǒng)
? Linux常用的文件系統(tǒng)ext2和ext3,ext2文件系統(tǒng)用于固定文件系統(tǒng)和可活動(dòng)文件系統(tǒng)。ext3文件系統(tǒng)是在ext2上增加日志功能后的擴(kuò)展,兩者可以互相轉(zhuǎn)換
網(wǎng)絡(luò)接口:分為網(wǎng)絡(luò)協(xié)議和驅(qū)動(dòng)程序
? 網(wǎng)絡(luò)協(xié)議是一種網(wǎng)絡(luò)傳輸?shù)耐ㄐ艠?biāo)準(zhǔn),網(wǎng)絡(luò)驅(qū)動(dòng)是對硬件設(shè)備的驅(qū)動(dòng)程序。
進(jìn)程間通信:進(jìn)程之間需要進(jìn)行數(shù)據(jù)的交流才能完成控制、協(xié)同工作
? 通信方式:共享內(nèi)存、消息隊(duì)列、信號、管道、套接字、信號量
總結(jié)
以上是生活随笔為你收集整理的Linux网络编程(一):Linux内核的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++11新标准 default 和
- 下一篇: Linux - Redis介绍以及安装