操作系统的功能
管理系统软硬件资源
扩展计算机的功能
向用户提供服务
主要内容
>操作系统概述
>用户接口及作业管理
>进程及控制
>进程同步与互斥
>进程间通信
>死锁
>处理机调度
>存储管理
>文件系统
>外部设备管理
1.3.1计算机系统的层次结构
操作系统是计算机硬件和软件的接口、其本身属于系统软件。操作系统紧贴系统硬件之上、所有其他软件之下、可以说是其他软件的共同环境。如下图:
1.3.2操作系统的作用
操作系统承担与硬件相关、与应用无关的基本工作、并解决这些基本工作中的效率和安全问题、为使用户能方便、高效、安全地使用计算机、从而从最底层统一提供通用的帮助和管理。如下图、就是说、硬件可以做的操作系统不做、硬件不能做的操作系统来做、硬件做得少的操作系统就多做、硬件做得多的操作系统就少做。
进而、现代操作系统的客户/服务结构下、os 分为:运行在用户态并以客户/服务器方式活动的进程、运行在核心态的内核。如下图:
内核是对硬件的首次扩充
操作系统把用户的高级操作转换成一系列低级操作、所有低级操作对用户都是透明的。操作系统把硬件全部隐藏起来、给用户提供一个友好的、易于操作的界面。此外、操作系统还要进行大量的事务处理。
1.3.3操作系统的定义
操作系统可以从下5方面来考察
科普观点:操作系统是计算机系统的管理指挥机构和控制中心。
功能观点:操作系统是计算机资源的管理系统、负责对计算机的全部软、硬件资源进行分配、控制、调度和回收。
用户观点:操作系统是用户使用计算机的一个界面。
管理员观点:操作系统是计算机工作流程得以自动高效运行的组织者、系统软硬件资源合理协调的管理者。
软件观点:操作系统是由程序和数据集合组成的大型系统软件。
我们给出操作系统的定义:操作系统是计算机系统中的一个系统软件、是一些程序模块的集合————它们能以尽量有效、合理的方式组织和管理计算机的软硬件资源、合理地组织计算机的工作流程、控制程序的执行并向用户提供各种服务功能、使得用户能够灵活、方便、有效地使用计算机、使整个计算机系统能高效地运行。是计算机与用户之间的接口。
以下是一些操作系统的例子:
1.4操作系统的发展史
1.4.1手工操作阶段(无操作系统)
这一阶段、用户既是程序员、又是操作员、是计算机专业人员、编程语言为机器语言、输入输出设备为纸带或卡片。这一阶段特点为:
计算机处理能力的提高与手工操作的低效率(造成浪费)
用户独占全机的所有资源
1.4.2早期处理
分为联机批出理和脱机批处理
(1)联机是指 I / O 设备与主机直接链接方式。
——在非批处理情况下、单个作业由用户输入到输入设备后、要转换成主机能够接受的形式输入主机、主机处理后、输出到输出设备、在输出设备上转换成用户可识别的形式输出。
——在批处理情况下、则是用户输入一批作业到输入设备、主机处理后、数据成批输出。至于从输入设备到主机采用的是单个作业、还是多个作业、则又涉及到单道、多道程序的问题、前者为单道批处理、后者为多道批处理。
注意:“批处理”指的是输入输出的方式、而“单道程序”和“多道程序”指的是外设与主机之间的数据传输方式。
1.4.2早期批处理
早期的批处理分为联机批处理和脱机批处理。联机批处理由于输入输出时手工操作的低效率而造成主机时间的浪费、因此、可以将输入输出过程与主机处理脱离开、这就是脱机批处理。
(2)脱机批处理:增加一台不与主机直接相连而专门与 I /O 设备交换信息的卫星机、如下图:
一个实际的脱机批处理系统如下图:
这种情况下、如果采用单道程序系统同样会限制系统的效率。为提高主机处理的效率、应该将脱机批处理与多道程序系统结合起来。
1.4.3多道程序系统
多道程序系统即多道程序下系统中运行。
单道运行:每次只调用一个用户作业程序进入内存并运行。如下图:
这种情况下、一道程序从运行到结束、独占所有资源、资源利用率底(比如程序进行运算时、外设空闲;程序使用某个外设时、CPU和其他外设空闲)。
多道运行:每次可调用多个作业程序进入内存并运行、如下图:
在当前运行的作业需作 I /O 处理时、CPU转而执行另一个作业。
优点:
——资源利用率高:CPU和内存利用率较高
——作业吞吐量大:单位时间内完成的工作总量大
缺点:
用户交互性差:整个作业完成后或中间出错时、才与用户交互、不利于调试和修改
作业平均周转时间长:短作业的周转时间显著增长
多道程序系统还进一步涉及如下技术问题:
——处理机管理问题:如何分配、使CPU满足要求
——内存管理问题:为每道程序分配内存空间
——I /O 设备管理问题:如何分配 I /O 设备
——文件管理问题:如何组织程序和数据
——作业管理问题:如何组织作业
操作系统渐趋成熟、出现了作业管理、CPU管理、内存管理、设备管理、文件管理
1.4.4分时操作系统
1.4.5实时操作系统
1.4.6操作系统的进一步发展
1.5操作系统的分类
1.5.1批处理操作系统
1.5.2分时操作系统
1.5.3实时操作系统
1.5.4通用操作系统
1.5.5微机操作系统
1.5.6网络操作系统
1.5.7分布式操作系统
1.5.8嵌入式操作系统
1.6操作系统的功能
1.7操作系统的特征