一、计算机系统基本概念
操作系统概念
操作系统(Operating System,OS) 是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境,它是计算机系统中最基本的系统软件。
操作系统特征
并发
并发 : 指两个或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的,但微观上是交替发生的
同一时间间隔(并发)和同一时刻(并行)的区别:在多道程序环境下,宏观上有多道程序在同时执行,而每个时刻,单处理机环境下只有一道程序在执行。
操作系统的并发性指计算机系统中同时存在着多个运行着的程序,通过分时得以实现。
共享
共享即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。
所谓的“同时”往往是宏观上的,而在微观上,这些进程可能是交替地对该资源进行访问的(即分时共享)
虚拟
虚拟是指把一-个物理上的实体变为若千个逻辑上的对应物。物理实体(前者)是实际存在的,而逻辑上对应物(后者)是用户感受到的。
异步
异步是指,在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。
操作系统的目标和功能
系统资源管理者
用户与计算机硬件之间的接口
命令接口 :允许用户直接调用。联机命令接口(说一句做一句),脱机命令接口(说一堆做一堆)。
程序接口 :通过程序间接调用,由一组系统调用组成(程序接口=系统调用)
用作扩充机器
二、操作系统的发展和分类
手工操作阶段
用户在计算机上的所有工作都要人工干预。
缺点:用户独占全机,资源利用率低。CPU等待手工操作,利用不充分。
批处理阶段
引入脱机输入/输出技术(用磁带完成),并监督程序负责控制作业的输入、输出(操作系统的雏形)。
单道批处理系统
缓解了一定程度的人机速度矛盾,资源利用率有所提升。
主要缺点 : 内存中仅能有一道程序运行,只有该程序运行结束之后才能调入下一道程序。CPU有大量的时间是在空闲等待I/O完成。
多道批处理系统
多道程序并发执行,共享计算机资源。资源利用率大幅提升,CPU和其他资源保持“忙碌”状态,系统吞吐量增大。
主要缺点 : 用户响应时间长,没有人机交互功能(用户提交自己的作业之后就只能等待计算机处理完成,中间不能控制自己的作业执行)。
分时操作系统
计算机以时间片为单位轮流为各个用户/作业服务,各个用户可通过终端与计算机进行交互。
主要优点 : 用户请求可以被即时响应,解决了人机交互问题。允许多个用户同时使用一台计算机。
缺点 : 不能优先处理一些紧 急任务。操作系统对各个用户/作业都是完全公平的,循环地为每个用户/作业服务一个时间片,不区分任务的紧急性。
实时操作系统
其他的操作系统
网络操作系统
是伴随着计算机网络的发展而诞生的,能把网络中各个计算机有机地结合起来,实现数据传送等功能,实现网络中各种资源的共享( 如文件共享)和各台计算机之间的通信。
分布式操作系统
主要特点是分布性和并行性。系统中的各台计算机地位相同,任何工作都可以分布在这些计算机上,由它们并行、协同完成这个任务。
个人计算机操作系统
如Windows 、MacOS。
三、操作系统运行环境
机制
两种指令
简单来说,“指令” 就是处理器(CPU)能识别、执行的最基本命令。
指令分为两种:特权指令
,如内存清理指令和非特权指令
,如加减法指令。前者不允许用户程序使用。
计算机指令和我们写的代码区别 :一条高级语言的代码翻译过来可能会对应多条指令
两种处理器状态
两种程序
操作系统内核
内核就是计算机上配置的底层软件,是操作系统最基本最核心的内容。实现内核功能的程序就是内核程序。
时钟管理
第一功能计时,需要通过时间管理,向用户提供标准的系统时间。通过时钟中断的管理,可以实现进程的切换。
例如 : 在分时操作系统使用时间片轮转调度,在批处理系统通过时钟管理衡量一个作业的运行程度。
中断机制
提高多道程序运行环境中CPU的使用率。中断机制中一小部分功能属于内核,它们负责保护和恢复中断现场的信息,转移控制权到相关程序。
原语
是底层可被调用的公有小程序。
- 处于最底层,最接近硬件的部分
- 程序运行具有原子性
- 运行时间较短,且较为频繁
定义原语的直接方法就是关闭中断,让其所有动作不可分割的完成后在打开中断
系统控制的数据结构及处理
系统用来登记状态信息的数据结构很多,如作业控制块,进程控制块,各类链表,消息队列等。常见操作有以下三种 :
- 进程管理 : 进程的状态管理,调度,分派,创建和撤销进程控制块
- 存储器管理 : 存储器的空间分配回收,内存信息的保护程序
- 设备管理 : 缓冲区管理,设备的分配和回收等。
中断和异常的概念
- 当中断发生时,CPU立即进入核心态
- 当中断发生后,当前运行的进程暂停运行,并由操作系统内核对中断进行处理
- 对于不同的中断信号,会进行不同的处理
发生中断意味着,需要操作系统介入,开展管理作用。
用户态→核心态,唯一途径是 中断,核心态→用户态的切换是通过执行一个特权命令。将程序状态字(PSW)的标志位设置为用户态
由于操作系统的管理工作(比如进程切换、分配I/O设备等)需要使用特权指令,因此CPU要从用户态转为核心态。中断可以使CPU从用户态切换为核心态,使操作系统获得计算机的控制权。有了中断,才能实现多道程序并发执行。
注意 : 对于异常的处理无法被屏蔽,要依赖于当前程序的运行现场。
外中断的处理过程
- 关中断
CPU响应中断后,首先要保护现场,不能响应更高级的中断请求
- 保存断点
将程序断点,即程序计数器PC保存起来
- 引出中断服务程序
实质是取出中断服务程序的入口地址送入程序计数器PC
- 保存现场和屏蔽字
进入程序中断服务后,首先要保存现场,一般指程序状态字寄存器PSWR和某些通用寄存器的内容
- 开中断
允许更高级的中断请求得到响应
- 执行中断服务程序
就是程序中断的目的
- 关中断
保证在恢复现场和屏蔽字时不被中断
- 恢复现场和屏蔽字
将现场和屏蔽字恢复到原来状态
- 开中断,中断返回
中断返回指令,返回到原程序的断点处,以便继续执行
系统调用
系统调用就是用户在程序中调用操作系统提供的一些子功能。
系统中的各种共享资源都由操作系统统一掌管, 因此在用户程序中,凡是与资源有关的操作(如存储分配、I/0操作、 文件管理等),都必须通过系统调用的方式向操作系统提出服务请求,由操作系统代为完成。这样可以保证系统的稳定性和安全性
传递系统调用参数→执行陷入指令(用户态)→执行系统调用相应服务程序(核心态)→返回用户程序
注意:陷入指令是在用户态执行的,执行陷入指令之后立即引发一个内中断。发出系统调用请求是在用户态,而对系统调用的相应处理在核心态下进行。陷入指令是唯一个只能在用户态执行,而不可在核心态执行的指令。