- 文章目录前言各类锁汇总相关锁知识点可重入锁与不可重入锁乐观锁与悲观锁自旋锁(含自定义自旋锁)知识补充上下文切换CPU多层缓存架构介绍CPU的三级缓存缓存一致性协议导致的问题一、初识JUC1.1、JUC是什么?1.2、JUC三个包介绍java.util.concurrent包java.util.concurrent.locks包(含两个模板)java.util.concurrent.atomic包1 文章目录前言各类锁汇总相关锁知识点可重入锁与不可重入锁乐观锁与悲观锁自旋锁(含自定义自旋锁)知识补充上下文切换CPU多层缓存架构介绍CPU的三级缓存缓存一致性协议导致的问题一、初识JUC1.1、JUC是什么?1.2、JUC三个包介绍java.util.concurrent包java.util.concurrent.locks包(含两个模板)java.util.concurrent.atomic包1
- 文章目录前言各类锁汇总相关锁知识点可重入锁与不可重入锁乐观锁与悲观锁自旋锁(含自定义自旋锁)知识补充上下文切换CPU多层缓存架构介绍CPU的三级缓存缓存一致性协议导致的问题一、初识JUC1.1、JUC是什么?1.2、JUC三个包介绍java.util.concurrent包java.util.concurrent.locks包(含两个模板)java.util.concurrent.atomic包1 文章目录前言各类锁汇总相关锁知识点可重入锁与不可重入锁乐观锁与悲观锁自旋锁(含自定义自旋锁)知识补充上下文切换CPU多层缓存架构介绍CPU的三级缓存缓存一致性协议导致的问题一、初识JUC1.1、JUC是什么?1.2、JUC三个包介绍java.util.concurrent包java.util.concurrent.locks包(含两个模板)java.util.concurrent.atomic包1
- 文章目录一、多线程基本认识1、程序、进程、线程2、认识单核与多核CPU3、多线程优点4、一个以上的执行空间说明二、线程的创建与使用认识Thread类两种创建线程方式1、创建线程方式一:继承Thread2、创建线程方式二:实现Runnable接口比较两种创建方式常用方法修改线程名yield()方法join()方法sleep()方法线程优先级设置介绍调度线程优先级线程的分类三、线程的生命周期Threa 文章目录一、多线程基本认识1、程序、进程、线程2、认识单核与多核CPU3、多线程优点4、一个以上的执行空间说明二、线程的创建与使用认识Thread类两种创建线程方式1、创建线程方式一:继承Thread2、创建线程方式二:实现Runnable接口比较两种创建方式常用方法修改线程名yield()方法join()方法sleep()方法线程优先级设置介绍调度线程优先级线程的分类三、线程的生命周期Threa
- 《深入架构 第八篇》 《深入架构 第八篇》
- 目录一、什么是RTOS二、UCOSII三、RT-Thread3.1、自动初始化机制 3.2、线程管理3.3、线程间同步3.4、线程间通信3.5、内存管理四、参考资料4.1、RT-Thread一、什么是RTOS在裸机上写程序,例如51,通常分为两部分:前台系统(中断,中断嵌套)和后台系统(while)RTOS,实时操作系统,实时性,核心内容在于:实时内核RTOS操作系统:FreeRTOS,... 目录一、什么是RTOS二、UCOSII三、RT-Thread3.1、自动初始化机制 3.2、线程管理3.3、线程间同步3.4、线程间通信3.5、内存管理四、参考资料4.1、RT-Thread一、什么是RTOS在裸机上写程序,例如51,通常分为两部分:前台系统(中断,中断嵌套)和后台系统(while)RTOS,实时操作系统,实时性,核心内容在于:实时内核RTOS操作系统:FreeRTOS,...
- 目录一、使用到的API二、实现贪吃蛇基本思路2.1、获取键盘输入2.2、贪吃蛇地图实现2.3、制作蛇身2.4、蛇自行向左移动2.5、蛇撞墙,重新开始2.6、实现蛇的上下左右移动2.6.1、优化左右可以随时改变问题2.7、食物的实现及蛇吃食物2.8、优化点2.8.1、蛇自己撞死自己2.8.2、下方显示吃了几个食物,和食物坐标三、贪吃蛇完整代码一、使用到的API头文件 #include <cur... 目录一、使用到的API二、实现贪吃蛇基本思路2.1、获取键盘输入2.2、贪吃蛇地图实现2.3、制作蛇身2.4、蛇自行向左移动2.5、蛇撞墙,重新开始2.6、实现蛇的上下左右移动2.6.1、优化左右可以随时改变问题2.7、食物的实现及蛇吃食物2.8、优化点2.8.1、蛇自己撞死自己2.8.2、下方显示吃了几个食物,和食物坐标三、贪吃蛇完整代码一、使用到的API头文件 #include <cur...
- 我们都知道,Redis有两大持久化机制:AOF日志和RDB快照。AOF方法每次执行只记录命令,持久化的数据量不大。但是在AOF日志恢复时,需要把日志的每条命令都执行一遍。如果日志很多,恢复过程就会变得很漫长。因此,Redis提供了另一种持久化机制,那就是RDB快照。 我们都知道,Redis有两大持久化机制:AOF日志和RDB快照。AOF方法每次执行只记录命令,持久化的数据量不大。但是在AOF日志恢复时,需要把日志的每条命令都执行一遍。如果日志很多,恢复过程就会变得很漫长。因此,Redis提供了另一种持久化机制,那就是RDB快照。
- 目录一、内核源码获取查看1.1、Source Insight使用 二、查看链接脚本三、分析head.S3.1、到入口前代码3.2、内核启动的汇编阶段四、main.c内核启动的c语言阶段4.1、内核打印函数printk4.2、启动信息五、rest_init函数5.1、进程0、进程1、进程2编辑5.2、init进程的2种状态5.3、init进程干了什么六、宏MACHINE_START6.1、... 目录一、内核源码获取查看1.1、Source Insight使用 二、查看链接脚本三、分析head.S3.1、到入口前代码3.2、内核启动的汇编阶段四、main.c内核启动的c语言阶段4.1、内核打印函数printk4.2、启动信息五、rest_init函数5.1、进程0、进程1、进程2编辑5.2、init进程的2种状态5.3、init进程干了什么六、宏MACHINE_START6.1、...
- 主进程收到 SIGTERM 信号,之后又发生了什么事情,才让子进程们收到 SIGKILL 信号的呢?让我们看一下 kernel 源码吧。 主进程收到 SIGTERM 信号,之后又发生了什么事情,才让子进程们收到 SIGKILL 信号的呢?让我们看一下 kernel 源码吧。
- 记录一下Synchronized关键字的相关知识 记录一下Synchronized关键字的相关知识
- GO环境搭建 安装GO环境go官网https://golang.google.cn/dl/下载go1.7.1.linux-amd64.tar.gz,解压到/usr/local目录,suso tar -C /usr/local -xzf go1.7.1.linux-amd64.tar.gz,编辑$HOME/.profile,将export PATH=$PATH:/usr/local/go/b... GO环境搭建 安装GO环境go官网https://golang.google.cn/dl/下载go1.7.1.linux-amd64.tar.gz,解压到/usr/local目录,suso tar -C /usr/local -xzf go1.7.1.linux-amd64.tar.gz,编辑$HOME/.profile,将export PATH=$PATH:/usr/local/go/b...
- MDL内存读写是最常用的一种读写模式,通常需要附加到指定进程空间内然后调用内存拷贝得到对端内存中的数据,在调用结束后再将其空间释放掉,通过这种方式实现内存读写操作,此种模式的读写操作也是最推荐使用的相比于CR3切换来说,此方式更稳定并不会受寄存器的影响。 MDL内存读写是最常用的一种读写模式,通常需要附加到指定进程空间内然后调用内存拷贝得到对端内存中的数据,在调用结束后再将其空间释放掉,通过这种方式实现内存读写操作,此种模式的读写操作也是最推荐使用的相比于CR3切换来说,此方式更稳定并不会受寄存器的影响。
- 内核中读写内存的方式有很多,典型的读写方式有CR3读写,MDL读写,以及今天要给大家分享的内存拷贝实现读写,拷贝读写的核心是使用`MmCopyVirtualMemory`这个内核API函数实现,通过调用该函数即可很容易的实现内存的拷贝读写。 内核中读写内存的方式有很多,典型的读写方式有CR3读写,MDL读写,以及今天要给大家分享的内存拷贝实现读写,拷贝读写的核心是使用`MmCopyVirtualMemory`这个内核API函数实现,通过调用该函数即可很容易的实现内存的拷贝读写。
- 与断链隐藏进程功能类似,关于断链进程隐藏可参考`《驱动开发:DKOM 实现进程隐藏》`这一篇文章,断链隐藏驱动自身则用于隐藏自身SYS驱动文件,当驱动加载后那么使用ARK工具扫描将看不到自身驱动模块,此方法可能会触发PG会蓝屏,在某些驱动辅助中也会使用这种方法隐藏自己。 与断链隐藏进程功能类似,关于断链进程隐藏可参考`《驱动开发:DKOM 实现进程隐藏》`这一篇文章,断链隐藏驱动自身则用于隐藏自身SYS驱动文件,当驱动加载后那么使用ARK工具扫描将看不到自身驱动模块,此方法可能会触发PG会蓝屏,在某些驱动辅助中也会使用这种方法隐藏自己。
- 在进程的`_EPROCESS`中有一个`_RTL_AVL_TREE`类型的`VadRoot`成员,它是一个存放进程内存块的二叉树结构,如果我们找到了这个二叉树中我们想要隐藏的内存,直接将这个内存在二叉树中`抹去`,其实是让上一个节点的`EndingVpn`指向下个节点的`EndingVpn`,类似于摘链隐藏进程,就可以达到隐藏的效果。 在进程的`_EPROCESS`中有一个`_RTL_AVL_TREE`类型的`VadRoot`成员,它是一个存放进程内存块的二叉树结构,如果我们找到了这个二叉树中我们想要隐藏的内存,直接将这个内存在二叉树中`抹去`,其实是让上一个节点的`EndingVpn`指向下个节点的`EndingVpn`,类似于摘链隐藏进程,就可以达到隐藏的效果。
上滑加载中
推荐直播
-
HDC深度解读系列 - Serverless与MCP融合创新,构建AI应用全新智能中枢2025/08/20 周三 16:30-18:00
张昆鹏 HCDG北京核心组代表
HDC2025期间,华为云展示了Serverless与MCP融合创新的解决方案,本期访谈直播,由华为云开发者专家(HCDE)兼华为云开发者社区组织HCDG北京核心组代表张鹏先生主持,华为云PaaS服务产品部 Serverless总监Ewen为大家深度解读华为云Serverless与MCP如何融合构建AI应用全新智能中枢
回顾中 -
关于RISC-V生态发展的思考2025/09/02 周二 17:00-18:00
中国科学院计算技术研究所副所长包云岗教授
中科院包云岗老师将在本次直播中,探讨处理器生态的关键要素及其联系,分享过去几年推动RISC-V生态建设实践过程中的经验与教训。
回顾中 -
一键搞定华为云万级资源,3步轻松管理企业成本2025/09/09 周二 15:00-16:00
阿言 华为云交易产品经理
本直播重点介绍如何一键续费万级资源,3步轻松管理成本,帮助提升日常管理效率!
回顾中
热门标签