计算机存储
计算机只能看懂1和0组成的语言,所以计算机存储数据的大小就是存储了多少个1和0.
比特位bit(位)
是计算机世界中最小的存储单位,每个1或者0占据1bit,表示二进制位
字节byte
由8个二进制位构成,1字节=8比特位 即 1byte=8bit
一个英文字符占1个字节(8位),一个汉字占2个字节(16位)
1024byte = 1KB,1024KB = 1MB。往上还有GB,TB。
内存和磁盘都使用「字节单位」来存储和读写数据,使用「位单位」则无法读写数据。
对于用二进制数表示的信息,计算机不会区分它是数值、文字,还是某种图片的模式,而是「根据编写程序的各位对计算机发出的指示进行信息的处理」。
磁盘
磁盘结构
磁盘的表面由一些磁性物质组成,可以用这些磁性物质来记录二进制数据
盘片:硬盘有多个盘片组成,每个盘片正反两面,一般在5片以内。
磁头(head):读写盘面的设备,每个盘面对应一个磁头。(并不是只有一个磁头)
磁道: 同一盘片不同半径的同心圆, 是由磁头在盘片表面划出的圆形轨迹,方便数据存储
扇区(Sector): 磁盘上的每个磁道被等分为若干个弧段,这些弧段便是磁盘的扇区,每个扇区存放512字节的数据(传统的硬盘HDD上扇区大小位512字节),扇区是硬盘的最小存储单位
柱面: 不同盘片相同半径构成的圆柱面,由同一半径圆的多个磁道组成
数据读写定位时,首先确定柱面,再确定盘面,最后确定扇区
重点说一下扇区,一个扇区可分为头、数据区域、尾三个部分。各个扇区存放的数据量相同。但是最内侧磁道上的扇区面积最小,因此位密度最大。
磁盘读写性能
一次磁盘读/写操作需要的时间
寻道时间
分为俩部分: 1.启动磁头臂 2.移动磁头
延迟时间
表示在磁道找到时,中轴带动盘面旋转到目标扇区开头处的时间
传输时间
表示盘面继续转动,实际读取或写入数据的时间
一般来说,寻道时间因为要移动磁臂,所以占用的时间最长。减少寻道时间的算法
减少寻道时间算法
FCFS先来先服务算法:根据进程请求访问磁盘的先后顺序进行调度
缺点:如果有大量进程竞争使用磁盘,请求访问的磁道很分散,则FCFS在性能上很差,寻道时间长
SSTF最短寻找时间优先:会优先处理与当前磁头最近的磁道(只保证眼前最优,但是总体未必最优)
缺点:可能会产生饥饿现象。磁头在某一个小区域来回移动,导致有些磁道访问请求永远得不到满足
SCAN扫描算法:面向磁道的公平问题
规定:只有磁头移动到最外侧磁道的时候才能往内移动。移动到最内侧磁道时才能往外移动。由于磁头移动很像电梯,也叫电梯算法
优点是解决了饥饿现象,但是
1.只有到达最外边磁道才能改变磁头移动方向。实际上没必要。。
2.对各个位置磁道的响应频率不平均
C-SCAN(一个方向的扫描):降低磁道差别造成的磁道差异
规定:只有磁头朝某个特定方向移动时才能处理磁道访问的请求。而返回时直接快速移动至起始端不处理任何的磁道请求
缺点:
只有到达最外边磁道才能改变磁头移动方向。实际上没必要。。
LOOK边移动边观察算法:
规定:如果在磁头移动方向上已经没有别的请求。就可以立即改变磁头移动方向
C-LOOK(扫描的范围优化):结合C-SCAN和LOOK
规定::如果在磁头移动方向上已经没有别的请求。就可以立即让磁头返回,并且磁头只需要返回到有磁道访问请求的位置。
空闲盘管理
空闲表法-适用“连续分配方式”
回收磁盘块。分为回收区前后是否有相邻的空闲区。。
空间盘块链
以盘块为单位组成一条空闲链
注意点:操作系统会记录链头和链尾
空间盘区链
以盘区为单位组成一条空闲链
盘区内的第一个盘块会记录该盘区的长度和指向下一个盘区的指针
注意点:操作系统会记录链头和链尾
位示图法
每个二进制位对应一个盘块。0代表盘块空闲,1代表盘块已分配。
可以用字号和位号(行号和列号)来对应一个磁盘块。
unix中使用成组链接法,对磁盘空闲块管理
超级块
磁盘块
外存会分为一个一个磁盘块,每个磁盘块大小是相等的。且每一个磁盘块应包含2的整数幂个地址,如一个磁盘块包含2^10个地址,即1KB。
操作系统会以“块”为单位为文件分配存储空间,即使文件只有10B,但这个文件依然需要占用1KB存储空间.
机械硬盘与固态硬盘
文件系统
文件就是一组有意义的信息、数据集合
文件属性
文件名:对用户来说最重要的属性,同一个目录下不能又重名的文件
标识符,对用户来说无可读性。是操作系统对文件的唯一标识。
文件类型,文件在外存中的位置。
文件共享
文件共享:多个用户可以共享使用一个文件
硬链接:基于索引结点
索引结点中会有一个属性:链接计数变量count
某个用户删除该文件时,只是把用户目录中与该文件对应的目录项删除,并使索引结点的count值减1
count=0,系统才会真正删除该文件
软链接:基于符号链
创建新的link类型文件,该link型文件记录了文件的存放路径,操作系统就可以根据记录的路径找到共享的文件。如快捷方式
文件保护
文件保护:不同用户对文件有不同的操作权限
Authenticated users: Windows系统中所有使用用户名、密码登录并通过身份验证的账户
口令保护
口令一般会存放在文件对应的FCB或索引结点
缺点:口令保存在系统中,不够安全
加密保护
用密码对文件加密,用户想要访问文件时,需要提供相同的密码才能正确解密
优点:用户记住密码就行,不需要在系统中存储密码。保密性强
访问控制
访问控制表ACL
读写,执行。添加删除、列表清单
以组为单位,标记各组用户可以对文件有哪些操作
文件逻辑结构
所谓逻辑结构,就是在用户角度看,文件内部数据是如何组织起来的。
无结构文件:
二进制流或字符流组成,又称“流式文件”。如txt文件
1
有结构文件
由一组相似的记录组成,又称为“记录是式文件”
记录又可分为,定长记录和可变长记录
以下只讨论,有结构文件
结构文件,分为顺序文件、索引文件、索引顺序文件。
顺序文件(逻辑上)
每个记录可以是定长记录,也可以是可变长记录。但是在物理结构上可以是顺序存储也可以是链式存储
关键字
串结构:每个记录之间的顺序与关键字无关。通常按照记录存入的时间来决定顺序
顺序结构:每个记录之间的顺序按照关键字排列
文件物理结构
所谓物理结构,就是在操作系统角度看,文件内部数据是如何组织起来的。
核心问题:怎么把逻辑块号映射为物理块号
连续分配:
要求每个文件在磁盘上占有一组连续的块。
FCB
记录存放的起始块号和长度(占用几个块)
物理块号=逻辑块号+起始块号
优点:连续块,移动磁头所需时间短
缺点:对文件的拓展很不方便,存储空间利率用低,会产生磁盘碎片
链接分配(隐式链接)
FCB记录起始块号和结束块号,且每个磁盘块都会保存指向下一个盘块的指针
访问i号逻辑块,需要i+1次磁盘io。
缺点:只支持顺序访问,不支持随机访问,查找效率低
优点:方便文件扩展,不会有碎片问题,外存利用率高
链接分配(显式链接)
FCB记录起始块号
FAT文件分配表
一个磁盘仅设置一张FAT,开机时会将FAT读入内存,并常驻。
优点:文件方便扩展,外存理论不用高,支持随机访问。地址转换不需要访问磁盘。。
虚拟文件系统VFS
新的文件系统,必须实现操作系统VFS的要求
UFS文件系统
FAT文件系统
文件系统类型
怎么查看电脑磁盘文件系统类型
点击C盘右击选择属性,在弹出的窗口中我们可以看到类型为本地磁盘,文件系统为NTFS格式
就连我插入的移动机械硬盘都是NTFS
NTFS的优点:安全性和稳定性极其出色,在使用中不易产生文件碎片。它能对用户的操作进行记录,通过对用户权限进行非常严格的限制,使每个用户只能按照系统赋予的权限进行操作,充分保护了系统与数据的安全。
IO设备
IO控制器
印刷电路板。。CPU可以控制I/O控制器,I/O控制器又来控制设备的机械部件
每一种寄存器可能有多个
控制寄存器,
状态寄存器
数据寄存器
地址识别
IO控制器的组成
字符设备接口
get,put
块设备接口
需要地址参数seek
网络设备接口
网卡:收发网络数据。socket接口。创建套接字
寻址与不可寻址
磁盘可寻址,键盘不可寻址。