【计算机操作系统】高性能的奥秘——零拷贝
DMA技术的出现在没有 DMA 技术前,I/O 的过程是这样的:CPU 发出对应的指令给磁盘控制器,然后返回;磁盘控制器收到指令后,于是就开始准备数据,会把数据放入到磁盘控制器的内部缓冲区中,然后产生一个中断;CPU收到中断信号后,停下手头的工作,接着把磁盘控制器的缓冲区的数据一次一个字节地读进自己的寄存器,然后再把寄存器里的数据写入到内存,而在数据传输的期间CPU 是无法执行其他任务的。可以看....
计算机操作系统学习笔记(14)——复习要点笔记
1.32 位和 64 位 CPU 最主要区别在于⼀次能计算多少字节数据: 32位一次4字节。64位一次8字节,称为CPU位宽 CPU 的位宽越高,一次能读取的内存指令越多22.CPU 的硬件参数都会有 GHz 这个参数,⽐如⼀个 1 GHz 的 CPU,指的是时钟频率是 1 G,代表着 1 秒会产⽣ 1G 次数的脉冲信号。这个参数越高越好,超频指的就是把 CPU 内部的时钟给调快了,于是 CPU....
计算机操作系统学习笔记(13)——⾼性能⽹络模式:Reactor 和 Proactor
一、ReactorReactor 模式就是对 I/O 多路复⽤作了⼀层封装,让使⽤者不⽤考虑底层⽹络 API 的细节,只需要关注应⽤代码的编写。I/O 多路复⽤监听事件,收到事件后,根据事件类型分配给某个进程 / 线程。Reactor 模式主要由 Reactor 和处理资源池这两个核⼼部分组成,它俩负责的事情如下:Reactor 负责监听和分发事件,事件类型包含连接事件、读写事件;处理资源池负责....
计算机操作系统学习笔记(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....
计算机操作系统学习笔记(10)——文件IO
⽂件的读写⽅式各有千秋,对于⽂件的 I/O 分类也⾮常多,常⻅的有缓冲与⾮缓冲 I/O直接与⾮直接 I/O阻塞与⾮阻塞 I/O VS 同步与异步 I/O一、缓冲与⾮缓冲 I/O⽂件操作的标准库是可以实现数据的缓存,那么根据「是否利⽤标准库缓冲」,可以把⽂件I/O 分为缓冲 I/O 和⾮缓冲 I/O:缓冲 I/O,利⽤的是标准库的缓存实现⽂件的加速访问,⽽标准库再通过系统调⽤访问⽂件。⾮缓冲 I/....
计算机操作系统学习笔记(9)——页面置换算法
一、缺⻚异常(缺⻚中断)缺⻚异常(缺⻚中断)当 CPU 访问的⻚⾯不在物理内存时,便会产⽣⼀个缺⻚中断,请求操作系统将所缺⻚调⼊到物理内存。就需要「⻚⾯置换算法」选择⼀个物理⻚,把它换出到磁盘,最后把正在访问的⻚⾯装⼊到这个物理⻚中。 ⻚⾯置换算法的功能是,当出现缺⻚异常,需调⼊新⻚⾯⽽内存已满时,选择被置换的物理⻚⾯,也就是说选择⼀个物理⻚⾯换出到磁盘,然后把需要访问的⻚⾯换⼊到物理⻚。二、最....
计算机操作系统学习笔记(8)——死锁
一、死锁多线程为了防止竞争共享资源⽽导致数据错乱,都会在操作共享资源之前加上互斥锁,只有成功获得到锁的线程,才能操作共享资源,获取不到锁的线程就只能等待,直到锁被释放。当两个线程为了保护两个不同的共享资源⽽使⽤了两个互斥锁,那应⽤不当的时候,可能会造成两个线程都在等待对⽅释放锁,这种情况就是发⽣了死锁。说白了就是我有你需要的东西,你也有我需要的东西,但是我们2个谁都不肯放手,就导致了死锁死锁只有....
计算机操作系统学习笔记(7)——进程通信
一、进程通信每个进程的⽤户地址空间都是独⽴的,⼀般⽽⾔是不能互相访问的,但内核空间是每个进程都共享的,所以进程之间要通信必须通过内核。信号什么是信号呢?我们可以通过 kill -l 命令,查看所有的信号:linux 的 kill 命令是向进程发送信号,kill 不是杀死的意思,-9 表示无条件退出,但由进程自行决定是否退出,这就是为什么 kill -9 终止不了系统进程和守护进程的原因。运⾏在 ....
计算机操作系统学习笔记(6)——进程和线程
一、用户空间和内核空间如果有⼤量处于阻塞状态的进程,会占⽤着物理内存空间,显然不是我们所希望的,所以,在虚拟内存管理的操作系统中,通常会把阻塞状态的进程的物理内存空间换出到硬盘,等需要再次运⾏的时候,再从硬盘换⼊到物理内存。那么,就需要⼀个新的状态,描述进程没有占⽤实际的物理内存空间的情况,这个状态就是挂起状态。以下方式可以使进程挂起:通过 sleep 让进程间歇性挂起,其⼯作原理是设置⼀个定时....
本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。
龙蜥操作系统
龙蜥社区(OpenAnolis)是面向国际的 Linux 服务器操作系统开源根社区及创新平台,秉承“平等、开放、协作、创新”的原则,理事会由阿里云、统信软件、龙芯、Arm 、Intel 等 24 家国内外头部企业共同组成,有超过 1000 家来自芯片厂商、软件厂商、整机厂商、操作系统厂商等覆盖操作系统全产业链的合作伙伴参与生态共建。
+关注