day04

计算机硬件详解

1 硬盘

首先,硬盘分为机械硬盘和固态硬盘。先来看一下机械硬盘,机械硬盘的每个盘片上有磁道、扇区、柱面的概念。数据,也就是一堆堆的0101010101就是存放在磁道上的,由于盘片是圆形的,所以每个磁道相对来讲也是同心圆。接下里是扇区,站在硬盘的角度上来看,硬盘进行读写的最小单位是一个扇区,一个扇区的大小是512个Bytes,操作系统进行读写的最小单位是一个block块,一个block块的大小是8个扇区的大小,由于一个扇区的大小是512个Bytes,所以8个扇区的大小是4KB。然后是柱面的概念,由于在机械硬盘中是有多个盘片的,多个盘片由于是同轴的,所以转动幅度是相同的。然后是分区,分区指的是从一个柱面开始到另外一个柱面结束,中间所包含的所有盘片所对应的磁盘

2 IO延迟

一个7200转/min的机械硬盘,120转/s,转1圈所花费的时间就是8ms。然后是平均寻道时间,所谓的平均寻道时间指的是机械手臂转到数据所在的磁道需要花费的时间,这个受限于物理的工艺水平,目前最快的速度可以达到5ms。平均延迟时间,所谓的平均延迟时间,转一圈需要花费8ms,那么转半圈就需要花费4ms,这个受限于机械硬盘的转速。那么,所谓的IO延迟,指的是平均寻道时间 + 平均延迟时间,一共是9ms。因此,优化程序运行效率的一个核心法则:能从内存取数据,就不要从硬盘取。

3 虚拟内存

所谓的虚拟内存指的是,当物理内存不够用的时候,就无法继续运行程序了,操作系统为了保证能够继续运行程序,就把内存中暂时不用的数据转移到硬盘上,这块硬盘空间就称之为虚拟内存空间,又称之为swap交换分区。

4 设备控制器

在计算机的所有硬件设备中,不仅仅是只有硬件本身,一个IO设备 = 设备控制器 + 设备本身,在运行的时候,操作系统控制驱动程序来控制设备控制器来工作,然后设备控制器去控制设备本身,因此设备控制器才是真正控制设备本身的那个硬件

5 总线

在总线中,可以分为北桥和南桥,北桥又称为PCI桥,用于连接高速设备,比如CPU和主存储器的连接,南桥又称为ISA桥,用于连接低速设备,比如USB、SCSI、IDE、SATA、显卡、声卡等。

6 CPU的两种工作状态

CPU的两种工作状态指的是内核态与用户态,所谓的内核态,运行的程序是操作系统,此时正在计算机硬件。所谓的用户态,运行的程序是应用程序,不可以操作计算机硬件。内核态与用户态的转换,应用程序的运行必然涉及到操作计算机硬件,那就必须由用户态切换到内核态下才能实现,因此,计算机在工作的时候,在频繁的发生内核态与用户态的转换

7 计算机的启动流程

1、计算机通电 2、BIOS开始运行,检测硬件:CPU、内存、硬盘等 3、BIOS读取CMOS存储器中的参数,选择启动设备 4、从启动设备上读取第一个扇区的内容(MBR主引导记录512Bytes,前446Bytes是引导信息,后64Bytes是分区信息,最后2Bytes是结束标志位) 5、根据引导信息bootloader里面的grub程序,grub程序负责将操作系统内核装载入内存,启动操作系统 6、然后操作系统会询问BIOS,以获取配置信息,对于每种设备,系统会检查其设备的驱动程序是否存在,如果没有,系统会要求安装设备驱动程序,驱动程序准备就绪之后,系统就将他们调入内核。

8 应用程序的启动流程

1、双击exe快捷方式,就是在告诉操作系统说:我有一个应用程序要运行,应用程序的文件路径是(文件的绝对路径) 2、操作系统会根据绝对路径找到程序所在硬盘的位置,控制其代码从硬盘加载到内存 3、然后CPU从内存中读取刚刚加载到内存的应用程序的代码执行,至此,应用程序启动完成。

9 网线的制作

网线在制作的时候,要遵循的顺序是:橙白、橙、绿白、蓝、蓝白、绿、棕白、棕。

千兆网卡使用双绞线进行连接,万兆网卡使用光纤进行连接

10 Linux系统

在Linux系统中,Linux会把内存分为两种区域,一个是buffer缓冲区,缓冲区就是程序运行产生的数据,在写入硬盘之前,会先保存在缓冲区内,直到攒够一大波的数据,最后一起将数据写入到硬盘;另外一个是cache,缓存区,缓存区就是把硬盘的数据在内存中缓存好,CPU取的时候可以直接从内存取。

原文地址:https://www.cnblogs.com/nagase/p/13788677.html