- 博客(85)
- 收藏
- 关注
原创 腾讯云黑客松Agent赛后感悟-微醺造趣家创建体验
我们基于BERT模型进行微调,实现了“场景+口味”双维度的意图识别功能,能够精准提取用户输入中的关键信息,即使面对“冬天想喝杯热的,不要太甜”“加班后想喝点舒服的”这类模糊表述,也能快速捕捉核心需求。用户的输入往往充满模糊性与随机性,如“想喝点舒服的”“来点不一样的”这类表述,缺乏明确的关键词,单纯依靠字面意思难以精准判断需求。初期,我们设计的场景氛围布置方案过于追求“精致感”,如推荐“香薰+定制烛台+专属杯垫”的组合,但在用户测试中发现,这类方案成本高、操作复杂,与“居家小酌”的便捷性需求相悖。
2025-12-01 20:40:35
877
45
原创 虚实共生:Rokid AR 眼镜驱动化学实验室安全防护新范式
本文系统研究了依托 Rokid CXR-M SDK 研发的 AR 化学实验安全指导系统,通过融合增强现实技术与智能识别算法,在实际实验场景中叠加虚拟安全提示信息,达成实验风险实时预警、操作流程智能引导、应急处置快速响应等核心功能。文章全面剖析了系统的架构设计逻辑、核心功能落地路径及关键技术瓶颈,提供了完整的代码示例与性能优化策略,为化学实验室安全管理提供了创新型技术解决方案。该系统既能显著降低实验事故发生率,还能同步提升教学质量与实验效率,为增强现实技术在教育安全领域的实践应用树立了典型范例。
2025-11-26 16:22:24
923
58
原创 兼容百模 + 降本 80%:GMI Cloud 推理引擎破解多模型集成困局
GMICloud作为新一代AI开发平台,通过统一API接口整合了97款主流AI模型,包括36款大语言模型和31款视频生成模型。平台采用H200/B200高性能GPU架构,提供标准化调用规范,开发者仅需单套认证凭证即可实现多模型无缝切换。其核心优势在于:1)开发效率提升,模型切换仅需修改参数;2)Token级精准计费,成本透明可控;3)前沿模型快速同步更新。实测显示,该平台可将模型推理延迟从150ms优化至23ms,显著降低AI应用开发门槛。
2025-11-25 00:25:49
1250
36
原创 [linux仓库]告别空洞理论!手写一个高性能日志模块,为线程池实战铺路[线程·捌]
本文介绍了Linux日志系统的设计与实现方法。首先讲解了日志的重要性及其必要元素:时间戳、日志内容、日志等级(DEBUG/INFO/WARNING/ERROR/FATAL)等。然后详细阐述了日志系统的核心实现技术:1)通过枚举类定义日志等级;2)使用系统调用获取和格式化时间;3)采用策略模式设计日志输出方式(控制台/文件/网络),其中文件输出利用C++17的filesystem库处理目录创建;4)借鉴Google的日志实现思路,通过内部类LogMessage和运算符重载构建完整的日志信息。
2025-11-13 17:47:37
1234
62
原创 [linux仓库]多线程同步:基于POSIX信号量实现生产者-消费者模型[线程·柒]
本文介绍了POSIX信号量在多线程同步中的应用。通过环形队列实现生产者-消费者模型,演示了信号量的初始化(sem_init)、销毁(sem_destroy)以及PV操作(sem_wait/sem_post)的使用方法。文章重点分析了单生产单消费场景下的并发控制,并扩展讨论多生产多消费时引入两把锁的解决方案,既保证线程安全又维持并发效率。最后通过代码实例展示了信号量在Linux环境下的具体应用。
2025-11-12 15:04:03
979
52
原创 [linux仓库]线程同步与生产者消费者模型[线程·陆]
文章通过图书馆钥匙管理的生动比喻,揭示了线程饥饿问题的成因,并详细讲解了pthread_cond_wait函数的两个关键特性:自动释放锁和重新竞争锁。在生产者消费者模型部分,作者提出了"321"原则(3种关系、2种角色、1个交易场所),并强调使用两个独立条件变量的必要性。通过阻塞队列的代码实现,展示了如何正确处理伪唤醒问题(使用while循环而非if判断)。最后,文章指出生产消费模型的高效性体现在生产和消费前后的并发执行,而非传递数据过程本身。附带的阻塞队列源码为实际应用提供了参考实现。
2025-11-09 14:14:59
1496
55
原创 [linux仓库]多线程数据竞争?一文搞定互斥锁与原子操作[线程·伍]
本文深入探讨了Linux线程互斥机制及其底层实现原理。通过抢票Demo案例,分析了共享资源访问导致的数据不一致问题,提出临界资源与临界区的概念,解释了互斥锁如何通过原子性操作解决并发问题。文章详细介绍了互斥锁的初始化、加锁和解锁操作,阐述了RAII设计模式在锁封装中的应用,并对比了C++11原生mutex与pthread库的实现差异。最后,通过汇编层面分析++/--操作的非原子性,揭示了互斥锁的底层实现原理是借助swap/exchange指令保证的原子性操作。
2025-11-06 21:31:12
1355
73
原创 [linux仓库]线程库封装[线程·肆]
本文介绍了Linux线程管理的核心概念与实现方法。首先解释了进程和线程的本质区别:进程承担资源分配(内核数据结构+代码/数据),线程是调度的基本单位。随后详细解析了页表结构(页目录表+页表项)的工作原理,特别是通过低12位标志位管理页框状态的设计。文章重点演示了如何使用C++封装Linux线程库,包括线程启动、回调函数处理(通过this指针解决静态函数访问成员问题)和线程等待等核心功能。最后附上了完整的线程封装代码,展示了如何创建、启动和管理多个线程的实践方法。
2025-11-03 22:36:49
1623
72
原创 [linux仓库]线程控制[线程·叁]
本文重点讲解了POSIX线程库的使用方法。主要内容包括:pthread_create、pthread_exit、pthread_join、pthread_cancel等关键API的使用和原理。文章对比了线程ID与LWP的区别,分析了线程共享资源(全局变量、堆空间、函数)的特性,并通过实际代码演示了线程局部存储(thread_local)的应用。此外,还探讨了pthread_detach、C++11线程与pthread的关系等技术细节。
2025-10-31 13:38:42
1407
62
原创 [linux仓库]线程与进程的较量:资源划分与内核实现的全景解析[线程·贰]
本文主要介绍了Linux线程控制的相关知识。首先通过代码实践展示了pthread_create函数创建新线程的方法,并分析了线程与进程的区别。文章指出Linux内核中线程是通过进程模拟实现的,多个PCB共享同一虚拟地址空间。从系统角度看,进程是资源分配单位,线程是CPU调度单位。文章还讨论了线程切换的性能优势(如无需切换页表、TLB等),以及多线程编程的优缺点。最后解释了线程异常导致进程崩溃的原因,并总结了线程共享和独享的资源范围,通过家庭类比形象说明了进程与线程的关系。
2025-10-27 22:10:21
1515
71
原创 [linux仓库]打开线程的“房产证”:地址空间规划与分页式管理详解[线程·壹]
本文深入探讨了Linux操作系统的进程管理、内存分页机制及页表实现原理。首先区分了进程与线程的概念,指出进程是资源分配单位而线程是CPU调度单位。随后详细解析了虚拟地址空间的页表映射机制,通过二级页表结构解决大容量页表管理问题,并分析了32位系统中4KB页框划分的物理内存管理方式。还介绍了TLB快表提升地址转换效率的原理,以及缺页中断的三种处理场景。核心观点包括:分页机制通过不连续的物理页映射实现内存高效利用;二级页表在减少连续存储需求的同时带来查询效率折衷;缺页异常处理是连接虚拟内存与物理存储的关键机制。
2025-10-26 12:27:35
469
69
原创 [linux仓库]信号处理及可重入函数[进程信号·陆]
本文介绍了Linux信号处理机制,重点讲解了sigaction函数的用法和原理。通过代码示例演示了如何自定义信号处理函数、设置信号屏蔽以及处理SIGCHLD信号回收子进程。文章还涉及了可重入函数的概念、volatile关键字的作用(保持内存可见性),以及如何避免产生僵尸进程的方法。最后,针对多子进程场景提出了非阻塞轮询的回收方案,并比较了不同处理方式的优劣。
2025-10-23 13:59:23
1179
36
原创 [linux仓库]信号处理[进程信号·伍]
本文深入解析了Linux信号处理机制与操作系统运行原理。主要内容包括:信号捕捉流程,从产生到处理的全过程;中断机制如何驱动操作系统运行,重点分析时钟中断;系统调用实现原理与内核态切换;写时拷贝和缺页中断机制。通过分析Linux0.11内核源码,揭示了操作系统本质是依赖硬件中断驱动的"死循环",展示了中断向量表初始化、进程调度等关键实现,构建了Linux系统底层运行的完整逻辑框架。
2025-10-23 13:50:50
1193
65
原创 [linux仓库]信号保存[进程信号·肆]
重点解析了信号递达、未决和阻塞三个核心概念。信号从产生到递达经历未决状态,进程可通过block位图选择屏蔽信号。文章通过内核数据结构示意图展示了信号识别原理(block表/pending表/handler表),并详细介绍sigprocmask()等系统调用对信号集的操作方法。最后通过实验程序验证了信号屏蔽与递达流程,证实信号递达前pending位图会置0,自定义捕捉函数中仍可获取pending状态。关键点:9号信号不可屏蔽,信号处理围绕三张表展开,用户可通过系统调用操作信号位图。
2025-10-16 23:33:50
1701
89
原创 [linux仓库]调试Segmentation fault的利器:手把手教你开启和使用Core Dump[进程信号·叁]
本文介绍了Linux的coredump标志,解释了core和term信号的区别。核心转储(coredump)会在进程异常终止时生成core文件,记录进程上下文数据用于事后调试;而term信号则直接终止进程。通过ulimit命令可设置core文件大小限制,默认关闭以保护敏感信息。文章还探讨了信号处理机制,包括OS如何管理信号、进程何时处理信号以及信号存储位置等问题。最后通过代码示例演示了如何获取进程退出状态信息。
2025-10-15 15:02:57
1193
64
原创 [linux仓库]信号产生[进程信号·贰]
内容涵盖键盘组合键(如Ctrl+C、Ctrl+\等)产生信号、通过kill命令和函数(kill/raise/abort)发送信号、软件条件触发信号(如alarm定时器)以及硬件异常(除零错误、野指针)导致的信号产生。重点分析了信号处理机制,包括自定义信号捕捉、特殊信号(9/19号)不可屏蔽的原因,并通过代码示例演示了alarm实现定时任务调度的原理。文章还深入探讨了硬件异常与操作系统的交互机制,解释了CPU如何通过状态寄存器检测错误并触发OS发送信号终止进程的过程,最后简要提及键盘中断的信号产生原理。
2025-10-09 19:17:41
1335
81
原创 [linux仓库]信号快速认识[进程信号·壹]
本文介绍了Linux信号机制的基本概念和工作原理。信号是进程间异步事件通知的一种软中断方式,类似于生活中的红绿灯或闹钟。文章通过Ctrl+C终止进程的实例,说明信号产生、保存和处理的过程:键盘输入触发硬件中断→OS解释为信号→发送给目标进程→进程根据预设动作处理信号(默认终止/忽略/自定义捕捉)。重点分析了前台/后台进程对信号响应的差异,以及如何通过signal()函数修改信号处理方式。信号机制使进程能够在执行重要任务时延迟处理信号,体现了异步通知的特性。
2025-10-08 22:35:56
1528
61
原创 [linux仓库]System V 进程通信详解:System V消息队列、信号量
本文深入剖析Linux内核中的进程间通信(IPC)机制,重点讲解消息队列和信号量的实现原理与应用。消息队列本质是让不同进程共享同一份队列资源,数据块带有类型标识,其生命周期随内核。信号量作为临界资源的计数器,通过PV操作实现资源预定机制,确保互斥访问。文章还探讨了内核如何通过柔性数组管理IPC资源,并附赠minishell管道实现代码,展示了命令解析、重定向和管道通信的完整流程。所有SystemV IPC资源都遵循"先描述再组织"的管理原则,通过结构体中的ipc_perm实现统一管理。
2025-10-06 22:39:10
1595
59
原创 [linux仓库]图解System V共享内存:从shmget到内存映射的完整指南
本文介绍了Linux中SystemV共享内存的机制与应用。共享内存作为最快的IPC形式,通过物理内存映射实现进程间高效通信。文章详细讲解了共享内存的创建(shmget)、挂接(shmat)、控制(shmctl)和分离(shmdt)等系统调用,分析了key和shmid的作用差异,并强调了同步机制的重要性。通过代码示例展示了共享内存与命名管道的结合使用,实现了进程间通信控制。最后指出共享内存虽高效但缺乏内置同步机制,实际应用中需配合其他IPC手段确保数据安全。
2025-10-05 17:04:59
1479
51
原创 [linux仓库]肝爆进程通信:匿名管道、命名管道、进程池核心原理与实战【万字长文】
本文介绍了Linux进程间通信(IPC)的三种主要方式:匿名管道、命名管道和进程池。重点阐述了进程通信的必要性、实现原理和具体应用场景。 在匿名管道部分,详细讲解了其单向通信特性、父子进程共享机制以及四种典型使用情况。命名管道则突破了血缘关系限制,实现了不相关进程间的文件级通信。文章还通过代码示例展示了进程池的实现,包括任务派发、负载均衡等机制。 最后,作者指出了进程池实现中的潜在bug,并给出了优化方案。全文结合理论分析与实践代码,系统性地介绍了Linux进程通信的核心技术。
2025-10-04 22:09:48
2270
52
原创 [linux仓库]深入解析Linux动态链接与动态库加载:理解背后的原理与技巧
本文探讨了Linux动态库的工作原理及其与进程的交互机制。文章首先指出静态库会在编译时被直接合并到可执行文件中,而动态库则通过共享区映射到进程地址空间,使多个进程可以共享同一库文件,节省内存资源。动态链接由动态链接器在程序运行时完成,通过全局偏移量表(GOT)实现地址重定向,并采用延迟绑定技术提高效率。动态库采用相对编址方案,支持灵活加载到任意内存位置,其ELF格式与可执行程序相同,便于库间互相调用。文章还解析了程序从_start到main函数的初始化过程,包括动态链接、堆栈设置等底层细节。
2025-10-01 11:54:03
1924
84
原创 [linux仓库]解剖ELF:从文件头到进程地址空间的完美映射
本文深入探讨了ELF文件格式及进程虚拟地址空间的核心概念。主要内容包括:1)ELF文件由四部分组成(ELF头、程序头表、节头表、节),通过不同视图(链接视图和执行视图)实现编译和运行时的功能;2)静态链接过程详解,包括目标文件合并、符号表解析和地址重定位;3)虚拟地址空间的本质,指出程序在未加载时已具有逻辑地址,且需编译器、OS和CPU共同支持。文章通过readelf等工具演示了ELF结构分析,并解释了section合并为segment的内存优化原理。
2025-09-25 11:25:50
1932
86
原创 [linux仓库]程序员的自我修养:彻底弄懂Linux下的动静态库
本文介绍了Linux中动静态库的基本概念和使用方法。静态库(.a)在编译时链接到可执行文件,而动态库(.so)在运行时加载。文章通过案例演示了如何制作静态库(ar命令)和动态库(gcc -shared),以及如何指定库路径(-L)、头文件路径(-I)和库名称(-l)。还讲解了动态库的加载机制(LD_LIBRARY_PATH/ld.so.conf)和静态链接(-static)选项。最后展示了使用外部库(如ncurses)的示例代码。文章强调库的本质是可复用代码的集合,正确使用库能提高开发效率.
2025-09-20 11:29:54
1629
83
原创 【linux仓库】硬链接 vs 软链接:程序员必须掌握的文件系统核心知识!
本文介绍了Linux中软链接和硬链接的区别与应用。软链接类似Windows快捷方式,有独立inode存储目标路径;硬链接是同一inode的别名,会增加链接计数但不占用额外空间。关键区别在于:软链接可跨文件系统、指向目录,硬链接不能对目录操作(避免路径回环)。应用上,软链接常用于软件升级的无缝切换,硬链接则提供高效备份功能。文章还解答了目录默认硬链接数为2的原因,并对比了硬链接与cp命令的本质差异——前者共享数据块,后者创建独立副本。
2025-09-18 11:57:51
1234
73
原创 【linux仓库】一文带你看透 Linux:文件系统与硬件的秘密通道
本文系统介绍了Linux磁盘存储与文件系统核心机制。首先剖析机械磁盘物理结构(磁头/磁道/扇区)和逻辑寻址方式(CHS与LBA转换),指出OS通过LBA线性地址访问磁盘。其次详解文件系统关键组件:超级块记录元信息,块位图管理存储空间,inode结构存储文件属性并通过多级索引映射数据块,目录维护文件名与inode的对应关系。最后阐释路径解析机制(dentry缓存)和分区挂载原理,揭示Linux通过路径前缀定位分区的设计思想。全文构建了从硬件到软件的完整磁盘存储认知体系。
2025-09-14 21:06:44
2874
70
原创 【linux仓库】徒手造轮子:从零设计一个迷你libc,揭秘C库函数的系统调用封装艺术(附源码)
本文系统讲解了Linux文件IO操作原理与自定义C库实现。首先回顾了C语言文件操作与系统调用(open/write/close)的底层关联,剖析了"一切皆文件"的设计理念和缓冲区机制。随后详细演示了如何实现简易libc库:1)设计包含文件描述符和缓冲区的FILE结构体;2)实现fopen根据不同模式调用open;3)fwrite通过memcpy写入缓冲区并支持行刷新;4)fclose强制刷新缓冲区到磁盘。
2025-09-11 12:20:10
2705
78
原创 [linux仓库]性能加速的隐形引擎:深度解析Linux文件IO中的缓冲区奥秘
本文深入探讨了Linux系统中缓冲区的核心机制与重要作用。文章从"一切皆文件"的设计哲学出发,分析了缓冲区作为连接用户进程与底层设备的关键中间层,详细介绍了三种缓冲类型(全缓冲、行缓冲、无缓冲)及其刷新规则。通过生动的快递驿站类比,解释了缓冲区如何减少I/O次数并提高效率。特别剖析了FILE结构体中的语言级缓冲区与系统调用的交互关系,并以printf和fork的实例演示了不同缓冲策略的实际表现。
2025-09-06 18:56:55
2283
88
原创 【linux仓库】万物至简的设计典范:如何用‘文件’这一个概念操纵整个Linux世界?
通过分析文件描述符(FD)系统,揭示了Linux如何将各类设备统一抽象为文件接口:从进程的files_struct结构体到file_operations方法集,系统通过标准化的open/read/write等接口管理所有资源。重点剖析了FD分配规则、重定向实现(dup2)和进程继承机制,并指出struct file中的f_op指针是实现多态访问的关键——不同设备提供统一接口但各自实现具体操作。这种设计使得开发者仅需一套API即可操作绝大多数系统资源,体现了Linux高度抽象与统一管理的核心理念。
2025-09-02 22:09:49
3787
83
原创 [linux仓库]解剖Linux内核:文件描述符(fd)的‘前世今生’与内核数据结构探秘
本文深入解析了Linux文件描述符(fd)的核心机制与重定向原理。文件描述符本质是数组下标,进程通过task_struct中的files_struct结构管理打开的文件,默认0、1、2分别对应标准输入、输出和错误。作者通过代码演示了fd分配规则(从最小未使用下标开始)和重定向实现方式,重点剖析了dup2系统调用在重定向中的作用,以及父子进程间文件描述符的共享机制。最后通过模拟shell重定向功能,展示了如何在实际编程中运用这些底层原理。文章由浅入深,将文件操作的系统调用、内核数据结构与实际应用场景紧密结合。
2025-08-31 22:05:32
1635
76
原创 [linux仓库]透视文件IO:从C库函数的‘表象’到系统调用的‘本质’
本文介绍了Linux基础IO知识,重点讲解了文件操作和系统调用。内容涵盖:1. 文件=内容+属性,操作系统通过"先描述再组织"管理打开的文件;2. C语言文件接口(fopen/fwrite等)的使用和底层原理;3. 系统调用open的用法,包括O_CREAT/O_APPEND等标志位;4. 进程与文件的关系,解释了为何需要工作目录(cwd);5. 语言封装系统调用的原因(跨平台性)和学习系统调用的重要性。文章通过代码示例演示了父子进程文件备份、文件写入等操作,帮助理解文件IO的实现原理。
2025-08-28 15:25:11
3169
77
原创 【Linux仓库】超越命令行用户:手写C语言Shell解释器,解密Bash背后的进程创建(附源码)
本文介绍了如何实现一个简易Linux Shell,重点讲解了进程创建、命令解析与执行的核心原理。通过分析Bash的工作原理,文章详细实现了以下功能:1. 命令行提示符的打印与更新;2.用户输入指令的获取与解析;3.内建命令(如cd、echo)的处理;4.通过fork+exec执行外部命令。特别说明了环境变量管理、进程独立性等关键概念,并提供了完整的代码实现。这个简易Shell演示了Linux命令行解释器的基本工作流程,帮助理解Shell如何作为用户与系统内核的交互接口。
2025-08-26 14:48:25
1903
61
原创 【Linux仓库】进程的“夺舍”与“飞升”:exec 驱动的应用现代化部署流水线
本文介绍了Linux中进程程序替换的exec函数族。通过exec系列函数,可以在不创建新进程的情况下替换当前进程的代码和数据,实现"重生"效果。文章详细讲解了6个exec函数(execl、execv、execlp、execvp、execle、execvpe)的用法差异,包括参数传递方式、环境变量处理等。重点说明了exec函数成功调用后会覆盖原进程代码、不再返回的特性,并解释了进程独立性原理。通过多个代码示例演示了不同exec函数的具体应用场景,但底层都调用了execve系统调用.
2025-08-22 16:06:41
2224
82
原创 【Linux仓库】进程等待【进程·捌】
本文介绍了Linux中进程等待的必要性和实现方法。主要内容包括:1)子进程退出后若父进程不回收会导致僵尸进程和内存泄漏;2)wait和waitpid函数的使用方法,重点讲解了如何获取子进程退出状态和信号编号;3)非阻塞等待的实现方式,通过WNOHANG选项让父进程在等待子进程时能同时处理其他任务;4)解释了孤儿进程无法被Ctrl+C终止的原因。文章还通过代码示例演示了如何正确获取子进程退出码和信号,以及父进程如何通过轮询方式非阻塞等待子进程。
2025-08-20 23:11:55
1709
49
原创 【Linux仓库】进程创建与进程终止【进程·柒】
本文介绍了Linux进程管理的核心知识:1. 重点讲解了fork()函数原理,包括进程创建机制、写时拷贝技术(优化内存使用)和父子进程调度关系;2. 详细分析了进程终止的三种场景(正常成功/失败、异常终止),对比了return、exit和_exit的区别(是否刷新缓冲区);3. 解释了进程退出码的意义及其获取方式。文章通过技术原理和实际应用相结合的方式,系统性地阐述了Linux进程生命周期管理的关键技术要点。
2025-08-19 23:29:12
1775
47
原创 【Linux仓库】虚拟地址空间【进程·陆】
本文介绍了C/C++程序的内存空间布局,重点讲解了虚拟地址空间的概念及其作用。通过代码实验,验证了各内存区域(代码区、全局区、堆、栈)在虚拟地址空间中的分布,并通过fork实验说明父子进程虚拟地址相同但数据独立,体现了写时拷贝机制。文章还介绍了Linux内核用于管理进程虚拟内存的mm_struct和vm_area_struct结构。最后分析了虚拟地址空间的优势,包括提升安全性、简化管理和提高效率。
2025-07-12 18:10:02
1415
75
原创 【Linux仓库】命令行参数与环境变量【进程·伍】
本文介绍了Linux系统中命令行参数和环境变量的相关知识。命令行参数通过main函数的argc和argv传递,允许程序根据用户输入执行不同操作,提升灵活性(如ls指令的选项实现)。环境变量是系统级全局变量,如PATH指定命令搜索路径,PWD记录当前目录。获取环境变量的方法包括main函数参数、getenv函数和environ变量。文章还解释了进程如何继承父进程环境变量,区分了环境变量和本地变量,并介绍了内建命令的概念(如echo)。
2025-07-11 12:36:17
1711
50
原创 【Linux仓库】进程优先级及进程调度【进程·肆】
本文深入探讨了Linux系统的进程优先级和调度机制。文章首先介绍了PRI(进程优先级)和NI(nice值)的概念及其关系,解释了通过调整nice值(-20到19)来改变进程优先级的原理。随后分析了Linux内核的O(1)调度算法实现,重点讲解了活动队列和过期队列的双队列设计,以及通过bitmap提高调度效率的机制。文章还讨论了分时操作系统如何避免进程饥饿问题,详细阐述了通过交换活动队列和过期队列指针来保证公平调度的巧妙设计。最后,文章简要提及了进程调度的上下文切换过程和时间片机制。
2025-07-03 13:54:11
3215
80
原创 【Linux仓库】进程概念与基本操作【进程·贰】
本文摘要:本文介绍了Linux中进程的基本概念与操作。进程由内核数据结构(PCB)和代码数据组成,操作系统通过链表管理多个进程。讲解了进程属性(PID、状态、优先级等)和进程切换机制(上下文保存与恢复)。通过/proc系统文件夹和ps工具可查看进程信息,包括父进程PPID。重点阐述了fork系统调用创建子进程的过程及其双返回值特性(父进程返回子进程PID,子进程返回0),为后续学习进程管理和虚拟地址空间奠定基础。
2025-06-21 10:59:27
1822
84
原创 【Linux仓库】进程状态【进程·叁】
本文探讨了Linux进程状态的理论设计与实际实现差异。首先阐述了进程状态的表示方法(通过数字标记)和双链表在进程管理中的应用(Linux采用封装指针而非直接链接)。然后详细分析了四种核心状态:运行状态(处于CPU调度队列)、阻塞状态(等待设备资源)、挂起状态(内存不足时置换到磁盘)以及僵尸状态(保留task_struct等待父进程读取退出信息)。特别指出D状态(不可中断磁盘休眠)的重要性,并通过职场故事说明其防杀特性。最后讨论了僵尸进程的危害(内存泄漏风险)和孤儿进程的处理机制。
2025-06-13 19:00:13
1807
78
原创 【Linux仓库】冯诺依曼体系结构与操作系统【进程·壹】
本文介绍了冯诺依曼体系结构的特点和计算机的数据流动原理。作者首先解析了冯诺依曼体系中CPU、内存和输入输出设备的关系,指出内存作为CPU与外设间的缓冲层,既平衡了速度和成本,又提升了整体效率。通过微信聊天和文件传输的例子,生动说明了数据在不同设备间拷贝的本质。文章还探讨了操作系统的作用和管理方式,强调操作系统通过"先描述,再组织"的方法管理软硬件资源,并解释了系统调用和库的关系。最后指出安全机制在操作系统中的重要性。
2025-06-04 15:01:57
3585
86
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅