随笔分类 -  操作系统

摘要:select、poll、epoll区别 select和poll 都是IO多路复用的实现,select和poll类似,对所有的IO请求进行轮询(对fds数组遍历),当描述符(fd)就绪(读写就绪),就通知应用程序进行相应操作,超时就返回。 select和poll区别:select基于fds数组存储,默 阅读全文
posted @ 2021-04-22 11:03 i%2 阅读(84) 评论(0) 推荐(0)
摘要:零拷贝 ​ 比如文件网络传输,传统的IO操作需要经历:用户态切换到内核态,CPU向DMA发送请求,DMA准备好后负责传输数据到内核的缓冲区中,然后内核再把缓冲区的内容拷贝给用户态。这仅仅只是向磁盘发起IO读取数据完毕,还要通过网络传输文件,那么读取完后又要发起IO请求,让内核把数据拷回内核再拷给网卡 阅读全文
posted @ 2021-04-22 10:59 i%2 阅读(96) 评论(0) 推荐(0)
摘要:进程和线程的区别 进程是操作系统进行资源分配的基本单位。进程控制块 (Process Control Block, PCB) 描述进程的基本信息和运行状态,所谓的创建进程和撤销进程,都是指对 PCB 的操作。一个进程中可以有多个线程,线程是独立调度的基本单位。同一个进程中的多个线程之间可以并发执行, 阅读全文
posted @ 2021-04-22 10:56 i%2 阅读(46) 评论(0) 推荐(0)
摘要:临界区保护 临界区指的是一个访问共用资源的程序片段,且资源具有互斥性。当有进程进入临界区段时,其他线程或是进程必须等待 PV操作:进入临界区的操作,分布在临界区头尾。 进入临界区的调度原则: 如果有若干进程要求进入空闲的临界区,一次仅允许一个进程进入。 任何时候,处于临界区内的进程不可多于一个。如已 阅读全文
posted @ 2021-04-20 20:24 i%2 阅读(83) 评论(0) 推荐(0)
摘要:内存管理 虚拟地址寻址 ​ 运行多个程序可能出现问题:进程1给某个物理地址比如0x70写入数据,现在切换到进程2,也给这个相同的物理地址写入数据,就发生覆盖了,这样的后果很严重,可能造成系统崩溃等。于是「虚拟地址」就出现了,大家都有自己的「虚拟地址」,可以利用它访问到自己的数据而且不会冲突,这是因为 阅读全文
posted @ 2021-04-20 20:22 i%2 阅读(107) 评论(0) 推荐(0)
摘要:文件系统 ​ 生磁盘(raw disk)中盘块是磁盘访问的基本单位,将盘块划分成更高层次的抽象就是文件。Linux中用文件头来代表一个文件,也叫Inode,其指向了磁盘上数据块的位置。 文件的存储方式 连续空间存放方式:数据都是紧密相连,读写效率很高,文件头里需要指定「起始块的位置」和「长度」。但有 阅读全文
posted @ 2021-04-20 20:21 i%2 阅读(102) 评论(0) 推荐(0)