Linux内核主要由五大模块组成:
内存管理、进程调度、进程间通信、网络接口和文件系统。
1.进程调度
进程调度处于系统的中心位置,内核中的其它子系统都依赖于它,因为每个子系统都需要挂起和恢复进程。进程调度控制着内核中的进程对CPU的访问,使得多个进程在CPU中可以微观的串行,宏观的并行。进程调度算法有:SCHED_OTHER 分时调度策略 SCHED_FIFO 实时调度策略,先来先服务 SCHED_RR 实时调度策略,时间片轮转。
2.内存管理
内存管理的主要作用是控制多个进程安全地共享内存区域,当CPU提供内存管理单元(MMU)时,Linux内存管理完成为每个进程进行虚拟地址到物理地址的转换。一般而言,Linux的每个进程享有4GB的内存空间,0~3G为用户空间,3~4G为内核空间,内核空间对常规内存、I/O设备以及高端内存存在不同的处理方式。
4.网络接口
网络接口提供了对各种网络的标准的存取和各种网络硬件的支持。网络接口可分为网络协议和网络驱动程序,网络协议部分负责实现每一种可能的网络传输协议,网络设备驱动负责与硬件设备进行通信,每一种可能的硬件设备都有相应的设备驱动程序。
5.进程通信
Linux支持进程间的多种通信机制,包含信号量、共享内存、管道等,这些机制可以协助多个进程、多资源的互斥访问、进程间的同步和消息传递。
Linux内核的5个组成部分之间的依赖关系如下。
进程调度与内存管理之间的关系:这两个子系统互相依赖。在多道程序环境下,必须为程序创建进程,而创建进程的第一件事情就是将程序和数据装入内存。
进程间通信与内存管理的关系:进程间通信子系统要依赖内存管理支持共享内存通信机制,这种机制允许两个进程除了拥有自己的私有空间,还可以存取共同的内存区域。
虚拟文件系统与网络接口之间的关系:虚拟文件系统利用网络接口支持网络文件系统(NFS),也利用内存管理支持RAMDISK设备。
最后用一张图总结一下
阅读(4119) | 评论(0) | 转发(0) |