logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

Linux内核学习笔记(九)中断和中断处理程序

中断为了对计算机的硬件(键盘,硬盘,鼠标等)进行管理,内核需要和这些硬件通信。一种方式是使用轮训(polling)的方式,这种方式周期性地查看所有硬件设备的状态并做相应处理,这会造成很多不必要的系统开销。Linux内核使用中断的方式来管理硬件设备,中断本质上是一种电信号,设备通过和中断控制器引脚相连的总线发出电信号来发出中断。中断控制器是一种控制芯片,多个设备的中断请求线同时连接到中断控制器上..

#linux
Linux内核学习笔记(十一)内核同步方法(自旋锁,信号量,互斥锁,完成变量,顺序锁,禁止抢占)

原子操作Linux内核提供了多种同步机制,这些机制本质上都是通过原子操作来实现的。原子操作可以保证指令以原子方式执行,不会被中途打断(中断也不会打断一个指令,处理器只有在当前指令完成后才会去处理中断)。内核提供了两套原子操作的接口,一套用于整数原子操作,一套用于进行位原子操作。这些接口的实现是和架构相关的,Linux系统支持的所有架构都实现了这些接口。大部分架构为简单的算术运算提供了原子版本的..

#linux
Linux内核学习笔记(十)中断处理的下半部(Bottom Halve)

为什么需要下半部中断处理程序有如下局限性:中断处理程序是异步中断,被其中断执行的代码(包括别的中断处理程序)可能正在执行非常重要的任务,为了避免被中断进程停止过长时间,中断处理程序的执行应该越快越好。中断处理程序会禁用其服务的中断线(没有设置IRQF_DISABLE),这是最好的情况。最坏的情况下会禁用当前处理器上所有中断(设置了IRQF_DISABLED)。禁用中断期间,硬件设备无法...

#linux
Linux内核学习笔记(四)进程管理

进程简介进程(Process)是Unix操作系统最基本的抽象概念之一。进程是正在执行的程序,同时也是操作系统进行资源管理的最小单位,进程需要管理打开的文件、挂起的信号、内核内部数据、处理器状态等。线程(Thread)是进程中正在执行的程序片段,是操作系统进行调度的最小单位,一个线程指的是进程中一个单一顺序的控制流。Linux中线程只是一个特殊的进程,并没有对进程和线程进行专门的区分。进...

#linux
Linux内核学习笔记(二)内存管理

综述本文首先介绍和内存管理相关的一些概念如page,zone,然后介绍多种获得内存的方式,最后介绍Linux的slab层(slab分配器)。页(page)页是Linux内核进行内存管理的基本单元。MMU和虚拟内存也都使用页作为基本管理单元。不同的架构有不同的页大小,绝大部分的情况是32-bit使用4KB页大小,64-bit使用8KB页大小。这意味着如果一台机器的物理内存为1GB大小,大...

#linux
Linux内核学习笔记(六)进程调度

综述内核调度子系统负责进程调度,调度程序决定让哪个进程运行、什么时候运行、运行多久。调度程序的目标有两个:一个是最大化系统资源的利用率,一个是减少和用户的交互延迟,让用户觉得多个进程在同时运行。这两个目标是冲突的,需要做trade-off。多任务操作系统多任务操作系统指的是指可以多个进程同时交错执行的操作系统。在单处理器机器上,用户会产生有多个进程同时在不同的处理器上在同时执行的错...

#linux
Linux内核学习笔记(五)进程地址空间

**# 进程地址空间简介Linux是一个虚拟内存操作系统,系统中的所有进程以虚拟方式共享内存。从一个进程的视角来看,它独占系统中所有的物理内存,并且一个进程的地址空间可以远远大于物理内存的大小。进程的地址空间由可寻址的虚拟内存组成,进程通过地址空间中的地址访问内存。一个进程可以选择和其他进程共享地址空间,这样的进程就是我们说的线程。尽管进程最多可以寻址4GB的虚拟内存(在32-bit的...

Linux内核学习笔记(七)系统调用

综述用户空间进程通过内核提供的一套接口和系统进行交互,这些接口让用户空间进程能够受控地访问系统资源、创建新的进程以及和其他进程通信等。受控表示用户进程不能不受限制地做任何想做的事情,这对保证系统的稳定非常关键。在Linux系统中,系统调用是除了exception和trap之外用户空间和内核交互的唯一方式。API,POSIX 和 C LibraryAPI(Application Pr...

Linux内核学习笔记(一) 虚拟文件系统VFS

什么是VFSVritual Filesystem 是给用户空间程序提供统一的文件和文件系统访问接口的内核子系统。借助VFS,即使文件系统的类型不同(比如NTFS和ext3),也可以实现文件系统之间交互(移动、复制文件等),从用户空间程序的角度来看,VFS提供了一个统一的抽象、接口。这使得用户空间程序可以对不同类型的文件系统发起统一的系统调用,而不需要关心底层的文件系统类型。从文件系统的...

#linux
Linux内核的同步机制——有DEFINE_SPINLOCK()

一、引言在现代操作系统里,同一时间可能有多个内核执行流在执行,因此内核其实象多进程多线程编程一样也需要一些同步机制来同步各执行单元对共享数据的访问。尤其是在多处理器系统上,更需要一些同步机制来同步不同处理器上的执行单元对共享的数据的访问。在主流的Linux内核中包含了几乎所有现代的操作系统具有的同步机制,这些同步机制包括:原子操作、信号量(semaphore)、读写信号量(rw_s

    共 19 条
  • 1
  • 2
  • 请选择