2 17
分布式系统学习:二阶段提交

CAP理论

在学习分布式的相关知识点前,一定要先掌握CAP定理:

  • C(onsistency) 一致性:分布式环境中,CAP关注的粒度是数据,而不是系统,而数据往往存在于多个副本之中,一致性是指多个副本之间,在同一时刻能否有同样的值(内容和组织上的数据)

  • A(vailability) 可用性:系统提供的服务必须一直处于可用的状态。即使集群中一部分节点故障。换句话说就是用户在容忍的时间范围内返回用户期望的结果

  • P(artition-resiliene) 分区容错性:系统在遇到节点故障,或者网络分区时(断网),依然能对外提供一致性和可用性的服务,在分布式系统架构中,通常由多个节点组成,由于节点通讯往往依赖网络,网络在现实中不是100%可靠的,所以分区容错是分布式的一个 “最基本要求” ,所以一般我们常见的CAP架构只有 AP和CP。

2 16
Linux内核学习:虚拟文件系统

Linux的成功因素之一是它具有与其它操作系统和谐共存的能力,其中代表作之一就是虚拟文件系统(VFS)。

VFS的思想是把不同类型文件的共同信息放入内核,具体思路是通过Linux在用户进程(或C库)和文件系统之间引入了一个抽象层,该抽象层称之为虚拟文件系统(VFS)。

vfs arch

VFS的任务主要是提供一种操作文件、目录以及其他对象的统一方法还有它必须能够与各种方法给出的具体文件系统实现达成妥协。

1 27
Linux内核学习:内存管理

理解Linux内存管理能够更好地理解进程的虚拟空间排布(当一个进程需要某块内存时,它会把自己的一个内存地址交由OS处理)。

虽然进程只关心如何使用自己的线性排列的虚拟地址,而不需要关心物理内存的实际容量,以及如何使用真实的物理内存,但内存管理是内核最复杂的同时也是最重要的一部分;它是协作处理器与内核的关键流程,所以本文我们主要介绍Linux内存管理的相关知识点。

典型的进程内存排布如下:

process mem

操作系统有保护措施,阻止堆和栈的越界行为发生

1 20
Linux内核学习:进程

进程基本概念

进程是Unix及其衍生操作系统的根本,通常我们把一个程序的执行称为一个进程,换句话说,进程用于描述程序的执行过程。进程不能笼统地作为程序+执行的结果,从内核的观点看,进程的目的就是担当分配系统资源的实体,也是操作系统进行资源分配的一个基本单位。

进程所涉及的资源一般指:内存地址空间、文件描述符、线程栈和寄存器等。

进程并不仅仅局限于一段可执行的代码段,通常进程还包含各种资源(打开的文件、挂起的信号、内存管理信息、处理器状态、一个或多个内存映射的内存地址空间以及一个或多个线程,当然还包含用来存放全局变量的数据段等)。

总结一句就是:程序本身并不是进程,进程(内核也叫任务)是处于执行期间的程序以及相关的资源的总称。

后一页