计算机操作系统学习笔记(12)——I/O 多路复⽤:select/poll/epoll
这篇的内容相当重要的一、最基本的 Socket 模型Socket 的中⽂名叫作插⼝,双⽅要进⾏⽹络通信前,各⾃得创建⼀个 Socket,这相当于客户端和服务器都开了⼀个“⼝⼦”,双⽅读取和发送数据的时候都通过这个“⼝⼦”。这样⼀看,是不是觉得很像弄了⼀根⽹线,⼀头插在客户端,⼀头插在服务端,然后进⾏通信。二、建立Socket的过程创建 Socket 的时候,可以指定⽹络层使⽤的是 IPv4 还是....
计算机操作系统学习笔记(11)——零拷贝
一、DMADMA(直接内存存取)为什么要有 DMA 技术?没有DMA的时候,IO整个数据的传输过程,都要需要 CPU 亲⾃参与搬运数据的过程,⽽且这个过程,CPU 是不能做其他事情的。有了DMA技术。在进⾏ I/O 设备和内存的数据传输的时候,数据搬运的⼯作全部交给 DMA 控制器,⽽ CPU 不再参与任何与数据搬运相关的事情,这样 CPU 就可以去处理别的事务。说白了就是引入了DMA,帮CPU....
计算机操作系统学习笔记(8)——死锁
一、死锁多线程为了防止竞争共享资源⽽导致数据错乱,都会在操作共享资源之前加上互斥锁,只有成功获得到锁的线程,才能操作共享资源,获取不到锁的线程就只能等待,直到锁被释放。当两个线程为了保护两个不同的共享资源⽽使⽤了两个互斥锁,那应⽤不当的时候,可能会造成两个线程都在等待对⽅释放锁,这种情况就是发⽣了死锁。说白了就是我有你需要的东西,你也有我需要的东西,但是我们2个谁都不肯放手,就导致了死锁死锁只有....
计算机操作系统学习笔记(7)——进程通信
一、进程通信每个进程的⽤户地址空间都是独⽴的,⼀般⽽⾔是不能互相访问的,但内核空间是每个进程都共享的,所以进程之间要通信必须通过内核。信号什么是信号呢?我们可以通过 kill -l 命令,查看所有的信号:linux 的 kill 命令是向进程发送信号,kill 不是杀死的意思,-9 表示无条件退出,但由进程自行决定是否退出,这就是为什么 kill -9 终止不了系统进程和守护进程的原因。运⾏在 ....
计算机操作系统学习笔记(4)——伪共享
一、伪共享当多线程修改互相独立的变量时,如果这些变量共享同一个缓存行,就会无意中影响彼此的性能,这就是伪共享。伪共享只是影响性能,并不会带来程序上的错误伪共享被称为并发编程的隐形杀手,因为开发者很难感知伪共享问题对于多个线程共享的热点数据,即经常会修改的数据,应该避免这些数据刚好在同⼀个 Cache Line 中,否则就会出现为伪共享的问题。其实很简单,就是2个线程x和y分别操作2个变量A和B,....
计算机操作系统学习笔记(3)——CPU缓存一致性
一、CPU Cache写回内存之前说的CPU Cache缓存块实际分为:头标志Tag和数据块Data Block前面说的直接映射,取模运算有可能发生冲突,发生了冲突就用Tag去标记。组标记(Tag)。这个组标记会记录当前 CPU Line 中存储的数据对应的内存块,我们可以⽤这个组标记来区分不同的内存块。Cache里的数据总要写回内存的,那在什么时机才把 Cache 中的数据写回到内存呢?这里有....
[计算机操作系统(慕课版)]第二章 进程的描述与控制(学习笔记)
2.1 前驱图和程序执行2.1.1 前驱图前驱图是指一个有向无循环图可记为DAG前驱图用于描述进程之间执行的先后顺序。前驱图的每个节点用来表示一个进程或程序段乃至一条语句节点间的有向边表示两个节点之间存在的偏序或前驱关系。进程或程序之间的前驱关系可用→来表示。如果进程Pi和Pj存在前驱关系,可表示为(Pi,Pj)∈→,也可写成Pi→Pj,表示Pj开始执行之前Pi必须完成。Pj是Pif的直接前驱,....
计算机操作系统——操作系统概述(学习笔记)
1.操作系统的概念(1)操作系统的定义控制和管理整个计算机系统的硬件和软件资源合理地组织调度计算机的工作和资源分配提供给用户和其他软件方便的接口和环境计算机系统中最基本的系统软件(2)生活中常见的操作系统WindowsMacOsLinux安卓iOS鸿蒙Os (3)操作系统的层次结构用户 应用程序(软件) 如:QQ、Chrome、Steam操作系统 裸机(硬件) 如:CPU、内存、硬.....
本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。
操作系统学习笔记相关内容
- 操作系统学习笔记文件
- 操作系统学习笔记io
- 操作系统学习笔记内存管理
- 操作系统学习笔记结构
- 计算机操作系统学习笔记结构
- 操作系统描述学习笔记
- 计算机操作系统慕课学习笔记
- ubuntu16.04 ros操作系统学习笔记
- ubuntu16.04 ros操作系统学习笔记moveit
- ubuntu16.04 ros操作系统学习笔记机器人slam
- ubuntu16.04 ros操作系统学习笔记组件
- ros操作系统学习笔记通信
- ubuntu16.04 ros操作系统学习笔记通信编程
- 操作系统学习笔记管理
- 操作系统学习笔记文件管理
- 操作系统学习笔记同步
- 操作系统学习笔记线程调度同步互斥
- 操作系统学习笔记调度
- 操作系统学习笔记计算机系统
- 操作系统概念学习笔记
- 操作系统概念学习笔记死锁
- 操作系统概念学习笔记进程同步
- 操作系统概念学习笔记结构
产品推荐
龙蜥操作系统
龙蜥社区(OpenAnolis)是面向国际的 Linux 服务器操作系统开源根社区及创新平台,秉承“平等、开放、协作、创新”的原则,理事会由阿里云、统信软件、龙芯、Arm 、Intel 等 24 家国内外头部企业共同组成,有超过 1000 家来自芯片厂商、软件厂商、整机厂商、操作系统厂商等覆盖操作系统全产业链的合作伙伴参与生态共建。
+关注