![](https://img-blog.csdnimg.cn/9d1fc319042b460e9c853d08780fc82e.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Linux-系统编程
文章平均质量分 95
从Linux基础的命令开始, 渐渐深入 进程、状态、地址空间, 文件、文件系统, 进程通信, 线程、互斥、同步、设计模式、线程池等
七月.cc
本人一名普通的在校大学生。
博客会持续更新的,无论是语言基础知识,算法,各种题等,都会涉及到。
内容会涉及到 C语言、C++、数据结构、数据库、操作系统等 各方面的知识。
但是因为是在校大学生,所以在考前一个月左右可能会更新不及时,大家体谅!!!
博客会尽可能的写的详细但不繁琐,美观但不花哨,尽可能的不出现知识型的错误。
有任何建议、意见都可以提,博主会听取建议的。
希望喜欢博主博客的好兄弟可以关注支持一下!!!
Little Bit. Fighting!!!
展开
-
[Linux] 最基础简单的线程池 及其 单例模式的实现
什么是线程池?线程池一种线程使用模式. 我们知道, 线程的创建、调度、销毁都是需要消耗资源的. 也就是说 线程过多会带来调度开销, 进而影响缓存局部性和整体性能.而线程池维护着多个线程, 这些线程等待着被分配可并发执行的任务. 这避免了在处理短时间任务时创建与销毁线程的代价.说简单点, 就是 线程池维护着多个线程, 这些线程都可以随时被调度、随时被派发任务, 不用在任务需要派发时再创建线程, 而是在需要派发任务时 可以直接调度线程池内的线程, 执行任务原创 2023-07-13 16:57:14 · 1168 阅读 · 0 评论 -
【Linux】线程同步分析:什么是条件变量?生产者消费者模型是什么?POSIX信号量怎么用?阻塞队列和环形队列模拟生产者消费者模型
在线程只使用互斥的方式去访问临界资源时, 就有可能造成线程饥饿的情况.那么 有没有一种可能, 可以让所有线程像排队一样, 一个一个地访问临界资源. 当一个线程访问完临界资源后, 再重新去队尾排队呢?原创 2023-04-21 18:41:53 · 443 阅读 · 0 评论 -
【Linux】线程互斥详解:多线程会有什么问题?什么是互斥锁?C++怎么封装使用互斥锁?
多线程可以提高程序的并发性和运行效率,充分利用计算机的多核资源. 但是, 多线程也可能会导致输出混乱、访问共享资源混乱、竞争等问题. 接下来我们就尝试解决这些问题原创 2023-04-17 21:13:12 · 785 阅读 · 0 评论 -
【Linux】线程控制分析:如何获取线程ID?线程如何自动回收?
我们知道, 进程有自己相关控制接口, 等待、创建等而线程作为轻量级的进程, 其实也是有控制接口的.原创 2023-04-15 17:18:46 · 1723 阅读 · 0 评论 -
【Linux】页表的深入分析
简单的说, 页表是进程地址空间和物理内存之间的相互映射但页表却并非一句话可以概括这么简单原创 2023-04-14 15:29:34 · 1211 阅读 · 0 评论 -
【Linux】线程概念详析
线程可以说是实际区别于进程的一个概念, 但也可以说是实际没有区别于进程的一个概念.而实际区别与否, 其实 与平台有关原创 2023-04-14 15:27:45 · 419 阅读 · 0 评论 -
【Linux】一篇文章, 掌握Linux进程信号
进程信号, 在Linux系统的学习中, 是一个非常重要的概念和知识.我们可以通过向进程发送信号来让进程执行某些指定的动作.原创 2023-04-08 16:39:35 · 517 阅读 · 0 评论 -
【Linux】[万字] 详解 System V: 共享内存原理、创建及使用
我们知道, 进程间通信的前提是:先让不同的进程看到同一份资源Linux的管道通信给进程间看到的同一份资源是:管道文件而 共享内存 给进程间看到的同一份资源是:物理内存原创 2023-04-03 11:41:04 · 1661 阅读 · 0 评论 -
【Linux】[万字] 详解 Linux管道通信:匿名管道、命名管道的原理及使用等
管道, 是Unix中最古老的进程间通信的方式管道, 其实就是 一个进程连接到另一个进程的数据流. 就像我们生活中, 管道是输送资源的:石油、天然气等而系统中的管道, 则是输送数据的.那么管道究竟是什么?管道, 其实是 一个打开的文件. 但是这个文件很特殊.原创 2023-04-02 14:34:39 · 1798 阅读 · 0 评论 -
【Linux】详析动、静态库原理、创建与使用
在Linux环境下, 我们使用gcc编译链接代码文件时, 可以统分为 静态链接和动态链接静态链接:在编译链接时, 将代码所使用到的静态库文件的代码全部加入到可执行文件中, 此时的可执行文件会生成的比较大. 不过, 此时可执行文件再运行时, 就不需要再查找库了. 静态库文件一般以 .a 结尾动态链接:不会在编译链接时将动态库文件的代码加入到可执行文件中, 而是在可执行文件运行时, 去查找所需动态库, 并将其加载到相应的进程中. 并且不同进程可以共享这些动态库. 动态库文件一般以 .so 结尾原创 2023-04-01 09:47:14 · 1166 阅读 · 0 评论 -
【Linux】[万字] 详析 Linux磁盘文件管理系统、文件inode以及 软硬连接
Linux的文件操作, 都是从内存文件进行操作, 即都是对打开的文件进行操作的.但是, 我们的操作系统中并不是只有内存文件的, 甚至可以说. 这些文件一般都静静的在磁盘中存储着, 所以也被称为 磁盘文件. 本篇文章的主要内容就是介绍Linux的文件系统是怎么管理磁盘文件的.原创 2023-03-30 09:45:00 · 484 阅读 · 2 评论 -
【Linux】[万字] 详析 Linux下的 文件重定向 以及 文件缓冲区
简单的来讲,文件缓冲区其实就是一块内存空间这块空间是用来, 存储 向系统内核中写入的数据 的. 只有在刷新文件缓冲区时, 文件缓冲区内的数据才会写入系统内核中。原创 2023-03-29 12:30:00 · 815 阅读 · 0 评论 -
【Linux】教你实现一个简单的、属于自己的Shell
我们在Linux中使用的shell, 一般有两个 bash 和 zsh.我们可以通过shell, 执行各种命令. 而本篇文章的主要内容, 就是实现一个简易的shell原创 2023-03-28 17:52:36 · 4010 阅读 · 0 评论 -
【Linux】[万字] Linux下的文件操作 及 Linux文件描述符fd 详解
在Linux操作系统中, 文件描述符 是一个至关重要的概念.理解了文件描述符, 其实就可以相当于理解了 Linux系统的关于内存文件系统的整个大致框架和逻辑但是在介绍文件描述符之前, Linux关于文件还存在许多 概念和文件操作 的知识需要介绍一下, 就当作是为解释文件描述符所做的准备吧原创 2023-03-27 17:55:03 · 905 阅读 · 0 评论 -
【Linux】[万字] 详析进程控制:fork子进程运行规则?怎么回收子进程?什么是进程替换?进程替换怎么操作?
我们都知道, 用fork()创建出来的子进程是与父进程共享代码和数据的. 子进程执行的也只是父进程的代码片段.那么当我们需要让创建出来的子进程执行其他程序的代码, 需要怎么做呢?让一个进程执行其他程序的代码, 即进程替换, 不单是子进程, 当前进程也可以发生进程替换.原创 2023-03-24 10:31:15 · 455 阅读 · 0 评论 -
【Linux】什么是进程地址空间?父子进程的代码时如何继承的?程序是怎么加载成进程的?为什么要有进程地址空间?
程序没有被加载到内存中时, 程序内部的地址和区域是按照一定的相对关系划分的. 就像图中表示的那样, 当前区域编号是什么, 此区域的名字是什么是存储关于什么内容的, 类型是什么, 区域地址是什么, 与首地址相比偏移量是多少, 区域大小是多少?这些都与程序被加载为进程息息相关原创 2023-03-22 08:10:10 · 292 阅读 · 0 评论 -
【Linux】环境变量介绍:什么是环境变量?C/C++如何获取环境变量?环境变量有什么特性?有什么用?
什么是环境变量?认识 环境 这两个字, 也知道 变量 是什么, 把这两个词结合起来的环境变量是什么东西?环境变量, 稍微正式一点来讲, 其实是 在操作系统中用来指定操作系统运行环境的一些参数原创 2023-03-21 00:12:34 · 2444 阅读 · 0 评论 -
【CentOS 7.6】从零开始搭建C/C++开发环境:包括neovim美化、插件 以及 语法补全
前几天, 在云服务器里删了一些东西, 导致丢失了一些文件和软件的相关配置.导致C/C++的开发环境用着及其不舒服, 所以重新搭建了一边, 顺手写了这一篇文章这篇文章的主要目的就是, 在一个什么都没有的CentOS7.6环境下, 搭建一个依靠 Neovim 和 Coc-nvim 的C/C++补全开发环境.原创 2023-03-19 00:34:54 · 2622 阅读 · 1 评论 -
【Linux】进程状态相关概念、Linux实际进程状态、进程优先级
Linux系统中, 进程存在着许多的状态. 这些状态是什么意思?为什么会处于某种状态?进程的优先级是什么?原创 2023-03-18 20:26:51 · 960 阅读 · 0 评论 -
【Linux】系统进程相关概念、系统调用、Linux进程详析、进程查看、fork()初识
运行起来的程序就是进程这句话不能说是错的, 但也不全对。如果运行起来的程序就是进程, 那么进程和程序又有什么区别呢?当一个程序运行起来的时候, 此程序会被加载到内存中, 那么进程与程序的区别 就只是 是否被加载到内存中吗?很显然并不是这样的.其实运行起来的程序就是进程, 这句话并不准确。事实上, 操作系统中的一个进程 除了包含运行起来的程序之外, 还存在一个包含此进程所有属性数据的数据结构, 这两者结合, 才足够被称为是一个进程也就是说, 进程 = 运行的程序 + 属性数据结构。原创 2023-03-18 20:19:46 · 1094 阅读 · 0 评论 -
【Linux】make与makefile用法简单介绍
在Windows平台上编写C/C++代码, 一般使用的都是配置完成的集成的开发环境, 比如Dev-C++、VS或VS Code等。Linux则不同, 每一个源文件都需要进行手动指令编译生成可执行文件之后才能运行。make可以使手动编译的过程变得简单许多, 本文简单介绍了有关make的简单使用用法原创 2023-03-17 14:42:24 · 1448 阅读 · 0 评论 -
【Linux】 Linux用户权限、文件权限、权限操作相关介绍
通俗来讲生活中的权限就是:对于一件事物,人可以对其做什么,不能对其做什么。而 Linux权限 也是如此,不过在 Linux系统 中,你和朋友及其他人 都被称为用户,这些用户对文件可以做什么,不可以做什么,就是 Linux权限原创 2023-03-17 14:49:56 · 4956 阅读 · 0 评论 -
【Linux】Linux最常用的20个基本指令 介绍~分析
因为Linux 的开放、灵活、自由、免费 等特点,全球大多服务器设备都是使用的Linux操作系统,而且很高的几率不会使用图形化的界面,只有命令行操作而要使用命令行熟练操作Linux,最重要的知识就是 Linux 操作系统的内核 以及 Linux环境下的指令,本篇文章的主要内容就是 Linux 环境下的 指令操作原创 2022-11-02 08:58:43 · 4053 阅读 · 2 评论