1 操作系统的学习
1.1学习内容
1.1.1操作系统概述
操作系统是管理硬件资源、控制程序运行、改善人机界面和为应用软件提供支持的一种系统软件。操作系统有两个职责:对硬件进行管理和抽象,为应用提供服务并进行管理。
从硬件的角度看,一方面,操作系统将复杂的、具备不同功能的硬件资源纳入统一的管理。另一方面,操作系统负责把硬件资源抽象成不依赖具体硬件特性的资源,将有限的、离散的资源高效地抽象成无限的、连续的资源。从应用的角度来看,一方面,操作系统提供了各种不同层次、不同功能的接口以满足应用的需求,还提供了不同类型的访问控制、应用间交互等服务。另一方面,操作系统还负责对应用生命周期的管理,包括应用的加载、启动、切换、调度、销毁等。
当代码中出现while(1){}无线循环时会导致整个计算机卡死吗?不会,因为操作系统通常会对硬件资源按照一定的优先级在不同应用之间进行调度。无限循环调用fork()的程序会导致计算机卡死,有什么解决办法?1)资源配额:Cgroup/linux 2)虚拟化:虚拟机 3)万能方法:重启。
1.1.2硬件结构
1)冯·诺依曼结构包括三个主要部分:中央处理器、存储器、输入输出。
2)AArch64的指令集属于精简指令集计算机(RISC),其特点为:固定长度指令格式(4字节),更多通用寄存器,Load/store结构,简化寻址方式。X86-64体系架构的指令集为复杂指令集计算机(CISC):具有指令数量多,指令编码长度可变和指令寻址方式多样性的特点。
3)特权级:EL0:最低的特权级(用户态),应用程序运行在此;EL1(内核态):操作系统通常运行在此;EL2:在虚拟化场景下需要,Hypervisor通常运行在此;EL3:和安全特性TrustZone相关,负责普通世界和安全世界之间的切换。
4)EL0(应用程序)切换到EL1(操作系统)的可能场景:应用程序需要调用操作系统提供的系统调用(同步);应用程序执行了一条指令,而该指令触发了异常,该指令导致了EL0切换到EL1(同步);应用程序在执行的过程中,CPU收到一个来自外设的中断(异步)。
5)在发生特权级切换时,CPU负责保存当前执行状态。保存的主要状态包括;触发异常的指令地址(PC)——>ELR_EL1 中;异常原因——>ESR_EL1中;栈指针从SP_EL0切换到SP_EL1中;处理器状态(PSTATE)——>SPSR_EL1。
6)eret指令:ELR_EL1——>PC ,恢复PC状态;SPSR_EL1——>PSTATE,恢复处理器状态;降至EL0,硬件自动使用SP_EL0作为栈指针;恢复执行。
7)寄存器ARM:31个64位通用寄存器——X0-X30;1个PC寄存器;4个栈寄存器(切换时保存SP)——SP_EL0,SP_EL1,SP_EL2,SP_EL3;3个异常链接寄存器(保存异常的返回地址)——ELR_EL1,ELR_EL2,ELR_EL3;3个程序状态寄存器(切换时保存PSTATE)——SPSR_EL1,SPSR_EL2,SPSR_EL3。
8)EL1特权级下有两个页表基地址寄存器(TTBR),即TTBR0_EL1,TTBR1_EL1,分别用于用户地址空间和内核地址空间,内核和影虎用不同页表是为了在使用过程中不用进行页表的切换。
9)内存访问速度非常缓慢,为了降低CPU访存的开销,则引入了缓存,用于存放一部分物理内存的数据。
10)内存映射输入输出(MMIO):是一种CPU控制访问设备的方式,原理为:把输入输出设备和物理内存放在同一个地址空间,为设备内部的内存和寄存器也分配相应地址,CPU可以使用访问物理内存一样的指令ldr和str去读写这些属于设备的地址。
11)OS获取输入的方式有:轮询:OS不断去读缓冲区的值;中断:当控制器接收到输入后,打断CPU正常执行,OS进行处理。
12)中断和异常的区别:中断(硬件异步):外部硬件设备产生的信号;异常(软件同步):软件的程序执行而产生的事件。
1.2学习体会及总结
学习进度很慢,前两章主要涉及到硬件内容,我感觉很难,后面应该也难。但我会持续跟进!
现代操作系统学习笔记(一二章)
最新推荐文章于 2024-05-24 16:53:51 发布