自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 线程调度都有哪些方法?

线程调度都有哪些方法?非抢占的先到先服务的模型是最朴素的,公平性和吞吐量可以保证。但是因为希望减少用户的平均等待时间,操作系统往往需要实现抢占。操作系统实现抢占,仍然希望有优先级,希望有最短任务优先。但是这里有个困难,操作系统无法预判每个任务的预估执行时间,就需要使用分级队列。最高优先级的任务可以考虑非抢占的优先级队列。 其他任务放到分级队列模型中执行,从最高优先级时间片段最小向最低优先级时间片段最大逐渐沉淀。这样就同时保证了小任务先行和高优任务最先执行。...

2020-11-14 15:03:52 770

原创 brk/srbk的应用:在不知道个数的情况下为同类型的数据分配内存

1. 前言看了一些写brk/sbrk的技术文章,整体看的还是一头雾水,我这里就不写那些晦涩难懂的解释,只写一个简单的例子,介绍下其使用场景。对于一个已知数量的结构分配内存,我们一般都是用的malloc/free。如果我们不知道数量呢?比如说给你一堆同类型的数据,让你把满足某些条件的数据保存下来。通常我们的做法是先遍历一遍这堆数据,找到满足条件的个数,然后根据个数用malloc分配内存,然后再遍历一遍把满足条件的个数保存到内存。这里面有两个问题需要注意:1.这里我们遍历了两遍,效率太低;2.如果这

2020-10-15 19:31:56 274

原创 利用结构体成员偏移量和结构体成员地址求结构体的地址

利用结构体成员偏移量和结构体成员地址求结构体的地址1. 前言在实际项目开发中,发现了两个有意思的宏定义。#define offsetof(type, member) ((unsigned long)(&((type *)0)->member))#define LIST_ENTRY(optr, type, member) ((type *)((char *)(optr) - offsetof(type, member)))第一个是求结构体成员的偏移量。假设在地址0处有一个type类

2020-10-14 17:29:10 637

原创 实现从包含‘\0‘的主字符串中匹配指定的子字符串的函数

从包含’\0’的主字符串中匹配指定的子字符串1.前言在做项目的过程中,处理pcap数据包,对包里的内容进行字符查找时,要注意对’\0’的处理。举个列子,下图中是wireshark打开的一个http2的数据包,比方你想从流里面查找“3gpp.ngap”这个子串,如果直接用strstr函数去查找,就查找不到该子串。因为其查找遇到‘00‘就停止了,他认为遇到了字符串的结束标志。因此这个时候需要自己手动去实现一个可以从包含’\0’的主字符串中匹配指定的子字符串的函数。因此自己实现了一个从包含’\0’的主字符串

2020-10-13 17:50:34 279 1

原创 越界导致函数参数的地址改变

越界导致函数参数的地址改变1.前言2.代码3.总结4.问题1.前言最近做的项目当中,遇到了一个函数的参数地址被改变的问题,导致后面系统崩溃。现将其提炼成一段小代码,记录如下。2.代码#include <stdio.h>#include <stdlib.h>#include <string.h>void func(char *param, char *s, char *buf){ //模拟做了一些解码处理,然后把一段字符赋值给buf //但是没有对长度做

2020-10-12 19:56:26 396

空空如也

空空如也

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

TA关注的人

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