操作系统做什么?
从不同的视角进行分析:
用户视角
系统视角
最终定义操作系统
定义1:操作系统是为了实现管理,同时带来了必不可少的各种类型的浪费
分析:管理硬件资源,同样带来的浪费有:内存消耗,硬件消耗等。
定义2:操作系统是管理计算机硬件的程序,它还为应用程序提供基础,并且充当计算机硬件和计算机用户的中介
分析:计算机硬件包括CPU(逻辑计算中心)、I/O设备(显示器,鼠标,键盘,打印机等)、物理存储设备。
硬件:如中央处理单元(Centeal Processing Unit,CPU)、内存(memory)、输入输出设备(Input/Output devices, I/Odevices),为系统提供基本的计算资源。
应用程序:电子制表软件、编译器、浏览器、音乐播放器等国定了用户按何种方式使用这些资源。
操作系统提供了正确使用这些资源的方法。操作系统类似于政府,操作系统本身并不实现任何有用的功能。它只不过是提供了一个方便其他程序做有用工作的环境。
用户视角:对于这种情况,操作系统的设计目的是为了用户使用方便,性能是其次的,而且不在乎资源使用率。性能和资源使用率相比,性能对用户来说更为重要,这种系统主要为了优化单用户的情况。
系统视角:将操作系统看做资源分配器。计算机系统可能有许多资源,用来解决CPU时间、内存空间、文件存储空间、I/O设备等问题。操作系统管理这些资源。面对许多甚至冲突的资源请求,操作系统必须决定如何为各个程序和用户分配资源,以便计算机系统能有效而公平地运行。强调控制各种I/O设备和用户程序的需求。操作系统管理用户程序的执行以防止计算机资源的错误使用或者使用不当。
计算机系统组织结构?
计算机系统如何操作
计算机系统的存储结构
I/O结构
计算机系统操作:现代通用计算机系统由一个或多个CPU和若干设备控制器通过共同的总线相连而成,该总线提供了对共享内存的访问。每个设备控制器负责一种特定的设备(比如磁盘驱动器,音频设备,视频显示器)。CPU与设备控制器可以并发工作,并竞争内存周期。为确保对共享内存的有序访问,需要内存控制器来协调对内存的访问。
计算机启动时,首先需要运行一个初始化程序。该初始化程序(引导程序 bootstrap program)比较简单,位于ROM或者EFPROM中,也叫做计算机硬件中的固件。它的主要职责:初始化系统的所有部分,包括CPU寄存器、设备控制器和内存内容,必须知道如何装入操作系统并开始执行系统。需要定位操作系统内核并将其装入内存。之后操作系统开始执行第一个进程如init,并等待事件的发生。
事件的发生通常通过硬件或者软件的中断来表示。硬件可以随时通过系统总线向CPU发出信号,以触发中断。软件通过执行特殊操作比如系统调用(System call)也能触发中断。
中断是计算机结构的重要部分。每个计算机设计都有自己的中断机制,但是有些功能是共同的。中断必须将控制转移到合适的中断处理程序。处理转移的简单方法是调用一个通用子程序以检查中断信息。接着,子程序会调用相应的中断处理程序。不过处理中断要快,可以通过处理中断子程序的指针表实现。
中断体系结构也保存被中断指令的地址。许多旧的设计简单地在固定位置中保存中断地址。更为现代的结构将返回系统堆栈的地址,若果中断处理程序需要修改处理器状态,如修改寄存器的值,它必须明确地保存当前状态并在返回前恢复该状态。在处理中断之后,保存的地址会装入程序计数器,被中断的计算可以重新开始,就好像中断没有发生一样。
存储结构:计算机程序必须在内存(随机访问内存 random access memory,RAM)中以便运行。内存是处理器可以直接访问的唯一的大容量存储区域、通常是用被称为动态随机访问内存(dynamic random access memory,DRAM)的半导体技术来实现的,是一组内存字的数组,每个字都有其地址。通过对特定内存地址执行一系列load或store指令来实现交互。指令load能将内存中的字移动到CPU的寄存器中,而指令store能将寄存器内容移动到内存。除了显式使用load和store外,CPU可自动从内存装入指令来执行。
一个典型的指令执行周期(在冯·诺依曼体系结构上执行时)首先从内存中获取指令,并保存到指令寄存器(instruction register)中,接着,指令被解码,并可能导致内存中获取操作数或将操作数保存到内部寄存器中。在指令完成对操作数的执行后,其结果可以回到内存。注意内存单元只看见内存地址流,它并不知道它们如何产生的(通过指令计数器、索引、间接、常量地址等),或它们是什么地址(指令或数据)。相应地,可忽视程序如何产生内存地址,只对程序运行所生成的地址序列感兴趣。
计算机系统提供辅存(secondary storage)以作为内存的扩充。对辅存的主要要求是它必须要能够永久地存储大量的数据。
常用的辅存为磁盘(magnetic disk),它能存储应用程序和数据,绝大多数程序保存在磁盘上,直到要执行时才装入到内存。适当的管理磁盘存储对计算机系统来说十分重要。
上面只是一种存储系统:由寄存器、内存和磁盘组成。除此之外,还有高速缓存,CD-ROM,磁带等。
I/O结构:在计算机中,存储器只是众多I/O设备的一种,操作系统的大部分代码用来进行I/O管理,这既是因为它对系统可靠性和性能的十分重要,也因为设备变化的特性。
通常,操作系统为每个设备控制器提供一个设备驱动程序。这些设备驱动程序理解设备驱动器,并提供一个设备与其余操作系统的统一接口。
为了开始I/O操作,设备驱动程序在设备控制器中装在适当的寄存器。
计算机系统体系结构
单处理器系统
多处理器系统
集群系统
单处理系统采用单处理器。在单处理器系统中,有一个主CPU能够执行一个通用指令集,包括来自用户进程的指令。
多处理器系统主要的三个优点:
增加吞吐量:通过增加处理器的数量,希望能在更短的时间内做更多的事情。
规模经济:多处理器系统比单处理系统能节省资金,这是因为它们能共享外设,大容量存储和电源供给。
增加可靠性:如果将功能分步在多个处理器上,那么单个处理器失灵将使得整个系统停止,只会导致速度降低而言。
集群系统:由两个或者多个独立的系统耦合起来的。集群的定义目前尚未定形。较为常用的定义是集群计算机共享并通过局域网连接或更快的内部连接。
集群通常用来提供高可用性服务。这意味着即使集群中的一个或者多个系统出错,服务仍然继续。
集群可以是对称的,也可以是非对称的。非对称集群(asymmetric clustering)中,一台机器出于热备份模式(hot standby mode),而另一台运行应用程序。热备份主机只监视活动服务器。如果该服务器失效,那么备份服务器会成为现行服务器。对于对称集群,两个或多个主机都运行应用程序,它们互相监视。
集群系统的详细介绍: