
系统编程
文章平均质量分 92
Linux操作系统核心功能,涉及文件操作、进程管理、内存管理、信号处理、线程与同步机制、I/O模型等底层编程接口
洲覆
无木成林,无水行舟,积深不厚,积年不旧
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【系统编程】信号量与并发控制入门
信号量是操作系统中最经典的并发控制工具,它通过简单的 P/V 操作,实现了多进程或多线程之间的协作与互斥。从资源分配到任务同步,信号量在解决生产者–消费者问题和哲学家就餐问题等典型模型中发挥了关键作用。原创 2025-08-29 12:19:48 · 840 阅读 · 0 评论 -
【系统编程】生产者消费者模型
使用条件变量实现生产者-消费者模型的线程同步机制。通过互斥锁保护共享链表缓冲区,条件变量解决忙等问题原创 2025-08-29 12:08:51 · 882 阅读 · 0 评论 -
【系统编程】条件变量
摘要:条件变量是线程同步机制,用于高效等待条件成立而非轮询,需配合互斥锁使用。核心API包括初始化(pthread_cond_init)、等待(pthread_cond_wait原子操作:解锁并阻塞,唤醒后重新加锁)、限时等待(pthread_cond_timedwait)、唤醒线程(signal唤醒单个,broadcast唤醒所有)。典型用法:线程在循环中检查条件,条件不满足时调用wait;条件满足后通过signal/broadcast通知等待线程。注意:timedwait使用绝对时间,避免竞争需确保检测原创 2025-08-28 08:49:34 · 948 阅读 · 0 评论 -
【系统编程】锁
并发编程中的锁机制:死锁,读写锁,常用 API原创 2025-08-28 08:45:10 · 798 阅读 · 0 评论 -
【系统编程】线程同步与互斥量
本文介绍了线程同步中的互斥锁机制。主要内容包括:同步的基本概念及线程同步的定义,强调通过协同配合确保数据一致性;数据混乱的原因分析,包括资源共享、调度随机性和缺乏同步机制;互斥锁的定义、特性及工作机制,重点说明加锁和解锁流程;互斥锁的主要API函数及其使用方法;最后通过代码示例演示互斥锁的实际应用,并强调及时解锁和避免持锁睡眠的重要性。文中指出,合理使用互斥锁能有效避免多线程环境下的数据竞争问题,关键在于控制锁的粒度,确保只在访问共享数据时持锁。原创 2025-08-27 12:45:56 · 891 阅读 · 0 评论 -
【系统编程】线程属性
本文介绍了POSIX线程属性(pthread_attr_t)的使用方法。主要内容包括:线程属性的概念和作用,用于设置非默认线程行为;属性结构体主要成员如分离状态、调度策略、栈设置等;初始化/销毁属性的接口函数;设置线程分离状态(joinable/detached)的方法;线程栈地址和栈大小的配置;调度策略的设置;以及常用的属性设置流程示例。文章还提供了多线程编程的注意事项,如避免返回栈指针、正确处理线程退出、避免僵尸线程等问题,并给出了快速故障排查建议。最后介绍了线程库版本和编译选项的相关信息。原创 2025-08-27 12:42:08 · 847 阅读 · 0 评论 -
【系统编程】线程控制原语
本文介绍了Linux线程编程的关键操作,包括线程ID获取、创建、退出和资源回收。原创 2025-08-26 12:06:40 · 841 阅读 · 0 评论 -
【系统编程】线程简介
进程是资源分配的最小单位,拥有独立地址空间;线程是CPU调度的最小单位,共享进程资源。Linux中线程通过轻量级进程(LWP)实现,内核统一管理为任务(task)。原创 2025-08-26 12:01:28 · 888 阅读 · 0 评论 -
【系统编程】进程退出与回收
Linux系统中进程终止、孤儿进程和僵尸进程的相关概念及处理方法。原创 2025-08-11 13:50:17 · 1103 阅读 · 0 评论 -
【系统编程】进程替换——exec 函数族
exec函数族是Linux系统中用于执行新程序的一组关键函数,它们通过替换当前进程的代码和数据段来运行指定程序,但不创建新进程。原创 2025-08-11 13:43:05 · 978 阅读 · 0 评论 -
【系统编程】父子进程的关系
本文介绍了父子进程的关系及特性。通过fork()创建的父子进程初始状态一致,包括代码段、数据段、环境变量等,但进程ID、父进程ID等不同。关键机制是写时复制(COW),延迟内存拷贝以提高效率。父子进程文件描述符共享,但地址空间独立。代码示例展示了父子进程运行顺序不确定、变量修改互不影响的特点。最后介绍了进程管理命令ps和kill的用法。父子进程执行相互独立,适合多任务并发场景。原创 2025-08-09 13:19:14 · 1183 阅读 · 0 评论 -
【系统编程】进程创建
Linux进程管理与fork()函数的相关知识。通过代码示例展示了如何控制fork传播路径,确保只创建指定数量的子进程,并让每个子进程按顺序执行不同的任务。原创 2025-08-09 13:18:36 · 971 阅读 · 0 评论 -
【系统编程】进程初识
本文主要介绍了操作系统中的进程管理相关概念。首先区分了程序(静态磁盘文件)与进程(动态运行实例)的区别,说明一个程序可生成多个进程。其次讲解了并发(任务交替执行)和并行(任务同时执行)的差异,以及单道/多道程序设计的特点。接着阐述了内存管理单元(MMU)的作用,包括地址转换和权限控制。然后详细说明了进程控制块(PCB)的核心数据结构及其关键字段。最后介绍了进程的5种基本状态:创建态、就绪态、运行态、阻塞态和终止态,以及它们之间的转换关系。这些概念共同构成了操作系统进程管理的基础知识体系。原创 2025-08-08 15:12:13 · 858 阅读 · 0 评论 -
【系统编程】文件 IO 解析(一)
Linux 文件交互底层逻辑?本文从文件描述符核心概念(标准符、分配规则、阻塞 / 非阻塞机制 )讲起,逐步拆解文件 IO 函数(打开、关闭、读写全流程 ),最后深入实战,通过系统调用与库函数实现 cp 命令,对比效率差异。原创 2025-08-04 14:13:51 · 867 阅读 · 0 评论 -
【系统编程】错误处理、读写缓冲区及位图
总结 errno 错误处理机制、预读入与缓输出技术,以及位图数据结构。原创 2025-08-03 19:20:05 · 1085 阅读 · 0 评论 -
【系统编程】系统调用与库函数
Linux 系统编程的基础知识,包括系统调用的概念与实现原理、库函数的分类与调用方法,以及环境变量的存储、查看与操作函数。原创 2025-08-02 16:42:09 · 1113 阅读 · 0 评论