现代操作系统读书笔记

本文主要介绍了现代操作系统的硬件基础,涉及处理器的寄存器、模型和运行模式,存储器的层次结构,I/O设备的工作原理及中断机制,以及总线的类型和作用。详细阐述了处理器的多线程和多核技术,存储器的分层结构,以及I/O设备的控制器和直接存储器访问。还提及了计算机启动过程中的BIOS角色和设备配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引论

计算机硬件简介

  • 处理器:
    1,寄存器:通用寄存器、程序计数器、堆栈指针、程序状态字寄存器(PSW)
    2,模型:流水线模型(缺点:一旦一条指令被取进流水线中,它就必须被执行完毕),超标量CPU(这种设计有多个执行单元,这种模型隐含的一个缺点是指令有可能不按顺序执行)
    3,模式:多数CPU都有两种模式:内核态和用户态
    4,多线程和多核芯片:多线程允许CPU保持两个不同的线程状态,然后在纳秒级的尺度进行来回切换。多线程不提供真正的的并行处理。每一个确定的时刻每个核都只有一个线程在运行,但是线程的切换时间则减少到纳米数量级。

  • 存储器:
    1,种类(架构):我们都希望我们的存储器拥有急速,充分大,且非常便宜三大优点,但是目前技术无法同时满足这三个目标于是存储器采取一种分层次的结构即:寄存器,高速缓存,主存,磁盘。顶层为寄存器它的材质与CPU相同成本高,容量小(<1KB)但是速度快。下一层为高速缓存,高速缓存容量大一些但是相对速度慢一些。由于我们程序运行的过程中很有可能会重复使用到一些指令和数据,高速缓存就是为了储存这些。现代CPU中设计了两个缓存:一级缓存(L1缓存)和二级缓存(L2缓存),一般一级缓存总在CPU中用来将已解码的指令调入CPU的执行引擎。而二级缓存往往用来存储那些频繁使用的数据字。对于不同的CPU,L2缓存的位置可能是不同的Intel多核芯片采用了共享策略而AMD则采用每个核都有自己的L2缓存的模式。再往下就是主存了也就是我们常称的内存(RAM),除了主存外我们还有一些非易失性访问存储器:只读存储器(ROM),EEPROM闪存(flash memory)等。下一个层次是磁盘(硬盘),磁盘同RAM相比,每个二进制位的成本低了两个数量级,通常容量也是RAM的两个数量级大。

  • I/O设备:
    1,组成:I/O设备一般包括两个部分即:设备控制器和设备本身。控制器的任务是为操作系统提供一个简单的口,为了完成操作系统的一些命令,控制器中经常会安装一个小的嵌入式计算机,该嵌入式计算机运行为执行这些命令以及对应工作专门编好的程序。对于实际设备本身也有一个相对简单的接口,因为控制器的接口被标准化了,可能不能做很多工作。但是标准化又是必须的。(SATA:串行高级技术附件)SATA是很多计算机的标准硬盘接口。由于实际的设备接口隐藏在控制器中,所以,操作系统看到的是对控制器的接口,这个接口可能和设备接口有很大区别。
    2,实现方式:1.“忙等待”即用户程序发出一个系统调用,内核将其翻译成一个对应设备驱动程序的过程调用。然后设备驱动程序启动I/O并在一个连续不断的的循环中检查该设备是否完成工作。(缺点由于要一直询问设备是否完成工作所以CPU需要被一直占据。) 2.设备驱动程序启动设备并且让设备在操作完成时发出一个中断。3.为I/O使用一种特殊的直接存储器访问(DMA)芯片,它可以控制在内存和某些控制器之间的位流,而无须持续的CPU干扰。
    3,中断:中断是设备完成命令和任务之后对CPU发送的一个指令。中断会在任何时刻发生,所以中断发出的时候CPU可能正在执行某个中断,这个时候CPU不会被中断,CPU办法关闭中断并在稍后在开启中断。在中断关闭时,任何以及发出中断的设备,可以继续保持其中断信号。

  • 总线
    在早期的PC当中使用的还是单总线,但是随着处理器和存储器速度越来越快,单总线被放弃了,其结果就是其他的总线出现,他们处理I/O设备以及CPU到存储器的速度都更快,这也就有了我们现在大部分x86系统的结构。
    1,种类:一个大型的x86系统的结构有很多总线(例如高速缓存、内存、PCIe、PCI、USB、SATA、和DMI),每条总线的传输速度和功能都不一样。操作系统必须了解所有总线的配置和管理。其中最主要的总线是PCIe总线
    2,PCIe:在2014年发明PCIe之前,大多数总线都是并行且共享的,即共享总线架构在该架构下不同设备的数据是通过相同的导线传导的。由于同一份数据传输被并行那么也就严格要求每条并行线路的速度要严格相等这也就限制了总线的速度。而PCIe则使用的是串行总线框架,通过一条数据通路传递消息这样的话在通过不同的数据通路并行运输不同的数据,也就提高了效率。
    3,USB:USB是用来将所有慢速I/O设备(如鼠标、键盘等)与计算机连接的。
    4,SCSI:是一种高速总线,用在高速硬盘、扫描仪和其他需要较大带宽的设备上。
    5,即插即用系统:系统自动收集有关I/O设备的信息,集中赋予中断级别和I/O地址,然后通知每块卡所使用的数组。

  • 计算机的启动
    BIOS:每台计算机的主板上有一个被称为 基本输入输出系统(BIOS)的程序,它写在不易失的存储器上,计算机启动时先启动BIOS,它会检查所安装的RAM数量,键盘以及其他设备是否安装正常,然后它会扫描PCIe和PCI总线上的所有设备,看他们与上一次启动时的配置是否相同,不同的话就重新配置。在启动程序之前,用户还可以进入一个BIOS配置程序,对设备清单进行修改。之后操作系统会从硬盘上启动,启动是设备上的第一个扇形区被读入内存并执行。这个扇区中包含一个对保存在启动扇区末尾的分区表检查的程序,以确定哪个分区是活动的。然后,从该分区读入第二个启动装载模块,来自活动分区的这个装载模块被读入操作系统。然后操作系统访问BIOS来获得配置信息,系统再检查设备的驱动程序是否已经安装好的了。如果所有的驱动程序安装完毕,操作系统把他们调入内核,并初始化有关表格,创建需要的任何背景进程,并在每个终端上启动登陆程序或者GUI。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值