3 chen_song_

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 2w+

物理内存管理之非连续内存分配

前言正文一,非连续内存分配的需求背景1, 连续分配的缺点分配给程序的物理内存必须连续存在外碎片和内碎片内存分配的动态修改困难内存利用率较低2,非连续分配的设计目标: 提高内存利用效率和概率灵活性允许一个程序的使用非连续的物理地址空间允许共享代码与数据支持动态加载和动态链接3,非连续分配需要解决的问题如何实现虚拟地址和物理地址的转换- 软件实现(灵活,开销大)- 硬件实现(够用,开销小)4, 非连续分配的硬件负责机制如何选择非连续分配中的内存分块大小段式存

2020-07-12 22:36:30

计算机物理内存管理之连续内存分配

前言正文一, 计算机体系结构和内存层次1,计算机系统结构计算机系统体系结构2, 内存层次3, 操作系统的内存管理方式操作系统中采用的内存管理方式重定位(relocation)分段(segmentation)分页(paging)虚拟存储(virtual memeory)目前多数系统(如linux)采用按页式虚拟存储实现高度依赖硬件与计算机存储架构紧耦合MMU(内存管理单元):处理CPU存储访问请求的硬件二, 地址空间和地址生成1, 地址空间的定

2020-07-12 22:27:11

加载系统的流程, 中断,异常和系统调用

一, 启动流程计算机体系结构启动时的计算机内存和磁盘分布图CS:IP = 0XF000:FFF0 (CS:代码段寄存器; IP:指令指针寄存器)系统处于实模式 (刚刚通电情况下)PC = 16 * CS + IP20位地址空间:1MB (可用)BIOS固件提供功能:基本输入输出的程序系统设置信息开机后自检程序系统自启动程序等流程:BIOS:BIOS将加载程序从磁盘的引导扇区(512字节)加载到0X7C00地址处, 跳转到CS:IP = 0000:7C0

2020-07-12 22:08:36

初级排序算法- 1,选择排序 2, 插入排序 3, 希尔排序 4, 归并排序 5, 快速排序 6, 堆排序

前言正文一, 选择排序选择排序是排序中最简单的排序算法,它的操作是这样的: 首先找到数组中最小那个的元素,其次,将它和数组的第一个元素交换位置(如果第一个元素就是最小元素那么它就和自己交换)。再次,剩下的元素中找到最小的元素,将它与数组的第二个元素交换位置。如此往复,直到将整个数组排序。它在不断地选择剩余元素之中的最小者。命题A: 对于长度为N的数组,选择排序需要大约(N^2)/2次比较和N次交换证明: 可以通过身份的排序轨迹来证明这一点。我们用一张N*N的表格来表示排序的轨迹(上图),其中每个

2020-07-06 22:22:24

STL源码之序列式容器list

前言STL中list链表即双向链表又是循环链表正文一, STL源码之序列式容器list的节点和内置内存申请alloc节点的设计1, 使用两个指针 父节点指针和下一个节点的指针template <class T>struct __list_node { typedef void* void_pointer; void_pointer next; void_pointer prev; T data; //数据};2, 内置的内存分配器是链表结构 使用需要一个节点的

2020-06-30 20:20:08

STL源码解析之内存分配器alloc

前言正文一, C++中的对象new的流程在C++中 new是调用::operator new (); //分配内存的在调用赋值函数 construct();释放的流程destroy() ::operator delete ; //释放内存 //初始化对象的值 template <class T1, class T2> inline void construct(T1*p, const T2& value) { new (p) T

2020-06-25 14:38:06

STL源码之模版语法实现

C++中模版语法解1, 模版参数做特殊化设计#include <iostream>template<class T, class O>class ctest_class{public: ctest_class() { std::cout << "I, O" << std::endl; } // static int m_data;};//特殊化处理template<class T>class ctest_cla

2020-06-21 23:34:36

德州扑克之赛事

一, 赛事赛事几个重要东西报名费奖励圈一场赛事需要的时间停止报名赛事结束条件赛事有很多人打一场赛事 , 而每个人都需要交一定报名费。参加赛事,当是赛事报名费这个就不需要讲解什么了第二个:奖励圈 (这里就需要促进玩家玩我们的赛事, 就需要一个保守奖励,不管报的人数是二个人是 5个人都是需要发送这个最低的奖励的,)第三个:一场赛事需要的时间是,赛事中级别控制的 每个级别规定多少分钟后就进入下一个等级, 每个等级的前注都是不同等级越大就越大的, 所以控制每个等级时间就可以控制赛事的时间了

2020-06-13 19:51:40

背包模块之武器

一, 背包模块的设计背包模块在游戏中始终贯穿整个游戏,背包模块设计的好坏影响到整个游戏。是物品类的设计的里面需要包含哪些属性id配置表id物品的等级物品是否被那个hero使用 hero_id物品是否改造过物品的改造花费的那一个物品的数量物品的数量其中物品的属性可以通过配置表id查询配置表得到物品的类型二,物品之武器的模块物品之武器模块通常有的功能武器升级武器改造物品出售武器合并武器分解武器,hero和武器排行榜相连接这里拿武器升级来说 武器升级, 需要花费金币

2020-06-13 19:03:22

protobuf的序列化和反序列化的分析

1, protobuf序列化分析protobuf的文件 格式syntax = "proto2";message test_proto{ optional int32 proto1 = 1; optional int32 proto2 = 2; optional int32 proto3 = 3; optional int32 ...

2020-04-12 02:56:19

core文件处理和进程查询

一,core的信号core的信号处理方式:终止进程+产生core文件设置生成core:ulimit -c unlimited取消生成core:ulimit-c 0gdb调试使用bag设置core文件格式:/proc/sys/kernel/core_pattern 文件不能vi,可以用后面的套路 ,使用root权限 echo "core-%e-%p-%t" > /proc/sys/kernel/c

2020-02-06 13:05:37

CPU的占有率计算

一, 周期(时间片)我们这里以4GHz就是CPU的频率我们了解频率单位Hz 是频率的单位。频率是指电脉冲,交流电波形,电磁波,声波和机械的振动周期循环时,1秒钟重复的次数。1Hz代表每秒钟周期震动1次,60Hz代表每秒周期震动60次。Hz是个很小的单位,通常在其前面加上k(千),M(百万),G(十亿),T(万亿)等数量级单位。KHz,千赫兹,是频率,也可以说是采样率,一般都是44.1...

2020-01-14 22:06:45

数据结构之B树和B+树基本概念

前言正文一, B树1, B树的基本性质B树,又称多路平衡查找树,B树中所有结点的孩子结点数的最大值称为B树的阶,通常用m表示。一棵m阶B树或为空树,或为满足如下特性的m叉树;树中每个结点至多有m颗子树(即至多含有m-1个关键字)。若根结点不是终端结点,则至少有两颗子树。除根结点外的所有非叶结点至少有[m/2]颗子树(即至少含有[m/2] - 1个关键字)。2, B树的高度(磁盘...

2020-01-03 04:03:51

redis源码分析之布隆过滤器-机器学习

=====================================================redis源码学习系列文章: redis源码分析之sha1算法分析redis源码分析之字典源码分析redis源码分析之内存编码分析intset, ziplist编码分析redis源码分析之跳跃表 redis源码分析之内存淘汰策略的原理分析redis源码分析之对象系统源码分析str...

2019-12-10 00:59:55

树的四种遍历案例和AVL树的旋转的四种情况

树与二叉树一, 树的基本术语树中一个结点的子结点个数称为该结点的度, 树中结点的最大度数称为树的度。如结点B的度为2,结点D的度为3,树的度为3.度大于0的结点称为分支结点(又称非终端结点),度为0(没有子女结点)的结点称为叶子结点(又称终端结点)。在分支结点中,每个结点的分支数就是该结点的度。结点的深度,高度和层次。二, 树的性质树中的结点数等于所有结点的度数加1。度为m的...

2019-11-25 01:38:29

redis源码分析之主从同步源码分析

=====================================================redis源码学习系列文章:redis源码分析之sha1算法分析redis源码分析之字典源码分析redis源码分析之内存编码分析intset, ziplist编码分析redis源码分析之跳跃表redis源码分析之内存淘汰策略的原理分析redis源码分析之对象系统源码分析strin...

2019-10-26 17:40:05

redis源码分析之异步进程保存数据rdb文件和aof文件源码分析

=====================================================redis源码学习系列文章:redis源码分析之sha1算法分析redis源码分析之字典源码分析redis源码分析之内存编码分析intset, ziplist编码分析redis源码分析之跳跃表redis源码分析之内存淘汰策略的原理分析redis源码分析之对象系统源码分析strin...

2019-10-19 23:25:40

redis源码分析之字典源码分析

=====================================================redis源码学习系列文章:redis源码分析之sha1算法分析redis源码分析之字典源码分析redis源码分析之内存编码分析intset, ziplist编码分析redis源码分析之跳跃表redis源码分析之内存淘汰策略的原理分析redis源码分析之对象系统源码分析strin...

2019-10-14 21:53:31

redis源码分析之对象系统源码分析-string, list链表,hash哈希,set集合,zset有序集合

前言在redis中使用五种数据结构都封装成对象系统分析流程redis对象数据结构介绍和对应数据使用编码格式string 介绍list链表底层实现原理hash哈希底层实现原理set集合底层实现原理zset有序集合底层实现原理正文一, redis对象数据结构介绍和对应数据使用编码格式redis中对象的数据结构typedef struct redisObject { ...

2019-10-14 20:19:27

redis源码分析之内存编码分析 intset, ziplist编码分析

前言redis是内存操作的对数据的编码也自己的一套编码的格式分析流程intset数据编码intset数据插入的分析intset数据查找的分析intset数据删除的分析ziplist数据的编码ziplist数据的插入的分析ziplist数据的合并的分析ziplist数据的查找的分析ziplist数据的删除的分析正文一, intset数据结构编码分析...

2019-10-10 01:12:34

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 签到达人
    签到达人
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 技术圈认证
    技术圈认证
    用户完成年度认证,即可获得
  • 阅读者勋章Lv2
    阅读者勋章Lv2
    授予在CSDN APP累计阅读博文达到7天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。