Linux内核:进程调度、内存管理、虚拟文件系统、网络接口、进程通信
进程调度:系统对进程的多种状态之间的转换策略。
SCHED_OTHER 针对普通进程的时间片轮转调度策略。系统给所有的运行状态的进程分配时间片,在当前进程的时间片用完之后,系统从进程中优先级最高的进程中选择进程运行。
SCHED_FIFO 针对运行的实时性要求比较高,运行时间短的进程调度策略。系统按照进入队列的先后进行进程的调度,在没有更高优先级进程到来或当前进程没有因为等待资源而阻塞的情况下,会一直运行下去
SCHED_RR 针对实时性要求比较高,运行时间比较长的进程调度策略。与SCHED_OTHER类似,不过SCHED_RR进程调度的优先级高得多。系统分配给SCHED_RR进程时间片,然后通过轮循运行这些进程,将时间片运行完的进程放入队列的末尾
1.对于SCHED_OTHER,即普通进程调度策略,它应该是基于CFS, 它的特点是即使是最低优先级,他也能获得一定的时间片。
2.SCHED_FIFO:高优先级会抢占低优先级,高优先级运行期间,低优先级没法抢占,只能等到高优先级主动退出;对于同等优先级,先运行的进程会一直占据cpu, 只有等到先运行的进程主动退出,后续进程才能得到时间片。
3.SCHED_RR: 同上,高优先级会抢占低优先级,高优先级运行期间,低优先级没法抢占,只能等到高优先级主动退出, ;对于同等优先级的进程,各个进程会轮流运行一定的时间片(大约100ms)。
进程的优先级范围:0-139, 0-99是实时进程,100-139是普通进程
内存管理:多个进程间的内存共享策略。
虚拟内存可以让进程拥有比实际物理内存更大的内存,可以是实际内存的很多倍,每一个进程的虚拟内存有不同的地址空间,多个进程的虚拟内存不会冲突。
虚拟内存的分配策略是每个进程都可以公平地使用虚拟内存。虚拟内存的大小通常设置为物理内存的两倍。
虚拟文件系统
Linux常用的文件系统ext2和ext3,ext2文件系统用于固定文件系统和可活动文件系统。ext3文件系统是在ext2上增加日志功能后的扩展,两者可以互相转换
网络接口:分为网络协议和驱动程序
网络协议是一种网络传输的通信标准,网络驱动是对硬件设备的驱动程序。
进程间通信:进程之间需要进行数据的交流才能完成控制、协同工作
通信方式:共享内存、消息队列、信号、管道、套接字、信号量
进程调度:系统对进程的多种状态之间的转换策略。
SCHED_OTHER 针对普通进程的时间片轮转调度策略。系统给所有的运行状态的进程分配时间片,在当前进程的时间片用完之后,系统从进程中优先级最高的进程中选择进程运行。
SCHED_FIFO 针对运行的实时性要求比较高,运行时间短的进程调度策略。系统按照进入队列的先后进行进程的调度,在没有更高优先级进程到来或当前进程没有因为等待资源而阻塞的情况下,会一直运行下去
SCHED_RR 针对实时性要求比较高,运行时间比较长的进程调度策略。与SCHED_OTHER类似,不过SCHED_RR进程调度的优先级高得多。系统分配给SCHED_RR进程时间片,然后通过轮循运行这些进程,将时间片运行完的进程放入队列的末尾
1.对于SCHED_OTHER,即普通进程调度策略,它应该是基于CFS, 它的特点是即使是最低优先级,他也能获得一定的时间片。
2.SCHED_FIFO:高优先级会抢占低优先级,高优先级运行期间,低优先级没法抢占,只能等到高优先级主动退出;对于同等优先级,先运行的进程会一直占据cpu, 只有等到先运行的进程主动退出,后续进程才能得到时间片。
3.SCHED_RR: 同上,高优先级会抢占低优先级,高优先级运行期间,低优先级没法抢占,只能等到高优先级主动退出, ;对于同等优先级的进程,各个进程会轮流运行一定的时间片(大约100ms)。
进程的优先级范围:0-139, 0-99是实时进程,100-139是普通进程
内存管理:多个进程间的内存共享策略。
虚拟内存可以让进程拥有比实际物理内存更大的内存,可以是实际内存的很多倍,每一个进程的虚拟内存有不同的地址空间,多个进程的虚拟内存不会冲突。
虚拟内存的分配策略是每个进程都可以公平地使用虚拟内存。虚拟内存的大小通常设置为物理内存的两倍。
虚拟文件系统
Linux常用的文件系统ext2和ext3,ext2文件系统用于固定文件系统和可活动文件系统。ext3文件系统是在ext2上增加日志功能后的扩展,两者可以互相转换
网络接口:分为网络协议和驱动程序
网络协议是一种网络传输的通信标准,网络驱动是对硬件设备的驱动程序。
进程间通信:进程之间需要进行数据的交流才能完成控制、协同工作
通信方式:共享内存、消息队列、信号、管道、套接字、信号量