博客相关格式记录
2025-06-03
记录博客的内容格式等信息
1635 words
|
8 minutes
Cover Image of the Post
信号量之读者写者问题——写者优先
本文介绍了读者写者问题中实现写者优先的解决方案,要求写者线程优先级高于读者线程。当写者到来或正在写时,读者线程需被阻塞,直到所有写者完成写操作后才允许读者读取文件;而在没有写者时,读者线程可同时读取文件。通过信号量和互斥锁的配合,伪代码实现了写者优先的调度逻辑,确保线程安全和优先级规则的正确性。
250 words
|
1 minute
计算机组成原理总结(待补充)
本文针对计算机组成原理中的某些问题进行了总结思考
2283 words
|
11 minutes
Linux内核调试
本文介绍了Linux内核调试的基本流程,包括源码获取、内核编译、文件系统镜像加载、QEMU启动以及GDB调试。通过关闭内核地址随机化(KASLR)和开启调试信息,确保内核可调试性。文章详细描述了如何使用syzkaller生成文件系统镜像,并通过QEMU启动虚拟机进行调试。最后,通过GDB远程连接到虚拟机内核,完成断点设置和调试操作
387 words
|
2 minutes
fork()系统调用的“一次调用和两次返回”
本文分析了fork()系统调用的“一次调用和两次返回”现象。fork()用于创建子进程,父子进程共享代码,但通过写时拷贝技术避免完全复制内存。调用fork()后,内核完成内存分配、数据结构复制、进程列表更新及调度操作。父进程返回子进程的PID以便管理子进程,子进程返回0表示自身无子进程。深入内核代码可发现,fork()通过copy_process()和copy_thread()函数分别设置父子进程的返回值,确保进程间通信和调度的正确性。
786 words
|
4 minutes
堆基础知识
2025-03-19
本文介绍了堆的基础知识,包括堆管理结构arena、内存块chunk的结构与分类,以及堆分配与释放的机制。文章详细描述了chunk的类型(如allocated chunk、top chunk)及其在堆中的管理方式,并分析了bin的分类(如fastbin、smallbin、largebin、unsorted bin)及其存储和分配策略。通过对堆内存管理的深入解析,帮助读者理解堆的工作原理及其在程序运行中的作用。
1061 words
|
5 minutes