草庐IT

[自制操作系统] 第14回 内存管理系统

目录一、前景回顾二、位图bitmap及函数实现三、内存池划分四、运行 一、前景回顾  前面我们已经花了一个回合来完善了一下我们的系统,包括增加了makefile,ASSERT以及一些常见的字符串操作函数。关于makefile,还是我以前学习Linux系统编程的时候学了一点点,很久没用导致就几乎都忘了,还是花了一下午时间去补了一下。看来知识这个东西,还是得温故而知新。     随时还是要回过头来总结一下我们的工作,上面是目前为止的工作,其实我们可以看到,现在我们的主要工作就是不停地往init_all()里面去填充一系列初始化函数,本回合也不例外,今天我们开始进入内存管理系统。二、位图bitmap

大道如青天,协程来通信,Go lang1.18入门精炼教程,由白丁入鸿儒,Go lang通道channel的使用EP14

众所周知,Golang的作用域相对严格,数据之间的通信往往要依靠参数的传递,但如果想在多个协程任务中间做数据通信,就需要通道(channel)的参与,我们可以把数据封装成一个对象,然后把这个对象的指针传入某个通道变量中,另外一个协程从这个通道中读出变量的指针,并处理其指向的内存对象。通道的声明与创建packagemainimport"fmt"funcmain(){ varachanint ifa==nil{ fmt.Println("通道是空的,不能使用,需要先创建通道") a=make(chanint) fmt.Printf("数据类型是:%T",a) }}这里注意,通道声明之后还需要

大道如青天,协程来通信,Go lang1.18入门精炼教程,由白丁入鸿儒,Go lang通道channel的使用EP14

众所周知,Golang的作用域相对严格,数据之间的通信往往要依靠参数的传递,但如果想在多个协程任务中间做数据通信,就需要通道(channel)的参与,我们可以把数据封装成一个对象,然后把这个对象的指针传入某个通道变量中,另外一个协程从这个通道中读出变量的指针,并处理其指向的内存对象。通道的声明与创建packagemainimport"fmt"funcmain(){ varachanint ifa==nil{ fmt.Println("通道是空的,不能使用,需要先创建通道") a=make(chanint) fmt.Printf("数据类型是:%T",a) }}这里注意,通道声明之后还需要

原创工具14Finger-全能web指纹识别与分享平台

14Finger功能齐全的Web指纹扫描和分享平台,基于vue3+django前后端分离的web架构,并集成了长亭出品的rad爬虫的功能,内置了一万多条互联网开源的指纹信息。Github:https://github.com/b1ackc4t/14Finger特点基于强大的rad爬虫分析指纹,不局限于当前页面能够执行js脚本,动态js加载的应用也能扫描,比如Vue应用多线程,多进程,速度尚可人性化的指纹提交功能,指纹种类和信息划分精细,可供用户打造出自己的无敌指纹库批量爬虫、批量指纹,均在后台处理,无需前台等待平台部署如要部署到公网请修改djangoSECRET_KEY,在settings.p

原创工具14Finger-全能web指纹识别与分享平台

14Finger功能齐全的Web指纹扫描和分享平台,基于vue3+django前后端分离的web架构,并集成了长亭出品的rad爬虫的功能,内置了一万多条互联网开源的指纹信息。Github:https://github.com/b1ackc4t/14Finger特点基于强大的rad爬虫分析指纹,不局限于当前页面能够执行js脚本,动态js加载的应用也能扫描,比如Vue应用多线程,多进程,速度尚可人性化的指纹提交功能,指纹种类和信息划分精细,可供用户打造出自己的无敌指纹库批量爬虫、批量指纹,均在后台处理,无需前台等待平台部署如要部署到公网请修改djangoSECRET_KEY,在settings.p

14. 构造二叉树

title:构造二叉树,看这一篇就足够!思想:构造整棵树=根节点+构造左子树+构造右子树?题目一描述题目链接:从中序与后序遍历构造二叉树?解题思路必须明确条件:给出一个数组的值中,是没有重复的数字的,即没用节点的数值是相同的!画图分析:(图来自dong哥)可以很明确得知:后续遍历数组中postEnd就是中点的值,通过中点的值我们就可以在中序遍历数组中找到中点的位置,从而分割出左子树,右子树,递归就可以完成构建;classSolution{public:TreeNode*buildTree(vector&inorder,vector&postorder){returnbuild(inorder,

14. 构造二叉树

title:构造二叉树,看这一篇就足够!思想:构造整棵树=根节点+构造左子树+构造右子树?题目一描述题目链接:从中序与后序遍历构造二叉树?解题思路必须明确条件:给出一个数组的值中,是没有重复的数字的,即没用节点的数值是相同的!画图分析:(图来自dong哥)可以很明确得知:后续遍历数组中postEnd就是中点的值,通过中点的值我们就可以在中序遍历数组中找到中点的位置,从而分割出左子树,右子树,递归就可以完成构建;classSolution{public:TreeNode*buildTree(vector&inorder,vector&postorder){returnbuild(inorder,

14个Python处理Excel的常用操作,我先试过了,非常好用

自从学了Python后就逼迫用Python来处理Excel,所有操作用Python实现。目的是巩固Python,与增强数据处理能力。这也是我写这篇文章的初衷。废话不说了,直接进入正题。数据是网上找到的销售数据,长这样:一、关联公式:Vlookupvlookup是excel几乎最常用的公式,一般用于两个表的关联查询等。所以我先把这张表分为两个表。df1=sale[['订单明细号','单据日期','地区名称','业务员名称','客户分类','存货编码','客户名称','业务员编码','存货名称','订单号','客户编码','部门名称','部门编码']]df2=sale[['订单明细号','存货分类

14个Python处理Excel的常用操作,我先试过了,非常好用

自从学了Python后就逼迫用Python来处理Excel,所有操作用Python实现。目的是巩固Python,与增强数据处理能力。这也是我写这篇文章的初衷。废话不说了,直接进入正题。数据是网上找到的销售数据,长这样:一、关联公式:Vlookupvlookup是excel几乎最常用的公式,一般用于两个表的关联查询等。所以我先把这张表分为两个表。df1=sale[['订单明细号','单据日期','地区名称','业务员名称','客户分类','存货编码','客户名称','业务员编码','存货名称','订单号','客户编码','部门名称','部门编码']]df2=sale[['订单明细号','存货分类

PowerDotNet平台化软件架构设计与实现系列(14):平台建设指南

软件开发中常见的几种不同服务模型包括SaaS(软件即服务)、LaaS(许可即服务)、PaaS(平台即服务)、CaaS(容器即服务)、IaaS(基础设施即服务)和FaaS(功能即服务)。很多人认为IaaS和FaaS是趋势,是未来软件设计与开发人员的基本必备技能,PowerDotNet和PowerDotNetCore也特别注重这方面的设计开发和积累,目前已经做出了一些尝试、实践和探索。PowerDotNet和PowerDotNetCore实现的公共服务按照主要功能模块进行划分,可以分为基础设施、框架工具以及业务(微)服务三大类,客户端和前端也小有所成,工作量较为饱和。根据个人经验,框架类库和各种流