操作系统概述

一、计算机系统大致可以分为4个组成部分:计算机硬件、操作系统、系统程序与应用程序和用户,如下图所示。

 

1、硬件包含CPU、内存和输入输出设备,为计算机系统提供基本的计算资源

2、应用程序:如字处理程序、电子制表程序、编译器、网络浏览器,规定了用户按何种方式使用这些资源。

3、操作系统:控制和协调不同用户的应用程序对硬件的使用。

          为了更加全面地理解操作系统所担当的角色,接下来从两个视角探索操作系统:用户角度和系统角度。

(1)用户角度:主要是资源利用率和用户使用的方便性的权衡

(2)系统角度:从系统角度,操作系统是与硬件最为密切的程序,我们可以将操作系统程序看成是资源分配程序

        一个稍稍不同的观点是强调控制各种I/O设备和用户程序。操作系统是控制程序,管理用户程序的执行以防止计算机资源的错误使用或使用不当;操作系统特别关注I/O设备的操作和控制。

        计算机系统的基本目的是执行用户程序并能更容易地解决用户问题。为了实现这一目的,构造了计算机硬件,由于仅有硬件不一定方便使用,因此开发了应用程序,这些应用程序需要一些共同的操作,如控制I/O设备。这些共同的控制和分配I/O设备资源的功能集合组成了一个软件模块:操作系统。

          一个比较公认的定义是,操作系统是一直运行在计算机上的程序(通常称为内核),其他程序则为系统程序和应用程序。

 

二、计算机系统组织

1、计算机系统组织

           现代通用计算机系统由一个或者多个CPU和若干设备控制器通过共同的总线相连而成,该总线提供了对共享内存的访问。

每个设备控制器负责一种特定类型的设备。CPU与设备控制器可以并发工作,并竞争内存周期。为了确保对共享内存的有序访问,需要内存控制器来协调对内存的访问。

        当计算机开始运行时,它需要运行一个初始化程序。该初始化程序或引导程序通常位于ROM或者EEPROM中,称为计算机硬件中的固件。它初始化计算机系统的所有部分,包括CPU寄存器、设备控制器和内存内容。

        引导程序必须知道如何装入操作系统并开始执行操作系统。为了完成这一目标,引导程序必须定位操作系统内核并将其装入内存,接着操作系统开始执行第一个进程,例如“init”,并等待事件的发生。

        事件的发生通常通过硬件或者软件中断来表示。硬件可随时通过系统总线向CPU发出信号以触发中断。软件通过执行特别操作如系统调用(也称为监督程序)也能触发中断。

        中断是计算机结构中的重要部分,中断必须将控制转移到相应的中断服务程序,处理转移的简单方法是调用一个通用子程序以检查中断信息;接着该子程序会调用相应的中断处理程序。

        然而处理中断要快, 由于只有少量的预先定义的中断,因此可以使用中断处理子程序的指针表,通过指针表可以直接调用中断处理子程序,而不需要通过调用其他中间子程序。通常,指针表位于低地址内存(前100左右的位置),这些位置包含各种设备的中断处理程序的地址。这种地址的数组或中断向量可通过唯一设备号来索引,以提供设备的中断处理子程序的地址。

        中断体系结构也保存被中断指令的地址,许多旧的设计系统简单地在固定位置保存地址。更为现在的结构在堆栈上存储中断返回地址。如果中断服务程序修改了处理器的状态,例如修改了寄存器的值,则必须明确的保存当前的状态,然后在中断返回前恢复该状态。在处理中断之后,保存的返回地址将会装入程序计数器,被中断的计算可以重新开始,就好像没有中断发生过一样。

2、存储结构

2.1 内存(主存)

          计算机程序必须在内存(RAM) 中以便于运行。内存是处理器可以直接访问的唯一大容量存储区域。通过对特定内存地址执行一系列load或者store指令来实现交互。指令load能将内存中的字移动到CPU的寄存器中,而指令store指令将寄存器的内容移动到内存。除了显式使用load和store外,CPU可自动从内存中load指令来执行。

        一个典型的指令执行周期(在冯诺依曼体系结构上执行时)首先从内存中获取指令,并将其保存在指令寄存器中。接着指令被解码,并可能导致从内存中获取操作数或将操作数保存在内部寄存器中。在指令完成对操作数的操作后,其结果可以存回到内存。   

        理想情况下,程序和数据都永久驻留在内存中。由于以下原因,这是不可能的:

        (1)内存太小,不能存储所有需要的程序和数据

        (2)内存是易失性存储设备,当掉电时会失去所有内容。

           因此绝对大多数计算机系统都提供辅存(二级存储)以作为内存的补充。对辅存的主要要求是它能够永久地存储大量的数据。

 

2.2  辅存

 

3、I/O结构

        操作系统的大部分代码是用来进行I/O管理,这既是因为它对系统可靠性和性能十分重要,也是因为设备特性的多样化。

        通用计算机系统由一个CPU和多个设备控制器组成。它们通过共同的总线连接起来。每个设备控制器负责特定类型的设备,可有多个设备与其相连。例如,SCSI(small computer system interface)控制器可以连接7个或者更多的外设。设备控制器维持一组本地缓冲区和一组特定功能的寄存器。设备控制器负责在其所控制的外部设备与本地缓冲存储之间进行数据传递。通常,操作系统为每个设备控制器提供一个设备驱动程序

        为了开始I/O操作,设备驱动程序在设备控制器中装载适当的寄存器。相应地,设备控制器检查这些寄存器的内容以决定采取什么操作。控制器开始从设备向其本地缓冲区传输数据。一旦完成数据传输,设备控制器就会通过中断通知设备驱动程序它已完成操作。然后,设备驱动程序将控制权返回给操作系统。如果是一个读操作,设备驱动程序可能将数据或数据的指针返回;对于其他操作,设备驱动程序返回状态信息。

        上述I/O中断驱动适合移动少量数据,但是对于大块的数据移动,如磁盘I/O,就会带来超载问题。DMA(direct memory access,直接内存访问)就是为了解决这个问题而设计的。在为这种I/O设备设置好缓冲、指针和计数器之后,设备控制器能在本地缓冲和内存之间传送一整块数据,而无需CPU的干预。每块只产生一个中断,来告知设备驱动程序操作已完成,而不是像低速设备那样每个字节产生一个中断。当设备控制器在执行这些操作时,CPU可以去完成其他工作。

        一些高端的系统采样交换而不是总线结构。在这些系统中,多个部件可以与其他部件并发会话,而不是在公共总线上竞争周期。此时,DMA更为有效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值