最近接触到Win32汇编,才知道汇编必须是和平台相关的,如做应用则和操作系统和CPU类型相关,而做操作系统就和只和的CPU类型有关。对于《微机原理》里面的汇编,那是DOS汇编,而Win32汇编是基于Windows的汇编。DOS和Windows是两个完全不同的操作系统了。
DOS汇编功能的实现依靠的是DOS系统提供的软中断,DOS程序是面向过程的单任务的;而Win32汇编功能的实现依靠的是WinA...
并发控制的概念
----并发指的是多个执行单元并行执行,而并发的执行单元对共享资源(硬件资源和
----软件上的全局变量、静态变量等)的访问则很容易导致竞态。
竞态发生的情况
----对称多处理器(SMP)的多个CPU
----单CPU内进程与抢占它的进程
----中断(硬中断、软中断、Tasklet、底半部)与进程之间...
分类:
系统相关 时间:
2014-09-02 21:27:05
阅读次数:
305
在分析linux内核的中断,软中断时,先应该明确这样一个派生关系:irq ==> softirq ==> tasklet ==> bottom half ==> task queue------------------------|==> timer中断是最初的原动力。分时系统依赖于时钟中断来定时重...
分类:
系统相关 时间:
2014-08-19 14:19:14
阅读次数:
300
获得自旋锁和释放自旋锁有好几个版本,因此让读者知道在什么样的情况下使用什么版本的获得和释放锁的宏是非常必要的。 如果被保护的共享资源只在进程上下文访问和软中断(包括tasklet、timer)上下文访问,...
分类:
其他好文 时间:
2014-08-18 09:22:44
阅读次数:
280
出现原因 1. Linux在中断处理程序中,它不处于任何一个进程上下文,如果使用了可能睡眠的函数,则系统调度会被破坏,导致kernel panic。因此,在中断处理程序中,是不能使用有可能导致睡眠的函数(例如信号量等)。 在中断发起的软中断中,其上下文环境有可能是中断上下文,同理,也不能调用可能导致...
分类:
其他好文 时间:
2014-07-31 20:33:57
阅读次数:
212
tasklet是在HI_SOFTIRQ和TASKLET_SOFTIRQ两个软中断的基础上实现的(它们是在同一个源文件中实现,由此可见它们的关系密切程度),它的数据结构和软中断比较相似,这篇博文将分析tasklet的初始化过程。1.和tasklet相关的数据结构tasklet_vec和tasklet_...
分类:
其他好文 时间:
2014-07-30 12:07:33
阅读次数:
225
1.和软中断相关的数据结构:softing_vec数组(kernel/softirq.c)1 static struct softirq_action softirq_vec[NR_SOFTIRQS] __cacheline_aligned_in_smp;NR_SOFTIRQS值为10,说明内核支持...
分类:
其他好文 时间:
2014-07-30 00:31:52
阅读次数:
568
当数据包到达网络设备时,通常会触发硬件中断。系统在不支持软中断时,数据包的输入过程只能完全在硬件中断中处理。在这样的情况下,虽然可以完成数据包的输入,但硬件中断处理所占用的CPU资源过多,导致系统对其他硬件相应不够及时。
在有些情况下(某些嵌入式设备)下,数据包到达网络设备时并不会触发硬件中断,在这种情况下,只能通过定时器轮询网络设备的状态,当发现有数据包到达时,才从网络设备中读取数据包并输入到...
分类:
其他好文 时间:
2014-07-28 16:35:53
阅读次数:
442
1.基础知识巩固 1.1 中断分为两类: a)硬中断,就是通常所说的中断,中断处理程序运行在内核态,需要一定的硬件支持; b)软中断,是在软件层次上对中断的一种模拟,就是常说的信号,它的处理程序运行在用户态。它是软件级别的,不需要特定的硬件支持。 1.2 常见的信号:(用kill -...
分类:
系统相关 时间:
2014-07-26 01:41:16
阅读次数:
406
【摘要】本文分析了Linux内核对于信号的实现机制和应用层的相关处理。首先介绍了软中断信号的本质及信号的两种不同分类方法尤其是不可靠信号的原理。接着分析了内核对于信号的处理流程包括信号的触发/注册/执行及注销等。最后介绍了应用层的相关处理,主要包括信号处理函数的安装、信号的发送、屏蔽阻塞等,最后给了...
分类:
系统相关 时间:
2014-07-25 14:10:01
阅读次数:
387