Linux slob/slab/slub

Linux初始化通过bootmem/memblock引导内存分配进行内存管理,支持buddy system完成相关初始化后,将物理内存分配的功能转交给buddy system,buddy system是以page为单位分配方式。 对于内核要经常创建的对象, 如task_struct,fs_struct, mm_struct

2020-07-11 · 8 min · 1562 words · Garlic Space

The XY Problem

原文链接 The XY Problem

2020-06-21 · 1 min · 77 words · Garlic Space

安全攻防技能-安全基础概念

cybersecurity: 网络空间安全涉及旨在保护设备,网络,程序和数据免受攻击和未经授权的访问的一系列实践,流程和技术; 网络安全不仅可以保护数据,还可以保护存储数据的资源和技术。

2020-06-20 · 3 min · 501 words · Garlic Space

功能点分析法整理

由于工作需要,需要在项目立项前都需要进行功能点估算, 为后续计算项目组的的工作效率做准备。目前做了几次估算,在这里整理和总结一下。 我们目前使用的评估的标准参考 IFPUG: ISO/IEC 20926:2009 概述 定义: 1 2 3 The function point is a "unit of measurement" to express the amount of business functionality an information system (as a product) provides to a user. 功能点是业务功能的单位, 也就是从用户视角的进行评估, 是可以和用户交流的。对于我现在实施的外包项目来说就是用一种方法和甲方达成共识。相比较与之前的根据经验评估更有依据些。 步骤 1. 功能点应用的分类 开发项目: 从无到有 升级项目: 功能升级 应用项目: 基线评估 2. 识别应用边界 被测应用与用户间的边界。 3. 确认功能点 被测应用与用户间的边界。 数据功能 ILF: 容纳本应用维护的一组业务数据, 控制数据 ELF: 容纳外部应用维护的数据, 对于外部数据来说是他的ILF 处理功能 EI: 处理来自应用外部的的数据, 主要实现ILF的维护, 应用的控制 EO: 通过ILF生成新数据, 已报表,数据流形式送到应用以外 EQ: 请求来自应用外部, 处理过程包含输入,输出, 但输入不进行ILF文件的维护 复杂度 1. 复杂度评估涉及三种元素 RET & DET & FTR DET :用户可识别的,非重复的域 RET :用户可识别的数据的子集合 FTR: 引用文件类型 2. ILF & EIF 的复杂度 ILF & EIF 1 to 19 DET 20 to 50 DET 51 or more DET 1 RET Low Low Average 2 to 5 RET Low Average High 6 or more RET Average High High ILF: Functional Complexity Rating Unadjusted Function Points Low 7 Average 10 High 15 EIF: Functional Complexity Rating Unadjusted Function Points Low 5 Average 7 High 10 3. EI & EO & EQ 的复杂度 EI: 1 to 4 DET 5 to 15 DET 16 or more DET 0 to 1 FTR Low Low Average 2 FTRs Low Average High 3 or more FTRs Average High High EO & EQ 1 to 5 DET 6 to 19 DET 20 or more DET 0 to 1 FTR Low Low Average 2 to 3 FTRs Low Average High 4 or more FTRs Average High High EI & EQ: Functional Complexity Rating Unadjusted Function Points Low 3 Average 4 High 6 EO: Functional Complexity Rating Unadjusted Function Points Low 4 Average 5 High 7 关于复杂度我们实际场景中目前取的都是平均数, 没有对功能点负责度进一步分析,后续会对数据进行统计, 折算出应用的固定的权重。 ...

2020-06-04 · 3 min · 527 words · Garlic Space

buddy memory allocation相关整理

概述 wiki上的定义: The buddy memory allocation technique is a memory allocation algorithm that divides memory into partitions to try to satisfy a memory request as suitably as possible. This system makes use of splitting memory into halves to try to give a best fit. 伙伴内存分配技术是一种内存分配算法,它将内存划分为多个分区,以尝试尽可能适当地满足内存请求。 该系统利用将内存分成两半来尝试提供最佳匹配。 算法 伙伴系统有多种形式; 将每个块细分为两个较小块的块是最简单,最常见的一种。 选定块的大小要根据实际情况选取,太小则需要更多的内存记录跟踪内存分配, 太大又容易产生空间浪费,另外,就是如果选择2的次幂单位的话, 最大的块有可能不会覆盖整个内存. 例子 同样是wiki的例子,申请的内存调整了下 Step 64K 64K 64K 64K 64K 64K 64K 64K 64K 64K 64K 64K 64K 64K 64K 64K 1 24 2.1 23 23 2.2 22 22 23 2.3 21 21 22 23 2.4 20 20 21 22 23 2.5 A:20 20 21 22 23 3 A:20 20 B: 21 22 23 4 A:20 C:20 B: 21 22 23 5.1 A:20 C:20 B: 21 21 21 23 5.2 A:20 C:20 B: 21 D: 21 21 23 6 A:20 C:20 21 D: 21 21 23 7.1 A:20 C:20 21 21 21 23 7.2 A:20 C:20 21 22 23 8 20 C:20 21 22 23 9.1 20 20 21 22 23 9.2 21 21 22 23 9.3 22 22 23 9.4 23 23 9.5 24 初始化状态,每块64K, 最大的块包含 24 个块, 一个4阶块. ...

2020-05-29 · 3 min · 534 words · Garlic Space

Linux进程内存布局及映射信息

处理器在运行程序时,需要存储器来存放程序和程序使用的数据, 现代操作系统提供了存储器的抽象:虚拟存储器, 使得应用程序来说不用过多的考虑物理存储使用,简化了内存管理

2020-04-12 · 26 min · 5482 words · Garlic Space

内存管理 - 页面大小

内存管理发展阶段 内存(RAM)是计算机一种重要资源, 随着应用越来越复杂,不管存储器有多大,程序都可以把他填满,这就迫使人们不断寻找解决方案去管理它. 内存管理经历的几个阶段; 无存储抽象阶段 (No Memory abstraction) 地址空间 (Address Spaces) 虚拟内存 (Virtual Memory) 无存储抽象阶段: 直接使用物理地址, 简单和划分了用户和操作系统,(驱动程序)使用的内存. 早期的MSDOS采用这种管理方案。 通过每个进程基址寄存器和界限寄存器实现动态重定位,映射到不通的物理内存。通过交换技术和空闲内存管理, 处理内存超载 构建虚拟地址空间,通过MMU(内存管理单元)完成虚拟内存与物理内存的映射。 分页 分页就是出现虚拟内存这个阶段.虚拟地址按照固定大小划分成若干个页面Page, 物理内存中对应为页框 Page Frame (物理内存最小数据单位), 当程序试图访问内存时,MMU根据虚拟地址映射为物理地址. 页面大小 不同处理器体系结构页面大小 体系结构 最小页面 支持大页面 32-bit x86 4 KiB 4 MiB, 2 MiB x86-64 4 KiB 2 MiB, 1 GiB IA-64 (Itanium) 4 KiB 8 KiB, 64 KiB, 256 KiB, 1 MiB, 4 MiB, 16 MiB, 256 MiB Power ISA 4 KiB 64 KiB, 16 MiB, 16 GiB SPARC v8 with SPARC Reference MMU 4 KiB 256 KiB, 16 MiB ARMv7 4 KiB 64 KiB, 1 MiB , 16 MiB UltraSPARC Architecture 2007 8 KiB 64 KiB, 512 KiB , 4 MiB, 32 MiB, 256 MiB, 2 GiB, 16 GiB 页面大小考虑因素(wiki) 页面大小通常有处理器体系结构决定, 目前常用页面大小4KB。选择最佳页面大小要考虑一下几个因素: ...

2020-01-10 · 2 min · 420 words · Garlic Space

物理内存管理

SMP: CPU 通过总线访问内存, 称为 SMP 对称多处理器, 采用平坦内存模型, 物理页号连续, 总线成为瓶颈 - NUMA: CPU 都有本地内存, 访问内存不用总线, 称为 NUMA 非一致内存访问 采用非连续内存模型,页号不连续 - 稀疏内存模型

2019-11-03 · 1 min · 93 words · Garlic Space

进程内存布局

物理内存管理 - 虚拟内存管理 - 物理内存与虚拟内存的映射

2019-10-25 · 1 min · 182 words · Garlic Space

CMMI3相关

公司近期进行CMMI3, 公司目标很明确:招投标用的,过程中准备了一些材料,对于我们外包工作来说,还是有一定指导作用的。

2019-10-14 · 1 min · 187 words · Garlic Space