注: 这是对 [Abraham Silberschatz. 操作系统概念 第七版. 高等教育出版社, 2010.1] 一书的概述性阅读笔记
同时也是对学校操作系统课程部份作业的整理
1.操作系统定义和目的
目前对操作系统没有一个十分完整的或广泛接受的定义,操作系统是管理计算机硬件的程序,为应用程序提供基础,并且充当计算机硬件和计算机用户的中介。
操作系统的不同设计目标构成了选择不同算法和策略的基础,从用户视角,单用户操作系统为性能和体验而优化,用户共享的操作系统为资源使用而优化,工作站操作系统为性能和资源利用率折中优化,移动设备操作系统为方便和能耗而优化,也有操作系统没有用户观点无需干预而自主运行。从系统视角操作系统可视作资源分配器,决定如何为用户和程序分配资源,控制I/O设备,管理用户程序的执行和资源正确使用。
2.操作系统结构
操作系统需要具有多道程序处理能力,多道程序设计通过组织作业使CPU总有一个作业可执行,从而提高CPU的利用率。操作系统同时将多个任务保存在内存中,选择其中一个作业并开始执行,当该作业等待另一个任务时多道程序系统会切换到另一个作业执行,以此继续直到作业完成。
多道程序系统提供了可以充分使用各种系统资源的环境,而分时系统作为多道程序设计的延伸,采用CPU调度和多道程序设计以提供用户分时计算机的一部分,每个用户在内存中至少有一个程序,装入内存的程序执行时通常只执行较短的一段时间,此事并未完成或等待I/O操作(如用户交互),用户交互输入时CPU将切换到其他用户的程序。
3.操作系统操作
现代操作系统由中断驱动,事件由中断和异常引起,对每一种中断,操作系统中不同的代码段决定了将要采取的动作,中断服务程序用来处理中断。
为了保证操作系统正常执行,硬件增加模式位区分操作系统执行的任务和用户执行的任务,即双重模式,双重模式操作提供了保护操作系统和用户程序不受错误用户程序影响的手段:将能引起损害的机器指令作为特权指令,在用户模式下执行特权指令是不被硬件允许的,该指令将会被认定为非法并以异常的形式通知操作系统。
当用户应用程序需要操作系统服务,需要通过系统调用,系统调用为用户程序请求操作系统代表用户程序完成预留给操作系统的任务提供了方法。系统调用可以采取多种途径,这具体取决于下层处理器提供的功能。当系统调用被执行时,硬件将其作为软件中断,控制权通过中断向量转交到操作系统中断处理程序,内核检验参数是否正确合法再执行请求,然后将控制权返回到系统调用后的指令。
4.进程管理
正处于执行中的程序称为进程,进程需要一定的资源(包括CPU时间、内存、文件、I/O设备)以完成任务,这些资源可以在进程创建时或执行进程时分配给进程,进程还可以接受传输过来的各种初始化数据
程序本身不是进程而是被动的实体,进程是活动的实体,单线程进程具有一个程序计数器,多线程进程具有多个程序计时器,程序计时器指明确下一个要执行的指令。
进程是系统工作的单元,系统由多个进程组成(操作系统进程和用户进程),这些进程可以潜在地并发执行。
操作系统负责进程的创建、删除、挂起和重启,提供进程同步、通信和死锁处理机制。
5.内存管理
内存是一个大的字节或字的数组,每个字节或字有其自己的地址,内存可以被CPU和I/O设备所共同快速访问,是CPU所能直接寻址和访问的唯一大容量存储器,需要处理的数据和需要执行的指令必须先存入内存中
多个进程共享内存产生了内存管理需要,内存管理有多种方案,反映各种算法,适应特定的硬件设计,以改善CPU利用率和对用户的响应速度。
操作系统负责记录内存的哪部分正在被使用及被谁使用,决定哪些进程可以装入内存,根据需要分配和释放内存空间。
6.存储管理
文件是由其创建者定义的一组相关数据集合,通常表示程序和数据,文件亦即操作系统对存储设备的物理属性进行抽象所定义的逻辑存储单元,操作系统将文件映射到物理介质上,并通过这些存储介质访问文件。
操作系统负责创建和删除文件、创建和删除目录来组织文件、提供操作目录和文件的原语、将文件映射到二级存储、在稳定存储介质上备份文件。
操作系统提供二级存储器以备份内存,大多数现代计算机系统采用硬盘作为主要在线存储介质,许多程序都存储在硬盘上,需要执行时再载入内存,操作系统负责硬盘的空闲空间管理、存储空间分配和硬盘调度。
当保存在存储系统中的信息被使用时,它会被临时复制到更快的存储系统(高速缓存)。
7.计算环境
传统计算:传统分时系统采用定时器和调度算法,通过CPU迅速地循环进程,给每个共享系统时间的用户分配资源。现在进程通常为同一用户所拥有,用户进程及提供服务的系统进程一起管理,都能获得一定时间的计算。
Clent-Server计算:计算服务器系统提供接口接收用户所发送的执行操作的请求,执行操作并将操作结果返回给客户机;文件服务器系统提供文件系统接口供用户创建、更新、访问和删除文件。
P2P计算:客户机和服务器彼此并不区别,系统中所有节点对等,对等系统提供了更好的性能,通过分布在网络中的多个节点提供服务从而避免了服务器瓶颈的问题。