第一节 什么是操作系统?
-
操作系统是一种复杂的
系统软件
, 是不同程序代码, 数据结构,数据初始化文件的集合, 可执行. -
操作系统提供
计算机用户
与
计算机硬件
之间的接口, 并管理计算机
软件
和
硬件
资源.
一.用户与硬件之间的接口
- 接口是两个不同组成部分的交接面.
- 操作系统必须完成的两个主要目标如下:
-
与
硬件部分相互作用
,为包含在硬件平台上的所有底层可编程部件提供服务. -
为运行在计算机系统上的应用程序(即所谓用户程序)提供执行环境
二.资源的管理者
-
现代计算机系统的一个重要特点都就是
支持多任务
, 即允许同一个系统内同时驻留多个应用程序. - 一方面保证用户程序的顺利执行
- 另一方面使计算机系统资源得到尽可能高效的利用, 保证计算机系统的高性能.
-
管理的资源包含:
处理机, 内存,设备和文件, 在网络操作系统中还包括网卡,带宽
等.
1. 处理机管理
由操作系统的
处理机调度程序
来管理处理机的分配, 以使多个程序共享处理机, 从宏观上看多个程序同时顺序执行.
2. 内存管理
在多任务系统中, 内存不再是独占资源, 而是可能被
多个应用程序共同占用
.如何分配而互不干扰,如何回收, 逻辑地址到物理地址的转换
3. 设备管理
接受用户的IO请求, 分配IO设备, 管理IO缓存,驱动IO设备
4.文件管理
计算机系统把大量需要长时间保留的数据信息以文件的形式存放在外存设备中, 操作系统通过自己的文件管理程序完成外存空间的分配,回收,文件的按名存取, 文件的组织, 共享与保护等功能.
第二节 操作系统的发展
-
操作系统的发展从
时间顺序
上经历了从
无操作系统
到
单道批处理系统
,
多道程序系统
(
多道批处理系统
,
分时系统
)的发展过程. - 随着应用领域的扩大, 体系结构多样化, 又出现了微机操作系统, 网络操作系统, 实时操作系统,嵌入式操作系统和物联网操作系统
一. 无操作系统
- 第一代操作系统使用电子管作为主要的电子器件, 用插件板上的硬连线或穿孔卡片表示程序, 没有用来存储程序的内存,无操作系统.
- 整个计算机系统处于运行—–因等待人工操作而暂停—–运行, 这样一种不能连续自动工作的状态.
二. 单道处理系统
- 第二代计算机使用的主要电子器件是晶体管, 开始使用磁性设备, 内外存容量增加, 计算机运算速度提高, 出现了早期的单道批处理系统.
-
将用户程序及程序处理的数据统称
为
作业
- 对计算机的人工控制模式存在的问题是: 机器速度很快的时候, CPU长时间等待人工操作, 造成了CPU资源的严重浪费. 该问题的解决方案是: 利用磁性存储设备提高IO速度, 同时, 系统程序常驻内存并自动装入作业, 撤销作业, 输出运算结果.
- 单道批处理系统, 内存中只能驻留一道用户作业, CPU和内存资源被用户作业独占.
-
程序是
指令的集合
, 程序的执行是
CPU依次, 逐条执行指令的过程.当执行到输入/输出指令时,启动设备控制器工作
. -
吞吐量是指
单位时间内计算机系统处理的作业量
- 当IO进行性, 此段时间内CPU空闲,无事可做.
三. 多道程序系统
- 计算机采用集成电路芯片作为主要的电子器件,OS/360是IBM开发的第一个多道程序系统.
- 多道程序系统不具有交互功能, 被称为多道批处理系统.于是出现了分时操作系统,
- 分时操作系统,
四. 微机操作系统
- 随着个人计算机的出现, 微机操作系统应运而生.
- CP/M在微机操作系统风行了几年, 成为了最著名的8位操作系统.
五. 实时操作系统
- 适用于各种工业现场自动控制, 智能机器人, 海底探测和航空航天等领域, 出现了各种实时系统.
- 实时系统是支持实时计算的系统.
- VxWorks操作系统是一种嵌入式实时操作系统,
- linux系统也支持实时性.
六. 批处理系统, 分时系统, 实时系统的特点
- 单道批处理系统的特点
-
内存中只有一道作业, 可以自动成批处理作业,
自动性
,
顺序性
,
单道性
- 与无操作系统的计算机系统相比而言, 减少了等待人工操作的时间.但是单道批处理系统中, 由于作业独占CPU和内存, 当作业进行IO时,CPU只能等待IO完成而无事可做, 使得CPU资源不能得到充分利用.
- 多道批处理系统的特点
- 在多道批处理系统中, 用户所提交的作业都先存放在外存中并排成一个队列, 该队列被称为”后备作业队列”
- 与单道批处理系统相比, 多道批处理系统支持多道程序驻留内存, CPU可以不再空闲等待IO,
-
特点是:
多道性, 无序性, 调度性(作业调度和进程调度), 复杂性,
- 优点是: 能够提高CPU, 内存和IO设备的利用率和系统的吞吐量
-
缺点是: 系统
平均周转时间长, 缺乏交互能力
. -
周转时间是指从
作业被提交给系统开始到作业完成为止的时间.
- 平均周转时间是指所有作业的周转时间之和作业数量的比值.
- 分时系统的特点
- 分时操作系统允许多个用户通过终端同时使用计算机.分时操作系统是多道程序系统的自然延伸, 支持多个用户任务同时驻留内存, 每个用户通过终端与主机交互时都能得到快速响应.
-
特点是:
多路性, 独立性, 及时性和交互性.
- 优点是: 向用户提供了人机交互的方便性, 使多个用户可以通过不同的终端共享主机.
- 分时系统的实现需要解决两个关键问题: 及时接收和及时处理
- 实时系统的特点
-
实时系统主要用于
实时控制和实时信息处理
领域. -
特点是:
多路性, 独立性, 及时性, 交互性, 可靠性,
七 操作系统产品的现状
- 主机操作系统
-
是运行在大型主机上的操作系统, 主要提供三类服务:
批处理, 事务处理和分时处理.
- 批处理系统处理不需要交互式用户干预的周期性作业, 保险公司的索赔处理或者连锁商店的销售报告通常以批处理的方式完成.
- 事务处理系统负责大量的小请求. 如银行的支票处理或航班预定. 每个业务量都很小, 但是系统必须每秒处理成百上千个业务, 需要很高的处理速度.
- 分时系统允许多个远程用户同时在计算机上工作, 执行命令或处理作业 .
- 一个大型主机操作系统通常同时具有批处理, 事务处理和分时处理的功能. 如Linux 和UNIX
- 服务器 操作系统
- 是运行在网络服务器上的操作系统, 可以通过网络同时为众多用户服务, 允许用户共享硬件和软件资源,
- linux广泛应用于服务器, PC和移动设备.
- 微机操作系统
- 也称个人机操作系统,支持多任务
- 嵌入式操作系统
- 是宿主于非计算机设备中的计算机系统.
- 嵌入式操作系统在技术上的特征是设计上采用更易于移植的方式, 以适应越来越多的新处理器; 开放源码, 提高性能, 保证高可靠性.
-
特征是
小巧, 实时性, 可装卸, 代码固化, 弱交互性, 强稳定性, 接口统一, 低能耗.
第三节 操作系统的特征
-
并发
-
并发是指
两个或多个事件在同一时间间隔内发生
. 并发强调
"同一时间间隔"
, 与并行不同, 并行是
多个事件同时发生
-
共享
-
共享是指系统中的资源可供内存中多个并发执行的进程共同使用, 资源共享有两种方式:
互斥共享和同时共享
-
互斥共享是指
任意时刻一种资源只能被一个进程访问, 当一个进程访问资源时, 其他进程必须等待, 直到资源被进程访问完毕, 释放访问权.
- 并发与共享的关系是相互依赖的, 如果系统不支持并发, 资源的使用都是独占用, 不需要共享资源. 另一方面如果不能实现有效的资源共享, 并发就不可能得到很好的支持.
-
虚拟
- 是指通过某种技术把一个物理实体变化若干逻辑上的对应物, 物理实体是实际存在的, 而虚拟仅是用户感觉到的. 虚拟打印机, 虚拟内存和虚拟CPU等都操作系统通过某种技术把少量的物理资源变成较物理资源多的逻辑资源, 使共享资源的每个用户都感觉到自己独占用了系统资源.
-
异步性
- 进程以不预知的速度向前推进.
第四节 操作系统的功能
一. 内存管理
- 主要任务: 为多道程序的运行提供良好的环境,方便用户使用内存, 提高内存的利用率, 以及从逻辑上扩充内存以实现虚拟存储.
-
应有的功能:
内存分配 , 内存保护, 地址映射和内存扩充
四个功能.
1. 内存分配
- 主要任务:1)为每道程序分配内存空间, 使它们各得其所.2) 提高存储器的利用率,以减少不可用的内存空间,3)允许正在运行的程序申请附加的内存空间, 以适应程序和数据动态增长的需要.
-
有两个实现方式: 静态分配方式和动态分配方式.
-
静态分配方式
是:把内存划分成固定大小和数量一定的区域, 在系统运行过程中各分区的大小和数量不再变化. -
动态分配方式
是: 在系统运行过程中, 根据进程的请求的分配内存, 内存中分区的大小和数量都是动态变化的. - 为了实现内存分配 , 需要以下数据结构和功能支持.
-
用于
内存分配的数据结构
. -
内存分配功能
-
内存回收功能
-
2. 内存保护
- 主要任务:1)使操作系统内核的空间不会被用户随意访问, 以保证系统的案例和稳定; 2)确保每道用户程序都在自己的内存空间中运行, 互不干扰.
-
实现方式:采用
界限寄存器存放允许程序访问的地址区间的上限和下限值.
3. 地址映射
CPU执行程序过程中, 访问内存时, 需要把程序的逻辑地址转变为物理地址, 这个转换过程称为地址映射.
- 逻辑地址与物理地址
- 地址映射: 应在硬件的支持下完成.
4. 内存扩充
- 主要任务: 借助于虚拟存储技术, 从逻辑上扩充内存容量, 使系统能够向用户提供比物理内存大的存储容量.
-
实现方式:
请求调入功能
和
置换功能
- 请求调入功能: 是指允许系统在装入一部分用户程序时, 就启动该程序的运行, 在程序运行过程中若发现要执行的指令或要访问的数据尚未装入内存, 通过请求调入将需要的指令或数据装入内存.
- 置换功能: 在请求调入时, 若发现内存空间不足, 需要系统先将内存中的一部分内容换出到外存中, 以便腾出内存空间装入当前需要的内容.
二. 进程管理
- 进程可以被认为是程序的执行实体,
-
进程管理主要包括: 进程的描述与组织,
进程控制
,
进程同步
,
进程通信
及
进程调度
. - 进程控制完成进程创建, 撤销进程,唤醒进程和阻塞进程等操作.
- 进程同步: 主要完成多个进程运行的协调与互斥.
- 进程通信: 主要实现进程间之间的信息交换.
- 进程调度: 从多个可执行进程中选出一个进程, 把处理机分配给它.
三. 设备管理
- 主要任务: 完成用户的IO请求, 为用户分配IO设备,
- 应具有的功能:
- 缓冲管理
- 设备分配
- 设备处理: 由设备驱动程序来实现CPU与设备控制器之间的通信.
- 设备独立性和虚拟设备: 独立性是指应用程序独立于物理设备, 虚拟设备的功能是把一个物理设备变换为多个对应的逻辑设备,使一个物理设备能供多个用户共享.
四.文件管理
- 文件存储空间的管理
- 目录管理: 为每个文件建立目录并对众多目录项进行有效组织. 目录项包括文件名, 文件属性及文件的地址属性等信息.
- 文件的读, 写管理和存取控制
五. 提供用户接口
操作系统向最终用户提供命令行和图形用户接口, 向程序员提供应用程序与操作系统之间的接口即系统调用.
-
系统调用
是操作系统实现的具有某种功能的程序模块, 应用程序可以通过系统调用的接口使用操作系统实现的功能, 获得操作系统内核的服务.
-
命令接口, 可分为联机用户接口和脱机用户接口
- 联机用户接口:由一组键盘操作命令和命令解释程序组成.
- 脱机用户接口: 为批处理作业的用户提供. 也称为批处理用户接口.
- 图形用户接口
- 程序接口
五. 操作系统的体系结构
操作系统的体系结构是操作系统作为一种软件的体系结构, 对操作系统的可靠性,灵活性和可移植性等方面都有影响
一. 软件体系结构简介
- 软件体系结构是一个复杂软件系统的高层结构, 为软件系统提供了一个结构, 行为和属性的高级抽象, 包括系统元素的结构, 元素间相互关系,以及指导元素集成的模式和约束三个方面
- 明确清晰的软件体系结构是一条贯穿软件系统整个生命周期的主线, 是软件设计成功的基础和关键, 也是对软件大型化, 复杂化趋势的一种很好的应对决策.
二. 操作系统体系结构的分析
- 简单的监控程序模型
- 单体结构模型
- 单体内核是操作系统中最早,最常见的体系结构
- 层次结构模型
- 基本思想是: 将操作系统分为多个小的, 容易理解的层, 系统功能被隔离在不同的层中, 每一层提供对系统功能的部分抽象, 然后采用单向调用的顺序, 形成一连串彼此连续的对系统功能的抽象串, 最终形成对整个操作系统的完事抽象.
- 客户/服务器模型与微内核结构
- 传统操作系统一般将所有功能放在内核模式中完成. 但可扩展性, 可移植性,可维护性越来越差, 错误也越来越多,于是提出了微内核技术
-
微内核技术是操作系统发展的一个里程碑,它产生了一种完全不同的操作系统体系结构, 提供了操作系统发展的新途径.
-
核心思想是:
核心功能外移,
即把操作系统内核中的一些组成部分(如文件系统, 网络和驱动程序等内核功能)放到内核之外作为一个独立的服务器进程来实现, 在微内核中只保留了操作系统最基本的功能,包括处理机调度, 存储管理和消息通信等, 这些服务器进程借助于微内核传递消息来实现相互之间的交互. 微内核更多的是起着信息交换的作用, 验证信息, 在服务器之间传递信息并授权访问硬件. - 目前微内核结构的操作系统主要向两个方向发展: 一个向通用操作系统的发展, 另一个就是嵌入式操作系统.
-
核心思想是:
- 动态可扩展结构模型
- 基本思想:在运行过程中, 能够动态地实现系统行为扩展的结构, 可称为弹性结构
-
要实现动态可扩展结构, 首先要解决的问题就是如何实现系统行为的动态改变, 目前实现的方法就是通过动态地增删系统的代码, 采用的主要技术是
UPCALL
和
DOWNLOAD.
- UPCALL技术就是在微内核操作系统中通过核心层到用户层的调用方式来实现扩展的技术.
- DOWNLOAD技术(也称为核心扩展技术)的核心思想就是将软件构件动态地下载到内核中,以达到改变操作系统行为的目的. 最大的难点就是系统安全的问题.
第六章 指令的执行
-
指令周期
一个单一指令需要的处理
称为指令周期, 一个指令周期可以划分为
取指周期
和
执行周期.
- 取指令和执行指令
- 取指令: 在每一个指令周期开始时, 处理器从存储器中取一条指令.
-
执行指令: 取到的指令被放在处理的指令寄存器IR中, 分为4类操作
- 处理器与存储器之间的指令或数据传递操作.
- 处理器与IO设备之间的指令或数据传递操作.
- 算术运算操作或逻辑运算操作
-
控制操作, 即修改指令的执行顺序的操作
3.程序执行的过程是反复取指令和执行指令的过程.
版权声明:本文为weixin_39791387原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。