1.并发是指多个执行单元同时、并行的执行。并发的执行单元对共享资源的访问很容易导致竞态。 在 Linux 内核中,主要的竞态发生于如下几种情况: ①对称多处理器(SMP)的多个 CPU ②单CPU内进程与抢占它的进程 ③中断(硬中断、软中断、Tasklet、底半部)与进程之间 2.解决竞态的方法 ① ...
分类:
系统相关 时间:
2016-04-26 12:21:18
阅读次数:
213
Linux信号(signal) 机制分析 【摘要】本文分析了Linux内核对于信号的实现机制和应用层的相关处理。首先介绍了软中断信号的本质及信号的两种不同分类方法尤其是不可靠信号的原理。接着分析了内核对于信号的处理流程包括信号的触发/注册/执行及注销等。最后介绍了应用层的相关处理,主要包括信号处理函 ...
分类:
系统相关 时间:
2016-04-22 16:07:50
阅读次数:
283
说起信号,就像是一个软中断一样,就是一个信号来了以后我们程序中断当前执行的代码,找到之前注册过的相应信号的执行代码进行处理.其实我们使用的非常的广泛了,就像我们在终端里面要停止一个进程的运行,我们会同时按下ctrl+C的按键来终止程序,这个就是一个信号,是停止信号,是标号为9的信号,我们可以使用ki ...
分类:
系统相关 时间:
2016-04-17 16:18:06
阅读次数:
236
因为在下能力相当有限,有不当之处。还望大家批评指正^_^ 一、 信号概念 信号(signal)是软中断。信号提供了一种处理异步事件的方式。当各种各样的事件发生时,程序对应的会收到各种各样的信号。对于大部分信号,程序能够自行决定怎样处理他们。 程序在什么情况下会收到信号。以下是一些样例 运行某条指令, ...
分类:
系统相关 时间:
2016-03-31 14:23:25
阅读次数:
248
一、实验截图 二、系统调用流程图: 三、总结:系统调用过程分析 linux的系统调用过程:用户程序→C库(即API):INT 0x80 →system_call→系统调用服务例程→内核程序。我们常说的用户API其实就是系统提供的C库。 系统调用是通过软中断指令 INT 0x80 实现的,而这条INT ...
分类:
系统相关 时间:
2016-03-27 21:10:45
阅读次数:
258
【摘要】本文分析了Linux内核对于信号的实现机制和应用层 的相关处理。首先介绍了软中断信号的本质及信号的两种不同分类方法尤其是不可靠信号的原理。接着分析了内核对于信号的处理流程包括信号的触发/注册/执行 及注销等。最后介绍了应用层的相关处理,主要包括信号处理函数的安装、信号的发送、屏蔽阻塞等,最后 ...
分类:
系统相关 时间:
2016-03-27 14:04:17
阅读次数:
267
本实验目的:通过以一个简单的menu小程序,跟踪系统调用的过程,分析与总结系统调用的机制和三层进入的过程。 实验原理:系统调用处理过程与中断处理的机制 系统调用是通过软中断指令 INT 0x80 实现的,而这条INT 0x80指令就被封装在C库的函数中。(软中断和我们常说的硬中断不同之处在于,软中断 ...
分类:
系统相关 时间:
2016-03-26 15:28:04
阅读次数:
259
1. 注册软中断当然是通过open_softirq 例子如下: 软中断TIMER_SOFTIRQ的中断处理函数为:run_timer_softirq 之所以成为softirq,是因为这些中断是由硬件中断来间接触发的,如何间接触发的呢:硬件中断处理函数-->对软中断的相应位置位-->唤醒ksoftir ...
分类:
系统相关 时间:
2016-03-23 21:41:24
阅读次数:
260
并发指的是多个执行单元同时、并行被执行,而并发的执行单元对共享资源的访问则很容易导致竞态 linux内核中主要竞态1.多对称处理器的多个CPU 2.单CPU内进程与抢占它的进程 3.中断(硬中断、软中断、Tasklet、下半部)与进程之间访问共享内存资源的代码区称为“临界区”,临界区需要被以某种互斥
分类:
系统相关 时间:
2016-03-12 01:29:18
阅读次数:
319
系统调用 函数实现体在内核空间,提供给应用程序来使用,就是一个系统调用。 工作流程 1.通过软中断(swi)从用户空间切换到内核空间。entry-common.S中的ENTRY(vector_swi)是用来处理软中断的。系统调用通常从r7寄存器中取出系统调用编号。 2.通过系统调用编号从系统调用表中
分类:
系统相关 时间:
2016-03-06 15:55:35
阅读次数:
186