![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
操作系统
维多利亚港的风吹掉了我的假发
这个作者很懒,什么都没留下…
展开
-
硬盘、寄存器、高速缓存、内存关系|i++为什么不是原子操作
速度:寄存器 > 二级缓存 > 内存 > 硬盘寄存器是CPU内部的存储器,用于存储等待抄处理计算的指令或数据,当然速度是最快的;其次是二级缓存,由于cpu的速度快于内存,为了提高计算机的速度,设置了一级、二级缓存,用于固化存储常用指令,速度其次;然后就是内存了;最后是硬盘。i++不是原子操作其执行要分为3步:1、读内存到寄存器;2、在寄存器中自增;3、写回内存。举个例子,现有A,B两个线程,初始i=2;A线程完成1,2步后被切换到B线程,在B线程中执行完这3步,再切换回来,此时原创 2020-09-21 15:37:38 · 253 阅读 · 0 评论 -
【操作系统】进程、线程和协程/调度/死锁/通信/线程池
进程和线程的区别和联系 区别 调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位; 并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可并发执行; 拥有资源:进程是拥有资源的一个独立单位,线程不拥有系统资源,但可以访问隶属于进程的资源。进程所维护的是程序所包含的资源(静态资源),如:地址空间,打开的文件句柄集,文件系统状态,信号处理handler等;线程所维护的运行相关的资...原创 2020-03-30 14:54:22 · 183 阅读 · 0 评论 -
内存管理相关的问题
![图片说明](https://uploadfiles.nowcoder.com/images/20200418/1298389_1587179865663_1379690E58939A4E3E24A537937D8660 "图片标题") return局部指针造成的错误 https://blog.csdn.net/chengchaonan/article/details/79651683stat...原创 2020-04-18 05:20:33 · 79 阅读 · 0 评论 -
同步与异步、阻塞与非阻塞、并发与并行
同步(Sync)和异步(Async) 同步 所谓同步,就是发出一个功能调用时,在没有得到结果之前,该调用就不返回或继续执行后续操作。 简单来说,同步就是必须一件一件事做,等前一件做完了才能做下一件事。 例如:B/S模式中的表单提交,具体过程是:客户端提交请求->等待服务器处理->处理完毕返回,在这个过程中客户端(浏览器)不能做其他事。 异步 异步与同步相对,当一个异步过程调用发出后,调...原创 2020-06-19 10:30:31 · 104 阅读 · 0 评论 -
【操作系统】虚拟内存、内存分配
虚拟内存 虚拟内存的目的是为了让物理内存扩充成更大的逻辑内存,从而让程序获得更多的可用内存。 为了更好的管理内存,操作系统将内存抽象成地址空间。每个程序拥有自己的地址空间,这个地址空间被分割成多个块,每一块称为一页。这些页被映射到物理内存,但不需要映射到连续的物理内存,也不需要所有页都必须在物理内存中。当程序引用到不在物理内存中的页时,由硬件执行必要的映射,将缺失的部分装入物理内存并重新执行失败的...原创 2020-06-22 04:28:52 · 376 阅读 · 0 评论 -
poll、epoll、select、Linux下5种IO模型
select、poll、epoll都是IO多路复用的机制,其中epoll是Linux特有的。本质上都是同步IO,有设备就绪或超时才能执行后面的动作。详细博客select:O(n)它仅仅知道了,有I/O事件发生了,却并不知道是哪那几个流(可能有一个,多个,甚至全部),我们只能无差别轮询所有流,找出能读出数据,或者写入数据的流,对他们进行操作。所以select具有O(n)的无差别轮询复杂度,同时处理的流越多,无差别轮询时间就越长。select监测的文件句柄数一般最大为1024个。poll:O(n)p原创 2020-09-11 11:03:45 · 151 阅读 · 0 评论