随笔分类 -  Linux

Linux相关知识点记录
linux 封装 分用
摘要:封装:(常用四层为例) 上层协议是如何使用下层协议提供的服务的呢? 其实这是通过封装(encapsulation)实现的。应用程序数据发送到物理网络上之前,将沿着协议栈从上往下依次传递。每层协议都将在上层数据的基础上加上自己的头部信息(有时还包括尾部信息),以实现该层的功能,这个过程就称为封装。 分 阅读全文

posted @ 2023-10-10 22:18 廿陆 阅读(23) 评论(0) 推荐(0) 编辑

linux 网络协议
摘要:协议: 简介: 协议,网络协议的简称,网络协议是通信计算机双方必须共同遵从的一组约定。如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流。 它的三要素是: 语法、语义、时序。为了使数据在网络上从源 到达 目的,网络通信的参与方必须遵循相同的规则,这套规则称为协议(pro 阅读全文

posted @ 2023-10-10 17:05 廿陆 阅读(123) 评论(0) 推荐(0) 编辑

linux 网络模型 OSI模型(7层) TCP/IP协议(4层)
摘要:OSI七层参考模型: 七层模型,亦称 OSI(Open System Interconnection)参考模型,即开放式系统互联。参考模型是国际标准化组织(ISO)指定的一个用于计算机或通信系统间互联的标准体系,一般称为OSI参考模型或七层模型。它是一个七层的、抽象的模型体,不仅包括一系列抽象的术语 阅读全文

posted @ 2023-10-10 11:45 廿陆 阅读(113) 评论(0) 推荐(0) 编辑

linux 网络结构模式 MAC地址 子网掩码 端口
摘要:C/S结构:QQ 简介: 服务器-客户机,即 Client - Server(C/S)结构。C/S结构通常采取两层结构。服务器负责数据的管理,客户机负责完成与用户的交互任务。客户机是因特网上访问别人信息的机器,服务器则是提供信息供人访问的计算机。 客户机通过局域网与服务器相连接,接受用户的请求,并通 阅读全文

posted @ 2023-10-09 12:27 廿陆 阅读(51) 评论(0) 推荐(0) 编辑

linux 生产者消费者模型 信号量(灯) 条件变量
摘要:生产者消费者模型: 模型对象:1.生产者(1或多个) 2.消费者(1或多个) 3.容器(商品) 1 /* 2 生产者和消费者模型(粗略版本) 3 生产者未生产 消费者开始消费 发生错误 4 */ 5 #include <stdio.h> 6 #include <pthread.h> 7 #inclu 阅读全文

posted @ 2023-10-08 16:35 廿陆 阅读(31) 评论(0) 推荐(0) 编辑

linux 线程 读写锁
摘要:读写锁:🔴🟠🟡🟢🔵🟣🟤⚫⚪ 当有一个线程已经持有互斥锁时,互斥锁将所有试图进入临界区的线程都阻塞住。但是考虑一种情形,当前持有互斥锁的线程只是要读访问共享资源,而同时有其它几个线程也想读取这个共享资源,但是由于互斥锁的排他性,所有其他线程都无法获取锁,也就无法读访问共享资源了,但是实际 阅读全文

posted @ 2023-10-08 10:59 廿陆 阅读(24) 评论(0) 推荐(0) 编辑

linux 线程 死锁
摘要:死锁:🔴⚫🟤🟣🔵🟢🟡🟠 有时,一个线程需要同时访问两个或更多不同的共享资源,而每个资源又都由不同的互斥量管理。当超过一个线程加锁同一组互斥量时,就有可能发生死锁。 两个或两个以上的进程在执行过程中,因争夺共享资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统 阅读全文

posted @ 2023-10-08 09:54 廿陆 阅读(27) 评论(0) 推荐(0) 编辑

linux 线程 互斥锁
摘要:互斥量(锁): 为避免线程更新共享变量时出现问题,可以使用互斥量(mutex 是 mutual exclusion 的缩写)来确保同时仅有一个线程可以访问某项共享资源。可以使用互斥量来保证对任意共享资源的原子访问。 互斥量有两种状态:已锁定(locked) 和 未锁定(unlocked)。任何时候, 阅读全文

posted @ 2023-10-07 19:56 廿陆 阅读(28) 评论(0) 推荐(0) 编辑

linux 线程属性 线程同步
摘要:线程属性:man pthread_attr_ (按两次Tab,会出现相关属性) 1 /* 2 int pthread_attr_init(pthread_attr_t * attr); 3 - 初始化线程属性变量 4 int pthread_attr_destroy(pthread_attr_t * 阅读全文

posted @ 2023-10-07 11:15 廿陆 阅读(6) 评论(0) 推荐(0) 编辑

linux 线程 线程的分离 线程取消 detach cancel
摘要:线程的分离:分离后不能进行连接 1 /* 2 detach a thread 3 int pthread_detach(pthread_t thread); 4 - 功能:分离一个线程,被分类的线程在终止的时候,会自动释放资源返回给系统 5 1.不能多次分离,会产生不可以预料的行为 6 2.不能去连 阅读全文

posted @ 2023-10-07 11:08 廿陆 阅读(37) 评论(0) 推荐(0) 编辑

linux 线程 创建线程 终止线程 连接已终止的线程 create exit join
摘要:创建子线程: 1 /* 2 man pthread: 查询线程系统调用 3 一般情况下, main函数所在的线程称为主线程(main线程),其余创建的线程称为子线程 4 程序中默认只有一个进程,fork()函数调用,2个进程(父子进程) 5 程序中默认只有一个线程(主线程),pthread_crea 阅读全文

posted @ 2023-10-06 11:35 廿陆 阅读(17) 评论(0) 推荐(0) 编辑

linux 线程概述 线程与进程的区别
摘要:线程概述: 与进程(process)类似,线程(thread)是允许应用程序并发执行多个任务的一种机制。一个进程可以包含多个线程。同一个程序中的所有线程均会独立执行相同程序,且共享同一份全局内存区域,其中包括初始化数据段、未初始化数据段,以及堆内存段。(传统意义上的 UNIX 进程只是多线程程序的一 阅读全文

posted @ 2023-10-06 10:14 廿陆 阅读(44) 评论(0) 推荐(0) 编辑

linux 信号集 信号捕捉函数
摘要:信号集: 许多信号相关的系统调用都需要能表示一组不同的信号,多个信号可使用一个称之为信号集的数据结构来表示,其系统数据类型为 sigset_t 在 PCB 中有两个非常重要的信号集。 一个称之为:“阻塞信号集”, 另一个称之为 “未决信号集”。这两个信号集都是内核使用 位图机制(类似 O_AAA | 阅读全文

posted @ 2023-09-26 22:47 廿陆 阅读(37) 评论(0) 推荐(0) 编辑

linux alarm函数 、setitimer函数、signal函数
摘要:alarm定时器: 1 /* 2 #include <unistd.h> 3 unsigned int alarm(unsigned int seconds); 4 - 功能: 设置定时器(闹钟),函数调用开始倒计时,当倒计时为0的时候 5 函数会给当前的进程发送一个信号: SIGALARM 6 - 阅读全文

posted @ 2023-09-26 10:56 廿陆 阅读(299) 评论(0) 推荐(0) 编辑

linux 信号 kill函数 raise函数 abort函数
摘要:信号的概念: 信号是Linux进程间通信的最古老的方式之一,是事件发生时对进程的通知机制,有时也称之为软件中断,它是在软件层次上对中断机制的一种模拟,是一种异步通信的方式。信号可以导致一个正在运行的进程被另一个正在进行的异步进程中断,转而处理某一个突发事件。 发往进程的诸多信号,通常都是源于内核。引 阅读全文

posted @ 2023-09-25 21:19 廿陆 编辑

linux 内存映射
摘要:内存映射:Memory-mapped I/O 内存映射是将磁盘文件的数据映射到内存,用户通过修改内存就能修改磁盘文件 进程的虚拟地址空间会对应于实际的物理内存当中。。映射到 动态库(共享库)之中,内存动态保存文件的数据。 mmap函数: 1 /* 2 man 2 mmap:(m:memory内存 m 阅读全文

posted @ 2023-09-24 22:01 廿陆 阅读(221) 评论(0) 推荐(0) 编辑

linux有名管道实现聊天功能
摘要:有名管道实现聊天功能 chatA.c chatB.c 获取键盘录入数据: scanf()函数遇到换行自动结束 持续录入数据:fgets()函数 chatA.c 1 #include <stdio.h> 2 #include <sys/types.h> 3 #include <unistd.h> 4 阅读全文

posted @ 2023-09-24 11:26 廿陆 阅读(20) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示