分类: 操作系统

35 篇文章

Linux文件链接
为了方便用户访问文件,Linux提供了一种称为连接(link)的机制,可以将一个文件或目录与另一个文件或目录建立关联,从而实现多个路径指向同一个文件或目录的效果。 概述 Linux是一个多用户多任务的操作系统,它提供了一种灵活的文件系统,可以在不同的分区、设备和网络上存储和管理文件。 为了方便用户访…
函数sync fsync 和 fdatasync 的区别
缓冲 传统的UNIX实现的内核中都设置有缓冲区或者页面高速缓存,大多数磁盘IO都是通过缓冲写的。 当你想将数据write进文件时,内核通常会将该数据复制到其中一个缓冲区中,如果该缓冲没被写满的话,内核就不会把它放入到输出队列中。 当这个缓冲区被写满或者内核想重用这个缓冲区时,才会将其排到输出队列中。…
惊群问题
惊群效应是什么 惊群效应(thundering herd)是指多进程(多线程)在同时阻塞等待同一个事件的时候(休眠状态),如果等待的这个事件发生,那么他就会唤醒等待的所有进程(或者线程),但是最终却只能有一个进程(线程)获得这个时间的“控制权”,对该事件进行处理,而其他进程(线程)获取“控制权”失败…
理解I/O多路复用
什么是多路复用 IO多路复用(IO Multiplexing)一种同步IO模型,单个进程/线程就可以同时处理多个IO请求。一个进程/线程可以监视多个文件句柄;一旦某个文件句柄就绪,就能够通知应用程序进行相应的读写操作;没有文件句柄就绪时会阻塞应用程序,交出cpu。多路是指网络连接,复用指的是同一个进…
各种的I/O
什么是I/O IO,Input/Output 简写,是指内存和外设之间的数据复制的过程. 输入是指数据从外设复制到内存中, 输出则是指数据从内存复制到外设。 根据外设种类可以分为磁盘IO和网络IO, 因为外设的数据读写速率较低以及 IO 会涉及到系统调用以及中断,所以通常都会比较耗时。在程序优化时思…
Byte和bit的区别
bit:位 (小写b) 也称比特 是英文 binary digit的缩写 二进制数系统中,每个0或1就是一个位(bit) 位是数据存储(计算机中信息)的最小单位 计算机中的CPU位数指的是CPU一次能处理的最大位数。例如32位计算机的CPU一次最多能处理32位数据 Byte:字节(大写B) 8bit…
局部性原理与磁盘预读原理
局部性原理 CPU访问存储器时,无论是存取指令还是存取数据,所访问的存储单元都趋于聚集在一个较小的连续空间。 计算机读取数据层次 寄存器 64位 一级缓存L1 4×64KB 二级缓存L2 4×256KB 三级缓存L3 8MB 内存 4GB 磁盘 1TB 可以发现这些层次一个比一个更大。 寄存器,既是…
进程间通信-unix套接字
概括 UNIX域套接字用于在同一台机器上运行的进程之间的通信。虽然因特网域套接字可用于同一目的,但UNIX域套接字的效率更高。UNIX域套接字仅仅复制数据;它们并不执行协议处理,不需要添加或删除网络报头,无需计算检验和,不要产生顺序号,无需发送确认报文。 套接字的属性 套接字的特性由3个属性确定,它…
进程间通信-共享内存
概括 共享内存,顾名思义就是允许两个不相关的进程访问同一个逻辑内存,共享内存是两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常为同一段物理内存。进程可以将同一段物理内存连接到他们自己的地址空间中,所有的进程都可以访问共享内存中的地址。如果某个进程向共享内存写入数据…
进程间通信-信号量
概括 信号量本质上是一个计数器,用于多进程对共享数据对象的读取,它和管道有所不同,它不以传送数据为主要目的,它主要是用来保护共享资源(信号量也属于临界资源),使得资源在一个时刻只有一个进程独享。 信号量是一个特殊的变量,值可以改变,但只能取正整数值,并且对它的加1和减1操作是原子操作。如果信号量值为…