文档介绍:第6章 Linux内核管理
本章要点:
Linux内核的结构
进程的概念、进程调度和进程通信
文件系统的构成和管理
Linux系统中内存管理
设备管理
概述
Linux系统大致可分为三层:
图6-1 Linux系统结构
概述
图6-2 Linux系统内核框图
进程管理
进程管理是操作系统最为关键的部分,它的设计和实现直接影响到系统的整体性能。
对于多任务操作系统Linux来说,它允许同时执行多个任务(进程)。由于进程在运行过程中,要使用许多计算机资源,例如,CPU、内存、文件等,通过进程管理、合理地分配系统资源,从而提高CPU的利用率。为了协调多个进程对这些共享资源的访问,操作系统要跟踪所有的进程的活动以及它们对系统资源的使用情况,实施对进程和资源的动态管理。
进程和线程的概念
1. 进程及其状态
图6-3 进程状态及其变化
2. Linux进程状态
图6-4 Linux进程状态的变化
图6-5 用户进程的两种运行模式
在Linux系统中,一个线程由以下四部分组成:
(1)一个惟一的标识符,即用户ID;
(2)描述处理机状态的一组状态寄存器及其内容(相当于程序状态字PSW);
(3)两个栈,分别用于用户态和核心态执行时使用;
(4)一个私用存储器。
进程的结构
1. task_struct结构
在Linux内核中,用一个称作task_struct的数据结构作为进程控制块,来表示一个进程。而所有指向进程该数据结构的指针形成一个task数组,这种指针数组有时也称为指针向量。在Linux系统中,每当建立一个新进程时,Linux要为这个新进程分配一个task_strcuct结构,并将其指针保存在task数组中。当前正在运行的进程的task_struct结构用current指针表示。在Linux系统中,默认的task数组的大小为512,即在Linux系统中,最多可以有512个进程同时运行。
进程的结构
task_struct结构包含下列信息:
(1)进程状态(2)调度信息(3)标识符(4)内部进程通信信息(5)链接信息(6)时间和计时器(7)文件系统信息(8)虚拟内存信息(9)处理器信息