Linux系统编程
文章平均质量分 95
蚍蜉撼树谈何易
愿你有理想可奔赴,亦有青春可回顾。
展开
-
Linux系统编程 多线程
多线程初识线程线程的概念线程的优缺点优点缺点了解pid(轻量级线程号)与tgid(线程组id)进程与线程概念解释同一所属组下多线程之间共享与独立的空间进程与线程的对比多进程与多线程对比线程控制线程的创建线程终止线程等待线程分离线程安全锁的本质加锁的时机加锁的接口加锁所带来的弊端死锁死锁的概念线程产生的必要条件避免死锁线程同步接口说明基于同步实现生产者与消费者模型POSIX信号量接口说明基于环形队列实现线程池初识线程线程的概念在一个程序里的一个执行路线就叫做线程(thread)。更准确的定义是:线程是“原创 2021-07-23 14:26:42 · 881 阅读 · 3 评论 -
Linux系统编程--信号篇
信号初识信号生活上的信号技术层面上的信号信号的分类信号的常见处理方式了解信号的几大步骤信号的产生初识信号生活上的信号你在网上买了很多件商品,再等待不同商品快递的到来。但即便快递没有到来,你也知道快递来临时,你该怎么处理快递。也就是你能“识别快递”(操作系统可以根据你发出的信号你选择不同的动作)当快递员到了你楼下,你也收到快递到来的通知,但是你正在打游戏,需5min之后才能去取快递。那么在在这5min之内,你并没有下去去取快递,但是你是知道有快递到来了。也就是取快递的行为并不是一定要立即执行,可以理解原创 2021-07-17 15:55:06 · 1222 阅读 · 11 评论 -
Linux系统编程 --进程间通信 -共享内存
进程间通信--共享内存共享内存概念共享内存的本质。共享内存的描述与组织共享内存概念共享内存区是最快的IPC(进程间通信)形式。一旦这样的内存映射到共享它的进程的地址空间,这些进程间数据传递不再涉及到内核,换句话说是进程不再通过执行进入内核的系统调用来传递彼此的数据。与管道区别:1.管道的本质是一个文件,其进程间通信依赖I/O进行操作。而共享内存本质是多个进程共享一份内存,通过读写端不同来达到进程通信的目的。2.管道在创建默认情况下读端为阻塞模式,而共享内存不会这样。共享内存的本质。共享内存的原创 2021-07-05 13:51:24 · 1617 阅读 · 25 评论 -
Linux系统编程--进程间通信 ---管道篇
进程间通信进程间通信进程间通信的定义进程间通信的目的进程间通信的发展。进程间通信的分类进程通信的方式及原理介绍管道匿名管道进程间通信进程间通信的定义进程间通信就是在不同进程之间传播或交换信息进程间通信的目的数据传输:一个进程需要将它的数据发送给另一个进程资源共享:多个进程之间共享同样的资源。通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通知父进程)。进程控制:有些进程希望完全控制另一个进程的执行(如Debug进程),此时控制进程希望能够拦截另一原创 2021-07-04 23:00:29 · 598 阅读 · 24 评论 -
Linux系统编程---进程I/O
进程I/OC语言下的文件接口使用调用fwrite()函数--写入函数fread()读取文件Linux 下的文件操作打开文件write函数文件描述符。如何理解Linux下一切皆文件文件描述符的分配规则重定向普通重定向追加重定向重定向的本质缓冲区为什么要引入缓冲区?缓冲区归属常见的缓冲方式理解文件系统理解目录软硬链接软链接软链接文件的特性软链接的使用软链接的使用注意硬链接硬链接的使用理解ll命令C语言下的文件接口使用C语言文件描述示例:这里实验两个。调用fwrite()函数–写入函数 1#incl原创 2021-06-27 14:58:00 · 1182 阅读 · 39 评论 -
Linux系统编程篇--进程控制篇
进程控制篇了解fork()函数什么是子进程fork()基本用途fork()失败原因了解写时拷贝概念两种方式进程退出进程退出情况查看进程退出码进程常见的退出方法回调函数exit()函数和_exit()函数区别刷新缓冲区进程等待进程等待的必要性进程等待,wait()函数waitpid()根据进程退出码判断进程退出情况?进程替换替换函数execlexeclpexelceexecveexecvexecvp六个替换函数的关系替换原理进程替换的常见使用场景了解fork()函数在linux中fork函数时非常重要的函原创 2021-06-21 00:17:24 · 1595 阅读 · 45 评论 -
Linux地址空间
Linux地址空间进程地址空间进程地址空间是内存地址吗?什么是地址空间地址空间提出的原因?地址空间是怎么工作的?接下来深刻理解一下什么是进程地址空间的三种映射页表映射段表映射段页式内存管理进程地址空间进程地址空间是内存地址吗?#include<iostream> #include<unistd.h>using namespace std;int g_val=100; int main() { cout<<"this is my proce原创 2021-06-20 14:02:56 · 922 阅读 · 51 评论 -
Linux 系统编程 -进程概念篇
Linux系统编程-进程篇冯诺依曼体系结构冯诺依曼的两个重要思想当代计算机的三级缓存操作系统操作系统的概念操作系统的组成操作系统作用Linux下的操作系统体系进程进程概念进程特性进程的组成进程与程序区别进程控制块Linux下的底层下的组织明确Linux操作系统底层Linux底层管理进程的结构体(描述)从操作系统内核的结构看进程(组织)查看进程命令冯诺依曼体系结构这里的存储器是内存,一般情况下内存不直接与外存打交道,而是通过缓存先将输入/输出 输出到寄存器中,再由寄存器与外存做交互。当代典型的输入设备原创 2021-06-14 08:24:47 · 17886 阅读 · 87 评论