Linux操作系统
文章平均质量分 89
关于Linux操作系统学习的心得。
清梧序ლ
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【Linux】生产者消费者问题
生产者消费者问题,也被称作有限缓冲问题。可以描述为:两个或者更多的线程共享同一个缓冲区,其中一个或多个线程作为生产者会不断地向缓冲区中添加数据,另一个或者多个线程作为消费者” 从缓冲区中取走数据。原创 2025-07-31 16:17:09 · 877 阅读 · 0 评论 -
【Linux】线程——并发运行、同步、线程安全
本文系统介绍了多线程编程中的核心同步机制,包括信号量、互斥锁、读写锁和条件变量。主要内容包括:1. 线程并发运行的基本概念和实现方式;2. 信号量的定义、种类(二进制/计数信号量)及操作接口;3. 互斥锁的原理、基本函数及典型应用场景;4. 读写锁的特点与实现,分析其适用于读多写少的优势;5. 条件变量的工作原理及线程间通信机制;6. 线程安全问题及解决方案,重点讨论strtok()的线程安全替代方案strtok_r()。文中通过大量代码示例演示了各种同步机制的具体实现,并分析了常见问题如死锁、竞态条件等,原创 2025-07-29 17:34:53 · 997 阅读 · 0 评论 -
【Linux】线程
线程是操作系统调度的最小单位,属于同一进程的多个线程共享内存空间。文章介绍了线程与进程的区别、并行与并发的概念,以及线程的生命周期。重点讲解了POSIX线程库的使用方法,包括创建线程(pthread_create)、线程退出(pthread_exit)、等待线程结束(pthread_join)等操作,并提供了示例代码展示主线程和子线程的并发执行。线程编程需要考虑同步机制,编译时需要链接pthread库(-lpthread)。原创 2025-07-18 18:21:14 · 791 阅读 · 0 评论 -
【Linux】进程间通信(三)——共享内存和消息队列
本文介绍了两种进程间通信机制:共享内存和消息队列。共享内存通过直接访问同一物理内存实现高效数据交换,需配合信号量进行同步,包含创建(shmget)、映射(shmat)、操作(p/v)和删除(shmctl)等步骤,具有高性能但需手动管理同步。消息队列采用异步通信模式,通过msgget创建、msgsnd/msgrcv收发消息、msgctl删除,支持解耦和流量削峰,但存在系统复杂度增加和消息延迟等问题。两种方式各适用于不同场景,共享内存适合高频数据交换,消息队列更适用于分布式系统和解耦需求。文中通过C语言代码示例原创 2025-07-18 14:21:06 · 919 阅读 · 0 评论 -
【Linux】进程间通信(二)——信号量
信号量是一个特殊的变量,一般取正数值;它的值代表允许访问的资源数目。获取资源时,需要对信号量的值进行原子减一,该操作被称为。释放资源时,需要对信号量的值进行原子加一,该操作被称为。当信号量值为 0 时,代表没有资源可用,P 操作会阻塞。同一时刻,只允许被一个进程或线程访问的资源。信号量的值如果只取 0,1,将其称为。测试结果:错误,不满足我们要求的结果。要求打印结果为:aaaabbbbb。如果信号量的值大于 1,则称之为。作用:信号量主要用来同步进程。ipcrm -s +id号。访问临界资源的代码段。原创 2025-07-16 13:46:26 · 370 阅读 · 0 评论 -
【Linux】进程间通信(一)——管道
本文介绍了Linux系统中的进程间通信(IPC)机制,重点分析了管道的实现与应用。主要内容包括:1) 进程间通信的基本概念和常见方式(管道、消息队列、共享内存等);2) 有名管道的创建与使用,通过mkfifo创建管道文件实现任意进程间通信;3) 无名管道的pipe系统调用实现父子进程通信;4) 管道的特点:半双工通信、数据存储在内存等。文章通过具体代码示例展示了管道的单向数据传输过程,并比较了有名管道与无名管道的区别及应用场景。原创 2025-07-15 19:26:31 · 649 阅读 · 0 评论 -
【Linux】Linux信号<signal.h>和进程替换exec
2. #define SIGINT 2 //键盘按下 Ctrl+c 时,会产生该信号10. #define SIGKILL 9 //该信号的响应方式不允许改变14. #define SIGPIPE 13 //读端关闭的描述符,写端写入时产生,该信号会终止程序16. #define SIGTERM 15 //系统 kill 命令默认发送的信号18. #define SIGCHLD 17 //子进程结束后,会默认给父进程发送该信号。原创 2025-07-15 12:45:00 · 1924 阅读 · 0 评论 -
【Linux】复制进程fork
进程是操作系统资源分配的基本单位,包含程序代码、数据和系统资源。fork()系统调用用于创建子进程,返回父进程中的子进程PID和子进程中的0。父子进程共享初始内存空间,通过写时拷贝技术优化资源使用。进程并发运行可实现并行处理,需注意僵死进程问题(子进程结束但未被父进程回收)。解决方法包括父进程调用wait()或让init进程接管孤儿进程。逻辑地址由CPU生成,物理地址对应实际内存位置,通过MMU进行转换。原创 2025-07-15 10:15:00 · 1082 阅读 · 0 评论 -
【Linux】进程
进程是操作系统中的基本执行单元,指正在运行的程序实例。它不仅包含程序的代码段,还包括当前活动(如程序计数器、寄存器值)、堆栈(临时数据)、数据段(全局变量)以及系统资源(如打开的文件、内存分配)。进程是系统资源分配和调度的独立单位。原创 2025-07-14 19:00:00 · 336 阅读 · 0 评论 -
【Linux】Vi/Vim 命令
摘要:vi/vim是Unix/Linux系统中高效的文本编辑器,支持纯键盘操作。它具有三种模式:命令模式(移动/编辑)、插入模式(输入文本)和底行模式(保存/退出)。常用命令包括h/j/k/l移动光标,i/a/o进入插入模式,dd删除行,yy复制行,:wq保存退出。vim还支持搜索替换(/text)、显示行号(:set nu)等高级功能。通过持续练习可掌握其强大编辑能力,成为命令行环境下的高效工具。原创 2025-07-14 14:29:03 · 866 阅读 · 0 评论 -
【Linux】Linux基础命令
本文总结了Linux系统的常用命令、目录结构、文件类型与权限管理。常用命令部分介绍了用户管理(sudo、useradd)、文件操作(cd、ls、cp/mv)、文本处理(grep、wc)等基础命令;系统目录部分说明了/etc、/bin等核心目录的功能;文件权限部分详细讲解了-rwx权限体系,包括文字设定法(u/g/o)和数字设定法(755等),并介绍了chmod命令的两种修改方式。全文覆盖了Linux系统管理的基础知识点,包括命令行操作、文件系统结构和权限控制机制。(149字)原创 2025-07-14 14:13:14 · 1186 阅读 · 0 评论
分享