操作系统
文章平均质量分 77
xp_super
这个作者很懒,什么都没留下…
展开
-
浅析中断方式与轮询方式
中断的基本概念 程序中断通常简称中断,是指CPU 在正常运行程序的过程中,由于预选安排或发生了各种随机的内部或外部事件,使CPU 中断正在运行的程序,而转到为相应的服务程序去处理,这个过程称为程序中断。 二、80x86 微处理器的中断 80x86 微处理器的中断类型一般分为2 类,即由于执行某些指令引起的软中断和由处理器以外其他控制电路发出中断请求信号引起的硬中断。 CPU 要从主程序转载 2012-09-21 09:30:59 · 473 阅读 · 0 评论 -
struct pt_regs 中存的内容
23 /* this struct defines the way the registers are stored on the 24 stack during a system call. */ 25 26 struct pt_regs { 27 long ebx; 28 long ecx; 29 long edx; 30转载 2012-09-21 23:36:21 · 5085 阅读 · 0 评论 -
关于linux内核中多进程(线程)间同步和互斥
Linux设备驱动中必须解决的一个问题是多个进程对共享资源的并发访问,并发访问会导致竞态,linux提供了多种解决竞态问题的方式,这些方式适合不同的应用场景。 Linux内核是多进程、多线程的操作系统,它提供了相当完整的内核同步方法。内核同步方法列表如下: 中断屏蔽 原子操作 自旋锁 读写自旋锁 顺序锁 信号量 读写信号量 BKL(大内核锁) Seq锁 一、并发与竞态:转载 2012-10-15 18:20:24 · 764 阅读 · 0 评论 -
vm_area_struct
Linux内核中,关于虚存管理的最基本的管理单元应该是struct vm_area_struct了,它描述的是一段连续的、具有相同访问属性的虚存空间,该虚存空间的大小为物理内存页面的整数倍。 下面是struct vm_area_struct结构体的定义: QUOTE: /* * This struct defines a memory VMM me转载 2012-11-06 10:19:08 · 425 阅读 · 0 评论 -
内存映射
1.地址类型 用户虚拟地址 物理地址 总线地址 内核逻辑地址 kmalloc()分配的内存区域 内核虚拟地址 vmalloc()分配的内存区域 在中,宏__pa()/__va()可以进行逻辑地址和物理地址之间的转换。但只对低端内存页有效。 2.物理地址和页 PAGE_SIZE PAGE_SHIFT 3.高端与低端原创 2012-12-03 23:02:11 · 458 阅读 · 0 评论 -
内存管理
1.在linux系统中,进程的4GB内存空间一般分为用户空间(0~3)G和内核空间(3~4)G. 内核空间中,从低地址到高地址依次为: 物理内存映射区 隔离带 vmalloc虚拟内存分配器 隔离带 --------------------------------896M 高端内存映射区 专用页面映射区 保留区 2.内存存取 2.1 用户空间内存分配函数mall原创 2012-12-03 19:21:48 · 441 阅读 · 0 评论 -
工作队列(workqueue)
项目需要,在驱动模块里用内核计时器timer_list实现了一个状态机。 郁闷的是,运行时总报错“Scheduling while atomic”,网上搜了一下: "Scheduling while atomic" indicates that you've tried to sleep somewhere that you shouldn't - like within a spin转载 2012-12-25 14:27:48 · 640 阅读 · 0 评论