在寒假阶段需要完成操作系统、数据库、软件工程三门专业课的复习,感觉难度最高的便是操作系统,上课的时候也是有很多不懂的地方,操作系统的难点主要在与理解前人的设计思想以及很多的专业名词。参考教材为高等教育出版社《操作系统》第七版翻译版,王道以及学长整理。
第一章导论,就涉及到了很多专有名词,如果不是我以前学过一遍,我肯定得懵,就算这是复习,也是有很多不理解的地方,但起码是懂得了轮廓,感觉如果导论可以整理并理解好,之后内容的复习就会简单一点。
散点式整理,最后联接。
看起来分的很多,但从第六部分开始,暂时只需要了解就好,后面会进行详细描述
近似定义:操作系统是管理计算机硬件的程序,它还为应用程序提供基础,并且充当计算机硬件和计算机用户的中介。(目前没有一个关于操作系统的十分完整的定义)
用户视角:基于用户的需求,满足用户的需要,在使用方便、性能、资源利用率之间进行取舍。
计算机视角:是计算机的资源分配器(CPU、Memory、I/O都为计算机的资源),使计算机可以有效且公平的运行;是计算机的控制程序,管理用户程序的执行以防止计算机资源的错误使用或使用不当。
这一部分其实可以作为单独的一门课计算机系统组织与原理来学习,这里提出主要是为了复习背景知识,因为后面学习会用到,简单整理一下。
现代通用计算机系统:现代通用计算机系统由一个或多个CPU和若干设备控制器通过共同的总线相连而成,该总线提供了对共享内存的访问。CPU与设备控制器可以并发工作,并竞争内存周期。为了确保对共享内存的有序访问,需要内存控制器来协调对内存的访问。
引导程序(bootstrap program):引导程序通常位于ROM或EEPROM中,为计算机中的固件,它初始化系统中的所有部分,包括CPU寄存器、设备控制器和内存内容。当打开电源或重启时,计算机开始运行,引导程序必须知道如何装入操作系统并开始执行系统。
事件的发生通常通过硬件和软件中断来表示,现代操作系统是靠中断驱动的软件。
硬件中断:硬件可随时通过系统总线向CPU发出信号,以触发中断。
软件中断:软件通过执行特别操作如系统调用(system call)也可以触发中断。
中断的分类:
中断的处理程序:
中断是操作系统的重点,在以后我们还会细讲,不同操作系统中断处理各有特色,但有些功能是共同的
陷阱是一种软件产生的中断,源于程序出错(除0错误或访问内存无效)或者源于用户程序的特别请求(系统调用system call),完成中断处理后将CPU控制权再交给提出陷阱请求的程序。
中断与陷阱的区别:
陷阱被称为软中断,与(硬)中断相比,软中断是软件实现的中断,也就是程序运行时其它程序对它的中断;而硬中断是硬件实习的中断,是程序运行时设备对它的中断(硬中断是由外部事件引起的,因此具有随机性和突发性;软中断的发生不是随机的,而是程序安排好的)。
计算机程序(操作系统、系统程序、用户程序)必须在内存中以便于运行。
内存:内存是处理器可以直接访问的唯一的大容量存储区域,它通常是用被称为动态随机访问内存(dynamic random access memory,DRAM)的半导体技术来实现的,是一组内存字的数组,每个字都有其地址。
计算机存储设备层次:
在上图中,越往上,处理速度越快,容量越小。电子磁盘(electronic dist)可以做成易失或非易失的,电子磁盘以上为易失的,电子磁盘一下为非易失的。
现代计算机系统工作模式:
直接内存访问(direct memory access, DMA): 设备控制器能在本地缓冲和内存之间传送一整块数据,而无需CPU的干预。
设备控制器:通用计算机系统由一个CPU和多个设备控制器组成,它们通过共同的总线连接起来。每个设备控制器负责特定类型的设备。设备控制器维护一定量的本地缓冲存储和一组特定用途的寄存器,设备控制器负责在其所控制的外部设备与本地缓冲存储之间进行数据传递。通常,操作系统为每个设备控制器提供一个设备驱动程序,这些设备驱动程序提供一个设备与其操作系统的统一接口。
这一部分也可以作为单独的一门课计算机系统体系结构来学习,这里提出主要是为了复习背景知识,因为后面学习会用到,简单整理一下。
绝大多数系统采用单处理器
多处理系统的优点:
多处理系统的类型:
集群计算机共享存储并通过局域网络连接或更快的内部连接。
这一部分捋一捋操作系统的发展史
程序的装入、运行、结果的输出全部依靠手工。
缺点:
系统对作业的处理成批进行,内存中始终保持一道作业。
特征:
缺点: 每次主机内存中仅存放一道作业,每当它在运行期间发出I/O请求后,高速的CPU便处于等待低速的I/O完成状态。
多道程序设计技术允许多个程序同时进入内存并允许它们在CPU中交替地运行,这些程序共享系统中的各种软/硬件资源。当一道程序因I/O请求而暂停运行时,CPU便立即转去运行另一道程序。
特点: 多道,宏观上并行,微观上串行。
优点: 资源利用率高,系统吞吐量大,CPU和其它资源保持“忙碌”状态。
缺点: 没有人机交互能力,用户不了解自己的程序的运行情况,也不能控制计算机。
**分时操作系统:**把处理器的运行时间分成很短的时间片,按时间片轮流把处理器分配给各联机作业使用,若在一时间片内不能完成运算,则该作业暂时停止运行,把处理器让给其他作业使用,等待下一轮时间片再继续运行。由于CPU处理速度很快,时间片也很短,因此给每个用户的感觉就像是自己独占一台计算机。
特点:
缺点: 在某些应用场景下,时间片级别内的时间下还不够快,比如订票系统、制导系统。
硬实时系统: 某个动作必须在规定的时间范围内完成,如飞行控制系统。
软事实系统 某个动作要求在规定的时间范围内完成,偶尔违反不会引起永久性损害,如订票系统。
把计算机网络中的各台计算机有机地结合起来,提供一种统一、经济而有效的使用各台计算机的方法,实现各台计算机之间的数据的互相传送。
特点: 网络中的各种资源的共享以及计算机之间的通信。
系统中的任意两台计算机通过通信方式交换信息,任意两台计算机具有同等地位,并可通信;每台计算机上的资源都为所有用共享;系统中的任意台计算机都可构成一台子系统,并可重构;任何工作都可以分布在任意台计算机上,并行工作,协同完成。
特点: 分布性和并行性。
与网络操作系统的不同: 分布式操作系统中的若干计算机协同完成同一任务。
用户模式(user mode)与系统模式(system mode)
系统模式有很多别名,比如内核模式(kernel mode),特权模式(privileged mode)
系统操作举例: 系统引导时,硬件开始处于内核模式。接着,装入操作系统,开始在用户模式下执行用户进程。一旦出现陷阱或中断,硬件就会从用户模式切换到内核模式。因此,只要操作系统获得了对计算机的控制,它就处于内核模式。系统在将控制交还给用户程序时会切换到用户模式。
模式位(mode bit): 即用一个bit来表示目前是用户模式还是系统模式。
特权指令(privileged instruction): 能引起损害的机器指令为特权指令。如果在用户模式下试图执行特权指令,那么硬件并不执行该指令,而是认为该指令非法,并将其以陷阱的形式通知操作系统。
特权指令举例: 由系统模式转换到用户模式是一个特权指令(因为该指令只能在系统模式下执行);I/O控制、定时器管理、中断管理也为特权指令;修改定时器操作的指令也为特权指令。
系统调用(system call): 操作系统内核提供一系列预定功能,通过一组称为系统调用的接口呈现给编程人员,系统调用把应用程序的请求传给内核,系统调用相应的内核函数完成所需的处理,将处理结果返回给应用程序。系统调用是内核的一部分。
必须确保操作系统能维持对CPU的控制,也必须防止用户程序陷入死循环或不调用系统服务,并且不将控制权返回到操作系统。为了实现这一目标,可使用定时器。
操作系统在将控制权交给用户前,应确保设置好定时器以便产生中断。如果定时器产生中断,那么控制权会自动交给操作系统。
进程: 程序在未被CPU执行前不会做任何事,处于执行中的程序被称为进程(程序本身不是进程,程序是被动的实体,而进程是一个活动的实体)。进程需要一定的资源(CPU时间、内存、文件、I/O设备)以完成其任务。
对于单线程进程而言,有一个程序计数器来明确下一个执行的指令。这样的进程的执行必须是连续的。CPU一个接着一个地执行进程的指令,直至进程终止。在任何时候,最多只有一个指令代表进程被执行。
进程是系统工作的单元。系统由多个进程组成,其中一些是操作系统进程(执行系统代码),其余的是用户进程(执行用户代码)。所有这些进程可以潜在地并发执行。
内存: 内存是现代计算机系统操作的中心。内存是一个大的字节或字的数组。每个字或字节都有其地址。内存是可以被CPU和I/O设备所共同快速访问的数据仓库。内存通常是CPU所能直接寻址和访问的唯一大容量存储器。如果CPU需要执行指令,那么这些指令必须在内存中。如果一个程序要执行,那么它必须先变成绝对地址并装入内存。
由操作系统管理
由操作系统管理
高速缓存: 信息通常保存在内存中,当使用它时,它会被临时地复制到更快的存储系统Cache中。但是Cache与其上方的寄存器并不受操作系统控制,所以只是简单提及。
保护: 保护是一种控制进程或用户对计算机系统资源的访问的机制。这个机制必须为强加控制提供一种规格说明方法和一种强制执行方法。
安全: 安全的主要工作是防止系统不受外部或内部攻击。比如病毒、蠕虫、拒绝服务攻击等等。