设备的分类 以 Linux 的方式看待设备可区分为 3 种基本设备类型。 每个设备常常实现 3 种类型中的 1 种, 因此可分类成字符设备, 块设备, 或者一个网络设备。这种将设备分成不同类型或类别的方法并非是固定不变的。 字符设备 一个字符( char ) 设备是一种可以当作一个字节流来存取的设备( 如同一个文件 ); 字符驱动模块负责实现这种行为。 这样的驱动模块至少实现 open, close, read, 和…
局部性原理与磁盘预读 由于存储介质的特性,磁盘本身存取就比主存慢很多,再加上机械运动耗费,磁盘的存取速度往往是主存的几百分分之一,因此为了提高效率,要尽量减少磁盘I/O。 为了达到这个目的,磁盘往往不是严格按需读取,而是每次都会预读,即使只需要一个字节,磁盘也会从这个位置开始,顺序向后读取一定长度的数据放入内存。 这样做的理论依据是计算机科学中著名的局部性原理:当一个数据被用到时,其附近的数据也通常会马上被使用。程序…
1、系统内存使用 操作系统的内存一般理解为虚拟内存;包括系统的RAM和SWAP两个存储单元。系统在申请,管理和回收内存时,使用虚拟内存技术管理内存空间。 系统在使用内存的机制上,除了对申请内存的进程分配内存空间外,还会为了提供运行速度进行数据的缓存和缓冲。 对SWAP分区的使用中,可以设置RAM使用率大约多少时,还是使用SWAP分区。避免SWAP分区提前使用,影响性能。 查看内存使用 Mem 行参数说明 MEM to…
1、控制单元 控制单元(CU)是指导处理器的操作的计算机的中央处理单元(CPU)的组件。它告诉计算机的内存,算术/逻辑单元以及输入和输出设备如何响应程序的指令。 它通过提供定时和控制信号来指导其他单元的操作。大多数计算机资源由CU管理。它指导CPU和其他设备之间的数据流。在现代计算机设计中,控制单元通常是CPU的内部部分,其总体作用和操作自其引入以来不变。 组成部分:程序计算器、指令寄存器、指令译码器 程序计数器(P…
CPU 高速缓存 在计算机系统中,CPU高速缓存(CPU Cache)是用于减少处理器访问内存所需平均时间的部件。 在金字塔式存储体系中它位于自顶向下的第二层,仅次于CPU寄存器。其容量远小于内存,但速度却可以接近处理器的频率。 当处理器发出内存访问请求时,会先查看缓存内是否有请求数据。如果存在(命中),则不经访问内存直接返回该数据;如果不存在(失效),则要先把内存中的相应数据载入缓存,再将其返回处理器。 缓存之所以…
硬盘是电脑主要的存储媒介之一,由一个或者多个铝制或者玻璃制的碟片组成。碟片外覆盖有铁磁性材料。 硬盘有固态硬盘(SSD)、机械硬盘(HDD )、混合硬盘(HHD 一块基于传统机械硬盘诞生出来的新硬盘);SSD采用闪存颗粒来存储,HDD采用磁性碟片来存储,混合硬盘是把磁性硬盘和闪存集成到一起的一种硬盘。 技术 磁头复位节能技术:通过在闲时对磁头进行复位和调整。 多磁头技术:通过在同一碟片上增加多个磁头同时的读或写来为硬…
虚拟内存 虚拟内存是计算机系统内存管理的一种技术。 它使得应用程序认为它拥有连续可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。与没有使用虚拟内存技术的系统相比,使用这种技术的系统使得大型程序的编写变得更容易,对真正的物理内存(例如RAM)的使用也更有效率。 虚拟内存不只是“用磁盘空间来扩展物理内存”的意思——这只是扩充内存级…
一般权限 文件和目录的权限主要是:读、写和执行。 字面意思很容易让大家产生模糊的认识;但是细究起来还是很有意思的。 文件的权限 文件是实际含有数据的地方,包括一般文本文件、数据库内容文件、二进制可执行文件(binary program)等等。 权限对文件的意义: r (read):可读取此一文件的实际内容,如读取文本文件的文字内容等; w (write):可以编辑、新增或者是修改该文件的内容(但不含删除该文件); x…
概述 本文内容主要来自网络,来探讨一下操作系统的I/O过程。以Linux系统的网络数据传输的I/O过程为例。 引子 在学习操作系统I/O过程之前,需要有一些知识储备。要明白I/O过程在操作系统中的意义和位置;在考虑I/O问题时,需要注意哪些细节。 用户空间与内核空间 现在操作系统都是采用虚拟存储器,即对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方)。 操作系统的核心是内核,独立于普通的应用程序…
ss(socket statistics)命令用来显示处于活动状态的套接字信息。 ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。当服务器的socket连接数量变得非常大时,无论是使用netstat命令还是直接cat /proc/net/tcp,执行速度都会很慢。 ss快的秘诀在于,它利…