抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >

事务简介

事务简介事务是指一套操作,这些操作要么全部完成,要么全部不完成。 事务的四个特性 原子性(Atomicity) 这些操作要么全部执行成功,要么全部不执行。只要一个指令执行失败数据就要进行回滚到指令执行之前的状态 一致性(Consistency) 事务的执行使数据从一个状态转换为另一个状态,但是对于整个数据的完整性保持稳定 隔离性(Isolation) 当多个用户并发访问时,事务之间不...

RUP简介以及常用模型

RUP有时候用户需求难以捉摸,甚至连用户自己都理不清,RUP就提供了一系列模板方便我们快速地获取用户的需求。用户只需要像填写表格一样把公式化的内容填上,再套用对应的模板,建立一系列模型,就能快速地系统地开发。 为此RUP还定义了一些术语来通用的建模和描述业务。 1.1 什么叫迭代增量式iteration incrementation开发将整个开发工作组织成一系列小的项目,被称为一系列迭代。根...

execv中的缓存管理分析

page cache与缓存管理直接从磁盘访问文件会很慢,可以利用空闲的内存来缓存一些磁盘文件的内容,这部分用作缓存磁盘文件的内存就叫做page cache。 1 execv中的调用page cache的流程执行read()系统调用后,首先会查看page cache里有没有目标文件的内容,如果有(cache hit),直接读取;如果没有(cache miss)再从磁盘上读取,放入page ca...

Buddy系统的原理及实现

Buddy系统的原理及实现 本质上就是一个多级链表, 然后使用伙伴系统这种特殊的”索引方式”开快速分配和查找所需内存 通过”二分查找”的方式快速找到所需大小的内存空间。对于大内存的分配是比较快的。 基本要素: 多级freelist用于索引: e.g. 有大小为32, 64, 128…的freelist heap空间用于分配, bitmap用于标识是否分配 对齐空间内存布局用于快速删该 ...

slab分配器

slab分配器slab分配器的两个功能: 1 减少内部碎片: 小结构占用一个page不划算 一般名为kmalloc-xxx, e.g. kmalloc-4096, 这些是通用型slab 2 作为高速缓存,存储内核中经常被分配并释放的对象 Jeff Bonwick 发现对内核中普通对象进行初始化所需的时间超过了对其进行分配和释放所需的时间。因此他的结论是不应该将内存释放回一个全局的内...

execv中地址地址映射流程分析

1 execv函数地址映射流程分析1.1 execv如何填充新进程的页表execv()中会调用bprm_mm_init函数准备一个linux_binprm结构体,该结构体用于描述新进程的各种信息,最后由search_binary_handler找到对应文件格式的处理程序加载执行load_binary。 其中bprm_mm_init会执行如下流程: 123456789101112bprm_mm...

Docker底层原理

Docker底层原理Ref Docker使用linux内核的一些特性来实现其一些功能 NamespacesDocker使用命名空间(Namespaces)来隔离工作区,一个隔离的工作区就称为一个容器。当启动一个容器时docker就会为该容器设置一系列namespaces。 docker使用如下的命名空间: The pid namespace: 进程隔离 The net namespace:...

进程退出和销毁过程分析

进程退出和销毁过程分析结束一个进程的生命可以分为两个步骤:进程退出和进程销毁。进程退出主要是释放进程的资源,使进程称为僵死(TASK_ZOMBIE)状态;进程销毁主要是通过父进程,释放僵死进程的各种信息 当前进程被设为TASK_ZOMBIE僵死状态后会向其父进程发生SIGCHLD信号,父进程收到SIGCHLD信号后父进程会销毁僵死状态的子进程。 父进程通过调用wait()或waitpid()...

execv的执行过程

execv执行过程可执行程序的表示elf文件格式Linux下标准的可执行文件格式是ELF(Executable and Linking Format),是一种对象文件的格式,用于定义不同类型的对象文件(Object files)中都放了什么东西、以及都以什么样的格式去放这些东西。 但是linux也支持其他不同的可执行程序格式, 各个可执行程序的执行方式不尽相同, 因此linux内核每种被注册...

使用systemtap实现进程的跟踪

使用systemtap实现进程的跟踪systemtap安装systemtap安装分为两个部分,一个是安装systemtap本身;另一个是安装对应的内核信息包(Kernel Information Packages),否则systemtap将无法深入内核探测。 以下以在centos中安装为例。 安装systemtap 使用对应的包管理工具安装,如centos中yum install syst...