- 博客(8)
- 资源 (2)
- 收藏
- 关注
原创 bytearry 使用方法
rom = bytearrary(8) a = bytearray(8)b = bytearray(8)c = bytearray(8)c[1] = 0a[1] = 0b[1] = 2if (a != b): print ("not same bytearray") if (a == c): print ("they are identical")...
2018-09-28 16:54:47 419
原创 SoftIRQ 软中断
软中断是Linux 内核很早引入的机制,最早可以追溯到Linux2.3 开发期间,软中断是预留给系统中对时间要求最为严格和最重要的下半部使用的,而且目前驱动中只有块设备和网络子系统使用了软中断。系统静态定义了苦干种软件中断类型,并且Linux内核开发者不希望用户再扩充软中断类型,如有需要,建议使用tasklet 机制。已经定义好的软件中断类型如下:/* PLE...
2018-09-09 22:37:49 560
原创 中断管理
注册中断 当一个外设中断发生后,内核会执行一个函数来响应该中断,这个函数通常被称为中断处理程序(interrupt handler) 或者中断服务例程。中断处理程序是内核用于响应中断的,并且它运行在中断上下文中。中断处理程序最基本的工作是通知硬件设备中断已经被接收,不同的理件设备中断处理程序是不同的,有的常常需要做很多的处理工作,这也是Linux内核把中断处理程序分成...
2018-09-09 08:55:23 479
转载 malloc
malloc() 函数是C语言中内存分配函数,malloc() 函数就C函数库封装的一个核心函数,C函数库会做一些处理后调用 Linux内核系统去调用brk, 所以大家并不太熟悉brk 的系统调用,原因在于很少有人会直接使用系统调用brk 向系统申请内存,而总是通过malloc() 之类的C函数库的API 函数。如果把malloc() 想像成零售,那么brk 就是代理商。malloc 函数...
2018-09-08 21:28:32 360
转载 CFS 调度器
Linux 内核作为一个通用操作系统,需要兼顾各种各样类型的进程,包括实时进程、交互式进程、批处理进程等。每种类型进程都有其特别的形为特征,总结如下:交互式进程: 与人机交互的进程,和鼠标、键盘、触摸屏等相关的应用,例如 VIM 编辑器等,它们一直在睡眠同时等待用户召唤它们。这类进程的特点是系统响应时间越快越好,否则用户就会抱怨系统卡顿。 秕处理进程:此类进程默默地工作和付出,可能会...
2018-09-04 23:02:16 308
转载 进程的诞生
进程是Linux 内核最基本的抽象之一,它是处于执行期的程序,或者说“进程=程序+运行”。 但是进程并不仅局限于一段可执行代码(代体段), 它还包括进程需要的其他资源,例如打开的文件,挂起信号量、内存管理、处理器状态、一个或者多个执行线和和数据段。Linux 内核通常把进程叫作是任务(task), 因此进程控制块(processing control block, PCB) 也被命名为 struc...
2018-09-03 21:14:11 244
转载 slab 分配器
伙伴系统用于分配内存时是以page 为单位的,在实际中有很多内存需求是以byte为单位的。那么如果我们需要分配以byte 为单位的小内存时,该如何分配呢? slab 分配器就是用来解决小内存分配问题的,也是内存中非常重要的角色之一...
2018-09-02 22:00:39 335
转载 内存管理概述
内存管理是一个很复杂的系统,涉及的内容很多。如果用分层来描述,内存空间可以分成3个层次,分别是用户空间层、内核空间层和硬件层。 用户空间层可理解为Linux 内核内存管理为用户空间暴露的系统调用接口,如brk, mmap 待系统调用。通常libc库会封装成大家常见的C语言函数。例如malloc() 和mmap() 等。 内核空间层包含的模块相当丰富。用户空间和内核空间的接...
2018-09-01 23:04:42 374
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人