此为本人在期中临近复习操作系统概念时将手写版笔记中的重点进行提炼后,加入个人的理解与思考所写出的总结性笔记,仅供参考。
一、操作系统服务(函数) 1、用户界面(UI):分为命令行界面CLI,采用文本命令;与批界面,其中控制这些命令的指令被输入文件中,通过执行文件来实现,如图形化界面GUI 2、程序执行:能将程序装入内存并运行程序,程序能结束执行,包括正常和不正常结束。 3、I/O操作:提供I/O的方法,用户不能直接调用I/O设备 4、文件系统操作:读写文件和目录,根据文件名创建、删除、搜索文件,列出文件信息,基于文件所有权而允许或拒绝访问。 5、通信:包括同一计算机两进程间通信与在网络链接上的不同计算机通信,可通过共享内存或信息交换。 6、错误检测:对于可能在CPU、内存硬件、I/O、用户程序中的错误采取适当动作进行正确一致的计算 7、CPU与OS的接口:根据硬件手册所定义的寄存器与调用规则
二、系统调用 1、系统调用开销远大于函数调用 2、应用程序接口:API。一系列适用于应用程序员的函数,包括传递给每个函数的参数机器返回值。在后台,组成API的函数多为应用程序员调用实际的函数调用。使用API的程序有很好的可移植性。 3、系统调用接口:程序设计语言的运行时支持系统(与编译器一起的预先构造的函数库)提供了系统调用接口,作为应用程序与操作系统的系统调用的链接。 4、应用程序通过API调用系统调用接口,系统调用接口维护了一个与系统调用有关的数字列表索引,通过列表调用相应的系统调用。 5、系统调用过程: ①、将系统调用号放到eax寄存器中 ②、设置系统调用参数到ebx、ecx寄存器中 ③、调用中断(int)参数为中断类型 ④、结果一般保存在eax中 6、向操作系统传参的方法: ①、寄存器 ②、内存的块和表,将块的地址通过寄存器传递 ③、压入堆栈中
三、系统调用类型 1、分为进程控制、文件管理、设备管理、信息维护、通信 2、当系统调用被用来非正常地中断执行程序,有可能会有内存信息转储产生一个错误信息,内存信息转储多写到磁盘上,并被调试器检查和确定问题原因 3、不管是正常还是非正常终止,操作系统都必须将控制转交给调用命令解释器,命令解释器读取下一个命令。允许命令解释器来执行一个程序。 4、通信:有信息传递模型与共享内存模型(需要至少两个同意才能共享)
四、操作系统结构 1、操作系统的重要原则:机制决定如何做,策略决定做什么。一个策略可以调用不同的机制来实现自己。 2、简单结构:没有很好地区分接口和功能层次,应用程序能访问基本的I/O子程序,由内核和系统程序两个独立部分组成。 3、分层方法:将操作系统分成若干层,最底层(0)为硬件,最高层为用户接口。优点在于构造和调试的简单化,每层只能利用较低层(严格来讲只能下一层)的功能和服务。主要问题是设计对层的详细定义,效率低,开销大。 4、微内核:将所有非基本部分从内核中移走,并将他们时限为系统程序或用户程序。主要功能是使用户程序和运行在用户空间的各种服务之间的通信以信息传递的形式提供。好处在于便于维护操作系统,容易从一种硬件平台转移到另一种硬件平台,有更好的安全性和可靠性。缺点是必须忍受由于系统功能总开销的增加而导致系统性能下降。 5、模块化结构:内核有一组核心部件,以及在启动或运行时对外附加服务的动态链接,使用动态加载模块,由七个可加载内核模块围绕一个核心内核组成。允许内核提供核心服务,能动态地实现特定的功能每一内核部分都有被定义和维护的接口。任一模块都能调用其他模块,不需调用信息传递来通信。 6、混合结构:用分层方法,其中一层为微内核式结构
五、虚拟机 1、单个计算机的硬件抽象为几个不同的执行部件,使进程以为自己有处理器和内存,提供了与基本硬件相同的接口。 2、虚拟机应有虚拟用户模式与虚拟内核模式,两种均运行在物理用户模式下。当虚拟机需要系统调用时,会在真实机器上引起一个虚拟机监控器的转换,当虚拟机监控器获得控制权将可以改变虚拟机的寄存器内容和程序计数器以模拟系统调用的效果。 3、虚拟机程序将作为一种应用程序运行在主操作系统上,并允许主操作系统将几个不同的客户操作系统作为独立的虚拟机来并行运行。 4、虚拟层是VMware的核心,他将物理硬件抽象为独立的作为客户操作系统的硬件在虚拟机上运行。简单来讲就是在内存里虚拟了一些物理硬件并通过虚拟机监控器来进行控制实现虚拟的模式切换。
六、系统启动 1、引导程序需要能够定位内核,并将操作系统内核装入内存,有时会有两个引导程序,一简单引导将从磁盘上将以复杂引导装入内存,复杂引导再将操作系统内核装入内存。 2、当CPU加电或重启时,具有预先定义内存位置(BIOS)的指令寄存器被重新加载。 3、从按下开机键开始,CPU上电后先进行初始化,当reset信号被控制信号撤销后,CPU开始工作,此时IP寄存器被初始化为0x0000FFF0,CS被置为0xF000,段基址为0xFFFF0000,所以CPU的第一条地址访问是0xFFFFFFF0,即BIOS的位置,执行BIOS位置的代码,进行自检,并找到引导程序所在的位置,将引导程序(多在硬盘固定位置,0柱头0磁头2扇区,0区块)装入内存并转换为进程开始运行,有时还会再去找另一部分引导程序,最终将操作系统内核装如内存并开始运行。 4、MBI(0区块)处引导程序有512个字节,其中64字节为硬盘分区表,剩下400多字节为最初引导程序。