操作系统引论
操作系统的目标
- 方便性
- 有效性
- 可扩充性
- 开发性
操作系统的作用
-
OS作为用户与计算机硬件系统之间的接口,即OS处于用户与计算机硬件之间,用户通过OS来使用计算机系统
注意,OS是一个系统软件
用户可以通过以下三种方式使用计算机
-
OS作为计算机资源的管理者
计算机资源包括:处理器,存储器,I/O设备以及信息(数据和程序)
OS的功能:
- 处理机管理:分配和控制处理机
- 存储器管理:负责内存的分配与回收
- I/O设备管理:负责I/O设备的分配与操纵
- 文件管理:负责文件的存取、共享和保护
-
OS实现了对计算机资源的抽象
OS是铺设在计算机硬件上的多层系统软件,他们不仅增强了系统的功能,而且还隐藏了对硬件操作的细节,由它们实现了对计算机硬件的多个层次的抽象。
操作系统的发展过程
无操作系统的计算机系统
由用户(即程序员)采用人工操作方式直接使用计算机硬件系统。
脱机输入/输出方式
单道批处理系统(Simple Batch Processing System)
把一批作业以脱机方式输入到磁带上,并在系统上监督程序,在它的控制下使这批作业能一个接一个地连续处理。
特点:自动性、顺序性、单道性。
多道批处理系统(Multiprogramming Batch Processing System)
作业先放在外存上并排成一个队列,称为后备队列,然后,由作业调度程序从后备队列中选择若干个作业调入内存,使它们共享CPU和系统中的各种资源
好处:提供CPU的利用率,提供内存和I/O设备利用率,增加系统吞吐量。
特点:多道性,无序性,调度性。
分时系统(Time-Sharing System)
在一台计算机上连接了多个带有显示器和键盘的终端,以交互方式使用计算机,共享主机中的资源。
特点:多路性,独立性,及时性,交互性。
实时系统(Real-Time System)
系统能及时(或即时)响应外部事件的请求,在规定的时间内完成对该事件的处理并控制所有实时任务协调一致地运行。
特点:多路,独立,及时,交互,可靠。
微机操作系统的发展
配置在微型计算机上的操作系统即为微机操作系统
单用户单任务操作系统(CP/M,MS-DOS)——->单用户多任务(Windows)——->多用户多任务(UNIX OS——>Solaris OS,Linux OS)
操作系统的基本特性
- 并发(重点)
- 并发与并行
并行:两个或多个事件在同一时刻发生
并发:两个或多个事件中同一时间间隔内发生(宏观上有多个程序中同时运行)
- 进程(Process)
进程是指在系统中能独立运行并作为资源分配的基本单位。它是由一组机器指令,数据和堆栈组成的,是一个能独立运行的活动实体。
- 线程(Thread)
一个进程中可以包含若干个线程,它们可以利用进程所拥有的资源,把进程作为分配资源的基本单位,把线程作为独立运行和独立调度的基本单位。
-
共享性
- 虚拟(Virtual)
操作系统中的所谓”虚拟”是指通过某种技术把一个物理实体变成若干个逻辑上的对应物。
- 异步
异步的意思即进程是以人们不可预知的速度向前推进的。
操作系统的主要功能
处理机管理功能
- 进程控制:为作业创造进程,撤销已结束的进程以及控制进程在运行中的状态转换。
- 进程同步:为多个进程(含线程)的运行进行协调
协调方式:进程互斥方式、进程同步方式
- 进程通信:用来实现在相互合作的进程之间的信息交换
- 调度:在后备队列上等待的每个作业,通常都要经过调度才能执行,在传统的操作系统内,包含作业调度和进程调度两步。
存储器管理功能
- 内存分配
静态分配:每个作业的内存空间是在作业装入时确定的,不允许再申请新的内存空间,也不允许在内存中移动
动态分配:每个作业的内存空间也是在作业装入时确定的,但运行再申请新的内存空间,也运行在内存中移动。
为了实现内存分配,在内存分配的机制中,应具有这样的结构和功能:
- 内存分配数据结构,该结构用于记录内存空间的使用情况,作为内存分配的依据。
- 内存分配功能,系统按照一定的内存分配算法,为用户程序分配内存空间
- 内存回收功能,系统对于用户不再需要的内存通过用户的释放请求去完成系统的回收功能。
- 内存保护
确保每道用户程序都只在自己的内存空间内运行,彼此互不干扰。
- 地址映射
存储器管理提供地理映射功能,以将地址空间中的逻辑地址转换成内存空间与之对应的物理地址。
- 内存扩充
存储器管理中的内存扩充任务,并非失去扩大物理内存的容量,而是借助于虚拟存储技术,从逻辑上去扩充内存容量,使用户感觉到的内存容量比实际内存容量大得多。
设备管理功能
管理计算机系统中所有的外围设备,主要任务是:完成用户进程提出的I/O请求,为用户进程分配其所需的I/O
设备;提高CPU与I/O设备额利用率;提高I/O速度;方便用户使用I/O设备。
- 缓冲管理
引入缓冲,有效地缓和了CPU与I/O设备速度不匹配的矛盾(CPU运行的高速性,I/O低速性间的矛盾),提高CPU的利用率。常见缓冲区:单缓冲机制,双向同时传递数据的双缓冲机制,供多个设备同时使用的公用缓冲池机制。
- 设备分配
根据用户进程的I/O请求,将系统的现有资源,按照某种设备分配策略,为之分配其所需的设备。
- 设备处理
设备处理又称设备驱动程序,其基本任务是用于实现CPU和设备控制器之间的通信,即由CPU向设备控制器发出I/O命令,要求它完成指定的I/O操作,反之由CPU接收从控制器发来的中断请求,并给予迅速的响应和相应的处理。
文件管理功能
- 文件存储空间的管理
为每个文件分配毕业的外存空间,提供外存利用率,并能有助于提高文件系统的运行速度。
- 目录管理
为每个文件建立其目录项,并对众多的目录项加以有效的组织,以实现方便的按名称取文件。
- 文件的读/写管理和保护
- 文件的读/写管理:根据用户的请求,从外存中读取数据或将数据写入外存。
- 文件保护:防止未经核准的用户存取文件,防止冒名顶替存取文件,防止以不正确的方式使用文件
用户接口
1.命令接口
- 联机用户接口:为联机用户提供的,由一组键盘操作命令及解释程序所组成。
- 脱机用户接口:为批处理作业的用户提供,故也称批处理用户接口,该接口由一组作业控制JCL组成
2.程序接口
此接口是为用户程序在执行中访问系统资源而设置的,是用户程序取得操作系统服务的唯一途径,它由一组系统调用组成,每一个系统调用都是一个能完成特定功能的子程序,每当应用程序要求OS提供某种服务(功能)时,便调用具有相应功能的系统调用。
3.图形接口
图形用户接口采用了图形化的操作界面,用非常容易识别的各种图标来将系统的各项功能,各种应用程序和文件直观的表现出来。
OS结构设计
传统的操作系统结构
- 无结构操作系统(第一代OS)
- 模块化结构OS(第二代OS)
基于分解和模块化原则来控制大型软件的复杂度。为使OS具有较清晰的结构,OS不再是由众多的过程直接构成,而是将OS按其功能精心划分为若干个具有一定独立性和大小的模块,即模块接口法
- 分层式结构OS(第三代OS)
客户/服务器模式(Client/Server或C/S)
- 客户/服务器模式的组成
- 客户机(其实就是我们的电脑~):通常在一个LAN网络上连接有多台网络工作站(简称客户机),每台客户机都是一个自主的计算机,可以处理本地业务,也可发生消息给服务器,以请求某项服务。
- 服务器:通常是一台规模较大的计算机,在其上驻留有网络文件系统或数据库系统等,它应能为网上所有用户提供一种或多种服务。它一直处于工作状态,被动地等待来自客户机的请求,一旦检查有客户提供服务请求,便去完成客户的请求,并将结果送回客户。
- 网络系统:用于连接所有客户机和服务器,实现他们之间通信和网络资源共享的系统。
- 客户/服务器之间的交互
- 客户发送消息
- 服务器接收消息
- 服务器回送消息
- 客户机接收消息
- 客户/服务器模式的优点
- 数据的分布处理和存储,客户机就可以处理和存储数据,不需要把所有数据放在主机。
- 便于集中管理
- 灵活性和可扩充性
- 易于改编应用软件