- 博客(7)
- 资源 (6)
- 收藏
- 关注
原创 Linux 系统Buffers与Cached的区别
上图中Buffers的数值等于“free -w”中buffers对应的数值。操作块设备时,块设备的缓存也由其inode节点进行管理,比如open("/dev/sd*")后的read/write操作。内核源代码fs/proc/meminfo.c文件中包含了命令“cat /proc/meminfo”具体执行步骤和显示的信息,源代码如下(只保留必要的函数)。通过命令“cat /proc/meminfo”可以获取系统中关于内存的整体信息,我们重点关注下图信息中的Buffers和Cached项。
2023-03-11 16:15:47
278
1
原创 Linux 进程栈与信号
栈与信号上一节讲的进程栈(包括内核栈和用户栈,具体参考《进程栈管理分析》)是如何分配的和一些使用场景。本节主要是给大家分享一下如何使用内核栈和用户栈来完成信号处理的。信号处理是在进程收到信号后要调用的信号处理程序。在完成一次信号处理的过程中需要在用户栈和内核栈道之间进行切换(切换进程的用户态和内核态)。信号处理的时机-在内核态返回用户态时执行。我们可以理解为判断当前进程有无收到信号是在内核态判断的。进程进入内核态后才可以处理信号。我们以“进程在用户态执行,被中断后进入内核态,并收到了信号,.
2020-07-12 09:55:41
647
原创 龙芯平台一次死锁分析过程
一.问题现象如图1所示: 图1 问题现象1.根据问题现象初步分析:出现问题时epc的值为rt_spin_lock_slowlock函数中的地址,分析该函数的源代码及反汇编代码如图2和图3所示。 ...
2020-06-08 19:24:47
707
原创 ftrace浅析-龙芯64位平台
ftrace 工作原理-龙芯平台一、函数注入trace调用1.以kernel_thread和sys_fork为例,源代码如图1-1所示:图1-1 源码2.在编译内核时,通过 gcc -pg 选项,编译时,函数开头自动插入ftrace_caller调用。上述两个函数的汇编代码如图1-2所示。图1-2 代码生成的汇编码在图1-1的源码中并没有ftrace...
2020-03-09 21:59:40
1184
原创 syslog & logrotate-循环固定大小保存日志文件
目标:使用syslog记录日志,并保持日志满1M,备份日志,备份的日志数达到10个后,使用新的日志文件替换旧的日志文件。1.记录日志文件的测试用例如图1所示:上述程序会在当前目录生成mysyslog日志文件,使用syslog输出的日志信息会记录在mysyslog文件中。2.配置logrotate文件,/etc/logrotate.conf文件,具体如图2所示:3.当日志文件...
2020-03-03 20:33:38
2729
原创 epoll 使用方法之socket 重要关系结构图
参考文章:https://tqr.ink/2017/10/05/implementation-of-epoll/
2020-02-21 16:42:05
466
原创 进程栈管理分析-基于龙芯64位处理器
一.Linux进程运行时分为用户态和内核态,用户态有其自有的内存布局,内核态有内核态的内存管理机制。进程栈的管理如图1所示。 图1 进程栈示意图说明:1.内核栈的底端为thread_info结构体,...
2020-02-12 18:41:52
633
ftrace-分析.doc
2020-03-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人