(1)进程调度(Process Scheduler,SCHED)- 控制着进程对CPU的访问,当需要选择一个进程运行时,由调度程序选择最值得运行的进程。
(2)内存管理(Memory Manager, MM)-允许多个进程安全地共享内存区域。 Linux的内存管理支持虚拟内存。即在计算机中运行的程序。其代码、数据和堆栈的总量可以超过实际内存的大小。操作系统只将当前使用的程序块保留在内存中,其余的程序块则保望在磁盘上。必要时,操作系统负责在磁盘和内存之间交换程序块。因为虚拟内存管理需要硬件支持,所以内存管理从逻辑上可以分为硬件无关的部分和硬件相关的部分。
(3)虚拟文件系统(VFS)-隐藏各种不同硬件的具体细节。为所有设备提供统一的接口,虚拟文件系统支持多达数十种不同的文件系统、这也是Linux较有特色的一部分。虚拟文件系统可分为逻辑文件系统和设备驱动程序。逻辑文件系统指Linux所支持的文件系统,如Ext2/Ext3, NTFS等,设备驱动程序指为每种硬件控制器所编写的设备驱动程序模块。
(4)网络接口( Network Ineterface, NI)-提供了对各种网络标准协议的存取和各种网络硬件的支持,网络子系统可分为网络协议和网络驱动程序两部分、网络协议部分负责实现每一种可能的网络传输协议,网络设备驱动程序负责与硬件设备进行通信、每一种可能的硬件设备都有相应的设备驱动程序。
(5)进程间通信( Inter-Process Communication, PC)一支持进程间各种通信机制.包括共享内存,消息队列及管道等。
从图看出,处于中心位置的是进程调度,所有其他子系统都依赖于它,因为每个子系统都需要挂起或恢复进程,一般情况下,当一个进程等待硬件操作充成时,它被挂起,当操作真正完成时,进程恢复执行。例如,当一个进程通过网络发送一条消息时,发送进程被挂起,一直到硬件成功地完成消息的发送。
Linux系统-5大子系统
最新推荐文章于 2024-05-06 05:42:43 发布