【操作系统概念学习笔记一】
计算机系统可以分为四个部分
- 计算机硬件
- 操作系统
- 系统程序与应用程序
- 用户
操作系统的设计目的是为了用户使用方便,性能是次要的,不在乎资源使用率
可以将系统看作资源分配器。
目前没有一个关于操作系统的十分完整的定义。
操作系统的基本目的是:执行用户程序,并能更容易的解决用户问题
一个比较公认的定义是:操作系统是一直运行在计算机上的程序(通常称为内核),其他程序则为系统程序和应用程序。
现代通用计算机系统由一个或多个CPU和若干设备控制器通过共同的总线相连而成,该总线提供了对共享内存的访问。
内存控制器:确保对共享内存的有序访问。
引导程序:计算机开始运行时的一个初始化程序,通常位于ROM或EEPROM中,成为计算机硬件中的【固件】。
事件的发生通常通过硬件或软件中断来表示。硬件可随时通过系统总线向CPU发出信号,以触发中断。软件通过执行特别操作如系统调用(system call)(也称为监视器调用(monitor call))也能触发中断。
中断处理程序:发出中断请求的那个程序。
处理转移的简单方法是调用一个通用子程序以检查中断信息,接着,该子程序会调用相应的中断处理程序。因为只有少量的预先定义的中断,所以可使用中断处理子程序的指针表,通过指针表可间接调用中断处理子程序,而不需要通过其他中间子程序。通常,指针表位于低地址内存(前100左右)。这些位置包含各种设备的中断处理子程序的地址,这种地址的数组或中断向量可通过唯一设备号来索引,以提供设备的中断处理子程序的地址。
内存(RAM)是处理器可以直接访问的唯一大容量存储区域。
DRAM是动态随机访问内存,是一种半导体技术实现的一组内存字的数组,每个字都有其地址。
通过对特定内存地址执行一系列load或store指令来实现交互。
一个典型的指令执行周期(在冯诺依曼体系结构上执行时):
1. 首先从内存中获取指令,并保存在指令寄存器。
2. 指令被解码,可能导致从内存中获取操作数或将操作数保存在内部寄存器中。
3. 在指令完成对操作数的执行后,其结果可以存回到内存。
内存单元只看见内存地址流,并不知道它们是如何产生的或它们是什么地址。
辅存(secondary storage):作为内存的扩充,通常是用磁盘(magnetic disk)
易失存储:volatile
非易失存储:nonvolatile
电子磁盘之上的存储系统为易失的,而电子磁盘可以被设计成易失的或者非易失的。
闪存:比DRAM慢,但不需要电源来保存它的内容。属于电子磁盘。
设备控制器维护一定量的本地缓冲存储和一组特定用途的寄存器。设备控制器负责在其所控制的外部设备与本地缓冲存储之间进行数据传递
I/O中断驱动适合移动少量的数据,对大块的数据移动,如磁盘I/O,会带来超载问题。
DMA(direct memory access)直接访问内存)就是为解决超载问题设计的,在为这种I/O设备设置好缓冲,指针和计数器之后,设备控制器能在本地缓冲和内存之间传送一整块数据,而无需CPU的干预。每块只产生一个终端,来告知设备驱动程序操作已经完成,而不是像低速设备那样每个字节产生一个中断。当设备控制器在执行这些操作时,CPU可以去完成其他工作。
一些高端的系统采用交换而不是总线结构。//此时DMA更为有效
1.3计算机系统体系结构
如果只用一个通用CPU,系统则为单处理器系统。
多处理器系统,也成为并行系统(parallel system)或紧耦合系统(tightly coupled system),优点如下:
- 增加吞吐量
- 规模经济:节省资金,因为共享外设,大容量存储和电源供给
- 增加可靠性,十个处理器一个出了故障,那么剩下的9个会分担起故障处理器的那部分工作。
适度退化(graceful degradation):提供与正常工作的硬件成正比的服务的能力
容错(fault tolerant):系统超出适度退化的能力,因为它们能忍受单个部件的错误并继续操作。
多处理器系统主要有两种类型:非对称多处理(asymmetric multiprocessing)和对称多处理(symmetric multiprocessing,SMP)
非对称多处理:每个处理器都有各自特定的任务,一个主处理器控制系统,其他处理器或者从主处理器要任务,或者做预先定义的任务。这种称为主-从关系。
对称多处理:现在普遍的多处理器系统。
对称与非对称处理器之间的差异可能是由于硬件或软件的原因。
对CPU系统的另一种类型是集群系统(clustered system):通常用来提供高可用性(high availability)服务,意味着一个或多个系统出错,服务仍然继续。集群软件运行在集群节点之上,每个都能监视一个或多个其他节点。如果被监视的机器失效,那么监视机器能取代存储拥有权,并重新启动在失效机上运行的应用程序。
集群也有份对称和非对称的。
非对称集群:一台机器处于热备份模式,而另一台运行应用程序。热备份主机只监视活动服务器,如果该服务器失效,那么热备份主机会成为现行服务器。
对称集群:都运行应用程序,互相监视
其他形式的集群有并行集群和WAN集群。
并行集群:允许多个主机访问共享存储上的相同数据,由于绝大多数操作系统不支持多个主机同时访问数据,并行集群通常需要由专门软件和应用程序来完成。
有些集群技术包括了分布式锁管理器(distributed lock manager DLM)服务
1.4操作系统结构
操作系统最重要的一点:需要有多道程序处理能力。
多道程序系统提供了一个可以充分使用各种系统资源的环境,但是它们没有提供与计算机系统直接交互的能力。分时系统(或多任务)是多道程序设计的延伸。
在分时系统中,虽然CPU还是通过在作业之间的切换来执行多个作业,但是由于切换的频率很高,用户可以在程序运行期间与之进行交互。
响应时间应该比较短,通常小于1秒。
分时操作系统:采用CPU调度和多道程序设计。
进程:装入到内存并执行的程序。
由于主存较小而不能容纳太多作业,所以这些作业刚开始存储在磁盘的作业池(job pool)中,由驻留在磁盘中 需要等待分配内存的作业组成。
如果多个作业需要调入内存但是没有足够的内存,那系统必须在这些作业中做出选择,这样的决策称为作业调度(job scheduling)。
如果有多个任务同时需要执行,那么系统必须做出选择,这样的选择成为CPU调度。
操作系统必须保证合理的响应时间,这有时需要通过交换来得到,交换时进程被换入内存或由内存换出到磁盘。实现这一目的更常用的方法是使用虚拟内存。
虚拟内存:允许将一个执行的作业不完全放在内存中。主要的有点是程序可以比物理内存大,将内存抽象成一个庞大且统一的存储数组。
分时操作系统也必须提供文件系统。文件系统驻留在一组磁盘上,因此也必须提供磁盘管理。
1.5 操作系统操作
事件总是由中断或陷阱引起的。陷阱(或异常)是一种软件中断。
两种操作模式:用户模式和监督程序模式(monitor mode也称管理模式(supervisor mode),系统模式(system mode)或特权模式(privileged mode))。
在计算机硬件中增加一个模式位(mode bit)表示当前模式:监督程序模式(0)和用户模式(1)
只要操作系统获得了对计算机的控制,它就处于内核模式。
定时器:防止用户程序陷入死循环或不调用系统服务,并且不将控制权返回到操作系统。定时器有固定和可变定时器。
操作系统设置计数器,每经过一个始终周期,计算器都要递减,当计数器的值为0时,产生中断。例如对于10位的计数器和1ms精度的始终,可允许在1~1024ms的时间间隔内产生中断,时间不长为1ms.
1.6 进程管理
程序本身并不是进程,程序是被动的实体,而进程是一个活动的实体。
单线程进程具有一个程序计数器,多线程进程具有多个程序计数器,每一个指向想一个给定线程要执行的指令。
1.7 内存管理
1.8 存储管理
高速缓存到内存的数据传递通常是硬件功能
高速缓存一致性:确保在一个高速缓存中对A值的更新马上反映在所有其他A所在的高速缓存中。
分布式系是将一组物理上分开来的,各种可能异构的计算机系统通过网络连接在一起,为用户提供系统所维护的各种资源的计算机的集合。