1.概念
计算机系统由硬件、操作系统、应用程序组成,操作系统管理各种计算机硬件,为应用程序提供基础。操作系统是指控制和管理整个计算机系统的硬件和软件资源,合理地组织、调度计算机的工作与资源的分配,为软件提供方便接口与环境的程序集合。
2. 特征
(1)并发
计算机系统中同时存在多个运行的程序,具有处理和调度多个程序(进程)的能力。
并发是指多个事件在同一时间段内发生,并非并行(同一时刻)。
(2)共享
资源共享指系统中的资源可供内存中的多个并发执行的进程共同使用。
互斥共享:某进程访问某资源需要先提出请求,资源空闲时分配给该进程使用,使用完并释放资源后,该资源才能分配给其他进程使用。此类资源又称临界资源、独占资源,如打印机。
同时访问:某资源允许在一段时间内由多个进程同时并发访问,如文件系统。
(3)虚拟
虚拟处理器技术是通过多道程序设计技术,采用让多道程序并发执行的方法来分时使用一个处理器。
操作系统利用多种虚拟技术实现虚拟处理器、虚拟内存、虚拟外设等。
时分复用技术:处理器的分时共享。
空分复用技术:虚拟存储器。
(4)异步
异步操作是指调用方在发起任务后无需等待任务完成,可以继续执行其他操作,任务完成后通过回调机制返回结果。
3. 功能
(1)处理及管理
多程序环境下,处理机的分配和运行是以进程为基本单位,对处理机的管理实际是对进程的管理。
进程管理的主要功能包括:进程控制、进程同步、进程通信、死锁处理、处理机调度。
(2)存储器管理
目的是提高内存利用率,包括内存分配回收、地址映射、内存保护与共享、内存扩充等。
(3)文件管理
操作系统中负责文件管理的部分为文件系统,文件管理包裹文件存储空间管理、目录管理、文件读写管理等。
(4)设备管理
设备管理主要任务是完成用户的I/O请求,提高设备使用率,主要包括缓冲管理、设备分配、设备处理、虚拟设备等
4. 分类
(1)分时操作系统
分时技术是指把处理器的运行时间分成很短的时间片,按时间片轮流把处理器分配给各联机作业使用。
特点:
同时性:允许多个终端用户基本同时使用同一台计算机。
交互性:用户通过终端采用人机对话的方式直接控制程序运行,与同程序交互。
独立性:系统支持多个用户独立进行操作,互不干扰。
及时性:采用时间片轮转方式是一台计算机在短时间内同时为多个终端服务。
(2)实时操作系统
为了能在某个时间限制内完成某些紧急任务而不需要时间片排队,诞生了实时操作系统。
特点:及时性,可靠性。
硬实时系统:某个动作必须绝对在规定的时刻发生,如铁路信号系统、喷墨打印机系统。
软实时系统:允许偶尔违反时间规定且不会引起任何永久性损害,如订票系统/
5. 运行机制
(1) CPU状态
核心态:内核态,CPU处于核心态时可以执行特权指令。
用户态:目态,CPU处于用户态只能执行非特权指令。
操作系统程序运行在核心态,应用程序运行在用户态。
(2) 操作系统内核
时钟管理:计时,提供系统时间;通过时钟中断管理实现进程切换。
中断机制:最初用于提高CPU的利用率,只有一小部分功能属于内核,负责保护和恢复中断现场信息,转移控制权,优点是缩短中断的处理时间,提高并发处理能力。
原语:①处于操作系统最底层;②程序的运行具有原子性;③运行时间短,调用频繁。
系统控制:进程管理、存储器管理、设备管理。
6. 中断和异常
(1) 定义
用户程序运行在用户态,但用户程序需要使用到核心态中的功能,只有在发生中断或异常时,运行用户态的CPU会进入核心态(访管中断)。
中断(外中断):指发生与CPU执行指令无关的事件,如IO中断、时钟中断。
异常(内中断):指来自CPU执行指令内部的事件,如地址越界、算术溢出。可分为故障fault、陷阱trap、终止abort。
(2) 中断处理过程
硬件完成:
关中断:CPU响应中断请求后,保存程序现场状态,不再响应其他高级中断源的中断请求。
保存断点:为了中断服务程序执行完能够回到原来的程序,需要保存程序中断点(程序计数器PC)
中断服务程序寻址:取出中断服务器的入口地址存入程序计数器PC中。
中断程序完成:
保存现场和屏蔽字:进入中断服务程序首先保存现场信息,包括程序状态字、寄存器PSWR和部分通用寄存器内容。
开中断:允许更高级中断请求得到响应。
执行中断服务程序:执行中断内容。
关中断:保证在恢复现场和屏蔽字时不被中断。
恢复现场和屏蔽字:将现场和屏蔽字恢复到程序中断时的状态。
开中断、中断返回:中断服务程序返回到原程序断点处,继续执行。
7. 系统调用
系统调用指用户在程序中调用操作系统提供的子功能。
(1)分类
设备管理:完成设备的启动、请求、释放等功能。
文件管理:文件的读、写、创建、删除。
进程管理:进程的创建、撤销、阻塞、唤醒。
进程通信:进程之间的消息传递、信号传递等。
内存管理:内存分配、回收、获取作业占用内存大写、始址。
(2)执行过程
用户程序可以执行陷入指令(访管指令、trap指令)发起系统调用,请求操作系统提供服务。