自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

密码小仙女

小仙女带你学密码

  • 博客(12)
  • 收藏
  • 关注

原创 C/C++ 代码安全(五)

规则:不要使用rand( ) 函数生成伪随机数,这个函数不保证不保证产生随机序列质量,比较好预测。使用random( ) 替换。规则:正确的设置伪随机数生成器的种子,在random() 之前调用srandom( ) ,以设置伪随机数生成器。规则:不要向asctime( ) 函数提供无效数据。规则:确保控制永远不会到达非void 函数的结束位置。结尾处无求值语句,为未...

2016-08-30 21:18:02 772

原创 C/C++ 代码安全(四)

规则:不要访问已经释放的内存。使用引用被free( ) 或者 realloc( ) 函数调用释放的内存指针值是未确定的。需要注意的一点是,realloc( ) 可能会释放原来的指针。规则:在不需要时释放动态分配的内存。规则:动态分配和复制包含灵活数组成员结构。为了避免未定义行为,包含灵活数组成员的结构应该始终动态分配,具有灵活数组成员的结构必须:@使用动态存储期间(...

2016-08-29 22:54:57 766

原创 C/C++ 代码安全(三)

规则:确保无符号整数运算不产生回绕,如果底层整数表示无法表示无符号整数运算的结果,该值可能发生回绕。在8086处理器上整数溢出也就仅仅会发生一个标志位修改罢了。所以我们还是要注意整数溢出发生回绕现象。/*错误实例,这很有可能发生回绕*/ void func(unsigned int ui_a,unsigned int ui_b){ unsigned int usum = ui_a +...

2016-08-28 16:33:13 982

原创 C/C++ 代码安全(二)

规则:声明的每一个对象都必须具有正确的存储期。对象的生命周期是程序执行的一部分,在此期间保证对象保留存储空间。任何形式的访问已经超出生命周期的行为都是未定义的。引用超出生命周期的对象,可能导致攻击者执行任意代码。规则:在使用前声明表示符,不要隐含类型。规则:不要声明具有冲突链接类别的表示符。规则:使用正确语法声明灵活数组成员,例如柔性数组。规则:避免在...

2016-08-27 17:42:55 766

原创 C/C++ 代码安全(一)

规则1:不通过链接创建通用字符串。C11标准:如果匹配通用字符名称的字符序列由符号链接生成,将产生未定义行为。#define assign(uc1,uc2,val) uc1##uc2 = val void func(){ int u0401; assign(u04,01,4); printf("u0401 = %d\n",u0401); } int main(){ func();...

2016-08-27 16:27:59 1484

原创 内存管理器(二十四)引用计数

引用计数一种直接的内存清扫方式,通过遍历可以直接的判定一个对象的存活性。这个思想可以说是非常的简单,有新对象就增加新对象的引用计数,并且减少旧对象的引用计数,当某个引用计数的值为0的时候将它回收。new(){ ref = allocate(); if (ref == NULL){ printf("error out of memory"); } rc(ref) = 0; retu...

2016-08-09 10:23:38 567

原创 工程控制论 理论概况

计算机软件的编写本质上是一种系统工程,现代工程有系统论,信息论,控制论,三个理论组合而成,这三个理论相辅相成,学习现代工程控制论有助于在软件的设计与实现。这里我们不详细展开说,仅仅记录一些方法论,需要使用相关方法时。我们知道使用哪种方法就可以了。控制系统的工作原理及其组成:工作原理,开环控制,闭环控制。控制系统的基本类型:@恒值控制系统@程序控制系统

2016-08-08 16:51:04 2908

原创 ParalleX OS 补充设计草稿

ParalleX 补充设计草稿在上一篇设计方向讨论稿里,我们虽然讨论了大体结构化设计,但是局限于细节没有设计与说清楚操作系统的几个核心概念,首先,我们来回顾下,设计操作系统的几个关键要素。我们设计操作系统的目的:第一是为了让操作系统帮助我们管理硬件资源。第二是帮助我们让操作系统帮助我们运行程序。第三是为了让操作系统将硬件性能发挥到极致。在这个三个前提下,我们设计操作...

2016-08-08 15:32:34 265

原创 内存管理器(二十三) 标记-复制式 回收算法

标记-复制式回收算法GC 机制在一个系统中占重要地位,但是在使用过程中占用整体时间的最小部分,赋值器的执行开销产生的影响反而切实的影响这整个系统的性能。半区复制回收基本复制回收器会将堆划分为两个大小相等的半区,分别设置为来源空间,目标空间。/*半区复制回收算法*/ /*初始化以及分配*/ createSemispases(): topspace = heapstart; /*...

2016-08-08 15:01:04 411

原创 内存管理器(二十二) 标记-整理回收算法

我们今天来看看第二种垃圾回收方法:标记-整理回收算法双指针整理算法使用两个指针,一个从前向后遍历,我们称之为free指针,接着使用另一个指针,我们称之为scan指针,他从后像前遍历,当free 遇到空闲且大小合适的内存块时,将scan 所指向的内存拷贝到free 中,当free 和 sacn 指针相遇或者产生交互,我们就完成了这一次的标记-整理回收工作。 至于这个两个指针的交互地...

2016-08-06 10:21:21 509

原创 内存管理器(二十一)标记-清扫回收算法

内存回收一共有四种基本的算法及若干高级算法:标记-清扫,标记-复制,标记-整理,引用计数。任何自动内存管理都需要面临三个基本任务:1.为新对象分配空间。2.确定存活时间。3.回收死亡对象所占空间。讨论前提:多线程条件下,只有一个回收线程。垃圾回收前提:“万物静止式”回收,所有的资源分配器都会静止,回收线程开始运作,从资源分配器的角度来看回收过程是原子的。回...

2016-08-05 12:14:18 912

原创 ParalleX OS 设计与实现 Parallex 操作系统设计方向讨论

Parallex操作系统设计方向讨论西安邮电大学张明瑞 概要ParalleXOS是一个具有可动态配置的操作系统,与传统宏内核操作系统不同的是,它是基于消息传递的一款分布式操作系统。进一步将低了操作系统多模块之间的耦合。模块分离更加清晰。 本文主要描述ParalleX的设计来讨...

2016-08-04 11:36:57 499

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除