linux内核的主要模块

Linux系统从应用角度来分,分为内核空间和用户空间两部分。

Linux内核主要有5个子系统组成:进程调度、内存管理、虚拟文件系统、网络接口、进程间通信。

1.进程调度SCHED

进程调度指的是系统对进程的多种状态之间转换的策略。

Linux下的进程调度有3种策略:SCHED_OTHER、SCHED_FIFO、SCHED_RR。

SCHED_OTHER:是用于针对普通进程时间片轮转调度策略。这种策略中,系统给所有的运行状态的进程分配时间片。在当前进程的时间片用完以后,系统从进程中优先级最高的进程中选择进程运行。

SCHED_FIFO:是针对运行的实时性要求比较高、运行时间短的进程调度策略。这种策略中,系统按照进入队列的先后进行进程的调度,在没有更高优先级进程到来或者当前进程没有因为等待资源而阻塞的情况下,会一直运行

SCHED_RR:是针对实时性要求比较高、运行时间比较长的进程调度策略。这种策略与SCHED_OTHER的策略类似,只不过SCHED_RR进程的优先级要高的多(实时的)。系统分配给SCHED_RR进程时间片,然后轮循运行这些进程,将时间片用完的进程放入队列的末尾

由于存在多种调度方式,Linux进程调度采用的是“有条件可剥夺”的调度方式。普通进程中采用的是SCHED_OTHER的时间片轮循方式,实时进程可以剥夺普通进程。如果普通进程在用户空间运行,则普通进程立即停止运行,将资源让给实时进程;如果普通进程运行在内核空间,需要等系统调用返回用户空间后方可剥夺资源。

2.内存管理MMU

内存管理是多个进程间的内存共享策略。在Linux中,内存管理的主要概念是虚拟内存

虚拟内存可以让进程拥有比实际物理内存更大的内存,可以是实际内存的好多倍。每个进程的虚拟内存有不同的地址空间,多个进程的虚拟内存不会冲突

虚拟内存的分配策略是每个进程都可以公平地使用虚拟内存。虚拟内存的大小通常设为物理内存大小的2倍。

3.虚拟文件系统VFS

Linux中最常用的文件格式是ext2和ext3。ext2文件系统用在固定文件系统和可活动文件系统,是ext文件系统的扩展。ext3文件系统是在ext2上增加日志功能后的扩展,它兼容ext2。两种文件系统之间可以互相转换。

4.网络接口

Linux网络接口分为网络协议和驱动程序。网络协议是一种网络传输的通信标准,而网络驱动则是对硬件设备的驱动程序。

5.进程间通信

Linux支持多进程,进程之间需要进行数据的交流才能完成控制、协同工作等功能。Linux的进程通信是从UNIX系统继承过来的。Linux下的进程通信方式主要有管道方式,信号方式,消息队列方式,共享内存和套接字等方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值