操作系统
BIggyGuan
这个作者很懒,什么都没留下…
展开
-
操作系统-互斥锁、自旋锁、读写锁、悲观锁、乐观锁
一 互斥锁使用场景: 如果你能确定被锁住的代码执行时间很长,就不应该用互斥锁加锁的目的就是保证共享资源在任意时间里,只有一个线程访问,这样就可以避免多线程导致共享数据错乱的问题。互斥锁加锁失败后,线程会释放 CPU ,给其他线程,自身处于获取锁阻塞状态,然后从用户态切换到内核态由由内核帮助进行切换线程,当加锁失败时,内核会将线程置为「睡眠」状态,等到锁被释放后,内核会在合适的时机唤醒线程,当这个线程成功获取到锁后,于是就可以继续执行,着之间的过程会产生上下文切换。获取线程失败的线程会从Runnin原创 2020-09-25 00:46:51 · 1022 阅读 · 0 评论 -
进程间的通信方式 8种
进程通信:每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程A把数据从用户空间拷到内核缓冲区,进程B再从内核缓冲区把数据读走,内核提供的这种机制称为进程间通信。1. 匿名管道通信匿名管道(pipe):管道是一种半双工的通信方式,数据只能单向流动,而却只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。// 需要的头文件#include <unistd.h>// 通过pipe原创 2020-09-15 14:16:41 · 764 阅读 · 0 评论 -
死锁原因,条件和解决
死锁概念和产生原因死锁是指多个进程循环等待彼此占有的资源而无限期的僵持等待下去的局面。原因是:系统提供的资源太少了,远不能满足并发进程对资源的需求进程推进顺序不合适,互相占有彼此需要的资源,同时请求对方占有的资源,往往是程序设计不合理死锁产生的必要条件互斥条件:即某个资源在一段时间内只能由一个进程占有,不能同时被两个或两个以上的进程占有可抢占条件:进程所获得的资源在未使用完毕之前,资源申请者不能强行的从资源占有者手中夺取资源,而只能由该资源的占有者进程自行释放占有且等待条件:进程至少已经原创 2020-09-14 11:38:59 · 106 阅读 · 0 评论 -
TCP/UDP简单介绍和三次握手
TCP和UDP的区别TCP面向连接,UDP无连接TCP基于字节流,UDP基于报文TCP有流量控制和拥塞控制,UDP的吞吐量之取决于数据生成率、传输带宽TCP可靠按序交付,UDP尽可能最大交付且乱序TCP全双工点对点通信,UDP可以一对一,一对多,多对一,多对多三次握手四次分手原因分析TCP通过三次握手来建立连接,通过四次回收来端开连接为什莫是3次握手: - 3次握手时连接双方都确认自己和对方有手法能力的最少握手次数 - 若只握手2次,服务器端在接受到客户点的请求就打开连接, 可能受到原创 2020-08-23 23:01:10 · 857 阅读 · 0 评论 -
计算机线程,进程,携程
1、CPU、CPU内核:CPU:是中央处理器的简称,是计算机的运算和控制中心、是信息处理、程序运行的最终执行单元。CPU内核 是CPU内的核心芯片,内核是CPU的计算引擎,由单晶硅制成,用来完成所有的计算、接受/存储命令、处理数据等,是数字处理核心。核心(Die)又称为内核,是CPU最重要的组成部分。2、单核CPU、多核CPU、多CPU:单核CPU:就是系统只有一个CPU,内核只有一个。多核CPU:就是系统只有一个CPU,但是有多个内核,就是在一个处理器内部集成了多个内核。多CPU:就是系统上存转载 2020-07-23 22:27:41 · 246 阅读 · 0 评论 -
线程,进程,协程
线程,进程,协程1.1 进程进程:是CPU对程序的一次执行过程、一次执行任务。各个进程有自己的内存空间、数据栈等。操作系统分配内存的基本单位(打开、执行、保存…)1.2 线程线程:是进程中执行运算的最小单位,是进程中的一个实体。(打开、执行、保存…)一个程序至少有一个进程,一个进程至少有一个线程。操作系统分配CPU的基本单位1.3 携程协程:比线程更小的执行单元,又称微线程,在单线程上执行多个任务,自带CPU上下文用函数切换,开销极小。不通过操作系统调度,没有进程、线程的切换开销。(ge原创 2020-07-09 13:43:03 · 116 阅读 · 0 评论