logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

Linux内核同步机制之信号量与锁

作者:bullbat         Linux内核同步控制方法有很多,信号量、锁、原子量、RCU等等,不同的实现方法应用于不同的环境来提高操作系统效率。首先,看看我们最熟悉的两种机制——信号量、锁。 一、信号量        首先还是看看内核中是怎么实现的,内核中用struct semaphore数据结构表示信号量(中):struct semaphore {sp

#list
linux中断延迟之tasklet

tasklet是I/O驱动程序中实现可延迟函数的首选方法。从下面的内核代码的分析中我们会看到,tasklet建立在两个叫做HI_SOFTIRQ和TASKLET_SOFTIRQ的软中断之上。几个tasklet可以与同一个软中断相关联,每个tasklet执行自己的函数。tasklet和高优先级的tasklet分别存放在tasklet_vec和tasklet_hi_vec数组中。下面我们结合具体的代码来

#linux#list#数据结构
linux内核中断、异常

中断:可屏蔽中断:所有有I/O设备请求的中断都是,被屏蔽的中断会一直被CPU 忽略,直到屏蔽位被重置。 不可屏蔽中断:非常危险的事件引起(如硬件失败)。异常:处理器产生的(Fault,Trap,Abort)异常 programmed exceptions(软中断):由程序员通过INT或INT3指令触发,通常当做trap处理,用处:实现系统调用。中断描述符表(IDT):2

进程ID号

关于进程ID号,在深入理解linux内核架构中已经讲得很清楚了。下面是主要的部分。UNIX进程总是会分配一个号码用于在其命名空间中唯一地标识它们。该号码被称作进程ID号,简称PID。用fork或clone产生的每个进程都由内核自动地分配了一个新的唯一的PID值。1. 进程ID但每个进程除了PID这个特征值之外,还有其他的ID。有下列几种可能的类型。处于某个线程组(在一个进程中,以标

#数据结构#unix
Linux信号机制概述

Linux信号机制概述作者:bullbat还是先看看Linux中用户空间怎么运用的,用户空间编程实例如下:#include#include#include/*下面为两个新的信号操作函数*/void handler(int sig){         printf("Receive signal :%u\n",sig);}void sigroutine(i

#linux#数据结构
Linux网络协议栈之驱动框架

Linux网络协议栈之驱动框架作者:bullbat        网卡驱动可以以模块的方式加载也可以内核初始化的时候加载,我们选定e100系列的网卡进行说明网卡驱动的一般框架。网卡设备通用数据结构:struct net_device{         /*         * This is the first field of the "visible" par

#网络协议#linux#网络
Linux网络协议栈之套接字缓冲区

作者:bullbat        Linux网络协议栈是内核中最大的组件之一,由于网络部分应用的范围很广,也相对较热,该部分现有的资料很多,学起来也比较容易。首先,我们看看贯穿网络协议栈各层的一个最关键数据结构——套接字缓冲区(sk_buff结构)。        一个封包就存储在这个数据结构中。所有网络分层都会使用这个结构来存储其报头、有关数据的信息,以及用来协调工作的其他内部信息。在

#网络协议#linux#数据结构 +1
解决linux自动挂载U盘/SD Card变成只读问题

忘了从什么时候开始我的那个512M的SD卡在ubuntu下一挂载就是只读的了,使用root帐户更改权限都不好使,尝试了好多办法也没解决,后来买了个U盘就不再用SD卡了,这件事也就忘记了。今天突然应急使用这个卡,使用读卡器挂载发现依旧是只读,换用本本内置的读卡器,也是一样。没办法了,google一通,看了看ubuntu的中文论坛,发现有人也遇到了同样的问题,但是没有人给出可行的解决方案。只好

#linux#ubuntu
linux内核分析之调度算法(一)

linux调度算法在2.6.32中采用调度类实现模块式的调度方式。这样,能够很好的加入新的调度算法。linux调度器是以模块方式提供的,这样做的目的是允许不同类型的进程可以有针对性地选择调度算法。这种模块化结构被称为调度器类,他允许多种不同哦可动态添加的调度算法并存,调度属于自己范畴的进程。每个调度器都有一个优先级,调度代码会按照优先级遍历调度类,拥有一个可执行进程的最高优先级的调度器类胜出,

#算法
Linux内存管理之slab机制(销毁slab)

总结完了slab创建、对象分配、对象释放,在这里再看看slab的销毁。销毁slab很简单,由函数slab_destroy()实现。/*** slab_destroy - destroy and release all objects in a slab* @cachep: cache pointer being destroyed* @slabp: slab pointer bei

#linux
    共 15 条
  • 1
  • 2
  • 请选择