![](https://img-blog.csdnimg.cn/066e97a3ba4a4545bd9c024aa58fa8e0.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
linux
文章平均质量分 94
linux系统知识,包括操作系统介绍,冯诺伊曼体系结构,进程管理,进程通信,文件管理,文件IO
七凌、
一点一点进步
展开
-
【Linux】I/O多路转接技术
前面我们学习的非阻塞IO,虽然能够在数据不就绪的时候处理其他事情,但是还是有一些不方便,而且每次都要为了一个文件描述符而进行等待,所以为了提高IO效率我们还要学习IO多路转接技术。原创 2023-12-01 10:00:00 · 255 阅读 · 19 评论 -
【Linux】高级IO
I/O(input/output)也就是输入和输出,在著名的冯诺依曼体系结构当中,将数据从输入设备拷贝到内存就叫做输入,将数据从内存拷贝到输出设备就叫做输出。对文件进行的读写操作本质是一种IO,文件IO对应的外设就是磁盘。对网络进行的读写操作本质也是一种IO,网络IO对应的外设就是网卡。原创 2023-11-27 10:00:00 · 268 阅读 · 22 评论 -
【Linux】Linux任务管理与守护进程
让它们协同完成我们的任务,则它们应该属于同一个进程组,这些进程组的控制终端相同,它们同属于一个会话,当用户在控制终端输入特殊的控制键(如Ctrl+C产生SIGINT,Ctrl+\产生SIGQUIT,Ctrl+Z产生SIGTSTP),内核就会发送相应的信号给前台进程组中的所有进程。用户登录时创建会话,当用户退出时销毁会话,会话销毁会话内的进程就有可能受到影响,因为我们的服务器进程是要一直运行的而且不能受用户登录和登出的影响,所以服务器要采用守护进程的方式运行!每个进程组有一个唯一的进程组ID。原创 2023-10-26 10:00:00 · 290 阅读 · 18 评论 -
【Linux】自旋锁 以及 读者写者问题
自旋锁与互斥锁比较类似,自旋锁也是为实现保护共享资源而提出一种锁机制。两者在调度机制上略有不同。对于互斥锁,如果资源已经被占用,资源申请者只能进入睡眠状态。但是自旋锁不会引起调用者睡眠,如果自旋锁已经被别的执行单元占用,线程就会一直循环尝试去申请锁。原创 2023-10-14 10:00:00 · 297 阅读 · 14 评论 -
【Linux】线程池
但对于长时间的任务,比如一个Telnet连接请求,线程池的优点就不明显了。此后我们如果想让线程池处理其他不同的任务请求时,我们只需要提供一个任务类,在该任务类当中提供对应的任务处理方法就行了。其中线程池中的线程数量应该取决于:可用的并发处理器、处理器内核、内存、网络sockets等的数量。下面我们实现一个简单的线程池,线程池中提供了一个任务队列,以及若干个线程(多线程)运行代码后一瞬间就有六个线程,其中一个是主线程,另外五个是线程池内处理任务的线程。主线程逻辑:生成大量随机数,形成计算任务,让线程去执行。原创 2023-10-11 10:00:00 · 196 阅读 · 15 评论 -
【Linux】深入理解生产者消费者模型
是一个非常经典的多线程并发协作的模型,在分布式系统里非常常见。原创 2023-10-07 10:00:00 · 402 阅读 · 20 评论 -
【Linux】Linux线程的同步与互斥
如果你对进程/线程中通信的相关概念不太了解的话可以先看这里《原创 2023-08-30 10:00:00 · 316 阅读 · 4 评论 -
【Linux】多线程
由于线程的存在,操作系统要进行管理线程,比如说创建线程、终止线程、调度线程、切换线程、给线程分配资源、释放资源以及回收资源以及管理存储的线程的属性,这所有的这一套管理机制相比较进程都需要另起炉灶,搭建一套与进程平行的线程管理机制。CPU内部的多级缓存(Cache)存放的是当前进程的代码和数据的部分内容,如果一个进程要进行切换,那么多级缓存里面的内容就要进行重新缓存(这里的成本很高),如果只是线程切换那么就不必重新缓存,于是线程的调度成本比进程更低。因此,如果要支持真线程一定会提高一款操作系统的复杂程度。原创 2023-08-22 10:00:00 · 283 阅读 · 14 评论 -
【Linux】再谈虚拟地址空间
对于理解操作系统的许多概念是很有帮助的,这里我们对虚拟地址空间进行更加深入理解,如果以前没有看过对于虚拟地址空间的初级介绍的话,可以先看这里《原创 2023-08-18 10:00:00 · 219 阅读 · 9 评论 -
【Linux】可重入函数 volatile关键字 以及SIGCHLD信号
号信号,让另外一个执行流更改了内存中的flag变量,而由于编译器的优化,认为flag变量不会改变导致内存中的flag变量改变以后也没有将寄存器中的数据同步修改,而CPU运算使用的数据又是寄存器中的数据,这就导致了内存数据的不可见,于是while循环就会一直运行,导致了上面的问题。假设我们现在要对一个链表进行头插,在执行到第10行代码时,突然进程的时间片到了,进程被切换了,一会等进程再度切换回来时,当前进程要处理信号,而信号处理函数是。在父进程中我们创建了10个子进程,这10个子进程退出时都会给父进程发送。原创 2023-08-15 10:00:00 · 284 阅读 · 7 评论 -
【Linux】进程信号之信号的处理
由于操作系统的代码和数据是不能够被轻易访问的,所以在正文代码中如果要执行操作系统的代码和数据,需要先进行状态转化,由用户态转化为内核态,才能成功执行,那么这个状态转换是怎么实现的呢?表里面的方法是用户的代码,所以还要进行一次状态转换,转换为用户态,然后执行自定义动作,当自定义动作执行完毕时OS会自动调用一次系统调用。在前面我们讲过信号产生和保存以后,我们知道进程对于产生的信号不是立即去处理的,而是在"合适"的时候去处理信号,对于被捕捉的信号,与普通信号有所不同,在调用自定义处理方法时,由。原创 2023-08-12 10:00:00 · 720 阅读 · 20 评论 -
【Linux】进程信号之信号的保存
【Linux】进程信号之信号的保存原创 2023-07-08 10:00:00 · 234 阅读 · 7 评论 -
【Linux】进程间通信之管道
【Linux】进程间通信之管道原创 2023-05-30 10:00:00 · 1079 阅读 · 13 评论 -
【Linux】进程信号之信号的产生
【Linux】进程信号之信号的产生原创 2023-07-05 10:00:00 · 8158 阅读 · 23 评论 -
【Linux】进程信号中的 core dump 标记位
进程信号中的 core dump 标记位原创 2023-08-06 10:00:00 · 996 阅读 · 15 评论 -
【Linux】进程间通信之消息队列
【Linux】进程间通信之消息队列原创 2023-06-16 10:00:00 · 2111 阅读 · 4 评论 -
【Linux】进程间通信的有关基础概念
【Linux】进程间通信的有关基础概念原创 2023-05-26 10:00:00 · 716 阅读 · 26 评论 -
【Linux】进程间的通信之共享内存
【Linux】进程间的通信之共享内存原创 2023-06-13 10:00:00 · 1440 阅读 · 23 评论 -
【Linux】静态库与动态库
【Linux】静态库与动态库原创 2023-05-20 10:00:00 · 1917 阅读 · 24 评论 -
【Linux】Linux文件目录结构
【Linux】Linux文件目录结构原创 2023-05-17 10:00:00 · 1029 阅读 · 21 评论 -
【Linux】文件系统
【Linux】文件系统原创 2023-05-14 10:00:00 · 1812 阅读 · 21 评论 -
【Linux】Linux的文件操作
【Linux】Linux的文件操作原创 2023-05-11 10:00:00 · 1459 阅读 · 17 评论 -
【Linux】教你用进程替换制作一个简单的Shell解释器
制作一个简单的Shell解释器原创 2023-05-01 10:00:00 · 794 阅读 · 23 评论 -
【Linux】虚拟地址空间
【Linux】虚拟地址空间原创 2023-03-25 10:00:00 · 1686 阅读 · 26 评论 -
【Linux】进程控制:创建 终止 等待
【Linux】进程控制:创建 终止 等待原创 2023-03-28 10:00:00 · 715 阅读 · 26 评论 -
【Linux】进程程序替换
进程程序替换原创 2023-03-31 10:00:00 · 546 阅读 · 20 评论 -
【Linux】进程优先级 环境变量
【Linux】进程优先级 环境变量原创 2023-03-22 10:00:00 · 1307 阅读 · 28 评论 -
【Linux】进程的基础概念 进程的相关操作 进程的状态
进程的基础概念 进程的相关操作 进程的状态原创 2023-03-19 10:00:00 · 1517 阅读 · 15 评论 -
【Linux】操作系统(Operator System)
操作系统(Operator System)原创 2023-03-17 10:00:00 · 1729 阅读 · 23 评论 -
【Linux】冯诺依曼体系结构
冯诺依曼体系结构原创 2023-03-15 10:00:00 · 3600 阅读 · 27 评论 -
【Linux】gdb 调试C/C++程序 调试core文件 多线程 多进程程序
gdb的基本使用。原创 2023-01-25 15:54:31 · 790 阅读 · 11 评论 -
【Linux】除了Linux基础命令外 你还应知道的命令
Linux初学者除了掌握基础命令 ls cd mkdir 等外 你还应知道的命令原创 2023-01-12 15:21:15 · 425 阅读 · 12 评论 -
【Linux】gcc/g++的基本使用 看这一篇就够了
关于 gcc/g++ 你了解多少?原创 2023-01-11 13:32:24 · 752 阅读 · 11 评论 -
【Linux】vim的基本使用
vim编辑器 最基本 最常见的使用及命令。原创 2023-01-09 20:30:00 · 4208 阅读 · 19 评论