## 1. 进程上下文切换Linux 按照特权等级,把进程的运行空间分为内核空间和用户空间。* 内核空间(Ring 0)具有最高权限,可以直接访问所有资源;* 用户空间(Ring 3)只能访问受限资源,不能直接访问内存等硬件设备,必须通过系统调用陷入到内核中,才能访问这些特权资源。进程既可以在用户空... ...
分类:
其他好文 时间:
2020-06-22 01:40:50
阅读次数:
103
jvm系列(一):java类的加载机制 1、什么是类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个 java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载的最终产品是位于堆区中的 Class对象, Cl ...
分类:
编程语言 时间:
2020-06-21 15:49:27
阅读次数:
48
分析OS系统调用 一些基本概念 系统调用概念 系统库中为系统调用编写了许多接口函数(API),不同的API对应了不同的真正的(OS内核中)系统调用 从实模式到保护模式 x86系统在刚开机时处于实模式,即cs:ip的寻址方式为cs左移四位+ip,寻址能力只有20位,当bootsect.s和setup. ...
分类:
其他好文 时间:
2020-06-20 13:08:19
阅读次数:
48
微服务系统拆分导致系统调用链路愈发复杂一个前端请求可能最终需要调用很多次后端服务才能完成,当整个请求变慢或不可用时,我们是无法得知该请求是由某个或某些后端服务引起的,这时就需要解决如何快读定位服务故障点,以对症下药。于是就有了分布式系统调用跟踪的诞生。针对微服务化应用链路追踪的问题,Google在2 ...
分类:
编程语言 时间:
2020-06-19 19:21:34
阅读次数:
139
今天定位了一个const引入的优化问题, 问题本身挺简单的, 但是自己太菜, 写代码时竟然没注意, 所以记录一下, 引起警戒. 问题背景与定位 测试团队反馈修改newlib系统调用以后跑coremark报错bad alloc, 于是就看了了下sbrk()的修改. 因为之前在修改newlib时需要通过 ...
分类:
其他好文 时间:
2020-06-17 23:15:52
阅读次数:
59
net-tools起源于BSD,自2001年起,Linux社区已经对其停止维护,而iproute2旨在取代net-tools,并提供了一些新功能。一些Linux发行版已经停止支持net-tools,只支持iproute2。net-tools通过procfs(/proc)和ioctl系统调用去访问和改... ...
分类:
Web程序 时间:
2020-06-16 18:40:43
阅读次数:
84
redis是一个内存数据库,数据保存在内存中,但是我们都知道内存的数据变化是很快的,也容易发生丢失。幸好Redis还为我们提供了持久化的机制,分别是RDB(Redis DataBase)和AOF(Append Only File)。 持久化流程: 既然redis的数据可以保存在磁盘上,那么这个流程是 ...
分类:
其他好文 时间:
2020-06-16 18:10:48
阅读次数:
72
实验要求 结合中断上下文切换和进程上下文切换分析Linux内核一般执行过程 以fork和execve系统调用为例分析中断上下文的切换 分析execve系统调用中断上下文的特殊之处 分析fork子进程启动执行时进程上下文的特殊之处 以系统调用作为特殊的中断,结合中断上下文切换和进程上下文切换分析Lin ...
分类:
系统相关 时间:
2020-06-15 23:17:57
阅读次数:
96
一.实验要求 1.以fork和execve系统调用为例分析中断上下文的切换 2.分析execve系统调用中断上下文的特殊之处 3.分析fork子进程启动执行时进程上下文的特殊之处 4.以系统调用作为特殊的中断,结合中断上下文切换和进程上下文切换分析Linux系统的一般执行过程 二.进程上下文和中断上 ...
分类:
系统相关 时间:
2020-06-15 23:00:02
阅读次数:
67
一、以fork和execve系统调用为例分析中断上下文的切换 fork系统调用可以创建一个子进程,它与父进程同时运行。创建新的子进程后,两个进程将执行fork系统调用之后的下一条指令。子进程使用相同的pc(程序计数器),相同的CPU寄存器,在父进程中使用的相同打开文件。调用fork之后,数据、堆、栈 ...
分类:
系统相关 时间:
2020-06-15 22:44:39
阅读次数:
74