Ajax Zhan's Blog
Welcome!This is Ajaxzhan.
坚信:品味优先于执行,价值驱动下创造、系统工程保安全
持续跟进AI前沿研究,持续思考技术、产品与思维。
坚信:品味优先于执行,价值驱动下创造、系统工程保安全
持续跟进AI前沿研究,持续思考技术、产品与思维。
本文围绕《曾国藩领导力十二讲》中“重”字诀,从外在与内在两方面展开。“重”外在体现为举止稳重,需沉稳不慌乱、每遇大事有静气,避免浮躁失威严;内在则为深思熟虑,强调心、气、神、体的安定,尤其心定方能言行中肯。领导者需以“重”驭“轻”,在浮躁环境中保持战略定力,平衡张扬个性与稳重内涵。学习此书亦为反观领导思维、带领团队及提升个人领导力,以“重”为根基,涵养深沉厚重的领导品格。
虚拟内存基于局部性原理,通过多次性、对换性、虚拟性特征,解决了传统存储管理“一次性装入”“驻留性”导致的内存浪费问题。其实现以离散分配为基础,主要采用请求分页、请求分段等方式,依赖页表机制、缺页中断机构等硬件支持。页面置换算法(如LRU、CLOCK)旨在减少缺页率,分配策略包括固定/可变分配、全局/局部置换。页面调入分预调页和请求调页,需考虑对换区与文件区选择。频繁页面调度(抖动)需通过驻留集大于工作集缓解。内存映射文件则将文件映射至虚拟地址空间,由OS自动处理数据读写,支持进程共享。
内存管理核心功能包括空间分配回收、地址转换(逻辑到物理)、内存扩充(覆盖/交换技术)、共享与保护。进程内存映像含代码段(只读共享)、数据段、堆(高地址扩展)、栈(低地址扩展)等。链接分静态、装入时动态、运行时动态;装入分绝对、静态重定位(需一次性分配内存)、动态重定位(支持内存移动,需重定位寄存器)。连续分配有单一(单任务,利用率低)、固定分区(内部碎片)、动态分区(外部碎片,算法有首次/最佳/最坏适应)。非连续分配包括分页(页表映射,快表加速,两级页表解决页表过大)和分段(按逻辑段划分,二维地址),段页式结合两者优势。内存保护通过上下限寄存器或重定位+界地址寄存器实现。
本章系统讲解操作系统进程与线程管理核心内容:进程作为资源分配单位,具有动态性、并发性特征,包含运行、就绪、阻塞等状态及控制机制;线程作为CPU调度单位,分用户级与内核级实现,提升并发效率。CPU调度涵盖三级调度体系(作业/内存/进程调度),重点分析FCFS、SJF、优先级、RR及多级反馈队列算法。同步与互斥通过信号量机制解决,并深入生产者-消费者、读者-写者等经典同步问题。死锁部分阐述互斥、不剥夺、请求并持、循环等待四大条件,以及预防、避免(银行家算法)和检测策略。
本文概述了总线技术核心概念及8088最小组态应用。总线是微机数据传输通道,分地址(单向输出)、控制(双向)、数据(双向)三总线,功能是实现模块间数据传输。操作包括请求仲裁、寻址、传送、结束四阶段,同步方式分同步时序(固定时钟)和异步时序(应答)。周期关系为指令周期>总线周期>时钟周期。8088最小组态40引脚中,地址/数据复用(如AD0-AD7)、读写控制(RD*、WR*)、中断(INTR、INTA*)及总线请求(HOLD、HLDA)为关键信号,存储器与I/O读写时序差异体现在IO/M*电平,READY信号控制数据传输就绪。
8255A是可编程并行接口芯片,具有3个8位I/O口(A、B、C口),通过地址线A1A0选择端口(A口、B口、C口、控制口)。支持两种控制字:方式控制字(配置端口工作方式及输入/输出方向)和C口置位/复位控制字。工作方式包括方式0(基本I/O,用于无条件传送或查询)、方式1(选通I/O,支持查询和中断)及方式2(双向选通,仅A口适用)。常用于键盘、数码管、打印机等接口电路,通过初始化配置实现数据输入/输出、状态监测及联络控制,是微机系统中连接外设的关键接口芯片。
本文分享了作者从Hexo迁移至Halo博客时的自动化解决方案。Hexo因繁琐配置导致维护困难,而跨平台迁移面临多源数据(Obsidian、Hexo、掘金、CSDN)的格式兼容问题。作者通过Python脚本实现自动化处理:支持将Obsidian的`![[]]`格式转为标准markdown并上传图片至OSS,同时可下载掘金/CSDN的图片并替换为CDN链接。该方案通过正则匹配、七牛云SDK和HTTP请求,解决了图片迁移的核心痛点,体现了自动化工具对重复性劳动的解放价值。
本文系统阐述了文件系统的核心概念与机制。文件是以磁盘为载体的信息集合,由文件名、数据、类型等组成,通过create、read等系统调用操作。文件目录通过FCB实现“以名存取”,结构包括单级、两级、树形及无环图,后者支持文件共享但需计数器防误删。索引节点(inode)分离文件名与描述信息,提升目录检索效率。文件逻辑结构分无结构(流式)和有结构(顺序、索引等),物理结构则采用连续分配(高效但碎片多)、链式分配(支持扩展但随机访问差)及索引分配(灵活需多级管理)。存储空间管理通过空闲表、链表或位视图法实现。文件共享分硬链接(基于inode)与软链接(符号链),保护机制包括口令、加密及访问控制列表(ACL)。最后,文件系统层次结构从用户接口到设备管理,虚拟文件系统(VFS)统一不同文件系统接口,挂载机制实现跨系统兼容。
本文系统概述了计算机I/O管理核心内容。I/O设备按使用特性(人机交互、存储、网络)、传输速率(低速、中速、高速)及交换单位(块设备支持随机读写,字节设备用中断驱动)分类;控制器通过寄存器实现命令识别、状态报告及数据交换。I/O控制方式从程序直接控制(CPU轮询)到中断驱动(并行工作)、DMA(直接内存访问,块传输)及通道控制(硬件执行通道程序),逐步降低CPU干预,提升效率。I/O软件分用户层(系统调用接口)、设备独立性软件(实现调度、保护、分配、缓冲)、驱动程序及中断处理。磁盘管理涵盖结构(柱面/盘面/扇区)、调度算法(如SCAN、C-SCAN优化寻道)及SSD特性(基于闪存,支持随机访问,需磨损均衡)。
本文聚焦ShardingSphere全家桶,重点介绍其核心组件ShardingJDBC——一款轻量级Java框架,通过JDBC层提供数据分片、分布式事务及数据库治理功能,兼容各类ORM框架。文章详解其分片算法(标准、复合等)、路由策略(直接、标准、笛卡尔积等)及结果归并策略(遍历、排序、聚合等),并结合SpringCloud实战,演示如何通过ShardingJDBC实现MySQL读写分离与分库分表配置,验证读写请求正确路由至主从库,为微服务架构下的数据库分片实践提供技术参考。