![](https://img-blog.csdnimg.cn/20190918135101160.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Linux系统基础
文章平均质量分 96
Linux操作系统的基础知识
侠客cheems
我,把别人的BUG置之不理,所以自然有人归还。
展开
-
【Linux】简单线程池的设计与实现 -- 单例模式
线程池:一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价。线程池不仅能够保证内核的充分利用,还能防止过分调度。可用线程数量应该取决于可用的并发处理器、处理器内核、内存、网络sockets等的数量。需要大量的线程来完成任务,且完成任务的时间比较短。WEB服务器完成网页请求这样的任务,使用线程池技术是非常合适的。原创 2023-08-14 10:42:02 · 1248 阅读 · 23 评论 -
【Linux】线程同步 -- 条件变量 | 生产者消费者模型 | 自旋锁 |读写锁
初识生产者消费者模型、同步、条件变量、初步使用、POSIX信号量、其他常见的各种锁、自旋锁、读写锁原创 2023-08-02 10:57:45 · 2359 阅读 · 63 评论 -
【Linux】线程互斥 -- 互斥锁 | 死锁 | 线程安全
互斥锁、互斥量mutex、锁原理解析、可重入VS线程安全、STL中的容器是否是线程安全的?、死锁原创 2023-07-30 11:35:59 · 1058 阅读 · 29 评论 -
【Linux】详解线程控制 -- 线程用法 | 线程等待 | 线程ID及地址空间布局
本文主要讲述线程控制:Pthread线程库,线程使用,线程等待,线程退出返回值的用处,C++11的多线程,线程ID及地址空间布局,线程局部存储,分离线程原创 2023-07-26 11:41:52 · 997 阅读 · 23 评论 -
已解决:多线程环境中,新线程在使用cout函数打印输出到显示器出现数据混乱的情况
最近学习Linux多线程的时候,创建新线程后使用cout打印输出到显示器上面的内容老是不对齐,数据混乱,搞得我强迫症都犯了。那么有什么方法呢?本文已解决原创 2023-07-28 11:30:47 · 2386 阅读 · 13 评论 -
【Linux】 由“进程”过渡到“线程” -- 什么是线程(thread)?
由进程过渡到线程,一字之差进程与线程的区别是什么?什么叫线程?什么叫进程?如何创建线程?线程相对于进程又有哪些优缺点?原创 2023-07-23 06:30:00 · 1087 阅读 · 18 评论 -
【Linux】进程信号 -- 信号保存与递达 | 信号捕捉 | 僵尸进程的信号处理方法
信号的保存与信号的递达处理:信号集操作函数、信号捕捉流程(陷入内核操作)、可重入函数、volatile、SIGCHID信号关于僵尸进程处理原创 2023-07-20 11:07:01 · 2996 阅读 · 53 评论 -
【Linux】进程信号 -- 信号产生 | 系统调用、硬件、软件的信号发送
关于信号发送的问题:上面所说的所有信号产生,最终都要有OS来进行执行,为什么?OS是进程的管理者,也只有OS有权利去操作信号的处理是否是立即处理的?在合适的时候信号如果不是被立即处理,那么信号是否需要暂时被进程记录下来?记录在哪里最合适呢?是的,保存在PCB一个进程在没有收到信号的时候,能否能知道,自己应该对合法信号作何处理呢?我们应该知道,比如红灯快要亮起,但还没有,此时我们知不知道红灯亮起的时候该怎么办?答案是知道。原创 2023-07-18 10:07:41 · 4282 阅读 · 43 评论 -
【Linux】进程间通信 -- 信号量
假如我们将一份共享资源(电影院)分成几份,进程(人),访问共享资源的子部分(电影的座位),我们不能直接去访问这些资源(不能不买票随便坐),信号量(电影票),每个进程先申请信号量,如果申请成功了,就相当于预定这部分资源(买到票有座位),申请失败就不允许访问这部分资源(没买票到不允许看电影)。所有的进程在访问公共资源之前,都必须先申请sem信号量→必须先申请sem信号量的前提,是所有进程必须先得看到同一个信号量→信号量本身就是公共资源→信号量是不是也要保证自己的安全呢?为什么要让不同的进程看到同一份资源呢?原创 2023-07-16 15:12:27 · 883 阅读 · 14 评论 -
【Linux】进程间通信 -- system V共享内存
共享内存的原理以及共享内存的用法,案例实现共享内存通信:1.使用shmget生成共享内存⒉.使用ftok使得进程能看到同一内存块3.模拟创建共享内存查看key值与shmid值、再谈key、IPC资源4.shmctl对共享内存进行控制5.shmat将共享内存段连接到进程地址空间6.shmdt将共享内存段与当前进程脱离7.创建共享内存通信-读取端8.创建共享内存通信-写入端、共享内存的优缺点、共享内存的内核结构原创 2023-07-13 09:05:21 · 917 阅读 · 18 评论 -
【Linux】进程间通信 -- 命名管道 | mkfifo调用
同是管道通信,命名管道与匿名管道有什么区别呢?本文通过建立一个命名管道通信带你了解什么是命名管道原创 2023-07-10 11:54:09 · 1205 阅读 · 19 评论 -
【Linux】进程间通信 -- 匿名管道 | pipe系统调用
什么是通信?为什么要有通信?如何实现?管道通信、匿名管道、pipe系统调用、读写特征、管道的特征原创 2023-07-08 09:24:16 · 1028 阅读 · 6 评论 -
【Linux】如何将自定义源文件打包并生成动态库
动态库打包、动态库链接OS方法:1.增加环境变量方法2.配置.conf文件3.创建一个软连接在当前目录4.创建一个软连接在系统库目录。静态库如何加载、动态库如何加载原创 2023-07-06 11:24:31 · 481 阅读 · 5 评论 -
【Linux】如何将自定义源文件打包并生成静态库
自定义实现一个静态库,从源文件的书写,再到静态库打包,以及作为使用者如何使用静态库,另外—种使用静态库的方法(安装库到本地)原创 2023-07-04 08:58:00 · 1163 阅读 · 8 评论 -
【Linux】什么是文件系统及inode?如何创建软硬链接?软硬链接有什么作用?
关于文件系统以及inode,什么是软硬链接,以及如何创建软硬链接,软硬链接有什么作用原创 2023-07-02 09:40:03 · 6070 阅读 · 19 评论 -
【Linux】详解进程控制 ( 再谈进程退出 | 程序替换exec*类型函数 )
再谈进程退出、进程程序替换、程序替换原理有哪些替换函数、execl、execlp、execv、execvp、execle、execve原创 2023-06-27 10:18:38 · 720 阅读 · 11 评论 -
【Linux】文件基础IO操作:C语言接口 | 系统调用接口 | 重定向
简述:重修C语言文件知识、Linux文件知识、标记位传参、文件的系统调用、理解什么是文件、文件fd的分配规则、重定向、c语言文件层面的缓冲区知识原创 2023-06-29 09:20:36 · 1295 阅读 · 13 评论 -
【Linux】详解进程控制 ( fork函数 | 写时拷贝 | 进程退出 | 进程等待 )
fork函数、初识fork返回值问题、fork常规用法、写时拷贝、进程退出、进程退出码、进程退出场景、进程如何退出、进程等待、僵尸进程、进程等待的方法原创 2023-06-25 09:12:04 · 551 阅读 · 12 评论 -
【Linux】程序地址空间?进程地址空间
你之前在语言阶段学习的内存地址空间真的准确么?本文让你重新认识地址空间进程地址空间:为什么要存在虚拟地址空间?重新理解地址空间原创 2023-06-22 10:37:25 · 1279 阅读 · 10 评论 -
【Linux】详解环境变量与命名行参数
环境变量:了解PATH、什么是环境变量?如何使用环境变量命名行参数:argc与argv、env、environ原创 2023-06-15 11:13:53 · 2176 阅读 · 12 评论 -
【Linux】进程优先级
什么是进程优先级?在Linux中进程优先级是怎么具体表述出来的、如何更改优先级?原创 2023-06-18 18:07:09 · 784 阅读 · 4 评论 -
万字详解普遍操作系统进程七态与Linux进程七态
作为一个称职的系统管理员,为了更熟悉进程的管理流程,我们必须要知道进程的不同状态所对应的意义。普遍操作系统的概念:就绪状态、运行状态、等待状态、阻塞状态、挂起状态、暂停状态、终止状态Linux下的进程状态:R(running)运行状态、s(sleeping)可中断睡眠状态、T(stopped)停止状态、t (tracing stop)跟踪停止、D(disk sleep)不间断睡民状杰Z(zombie)僵尸状态、x (dead)死亡状态原创 2023-06-09 12:13:02 · 2224 阅读 · 22 评论 -
【Linux】什么是进程(process)?
了解什么是进程?进程与程序概念描述进程-PCB、Windows进程与Linux进程、Linux进程操作子进程父进程、创建进程fork的使用原创 2023-06-06 10:42:02 · 1692 阅读 · 14 评论 -
作为C/C++程序员你可以不使用但你必须会的Linux调试器-gdb(GNU Debugger)
C/C++程序员的开发工作大多集中在Linux环境下,那么在Linux环境中的调试技巧就非常重要了,而且有些面试官也喜欢考察gdb这种不是特别好用但又表现你的Linux基础的小工具原创 2023-05-27 11:40:11 · 807 阅读 · 14 评论 -
超详细的Linux环境下使用git上传代码教程(gitee版)
git各种操作总结:超详细的在linux环境下使用git创建本地及远程仓库,上传文件,删除文件教程,一看就懂原创 2023-05-16 19:27:42 · 4304 阅读 · 6 评论 -
【Linux】关于权限的认识以及相关Linux权限热点面试题
Linux下有两种用户:超级用户(root)、普通用户。超级用户:可以再linux系统下做任何事情,不受限制普通用户:在linux下做有限的事情。超级用户的命令提示符是“#”,普通用户的命令提示符是“$”su root(这个root可以省略)输完以后会弹出Password:(输入root账号的密码,Linux输入密码不会显示输了多少位)su user(你想更换的用户名) root不需要输入密码就可以更换到任意你想要更换的用户。原创 2022-11-12 20:32:27 · 434 阅读 · 2 评论