![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux内核学习笔记
struct task_struct
这个作者很懒,什么都没留下…
展开
-
Linux内核学习笔记一
内核与操作系统: 内核是操作系统的核心部分,包含了系统运行的核心过程,决定系统的性能,操作系统启动内核被装入到RAM中; 操作系统与底层硬件设备交互和为运行应用程序提供执行环境。 Linux内核与微内核比较: 微内核:内核只需要一个很小的函数集,通常包括几个同步原语,一个简单的调度程序和进程间通信机制。 运行在微内核之上的几个系统进程实现系统级功能:内存分配,设备转载 2016-09-07 19:15:46 · 189 阅读 · 0 评论 -
Linux内核学习笔记九——内核内存管理方式
一 页 内核把物理页作为内存管理的基本单位;内存管理单元(MMU)把虚拟地址转换为物理 地址,通常以页为单位进行处理。MMU以页大小为单位来管理系统中的也表。 32位系统:页大小4KB 64位系统:页大小8KB 内核用相应的数据结构表示系统中的每个物理页: struct page {} 内核通过这样的数据结构管理系统中所有的页,因转载 2016-09-07 19:20:02 · 211 阅读 · 0 评论 -
Linux内核学习笔记八——定时器和时间管理
一 内核中的时间观念 内核在硬件的帮助下计算和管理时间。硬件为内核提供一个系统定时器用以计算流逝的时间。系 统定时器以某种频率自行触发,产生时钟中断,进入内核时钟中断处理程序中进行处理。 墙上时间和系统运行时间根据时钟间隔来计算。 利用时间中断周期执行的工作: 更新系统运行时间; 更新实际时间; 在smp系统上,转载 2016-09-07 19:19:31 · 232 阅读 · 0 评论 -
Linux内核学习笔记七——内核同步机制和实现方式
一 原子操作 指令以原子的方式执行——执行过程不被打断。 1 原子整数操作 原子操作函数接收的操作数类型——atomic_t //定义 atomic_t v; //初始化 atomic_t u = ATOMIC_INIT(0); //操作 atomic_set(&v,4); // v = 4 atomic_add(2,&v); //转载 2016-09-07 19:19:06 · 189 阅读 · 0 评论 -
Linux内核学习笔记六——并发和同步概念
一 临界区和竞争条件 临界区:访问和操作共享数据的代码段。 竞争条件:多个执行线程处于同一个临界区中。 处于竞争条件:造成访问的数据或者资源不一致状态: 对资源i的访问:ProcessA和B访问后得到正确的结果应该是9: 进程是并发执行,有可能得到的结果是:8转载 2016-09-07 19:18:31 · 188 阅读 · 0 评论 -
Linux内核学习笔记五——中断推后处理机制
一 中断 硬件通过中断与操作系统进行通信,通过对硬件驱动程序处注册中断处理程序,快速响应硬件的中断。 硬件中断优先级很高,打断当前正在执行的程序。有两种情况: 硬件中断在中断处理程序中处理 硬件中断延后再进行处理 这个具体硬件相关,在中断处理程序中处理,打断了当前正在执行的程序;所有中断都将被屏蔽;如果占用时间太长不合适, 造成系统交互性,反应能力都会受到影响转载 2016-09-07 19:18:05 · 199 阅读 · 0 评论 -
Linux内核学习笔记四——系统调用
一 用户空间和内核空间 Linux内核将这4G字节虚拟地址空间的空间分为两部分: l 将最高的1G字节(从虚拟地址0xC0000000到0xFFFFFFFF),供内核使用,称为“内核空间”。 l 将较低的3G字节(从虚拟地址 0x00000000到0xBFFFFFFF),供各个进程使用,称为“用户空间)。 因为每个进程可以通过系统调用进入内核,因此Linux内核由系统内的所转载 2016-09-07 19:17:31 · 218 阅读 · 0 评论 -
Linux内核学习笔记三——进程调度
进程调度: 在可运行态进程之间分配有限处理器时间资源的内核子系统。 一 调度策略 1 进程类型 I/O消耗型进程:大部分时间用来提交I/O请求或是等待I/O请求,经常处于可运行状态,但运行时间短,等待请求过程时处于阻塞状态。如交互式程序。 处理器消耗型进程:时间大都用在执行代码上,除非被抢占否则一直不停的运行。 综合型:既是I/O转载 2016-09-07 19:17:07 · 348 阅读 · 0 评论 -
Linux内核学习笔记二——进程
一 进程与线程 进程就是处于执行期的程序,包含了独立地址空间,多个执行线程等资源。 线程是进程中活动的对象,每个线程都拥有独立的程序计数器、进程栈和一组进程寄存器。 内核调度的对象是线程而不是进程。对Linux而言,线程是特殊的进程。 二 进程描述符及任务结构 内核使用双向循环链表的任务队列来存放进程,使用结构体task_struc转载 2016-09-07 19:16:28 · 230 阅读 · 0 评论 -
Linux内核学习笔记十——虚拟文件系统概念
虚拟文件系统 虚拟文件系统:内核子系统VFS,VFS是内核中文件系统的抽象层,为用户空间提供文件系统相关接口; 通过虚拟文件系统,程序可以利用标准Linux文件系统调用在不同的文件系统中进行交互和操作。 VFS作为抽象层: 文件系统被安装在一个特定的安装点上,该安装点在全局层次结构中被称作命名空间, 所有的已安装文件系统都作为根文件系统树的枝叶出现在系统中。转载 2016-09-07 19:20:31 · 164 阅读 · 0 评论