
linux内核
文章平均质量分 65
Linux_先生
点滴积累
展开
-
Linux内核之进程管理
进程:进程就是处于执行期的程序以及它包含的资源总和。 线程是进程中的活动对象,每个线程拥有一个独立的程序计数器、进程栈和一组进程寄存器。 内核调度的是线程,而不是进程。进程描述符: 内核的进程描述符为task_struct结构体,定义在<linux/sched.h>,进程描述符包含了一个进程的所有信息。包括:进程标识符、进程当前状态、栈地址空间、内存地址空间、文件系统、打开的文件、信号量等。原创 2016-07-22 21:12:25 · 3016 阅读 · 0 评论 -
Linux内核之进程调度
一些概念 调度程序负责决定哪个进程投入运行,何时运行及运行多长时间。进程调度程序就是在可运行态进程之间分配有限的处理器时间资源的内核子系统。 多任务系统可分为两类:非抢占式多任务和抢占式多任务。Linux提供了抢占式多任务。 I/O消耗型进程就是大部分时间用来提交I/O请求或者是等待I/O请求。 处理器消耗型进程就是把时间大多用在代码执行上。 调度策略通常就是在两个矛盾的目标中间寻求平衡:原创 2016-07-25 16:30:17 · 2865 阅读 · 1 评论 -
Linux内核之数据结构--链表
前言Linux内核实现了一下常用的内建数据结构,主要有:链表队列映射二叉树今天详细学习一下链表的知识,链表是一种存放和操作可变数量元素(常称为节点)的数据结构。Linux内核的标准链表就是采用环形双向链表形式实现的。链表数据结构传统的链表是将数据存放在链表节点中;而Linux内核的方式与众不同,它的链表节点只有两个指针(prev和next),链表节点保存在用户数据结构中。 链表代码在头文原创 2016-07-28 11:18:07 · 507 阅读 · 0 评论 -
Linux内核之数据结构--队列
前言Linux内核实现了以下常用的内建数据结构,主要有: 链表 队列 映射 二叉树 今天详细学习一下队列的知识,内核中的队列是以字节形式保存数据的,所以获取数据的时候,需要知道数据的大小。Linux内核通用队列实现称为kfifo。kfifo提供了两个主要操作:enqueue(入队列)和dequeue(出队列)。kfifo对象维护两个偏移量:入口偏移和出口偏移。、原创 2016-07-28 16:52:05 · 3589 阅读 · 1 评论 -
孤儿进程与僵尸进程
早就了解孤儿进程与僵尸进程,但仅仅是停留在一知半解的程度,总结一下。概念 首先我们知道在Linux中,进程都是由父进程创建的,一般情况下子进程退出后需要父进程来清理子进程退出后留下的“垃圾”,父进程是调用wait()或waitpid()系统调用获得的子进程的终止状态。原创 2016-07-28 20:25:26 · 1037 阅读 · 0 评论 -
Linux内核之数据结构--映射
前言Linux内核实现了一下常用的内建数据结构,主要有: 链表 队列 映射 二叉树 映射也称为关联数组,就是每个唯一的id对应一个自定义的数据结构指针。感觉关于映射的知识比较复杂,没有深入理解,这里就记录一下一些常用的操作API。原创 2016-07-29 10:46:23 · 1210 阅读 · 0 评论 -
Linux内核入门简介
往大了说,几乎所有互联网都是运行在Linux服务器上的;往小了说,嵌入式系统很大一部分也都是Linux内核的。可以说,Linux内核无处不在,Linux内核是一个最普遍最复杂的开源项目之一,Linux内核之大,代码量之多,在我感觉就像是一个原始森林,要想精通实在是不容易,但是,不求精通,但求理解内核的工作原理,工作机制,了解一下Linux内核架构也是好的。内核是操作系统的一部分,是介于应用程序和底层原创 2016-07-21 16:31:27 · 2436 阅读 · 0 评论 -
Linux内核之内存管理
一、页page内核把物理页作为内存管理的基本单元。内存管理单元(MMU)通常以页为单位进行处理。从虚拟内存的角度看,页就是最小单位。 32位体系结构支持4KB的页,而64位的体系结构支持8KB的页。 内核用struct page结构来表示系统中的每个物理页。二、区zone由于硬件的限制,内核就把所有的页划分成不同的区(zone),Linux主要有四种分区:ZONE_DMA–该区包含的页能用来执原创 2016-08-10 19:33:00 · 619 阅读 · 0 评论