操作系统——引论
概述
操作系统的作用
- 作为系统资源的管理者,负责计算机系统全部资源的分配、控制、调度和回收。
- 作为用户和计算机硬件之间的接口
- 作为最接近硬件的层次,实现了对硬件机器的扩展,对计算机资源的抽象。
什么是操作系统
操作系统OS(Operating System)是控制和管理计算机硬件和软件资源,合理地对各类作业进行调度以及方便用户使用的程序集合。是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充。
操作系统的目标
用户可通过OS所提供的命令操作计算机系统,或使用编译命令将用户采用高级语言书写的代码翻译为机器代码,使计算机更加易用。
管理和使用计算机系统资源,提高资源的利用率和系统吞吐量。
为适应计算机硬件、体系结构以及计算机应用发展的需求,OS必须具有很好的可扩充性,这与OS的结构紧密相关。“微内核”化推动了OS的结构发展,具有良好的可扩充性。
遵循标准,使不同厂家的设备通过网络加以集成,并能正确、有效协同工作,实现应用可移植性和互操作性。
操作系统的特征
并行 vs 并发
- 并行性是指两个或多个事件在同一时刻发生(一定是“同时”)
- 并发性是指两个或多个事件在同一时间间隔内发生(内部可能交替)
并发和共享是多用户(多任务)OS的两个最基本特征,它们互为条件。
- 能并行执行程序的前提是需要具有多个处理机,利用每一个处理机都可处理一个可并发执行的程序,多个程序便可“同时”执行。
- 正是系统中的程序能并发执行这一特征,才使得OS能有效地提高系统中资源利用率,增加系统的吞吐量。
- 宏观上,多个程序是同时运行的;微观上,在单处理机系统中,每一时刻只有一道程序执行。
- 又称资源复用,指系统中的资源可供内存中多个并发执行的进程(线程)共同使用。
- 进程对资源复用的方式主要有两种:
- 互斥共享(打印机等)
- 同时访问(网络资源、共享文件夹等)
- 通过某种技术把一个物理实体变为若干个逻辑上的对应物,叫做“虚拟化”。
- OS中主要利用时分复用和空分复用技术实现“虚拟化”
利用某设备为一用户服务的空闲时间,又转去为其他用户服务,提高了处理机的利用率,多用于虚拟处理机、虚拟设备等。
利用存储器的空闲空间分区存放运行其他的多道程序,提高了内存的利用率,多用于存储空间管理。
空分复用存储器 + 虚拟存储技术可实现逻辑上扩大存储器容量的功能。
- 进程以人们不可预知的速度向前推进,即为进程的异步性
- 很可能是先进入内存的作业后完成,后进入内存的作业却先完成。尽管如此,但只要运行环境相同,作业经多次运行,都会获得完全相同的结果。
操作系统的功能
发展
-
未配置操作系统的计算机系统(1945~20世纪50年代末)
- 将事先以穿好的孔的纸带装入纸带输入机,启动它们将纸带上的程序和数据输入计算机,然后再启动计算机运行,仅当程序运算完毕并取走计算结果后,下个用户上机。
- 用户上机时一人独占全机资源,资源利用率低;CPU等待用户:计算前后,手工装卸纸带或卡片;CPU利用率低。
- 后来,使用外围机控制输入/输出过程。称为脱机I/O方式
flowchart LR id1(人工操作方式)------>|- 人机矛盾<br> - CPU和I/O设备速度不匹配|id2(脱机输入/输出模式)
-
单道批处理系统(20世纪50年代中期)
- 设计一个常驻内存程序(monitor, 监督程序),操作员有选择地把若干作业合成一批,安装输入设备上,并启动监督程序,然后由监督程序自动控制这批作业运行。
- 缺点:内存中始终只保持一道作业,发出I/O请求后,CPU处于等待状态,必须在I/O完成后才能继续运行。
- 单道批处理系统的处理流程
- 多道批处理系统(20世纪60年代中期)
- 目的:进一步提高资源利用率和吞吐量
- 使用了输入输出缓冲、Spooling,引入了多道程序设计技术
- 缺点:平均周转时间长,无交互能力
-
分时操作系统
- 采用轮转运行方式,以时间片为单位提供服务,所有终端用户轮流享用一个时间片的CPU。
- 终端——人机交互
-
特征
多个用户可以同时使用一台主机,并按分时原则为每个用户服务
程序之间相互独立,多个用户同时使用,好像独占计算机系统
用户的请求能在很短时间内获得响应
用户直接控制操作过程
-
实时操作系统
- 及时响应外部事件的请求,在规定时间内完成对该事件的处理,并控制所有实时任务协调一致运行。强调的是响应速度
- 实时操作系统是一种抢先操作系统,抢先,是为满足某些需求停止低优先级的任务,并执行高优先级的任务
- 硬实时任务和软实时任务
- 硬:系统必须满足任务对于截止时间的要求,否则可能出现难以预测的后果。
- 软:联系着一个截止时间,但是并不严格。
微机操作系统的发展
一台嵌入式系统同时只能有一个用户在使用,该用户一次只能提交一个作业,一个用户独自享用系统的全部硬件和软件资源。例如:MS-DOS、Windows 3.1等
Windows下的多个“帐户(Account)”,不属于“多用户”,严格来说它们属于不同“角色”。
同一时间能运行多个作业,多个作业共享资源。例如:Windows 95-2007、Mac OS 8等
允许多个用户共享使用同一台计算机的资源,即在一台计算机上联接几台甚至几十台终端机,计算机按固定的时间片轮流为各个终端服务。如Windows Server、Linux、Unix等
体系结构:由内向外
操作系统主要包含内核与系统调用两部分。
包含处理器、存储器与外设等。我们称为裸机。
操作系统的核心部分。它由操作系统中用于管理设备、存储、处理器的那些组成部分。操作系统内核通常运行进程,并提供进程间的通信。
大内核和微内核
微内核结构仅在内核提供一组“最基本”的服务,不需要在核心态执行的功能移到用户态执行。维护方便,但需要频繁切换用户态和内核态,执行开销大。
大内核系统将操作系统的主要功能模块都作为一个紧密联系的整体运行在核心态,从而为应用提供高性能的系统服务。
由操作系统实现的所有系统调用所构成的集合即程序接口或应用编程接口(Application Programming Interface,API)。是应用程序同系统之间的接口。
为完成某项或多项特定工作的计算机程序,它运行在用户模式,可以和用户进行交互,具有可视的用户界面。
运行环境
内核态与用户态
指令 | 处理器状态 | 程序 |
---|---|---|
特权和非特权 | 核心态(管态、特态) | 内核程序 |
非特权 | 用户态(目态、常态) | 应用程序 |
在这个模式中,操作系统具有对所有硬件的完全访问权,可以执行机器能够运行的任意指令。也称为管态、核心态。
只使用了机器指令的一个子集。
中断和异常
- 中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。
- 中断是用户态转化为核心态的方法之一(其他方法有异常和系统调用)
- 我们通常能够直观感受到的是外中断,是指由于外部设备事件所引起的中断,如通常的磁盘中断、打印机中断等。
- 还有一种中断是内中断(异常),是指由于 CPU 内部事件所引起的中断,如程序出错(非法指令、地址越界)。
系统调用
- 应用程序通过系统调用间接调用OS中的相关过程,取得相应的服务。
- 运行系统调用时,需要通过软中断机制,先由用户态转换为系统(内核)态,经内核分析后,才能转向相应的系统调用处理子程序。
- 编程常常使用的C库函数,实际上对用户屏蔽了复杂的系统调用。