本文已使用 Google Cloud Translation API 自动翻译。
某些文档最好以原文阅读。
Linux 内核中的并发是通过允许多个进程同时运行来实现的。为了做到这一点,内核必须提供一种同步访问共享数据结构的机制。
内核实现并发的方式主要有两种:
Linux 内核混合使用抢占式和协作式多任务处理。
抢占式多任务处理用于无法承受中断的关键任务,例如处理硬件中断。协作式多任务处理用于可以承受中断的任务,例如用户空间进程。
Linux 内核使用多种不同的同步机制来实现并发,包括:
Linux 内核还提供了许多机制来管理进程调度、内存管理和并发性的其他方面。
Linux 内核提供了许多用于管理进程调度的机制。
内核调度器负责调度进程在 CPU 上运行。它使用多种调度算法来决定接下来应该运行哪个进程。
最常见的调度算法是循环调度程序。此调度程序以先进先出 (FIFO) 的顺序安排进程。
其他调度算法包括优先级调度程序,它根据优先级调度进程,以及截止日期调度程序,它根据截止日期调度进程。
内核还为实时进程提供了一种机制。实时进程比其他进程有更高的优先级,保证被及时调度。
Linux 内核提供了许多管理内存的机制。
内核使用许多内存管理策略,包括分页和交换。
分页是一种允许内核将进程内存映射到物理内存的技术。这允许内核更有效地使用物理内存。
交换是一种允许内核将进程内存写入磁盘的技术。这允许内核为其他进程释放物理内存。
内核还提供了共享内存的机制。共享内存允许进程在它们之间共享内存。
Linux 内核提供了许多用于进程间通信 (IPC) 的机制。
IPC 允许进程相互通信。 IPC 最常见的形式是消息传递。
消息传递允许进程相互发送消息。内核提供了许多消息传递机制,包括管道、FIFO 和套接字。
管道和 FIFO 允许进程使用单向数据流相互通信。套接字允许进程使用双向数据流相互通信。
内核还提供了共享内存的机制。共享内存允许进程在它们之间共享内存。
Linux 内核提供了许多实现并发的机制。这些机制包括抢占式多任务处理、协作式多任务处理、自旋锁、互斥锁、信号量以及各种其他进程调度和内存管理策略。