操作系统概念(第七版)——第一章:导论
操作系统做什么
1. 计算机系统有4个组成部分:计算机硬件,操作系统,系统程序与应用程序和用户。
操作系统的组成部分:内核为资源(特别是内存、处理器和I/O设备)提供了最低层次的抽象层。它包括(但不限于)以下组件
CPU管理器、内存管理器、文件系统、设备管理器
2. 什么是操作系统?(不同观点)
- 控制程序----操作系统控制和协调不同用户的各种应用程序之间的硬件使用。(操作系统是管理计算机硬件的程序,为应用程序提供基础,充当计算机硬件和计算机用户的中介)
- 资源管理器(资源分配器)----操作系统管理计算机的资源,使各种应用程序和用户能够有效和公平地操作计算机系统。
- 扩展机(虚拟机)----操作系统抽象了计算机硬件,为用户提供了友好的界面。
- 没有通用的可接受定义-----操作系统的存在是因为它们是解决创建可用计算系统问题的合理方法。
3.操作系统的目标
- 执行用户程序,更容易地解决用户问题。
- 使计算机系统让用户使用方便。
- 有效地使用计算机硬件。
4.定义操作系统
- 一个比较公认的定义是: 操作系统是一直运行在计算机上的程序(通常称为内核),其他程序则为系统程序和应用程序。
计算机系统组织
5. 计算机系统的操作
- 现代通用计算机系统由一个或多个CPU和若干设备控制器通过共同的总线相连而成。
引导程序:通常位于ROM或者EEPROM,称为计算机硬件中的固件。用来初始化系统的所有部分(CPU寄存器,设备控制器和内存)。
中断:硬件可随时通过系统总线向CPU发出信号,出发中断。软件通过系统调用(或者其他特别操作)触发中断。
中断处理程序:发出中断请求的那个程序。
指针表:通常位于低地址内存(前100左右的位置),包含各种设备的中断处理子程序的地址。这种地址的数组或中断向量可通过唯一设备号来索引,以提供设备的中断处理子程序的地址。
中断处理程序需要修改处理器状态,如修改寄存器的值,以明确保存当前状态并在返回之前恢复状态。处理中断之后,保存的返回地址被装入程序计数器,中断程序重新开始。
6. 存储结构
- 内存是处理器可以直接访问的唯一的大容量存储区域。它通常被称为动态随机访问内存
一个典型指令执行周期如下:
- 主存:只有CPU可以直接访问的大型存储介质。
- 辅存:非易失性大存储容量的主存储器的扩展——磁盘(绝大多数程序(比如:QQ、浏览器)都保存在磁盘上,直到运行程序时、才装入内存)
- 磁盘:最常用的辅存。磁盘表面逻辑上划分为磁道,再细分为扇区。磁盘控制器决定设备和计算机之间的逻辑交互。
7.I/O结构
- 设备控制器连接一个或多个设备和CPU。例如SCSI(small computer system interface)可以连接7个或更多的设备。设备控制器维护一定量的本地缓冲存储和一组特定用途的寄存器,负责在其所控制的外部设备和本地缓冲存储之间进行数据传递。通常操作系统为每个设备控制器提供一个设备驱动,用来理解设备控制器,并提供一个设备与其余操作系统的统一接口。
I/O操作如下所示:
如果是读操作,返回的可能是数据或者数据的指针,如果是其他操作,返回的可能是状态信息。
- 除此,还有DMA(direct memory access)的I/O设备,在DMA中设置好缓冲、指针和计数器后,设备控制器能在本地缓冲和内存之间传送整块数据,无需CPU干涉。
- 每块只产生一个中断,告知设备驱动程序操作已完成(低速设备每个字节产生一个中断。
计算机系统体系结构
8. 单处理系统:由一个主CPU执行一个通用指令集,包括来自于用户进程的指令;绝大多数系统还包括其他特定目的的处理器,可能以专用设备处理器的形式出现,也可能以通用处理器的形式出现。 所有专用处理器运行一个受限的指令集,不运行用户进程,有时由操作系统管理,操作系统将任务信息发送给这些处理器。
9.多处理器系统,也成为并行系统(parallel system)或紧耦合系统(tightly coupled system),这类系统含有多个通信CPU,共享计算机总线。其优点如下:
- 增加吞吐量:通过增加处理器的数量,但同时会多出管理多个CPU的开销。
- 规模经济:通过共享外设,存储和电源来节省资金。
- 增加可靠性: 单个处理器失灵不会导致整个系统停止。
10. 多处理器系统主要有两种类型:非对称多处理(asymmetric multiprocessing)和对称多处理(symmetric multiprocessing,SMP)。
- 非对称多处理(asymmetric multiprocessing):每个处理器都有各自特定的任务,一个主处理器控制系统,其他处理器或者从主处理器要任务,或者做预先定义的任务。这种称为主-从关系。
- 对称多处理(symmetric multiprocessing,SMP):每个处理器都要完成操作系统中的所有任务,所有处理器对等,处理器之间没有主-从关系。好处是N个CPU可以同时运行,并且不影响效率。
11. 集群系统
- 定义:与多处理器系统一样,集群系统将多个CPU集中起来完成计算任务。然而,集群系统与多处理器系统不同,它是由两个或多个独立的系统耦合起来的。常用的方式是共享存储并通过局域网连接。也分对称和非对称两种。通常用来提供高可用性服务。
- 非对称集群:一台机器处于热备份模式,一台运行应用程序,热备份主机监视现役服务器,如果该服务器失效,那么切换
- 对称集群:多台主机都运行应用程序,互相监视,
- 并行集群:允许多个主机访问共享存储上的相同数据
操作系统结构
12. 操作系统最重要的一点是要有多道程序处理能力。多道程序设计通过组织作业(编码或数据)使CPU总有一个作业在执行,从而提高了CPU的利用率。
13. 操作系统有三种基本类型:
- Batch systems(批处理系统)
- Time-sharingsystems(分时系统)
- Real timesystems(实时系统)
分时系统(或多任务):
-
是多道程序设计的延伸,允许许多用户同时共享计算机。在分时系统中,虽然 CPU 还是通过在作业之间的切换来执行多个作业,但是由于切换频率很高,用户可以在程序运行期间与之进行交互。
- 允许多用户共享计算机。由于每个动作或命令都较短,每个用户只需少量CPU时间,用户之间切换时间短,所以用户会感觉整个系统为自己所用。
-
分时操作系统采用 CPU 调度和多道程序设计以提供用户分时计算机的一小部分 。
用户交互输入时,操作系统为了不让 CPU 空闲,会将 CPU 切换到其他用户的程序。
批处理系统(batch system):计算机一次只能运行一个应用程序。批处理相似的工作:自动将控制从一个工作转移到另一个工作。是第一个基本的操作系统。
14. 装入到内存井执行的程序通常称为进程 。
分时和多道程序设计需要在存储器中同时保存有几个作业。通常由于主存较小而不能容纳太多作业,所以这些作业刚开始存储在磁盘的作业池 (job pool)中
,该池由所有驻留在磁盘中需要等待分配内存的作业组成。如果多个作业需要调入内存但没有足够的内存, 那么系统必须在这些作业中做出选择,这样的决策被称为作业调度 (job scheduling) 。
16. 如果有多个任务同时需要执行,那么系统必须做出选择,这样的选择称为 CPU 调度 。
17.在分时操作系统中,操作系统必须保证合理的响应时间,这有时需要通过交换来得到。交换时进程被换入内存或由内存换出到磁盘-------实现这一目的更常用的方法是使用虚拟内存。
虚拟内存:允许将一个执行的作业不完全放在内存中。主要的优点是程序可以比物理内存大,将内存抽象成一个庞大且统一的存储数组。
分时操作系统也必须提供文件系统。文件系统驻留在一组磁盘上,因此也必须提供磁盘管理。
操作系统操作
双重模式操作
18. 事件总是由中断或陷阱引起的。陷阱(或异常)是一种软件中断。
19. 为了区分操作系统代码和用户定义代码的执行,至少需要两种独立的操作模式:用户模式、监督程序模式 或者(系统模式、特权模式)。
20. 双重模式操作提供了保护操作系统和用户程序不受错误用户程序影响的手段。其实现方法为:将能引起损害的机器指令作为特权指令 (privileged instruction) 。如果在用户模式下试图执行特权指令,那么硬件并不执行该指令,而是认为该指令非法,并将其以陷阱的形式通知操作系统。
进程管理:
21. 注意:程序本身并不是进程,程序是被动的实体,而进程是一个活动的实体。
22.单线程进程具有一个程序计数器来明确下一个执行的指令。这样一个进程的执行必须是连续的。 CPU 一个接着一个地执行进程的指令,直至进程终止。
多线程进程具有多个程序计数器,每一个指向下一个给定线程要执行的指令。
内存管理:
23. 如果一个程序要执行,那么它必须先变换成绝对地址井装入内存。随着程序的执行,进程可以通过产生绝对地址来访问内存中的程序指令和数据 。最后,程序终止,其内存空间得以释放,并且下一程序可以装入并得以执行。
24. 操作系统负责下列有关内存管理的活动:
-
记录内存的哪部分正在被使用及被谁使用
-
当有内存空间时,决定哪些进程可以装入内存。
- 根据需要分配和释放内存空间。
操作系统的功能:
地址映射
内存保护
分布式系统:
25.分布式系统:将物理上分开、各种异构的计算机系统通过网络连接在一起,为用户提供系统所维护的各种资源的计算机集合,其优点有:
- 资源共享
- 计算机速度提高
- 可靠性高
- 通信方便
实时嵌入式系统:
26.嵌入式系统:几乎都是运行实时操作系统,当对处理器操作或数据流动有严格时间要求时就需要使用实时系统,例如:科学实验、医学成像系统、工业控制系统。-------- 定义:实时操作系统是保证在一定时间限制内完成特定功能的操作系统。
小结
26. 操作系统是管理计算机硬件并提供应用程序运行环境的软件。也许操作系统最为直观之处在于它提供了人与计算机系统的接口。
27.为了让计算机执行程序,程序必须位于内存中。内存是处理器能直接访问的唯一的大容量存储区域。内存为字节或字的数组,容量为数百阻到数百 MB。每个字都有其地址。内存是易失性存储器,当没有电源时会失去其内容。绝大多数计算机系统都提供了外存以扩充内存。二级存储器提供了一种非易失存储,它可以长久地存储大量数据。最常用的二 级存储器是磁盘,它提供对数据和程序的存储。
28.根据速度和价格,可以将计算机系统的不同存储系统按层次来组织。最高层最为昂贵但也最快。随着向层次结构下面移动,每一个位的存储价格通常降低,而访问时间通常增加。
29.计算机系统的设计有多种不同的方法。单处理器系统只有一个处理器,而多处理器系统包含两个或更多的处理器来共享物理存储及外设。对称多处理技术 CSMP) 是最为普通的多处理器设计技术,其中所有的处理器被视为对等的,且彼此独立地运行。集群系统是一种特殊的多处理器系统,它由通过局域网连接的多个计算机系统组成。
30.为了最好地利用 CPU,现代操作系统采用允许多个作业同时位于内存中的多道程序设计,以保证 CPU 中总有-个作业在执行。分时系统是多道程序系统的扩展,它采用调度算法实现作业之间快速的切换,好像每个作业在同时进行一样。
31. 操作系统必须确保计算机系统的正确操作。为了防止用户干预系统的正常操作,硬件有两种模式:用户模式和内核模式。许多指令(如I/O 指令和停机指令)都是特权的,只能在内核模式下执行。操作系统所驻留的内存也必须加以保护以防止用户程序修改。定时器防止无穷循环。这些工具(如双模式、特权指令、内存保护、定时器中断)是操作系统所使用的基本单元,用以实现正确操作。
32. 进程(或作业)是操作系统工作的基本单元。进程管理包括创建和删除进程、为进程提供与其他进程通信和同步的机制。操作系统通过跟踪内存的哪部分被使用及被谁使用来管理内存。操作系统还负责动态地分配和释放内存空间,同时还管理存储空间,包括为描述文件提供文件系统和目录,以及管理大存储器设备的空间。
33. 操作系统必须考虑到它与用户的保护和安全问题。保护是提供控制进程或用户访问计算机系统资源的机制。安全措施用来抵御计算机系统所受到的外部或内部的攻击。
34. 分布式系统允许用户共享通过网络连接的、在地理位置上是分散的计算机的资源。可以通过客户机服务器模式或对等模式来提供服务。在集群系统中,多个机器可以完成驻留在共享存储器上的数据的计算,即便某些集群的子集出错,计算仍可以继续。
35. 局域网和广域网是两种基本的网络类型。局域网允许分布在较小地理区域内的处理器进行通信,而广域网允许分布在较大地理区域内的处理器进行通信。局域网通常比广域网快。
36. 计算机系统具有一些特殊的服务目的,包括为嵌入式环境设计的实时操作系统,如消费设备、汽车和机器人。实时操作系统具有己定义的、固定的时间约束。进程必须在定义的约束内执行,否则系统将出错。多媒体系统涉及多媒体数据传送,常常有显示或使用音频、视频或者同步的音频和视频流的特别要求。
37. 近来,由于 Internet 和 www 的影响,现代操作系统也集成了 www 浏览器、网络和通信软件。