一、临界区与竞争条件 临界区就是访问和操作共享数据的代码段。 如果两个执行线程有可能处于同一临界区中同时执行,那么我们就称它们为竞争条件(race conditions) 避免并发和防止竞争条件称为同步(synchronization) 二、加锁 2.1 锁的介绍 我们需要一种方法确保一次有且只有一 ...
分类:
其他好文 时间:
2020-02-08 17:12:15
阅读次数:
56
arm对异常(中断)处理过程 1 初始化::: a 设置中断源,让它可以产生中断:: b 设置中断控制器(可以屏蔽某个中断,优先级):: c 设置CPU总开关,(使能中断) 2 执行其他程序:正常程序 3 产生中断:按下按键 >中断控制器 >CPU 4 cpu每执行完一条指令都会检查有无中断/异常产 ...
分类:
其他好文 时间:
2020-02-08 15:20:49
阅读次数:
63
从开机加电到main函数执行(1) 启动BIOS,准备中断 BIOS的任务是将硬盘中的操作系统加载到内存中。 BIOS加载中断处理程序 BIOS的启动由硬件完成。8086系列在加电时进入16位实模式,将CS置为0xFFFF,IP置为0x0000, CS:IP指向0xFFFF0,指向了BIOS对应的地 ...
分类:
系统相关 时间:
2020-01-28 19:01:16
阅读次数:
192
我使用了两种驱动开发的模型来写了smart210上的按键驱动程序,这里做一下总结以及提供他人参考以及建议和改进,最后一个原因是自己很久没有写过博客了,现在想分享一下linux驱动开发程序的编写。 首先是Linux的中断处理机制。裸机开发中,通过中断标识一个函数指明该函数是中断处理函数,在编译器处理时 ...
分类:
系统相关 时间:
2020-01-17 22:44:26
阅读次数:
120
一、临界区 1.定义:临界区指的是一个访问共用资源(例如:共用设备或是共用存储器)的程序片段,而这些共用资源又无法同时被多个线程访问的特性。当有线程进入临界区段时,其他线程或是进程必须等待,有一些同步的机制必须在临界区段的进入点与离开点实现,以确保这些共用资源是被互斥获得使用。 2.临界区中存在的属 ...
分类:
其他好文 时间:
2020-01-14 23:32:02
阅读次数:
133
Linux操作系统的功能可以概括为进程管理、内存管理、文件系统管理、设备管理、网络等几部分。所有的系统操作最终都可以映射到对物理设备的操作。除去对CPU、内存以及其他少数几个物理实体的操作之外,系统对其他设备的所有操作都通过专门的称为驱动程序的代码完成。系统中存在的每种外设在内核中都必须有对应的设备 ...
分类:
其他好文 时间:
2020-01-05 11:41:47
阅读次数:
340
*信号之于进程,很像中断之于cpu. 内核对"进程信号"的支持,是在进程从内核空间返回用户态的前夕:可能是时钟中断,页异常陷入的内核又返回,也可能是原先睡着,现在等到某个资源,重新进入调度队列而返回. *信号的中断处理代码由用户部署在用户空间,所以进程返回用户空间之前,是先去用户空间执行代码,执行完 ...
分类:
系统相关 时间:
2019-12-26 11:25:47
阅读次数:
81
Socket与系统调用深度分析 可以想象的是,当应用程序调用socket()接口,请求操作系统提供服务时,必然会系统调用,内核根据发起系统调用时传递的系统调用号,判断要执行的程序,若为socket对应的编号,则执行socket对应的中断服务程序。服务程序内部,又根据你要请求的不同服务,来执行不同服务 ...
分类:
其他好文 时间:
2019-12-15 13:01:45
阅读次数:
120
随着使用单片机次数越来越多,对单片机中断处理函数的理解更加升入。下面写了曾经血的教训,供大家参考。 1、单片机的不同中断是有优先级的区别,当同时发生两个不同中断时,一般先处理优先级别低的中断处理函数。特殊的处理器对中断的定义不同。 2、进入中断处理函数,一定记得清理标志位。或者第一件事情就是手动清理 ...
分类:
其他好文 时间:
2019-12-06 21:41:31
阅读次数:
118
简单总结:有软件断点和硬件断点 软件断点:软件断点在X86系统中为中断指令INT 3,其二进制代码opcode是0xCC。当程序执行到INT 3指令时,会引发软件中断。操作系统的INT 3中断处理器会寻找注册在该进程上的调试处理程序。从而像Windbg和VS等等调试器就有了上下其手的机会。程序出错时 ...
分类:
其他好文 时间:
2019-11-29 10:59:22
阅读次数:
83