会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
tsecer
上一页
1
···
31
32
33
34
35
36
37
下一页
2019年3月6日
Linux下386中断处理
摘要: 一、中断和异常 这两个概念虽然处理的方式大致相同,但是本质上是有很大差别的,而且在386下它们的处理和语义对系统中最为重要的内容的理解是很重要的。 首先一个最为重要的差别就是: 当中断发生的时候,处理器在执行了Cs IP EFLAGS(可能还由用户态的SS和ESP)这个一气呵成的寄存器保存之后,处理
阅读全文
posted @ 2019-03-06 20:35 tsecer
阅读(518)
评论(0)
推荐(0)
任务的休眠与唤醒
摘要: 一、问题 任务的基本状态就是可运行与不可运行,这是一个任务的基本状态,正是运行的任务完成了真正的内核功能,而非运行的任务实现了任务的同步。所以任务的运行与非运行的转换是内核调度的一个基本功能。 二、设置的时机和方式 1、任务的去活跃 从调度的代码中看,一个线程设置为活跃与不活跃的两个最基本的操作分别
阅读全文
posted @ 2019-03-06 20:34 tsecer
阅读(545)
评论(0)
推荐(0)
Linux下SIGSTOP的特殊特征和实现
摘要: 一、问题的引出 在多线程用户态程序中,为了更加准确详细的从一个线程观察另一个线程的行为,可能有时候需要让目标线程暂时安静下来,从而便于观测和监控。关于这个行为,首先想到的当然就是向一个线程发送一个SIGSTOP信号(注意,不是向进程,就是通过内核的tkill系统调用,或者说pthread_kill)
阅读全文
posted @ 2019-03-06 20:33 tsecer
阅读(3591)
评论(0)
推荐(0)
内核线程对信号的处理策略
摘要: 一、引出 大家都知道,信号是在进程返回用户态的时候触发执行的一种机制,但是对于内核线程来说,它们并不会返回用户态。这就好像《大话西游》里打劫脚底板的时候那位坐轿的官人没有脚底板一样尴尬。另一方面,通过sigprocmask是不能屏蔽掉SIGKILL和SIGSTOP两个信号的,所以如果我们通过kill
阅读全文
posted @ 2019-03-06 20:32 tsecer
阅读(1508)
评论(0)
推荐(2)
strace如何获得系统调用相关信息
摘要: 一、问题的引出 对于很多的Linux下程序,我们有时候并不像详细的知道它执行的每一条指令或者,或者我们不想(或者不能)进行源代码级的调试,而只实现想大致看一下某个程序它执行了哪些核心的API调用,从而判断出程序执行的关键路径。此时使用strace是一个不错的选择,它可以不间断的执行完一个子程序,从而
阅读全文
posted @ 2019-03-06 20:31 tsecer
阅读(566)
评论(0)
推荐(0)
从pthread中获得tid及pthread_mutex_unlock本身用户态互斥
摘要: 一、pthread结构中获取tid 这个问题是由于很多时候我们都是通过gettid来获得一个线程的tid,其实这个是一个非常简单的系统调用,但是即使它非常简单,我们还是要执行进行系统调用而引入的寄存器保存/恢复等操作。但是,在C库的pthread库的实现过程中,我们可以看到,用户态是肯定保存了一个线
阅读全文
posted @ 2019-03-06 20:30 tsecer
阅读(961)
评论(0)
推荐(0)
2.6内核中动态模块加载时参数设置
摘要: 一、问题的引出 在执行modprobe 的时候,发现oprofile这个动态模块可以在加载时指定参数,强制使用timer=1来让内核使用定时器方式来进行系统的监控。从常识上来说,这个timer参数肯定不是在用户态解析出来的,因为模块加载毕竟是一个模块特有的框架性东西,不可能在用户态做专门出来,所以就
阅读全文
posted @ 2019-03-06 20:29 tsecer
阅读(729)
评论(0)
推荐(0)
I386下Oprofile实现
摘要: 一、引入 OProfile是Linux下性能检测的重要工具,对于系统的优化和评估有意义。例如我们的某一个单板发现CPU利用率很低,也就是真正的工作任务执行的时间不长,所以我们要分析一下系统中是哪些任务占用了大量的CPU时间,此时就需要使用OProfile工具了。 二、原理 现在大部分的CPU都在硬件
阅读全文
posted @ 2019-03-06 20:27 tsecer
阅读(199)
评论(0)
推荐(0)
Linux2.6中启动ramdisk分析
摘要: 一、起因 使用busybox制作了一个cpio.gz的文件系统,然后使用这个文件系统作为qemu的启动盘进行启动,最后发现可以识别出是一个cpio文件系统,但是到最后还是出现了panic,说是找不到文件系统。大致的错误类型为"VFS: Cannot open root device \" …… pa
阅读全文
posted @ 2019-03-06 20:26 tsecer
阅读(692)
评论(0)
推荐(0)
initrd、rootfs及内核root=参数
摘要: 一、0号和1号进程 通俗的讲,0号进程就是以start_kernel为入口的一个任务,也就是内核本身,这个任务的task_struct结构就是我们在编译的时候静态初始化的init_task结构,这个结构的位置和地址在可执行文件生成的时候就已经确定,其中的大部分成员都按照所需进行了初始化。 1号任务就
阅读全文
posted @ 2019-03-06 20:25 tsecer
阅读(5623)
评论(0)
推荐(1)
上一页
1
···
31
32
33
34
35
36
37
下一页
导航
博客园
首页
新随笔
联系
订阅
管理
公告