一、操作系统的概念
计算机系统逻辑上从底层往上,可以粗分为四个部分:硬件、操作系统、应用程序和用户。
操作系统扮演的角色:
- 管理计算机硬件的程序(硬件视角);
- 为应用程序提供基础(开发者视角);
- 并且充当计算机硬件和用户的中介(用户视角)。
操作系统的两个主要目标:
(1) OS试图调度计算活动,以确保计算系统的高性能;
(2) 操作系统提供一个环境,以便开发和运行程序。
二、操作系统的发展
批处理系统:只能处理一个应用。
分时系统:允许多个用户同时使用计算机系统。
多道程序系统:通过组织作业让CPU总有一个作业可以执行,提高CPU的利用率。
作业调度:操作系统从作业池中选择一个作业,将它调入内存来执行。如果多个作业需要调入内存但又没有足够的内存,那么系统必须在这些作业中做出选择。做出这样的决定称为作业调度。
CPU调度:内存中同时有多个作业就绪可运行,那么系统必须做出选择。做出这样的决定称为CPU调度。
分时系统:或者叫多任务系统,CPU通过在作业之间的切换来执行多个作业,由于切换速度很快,用户可以在每个程序运行期间与之交互。
多处理器系统:也成为并行系统(parallel system),有多个紧密通信的处理器,它们共享计算机总线、时钟,有时还有内存和外设等。也称紧耦合系统。
分布式系统:distributed system,因为网络的快速发展,一些计算机系统由一组不共享内存和时钟的处理器组成。这些处理器有各自的本地内存。他们通过各种通信线路如高速总线或电话线,来相互通信。这些系统也称为松耦合系统。
三、计算机系统结构
现代通用计算机系统由CPU和若干设备控制器通过共同的总线相连而成,该总线提供了对共享内存的访问。CPU可与设备控制器并发工作,竞争内存周期。为了确保对共享内存额定有序访问,需要提供内存控制器来实现对内存的同步访问功能。
当计算机的电源开启or计算机重启时,发生了什么?
计算机在运行一个简单的初始化程序,或者叫引导程序(bootstrap program)。它通常位于只读存储器(ROM)中,如计算机内的固件or EEPROM。它初始化系统的所有部分,从CPU寄存器、设备控制器到内存内容。
引导程序必须知道如何装入操作系统并开始执行系统。为了完成这一目标,引导程序必须定位操作系统内核并把它装入内存,接着操作系统开始执行第一个进程,然后等待各种操作。
关于中断:
现代操作系统是通过系统中断驱动的。事件的发生通常通过硬件或软件中断来表征。硬件可以随时通过系统总线向CPU发出信号,以触发中断。软件通过执行一种叫做系统调用的操作来触发中断。
当CPU被中断时,它暂停正在做的事并立即将执行转到固定的位置去。该固定位置通常是中断服务程序开始位置的地址。中断服务程序开始执行,在执行完毕后,CPU重新执行被中断的计算。
DMA:direct memory access,直接访问内存。
DMA用于告诉I/O设备,在为这种设备设置好缓冲区、指针和计数器后,设备控制器能在本地缓冲存储器和内存之间直接传送一整块数据,而无需CPU的干预。这样每块只产生了一个中断,不像低速设备那样每个字节(或者字)产生一个中断。
字:计算机进行数据处理时,一次存取、加工和传送的数据长度称为字(word)。一个字通常由一个或多个(一般是字节的整数位)字节构成。
四、存储结构
辅助存储器,如磁盘,作为内存的不冲,能够永久性地存储大量的数据。
内存
RAM:random-access memory,随机访问内存,就是我们通常所说的内存。
计算机程序必须在内存中,才能被CPU运行。
内存是CPU可以直接访问的唯一大容量存储区域,它是用DRAM的半导体技术实现的,是一组内存字的阵列组成。每个字都有其地址。通过对特定的内存地址执行一系列load或store指令来实现交互。指令load能将内存中的字移到CPU的内部寄存器中,而指令store能将寄存器的内容移到内存。除此之外,CPU可以自动从内存装入指令以执行。
一个典型的指令执行周期,首先从内存中获取指令,并将此指令保存在指令寄存器中。接着,指令被解码,并可能从内存中获取操作数,并将操作数保存在某个内部寄存器中。在指令完成对操作数的执行后,其结果可以存回到内存。
内存和处理器本身的内置寄存器是CPU能直接访问的存储介质,因此正在执行的任何指令和指令所能使用的任何操作数必须在这些能直接范访问的存储设备中。如果数据不在内存中,那么在CPU能操作他们之前必须先将其移动到内存中。
CPU的内置寄存器通常在一个CPU时钟周期内可以被访问,绝大多数CPU能在一个时钟周期内执行一个或者多个操作指令的速度来节码指令并执行有关寄存器内容的简单操作。
内存却不能这样,需要通过内存总线的一个事务来访问,内存访问可能需要多个CPU时钟周期来完成。这就造成了处理器通常需要延迟。由于需要频繁访问内存,这种情况是无法忍受的。于是在CPU和内存之间增加了快速内存。这种用于解决速度差异的内存缓冲器,称为高速缓存(cache)。
五、存储层次
高速缓存技术:
高速缓存是计算机系统的重要理论之一。基本思想是——信息通常被保存在一个存储系统(内存)中,当使用它时,它会被临时地复制到更快的存储系统中。
高速缓存机制是如何运行的?
当需要特定的信息时,首先检查它是否在高速缓存中,如果是,可以直接使用高速缓存中的信息;如果否,就使用位于内存系统中的信息,同时将其复制到高速缓存中,以便在不久的将来需要时再次使用。