概述
计算机系统自下而上可粗分为:硬件、操作系统、应用程序和用户。操作系统管理各种计算机硬件,为应用程序提供基础,并充当计算机硬件与用户之间的中介。
- 操作系统 控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境的程序集合。
特征
特征为并发、共享、虚拟、异步,最基本的是并发和共享。
并发
两个或多个事件在同一时间间隔内(并发同一时刻,因此操作系统的并发性其实是靠分时得以实现的)发生,操作系统的并发性指的是计算机系统中同时运行着多个程序,具有处理和调度多个程序同时执行的能力。操作系统中引入进程的目的是使程序能并发执行。
共享
互斥共享方式
如打印机、磁带机等为避免结果混淆应规定一段时间内只允许一个进程访问该资源。
同时访问方式
宏观上是同时的,但微观上是分时共享。
并发与共享
两者之间互为存在条件:
- 资源共享是以程序的并发为条件的,若程序不并发则自然不存在共享问题。
- 若系统不能对资源实现共享则必然无法并发。
虚拟
把物理上的实体变为若干个逻辑对应物,实体是实际存在的,虚拟则是用户感觉上的。如虚拟处理器、虚拟内存、虚拟外部设备。
- 虚拟处理器 多道程序设计技术,多道程序并发执行,分时来使用一个处理器。
- 虚拟外部设备 将一台物理I/O设备虚拟为多台逻辑上的I/O设备,并允许每个用户占用一台逻辑上的I/O设备。
总结一下:虚拟就是靠时分\空分复用技术实现的!
异步
程序因分时并发所以其执行并不是一贯到底的,而是走走停停,以不可预知的速度推进,这就是异步性。
异步性使操作系统运行在一种随机的环境下,可能导致进程产生与时间有关的错误(就像对全局变量的访问顺序不当会导致程序出错一样)。但是只要运行环境相同,操作系统必须保证多次运行进程都获得相同结果。
目标和功能
功能
处理机管理、存储设备管理、设备管理和文件管理。为了方便用户使用操作系统,必须为用户提供接口。同时操作系统可用来扩充机器,以提供更方便的服务、更高的资源利用率。
处理机管理
进程控制、进程同步、进程通信、死锁处理、处理机调度等
存储器管理
主要包括:内存分配、地址映射、内存保护与共享和内存扩充等功能。
文件管理
文件存储空间的管理、目录管理及文件读写管理和保护
设备管理
缓冲管理、设备分配和虚拟设备等功能
作为接口
命令接口
命令接口进行作业控制的主要方式:联机控制方式和脱机控制方式
- 联机控制方式 交互式命令接口,适用于分时或实时系统的接口。由一组键盘操作命令组成,用户通过cmd或终端(分别对应win或linux系统),向系统提出各种服务要求。用户输入完一条命令,控制权就转入操作系统的命令解释程序,命令解释程序对输入的命令解释并执行。
- 脱机控制方式 批处理命令接口,适用于批处理系统。事先用相应的作业控制命令写成一份作业操作说明书。(like脚本?shell脚本那种?)
程序接口
系统调用命令(系统调用、广义指令),用户通过在程序中使用这些系统调用命令来请求操作系统为其提供服务。如外部设备、进行有关磁盘文件的操作、申请分配和回收内存以及各种控制要求等。
最流行的就是图形用户界面(GUI),用户通过鼠标和键盘在GUI上操作,GUI最终通过调用程序接口实现,严格来说GUI不属于操作系统的一部分,但图形接口所调用的系统调用命令属于操作系统的一部分。
扩充机器
裸机在最里层,外部封装了操作系统,操作系统提供资源管理功能和方便用户的各种服务功能,通常把覆盖了软件的机器称为扩充机器,又称为虚拟机。
- tip:本课程更关注操作系统控制和协调处理机、存储器、设备和文件,不关注接口和扩充机器。
发展
批处理操作系统、分时操作系统、实时操作系统、网络和分布式操作系统
手工操作系统
此阶段无操作系统:人工独占全机、CPU等待手工操作。
批处理阶段
操作系统出现,分为单道批处理系统和多道批处理系统。
- 单道
自动性、顺序性、单道性
问题:每次主机内存中仅存放一道作业 - 多道
多道、宏观上并行、微观上串行
问题:如何分配处理器、多道程序的内存分配问题、I/O设备如何分配、如何实现交互性、如何组织和存放大量的程序和数据,保证程序和数据安全性与一致性。
分时操作系统
同时性、交互性、独立性、及时性
实时操作系统
及时性、可靠性
网络操作系统和分布式计算机系统
哇这是云和分布式呀
个人计算机操作系统
目前最广泛使用
运行机制
一种是操作系统内核程序,另一种是用户自编程序或操作系统外层的应用程序。对操作系统而言,前者是后者的管理者。
管理程序要执行一些特权指令,被管理的程序由于安全考虑不能执行这些指令,俗称特权指令。
如I/O指令、置中断指令、存取用于内存保护的寄存器、送程序状态字到程序状态字寄存器等指令。
操作系统在具体实现上划分了用户态(目态)和核心态(管态)。
最底层:时钟管理、中断处理、设备驱动
运行频率较高:进程管理、存储器管理和设备管理等
时钟管理
计时;时钟中断的管理(进程切换)
-
进程切换 分时操作系统:时间片轮转调度
实时操作系统:按截止时间控制运行
批处理系统:通过时钟衡量作业运行程度 -
中断机制 只有一小部分功能属于内核,负责保护和恢复中断现场的信息,转移控制权到相关的处理程序。这样可以减少中断的处理时间,提高系统的并行处理能力。
-
原语 最底层、接近硬件的部分 原子性 运行时间较短且调用频繁
如设备驱动、CPU切换、进程通信等功能中的部分操作都可以定义为原语。
- 系统控制的数据结构及处理 系统中用来登记状态信息的数据结构很多,如作业控制块、进程控制块(PCB)、设备控制块、各类链表、消息队列、缓冲区、空闲区登记表、内存分配表等。常见的操作有以下三种:
- 进程管理:进程状态管理、进程调度和分配、创建与撤销进程控制块
- 存储器管理:存储器的空间分配和回收、内存信息保护程序、代码对换程序等
- 设备管理:缓冲区管理、设备分配和回收等
中断和异常
核心态建立“门”实现从用户态进入核心态,中断或异常发生时,运行用户态的CPU会立即进入核心态,这是通过硬件实现的。
-
中断(外中断(强迫中断):外设请求、人的干预) 也称外中断,来自CPU执行指令以外的事件发生,如设备发出I/O结束中断、时钟中断表示一个固定的时间片已到。
-
异常(内中断:自愿中断(指令中断)/强迫中断(硬件故障、软件中断)) 内中断,如程序的非法操作码、地址越界、算术溢出、虚存系统的缺页以及专门的陷入指令等引起的事件,异常不能被屏蔽,一旦出现应立即处理。
系统调用
设备管理、文件管理、进程管理、进程通信、内存管理
系统结构
操作系统在核心态为应用程序提供公共服务。
大内核
将操作系统的主要功能模块都作为一个紧密联系的整天运行在核心态,从而为应用提供高性能的系统服务。
微内核
分离了内核与服务、服务与服务,使它们之间的接口更加清晰,降低维护成本,从而保证了操作系统的可靠性。
并行同一时刻并发同一时间间隔
特权指令与非特权指令
特权指令:清内存、置时钟、分配系统资源、修改虚存的段表或页表、修改用户的访问权限等
访管指令与访管中断
访管指令:用户态下执行的指令 访管中断:由访管指令产生,程序员使用访管指令向操作系统请求服务。