操作系统概述
操作系统的定义
操作系统是覆盖在计算机硬件上的第一层软件,是对硬件系统的首次扩充。
操作系统的目标
1. 方便性
-
内部标识符
使用高级语言编写程序,由操作系统中的编译程序,将其翻译成机器代码,极大方便了开发。 -
普通用户
越来越高的人性化界面使得操作系统变得易学易用,大大方便了计算机的普及。
2. 有效性
CPU、内存和I/O设备等资源都处于忙碌状态,大大提高了系统的资源利用率。
系统管理人员提高系统的 “资源利用率” 及 “吞吐量”。
方便性和有效性是操作系统最重要也是最基本的两个目标。
3. 扩充性
无层次结构->层次结构->微内核结构
微内核(micro kernel)。是一种能够提供必要服务的操作系统内核。
微内核结构能方便地增添新的功能和模块,以及原有的功能和模块进行修改。
4. 开放性
OSI国际标准实现了国际网络互联。
操作系统的作用
1. 操作系统是用户与计算机硬件系统之间的接口。
用户<->操作系统<->硬件 在用户和硬件之间,操作系统起到了媒介的作用。
用户一般通过三种方式来使用计算机:
-
命令方式
-
系统调用方式
-
图标窗口方式
2. 操作系统是计算机系统资源的管理者
计算机系统中含有的硬件和软件为四类:
-
处理机管理
处理机的分配和控制
-
存储器管理
内存分配和回收
-
设备管理
I/O设备的分配回收
-
文件管理
实现文件的存取、共享和保护工作
操作系统的主要功能是对上述四类资源进行有效的管理。
3. 操作系统实现了对计算机资源的抽象
I/O设备管理软件是硬件与用户之间的接口。I/O设备管理软件实现了对硬件第一层次的抽象。
通常把覆盖了I/O设备管理软件的机器称为扩充机器或者虚拟机。
文件系统软件实现了对硬件第二个层次的抽象。
窗口软件实现了对硬件第三层次的抽象。
操作系统抽象的层次越高,抽象接口所提供的功能就越强,用户使用起来就越方便。
提供操作系统发展的主要动力
1. 不断提高计算机资源利用率
不断提高计算机资源利用率是操作系统最初发展的推动力
计算机操作系统经历了以下几个阶段:
单道批处理系统->多道批处理系统->Spooling系统->虚拟存储技术->网络服务器
每一步都大大的提高了资源的利用率,从而大大的调高了计算机的处理速度和效率。
2. 方便用户
分时系统解决的问题: 多个用户共享一台主机。
图形界面出现: 使计算机操作变得更加直观和方便,很大程度上加速了计算机的普及和应用。
3. 器件的不断更新换代
芯片由8位发张到64位
操作系统由8位发展到64位
外部设备的出现推动了操作系统的迅速发展,以支持种类繁多的外部设备。
4. 计算机体系结构的不断发展
计算机体系结构的不断发展:
体系结构–操作系统 (相匹配)
体系结构 | 操作系统 |
---|---|
单处理机结构 | 单处理机OS |
多处理机结构 | 多处理机OS |
网络结构 | 网络OS |
5. 不断提出新的应用需求类型
-
实时操作系统
为了满足工业控制
-
多媒体功能
用户对娱乐方面的需求
-
嵌入式操作系统
对资源的海量存储和系统的安全性提出了更高的要求,也因为大规模集成电路的发展,芯片的体积越来越小,价格也越来越便宜。
操作系统的发展过程
1. 人工操作方式 (无操作系统)
程序员将事先已经穿孔的纸袋转入纸袋输入机,之后将纸袋上的程序和数据输入到计算机,然后启动计算机进行运行。
特点
- 用户独占全机
- CPU等待人工操作
人工操作方式出现了严重人机矛盾,也就是人工进行I/O设备的速度远跟不上CPU的高速运行。
2. 脱机输入输出技术 (无操作系统)
解决人机矛盾以及CPU和IO设备之间速度不匹配的矛盾。
引出了外围机,外围机独立工作,不受处理机的控制
特点:
输入和输出都是在外围机的控制下完成的,脱离了主机的控制,因此将这种方式称之为脱机输入输出方式。
-
提高了输入输出速度
-
减少了CPU的空闲时间
3. 批处理系统
(1)单道批处理系统
对作业进行成批处理,但是内存中始终只保持一道作业。
特点
提高了资源的利用率
- 自动性
- 顺序性
- 单道性
缺点
- CPU空等I/O操作
- 资源仍得不到充分利用
(2)多道批处理系统
克服单道批处理系统CPU空等I/O操作而CPU空闲的特点。IBM360是第一个能运行多道程序的批处理系统
对应硬件: 小规模集成电路
对应计算机资源: 外存、内存、CPU以及I/O设备
处理流程
是由作业调度程序,按照一定的算法,从后备队列中选择若干作业,调入内存,使它们共享CPU和系统中的资源。
多道程序可以在一段时间内交替运行,可以保持CPU处于忙碌状态。
优点
在一定程度上提高了资源的利用率,单位时间内处理的作业量有所提升,提高了系统的吞吐量。
缺点
不能进行人机交互,调试和修改及其不方便。
4. 分时系统
解决多道批处理系统中,不能进行人机交互的问题。
定义
在一台主机上连接了多个配有显示器和键盘的终端并由此所组成的系统。
特点
-
多路性
可以多个终端用户。
-
独立性
多个用户使用主机时,互不干扰,每个用户都感觉自己在独占主机。
-
及时性
任务能得到及时的处理,间隔根据人所能接受到的等待时间来确立的。一般1~3s。
-
交互性
用户可以通过终端,跟主机进行广泛的人机对话。
多路卡
解决及时接收和及时处理的问题。
作用
实现分时多路复用
注意: 为了每个终端上的命令和数据依此逐条的处理,需要为每一个终端配置一个缓冲区,来缓冲每个用户的命令和数据。
及时处理
- 作业必须直接进入内存
- 采用轮转运行方式
PS: 作业不能在磁盘上处理的,所以应该直接进入内存。
5. 实时系统
实时 <=> 及时,实时系统要求极高的可靠性
实时系统和分时系统的比较
相同
- 多路性
- 独立性
- 及时性
- 交互性
不同
实时系统对可靠性的要求会更高。
操作系统的基本特征
1. 并发
并行性和并发性是两个相似又有区别的概念
并行性
- 多处理机系统
- 同一时刻
- 同时发生
并发性
- 单处理机系统
- 同一时间间隔
- 宏观同时
- 微观交替
2. 共享
资源共享
是指系统中的资源可供内存中多个并发执行的进程共同使用。
- 时间: 进程执行期间
- 地点: 内存
互斥共享方式
指一段时间内只允许一个进程访问该资源,其它进程必须等待该进程使用完毕之后才能够对该资源进行访问。也就是你用的时候,我不用。
临界资源: 只允许一个进程访问的资源。例如:系统中的打印机等物理设备,队列变量、表格等等。
同时访问方式
允许在一段时间内由多个进程同时对它们进行访问。
同时在单处理机环境下仍然是宏观的,在微观上仍然是交替进行。
典型的同时访问方式是磁盘。
3. 虚拟
虚拟技术
将一个物理实体变为若干逻辑上的对应物的功能称为虚拟技术。
实际是一个物理实体,但是用户感觉是多个。
实现方法
时分复用
- 虚拟处理机
分时系统,实际中的1台处理机使每个客户都感觉到自己拥有一台处理机。
- 虚拟设备技术
Spooling技术,它可以将一台具有互斥共享特点的打印机,改造为共享打印机。
空分复用
特点
通过分时使用存储器空间,以到达逻辑上扩充内存的目的–虚拟存储器。
4. 异步
异步性
并发执行的每个进程都是以不可预知的速度向前推进,我们这种不可预知性称为异步性。
结论
并发进程是异步的,但是同步机制保障其结果的正确性。
操作系统的主要功能
1. 处理机的管理
可以归纳为进程的管理。
-
进程控制
主要是创建和撤销进程。
-
进程同步
对各个进程的运行进行协调。
-
进程通信
相互合作的进程之间的信息交换。
-
处理机调度
-
进程调度
在进程的就绪队列中,按照一定的算法,把处理机分配给进程。
-
作业调度
将后备队列中的作业按照一定的算法,从外存调入到内存中,并为它们建立进程。
-
2. 存储器管理
-
内存的分配和回收
是每一个程序都能各得其所,尽量减少内存的碎片。
-
内存保护
确保每一道程序都能在自己的内存空间内运行,彼此之间互不干扰,不能侵占操作系统和其它程序的数据。
-
地址映射
虚拟地址和物理地址相互之间转换的问题,该功能必须在硬件的支持下才能完成。
-
内存扩充
主要实现虚拟存储器技术,也就是从逻辑上扩充内存,提高内存的利用率。主要包括请求调度功能和置换功能。
3. 设备管理
-
缓冲管理
解决I/O设备和CPU处理速度不匹配的矛盾,提高CPU的利用率,进而调高系统的吞吐量。
-
设备的分配与回收
-
设备处理
主要实现CPU与设备控制器之间进行通信,通信是双向的。
4. 文件管理
-
文件存储空间管理
-
目录管理
-
文件读写,共享和保护
5. 用户接口
-
用户接口
主要实现用户对操作系统的使用,方便快捷人性化。
-
程序接口
为程序在执行中访问系统资源而设置的,是程序取得操作系统服务的唯一途径。