操作系统概述
第一章 操作系统概述
操作系统是对硬件系统功能的第一次扩充
操作系统是对硬件系统功能的第一次扩充
没有装os系统的 —— 裸机
基于不同系统下的应用软件是取决CPU的运作方式不同
接口是对硬件系统的第二次扩充
芯片:
cpu | 核显 |
---|
操作系统的性能:
冯诺依曼计算机
冯诺依曼
过去都以运算器、控制器为核心,冯诺依曼是以 存储器为核心
存储器:寄存器 —>内存 CPU<—>内存
4G+128G 4G是内存大小,128G是存储容量
操作系统的功能
操作系统用作扩充机器的功能,使其便于使用的机器,机器——虚拟机
单道程序进程:
操作系统结构
三层架构
底层:
处理机—> cpu,线程,java,多线程,线程锁。对处理机管理就是对进程进行控制,并发处理
存储器:file.open(),file.write()
设备:USB,文件,作业:进程的管理
操作系统发展的主要动力
- 不断提高计算机资源利用率(单批处理——多批处理)
- 方便用户(命令界面——图形界面)
- 器件更新换代(从16位——32位)
- 体系结构不断发展(从显卡到芯片核显)
操作系统的公共服务类型
- 程序执行(装入程序,运行,出错处理等)
- 输入输出操作(控制打印机,清屏等)
- 文件系统操纵(文件的创建,保存等)
- 通信(进程间通信)
- 差错检测(硬件:cpu,存储器与电源故障等,软件:地址越界等)
操作系统的主要功能
- 处理机管理
- 存储器管理
- 设备管理
- 文件管理
- 方便用户使用的用户接口(包括组织作业的运行)
-
处理机管理
- 进程控制:为作业创建进程,撤销已结束的进程,以及控制进程的状态转换(暂停<=>运行)
- 进程同步:多个进程的运行协调
实现进程同步机制——信号量机制
两种协调方式:- 进程互斥方式(不能既运行一个进程,又撤销这个进程)
- 进程同步方式(进程相互合作去完成共同任务时)
class student
class person 分开写,但在person类中调为student类
- 进程通信:进程之间的信息交换 (用cmd打开百度网页)
进程相当于队列
同一计算机上进程采用直接通信方式,源进程利用发送命令直接将消息发送至消息队列中 - 进程调度:在后备队列等待的作业需要进行调度才能执行
调度将进程分为不同的等级,先后进行进程运行
system.h头文件中有进程调度 fork()启动进程,exit()结束进程
-
存储器管理功能
- 内存分配
内存分配的数据结构——一张表——“快表”(TLB) 内存分配:为用户程序分配内存空间 内存回收:系统回收内存
- 内存保护:用户程序在自己内存空间中运行
- 地址映射
地址映射:地址空间中的逻辑地址转换成内存空间- 地址空间:目标程序装入程序限定的空间,单元编号为逻辑地址(相对路径)
- 内存空间:内存中的一系列单元所限定的地址范围(绝对路径)
- 内存扩充:借助于虚拟存储技术,从逻辑上去扩充内存容量,使用户所感觉到的内存容量比实际内存容量大的多
内存 0X100 但是需要1000个内存空间
硬盘 0X101~0X1000 给硬盘编上地址,将内存与硬盘联系起来
硬盘给内存提供数据,只需将内存中运行数据清除,然后重新加载(置换)
-
设备管理
完成用户进程提出的I/O请求,为用户进程分配所需的I/O设备,提高CPU和I/O设备利用率,提高I/O速度,方便用户使用I/O设备- 矛盾:高速CPU<—>低速I/O设备
解决:缓冲管理 缓和CPU和I/O设备速度不匹配的矛盾,提高CPU的利用率
不同系统采用不同的缓冲机制。 - 设备分配:根据用户进程I/O请求,为之分配其所需设备
实现设备分配:系统设置设备控制表,控制器控制表等数据结构,用于记录设备及控制器的标识等状态。
不同设备类型采用不同分配方式 - 设备处理
设备处理程序——设备驱动程序
检查请求合法性——>设备空闲否——>向控制器发送I/O命令——>启动I/O执行程序
- 设备独立性:应用程序独立于物理设备以使用户编制程序与实际使用物理设备无关(插U盘,拔掉U盘不会影响程序运行 Uni操作系统的输入/输出重定向[将命令结果输出到指定文件中])
- 虚拟设备:仅允许允许一个进程使用的物理设备,改造为能同时供多个进程共享的设备,与扩充内存原理一致(编写地址)
- 矛盾:高速CPU<—>低速I/O设备
-
文件管理——程序的应用
是对用户文件和系统文件进行管理以方便用户使用,并保证文件的安全性
文件管理功能:
1. 文件存储空间管理。诸多文件及文件存储空间实施统一管理,基于数据结构对存储空间进行分配和回收。
2. 目录管理。为文件创建目录项。对文件进行管理(文件共享,按名存取)
3. 文件读/写管理。根据用户请求,从外存中读数据或写数据到外存。
4. 文件保护(文件设置权限):存取控制功能,防止未经核准用户存取文件,防止冒名顶替存取文件和不正确的方式使用文件。
-
操作系统提供的接口
- 命令接口/用户接口
由OS实现的所有用户命令所构成的集合。
命令接口:用户通过该接口向作业发出命令以控制作业的运行
脱机用户接口:
脱机用户接口也是批处理接口
-
- 程序接口:用户程序执行中访问系统资源而设置的,由一组系统调用组成,每一个系统调用都是一个能完成特定功能的子程序
程序 —要求—>OS提供某种服务功能—调用—>具有相应功能的系统调用 - 图形接口:采用了图形化成操作界面,用图标将系统功能,应用程序和文件直观表现出来
- 程序接口:用户程序执行中访问系统资源而设置的,由一组系统调用组成,每一个系统调用都是一个能完成特定功能的子程序
由OS实现的所有系统调用所构成的集合被称为程序接口或者应用编程接口(API)
操作系统的结构
操作系统的四代变革:
软件:计算机运行时提供要求的功能和性能的指令和程序(能够处理信息的数据结构)的集合
软件是一种逻辑部件 ①是人类思想的产物 ②软件产品不允许有误差,因此在软件生产上,要求有很高的质量保证体系 ③对软件维护要比硬件维护要复杂的多
软件工程:运用系统的,规范的和可定量的方法来开发,运行和维护软件。(制定规则防止编程随意,软件质量不可保证和维护困难的问题)
程序=数据结构+算法
传统的操作系统
先后引入了分解,模块化,抽象和隐蔽等方法,现在出现了“滚雪球”的软件开发方式。
无结构操作系统
OS是一组过程的集合,各过程之间可以相互调用,在系统内部不存在任何结构。
分层式结构
包含若干层
层与层之间的相互关系:所有各层实现不依赖其以上各层提供的概念及其属性,只依赖其直接下层所提供的概念及其属性。——类似多态
层次设置考虑因素
1. 程序嵌套:一个功能实现,并非用一个程序完成,而是经若干软件层才可完成
2. 运行频率:活跃的模块放在最接近硬件的层(unix的内核)
3. 公用模块:供多种资源管理程序调用的公用模块放在最底层以便调用
4. 用户接口:命令接口,图形接口,程序接口放在最高层
模块式结构
模块化OS优缺点:
优点:提高了OS设计的正确性,可理解性与可维护性及增强可适应性,加速开发过程。
缺点:对模块划分及对接口规定要精确描述很困难,并且未能将共享资源与独占资源区分开。
客户/服务器模式 C/S
将OS划分为两部分
C/S优点:
提高系统灵活性,可扩充性与可靠性,并且适用性强
面向对象程序设计
类:服从相同规则的一系列抽象
对象:对类的实例化
封装:隐蔽了表示实体的数据和操作
打破封装机制:c++ 友元机制 与Java 反射机制
继承性:子对象可继承父对象的属性
微内核结构
cpu更新换代——>推动多处理机发展——>对OS要求越来越高——>OS维护与移植非常困难——>减少OS复杂性——>增强OS的可扩展性和可维护性——>产生微内核技术
- 微内核结构设计思想:
剔除核心系统中多余成分,并把他们移到核外子系统中实现,只实现一些必要的简单的概念及属性(例如:windows系统,原机4G,装上后40G) - 运行在核心态,开机后常驻内存,不是一个完整的OS,为构建通用OS提供一个重要基础
- 微内核采用C/S模式,OS的大部分功能和服务,都由服务器提供
- 进程管理:
进程作为资源分配的基本单位。允许一个进程拥有若干个线程。线程作为独立运行和调度的基本单位。在同一个进程中,各线程可共享进程所拥有的资源。允许线程并发执行。实现进程与线程间同步。 - 存储器管理:
虚拟存储器管理功能,例如页式存储管理,每页固定大小(1KB-8KB),为进程分配和回收运行空间。从逻辑上扩充内存容量。 - 进程通信管理:
微内核采用消息传递机构。进程之间以消息作为交换单位。 - I/O设备管理:
微内核中,每一个连接到主机上的I/O设备配备一个设备驱动程序实现设备I/O处理。
- 总结:
微内核结构建立在模块化,层次化结构上,采用客户/服务器和面向对象技术使之成为主流OS结构。
C/S技术思想:
操作系统的发展过程
操作系统分类
- 人工操作方式:
所有资源由用户占用,人操作慢,从而产生了人机矛盾 - 脱机输入输出方式:
用于中,大型计算机系统中,增加一台IOP,原来由主机管理和控制的I/O操作,交由IOP完成,造成I/O操作与主机脱机的假象,所以称作假脱机技术
单道批处理系统
仅存在一道作业(一个程序)运行,结束或出错时才自动调用另一道作业运行。
特点:自动性,顺序性,单道性,减少人工操作,解决了作业的自动连续。
-
单道程序运行情况:
-
多道批处理系统
内存中存放多道程序运行,运行结束或出错,自动调度另一道作业运行
多道性,无序性,调度性(进程调度和作业调度)
优点: 提高资源利用率和系统的吞吐能力
缺点:平均周转时间长,无交互能力需要解决的问题:处理机:分配和控制CPU
单道程序:
内存:
操作系统 |
---|
程序A |
多道程序:
内存:
操作系统 |
---|
程序A |
程序B |
程序C |
分时系统——多用户交互式操作系统
分时是指多个用户分享使用同一台计算机。多个程序分时共享硬件和软件资源。
交互是指交流互动
分时操作系统是指在一台主机上连接多个带有显示器和键盘的终端,同时允许多个用户通过主机的终端,以交互方式使用计算机,共享主机中的资源。
提高了资源利用率和系统吞吐量,推动了多道批处理的形成和发展。
推动分时系统形成和发展是:人机交互,共享主机,便于用户上级。
- 分时系统分类:
单道分时系统,具有前台和后台的分时系统,多道分时系统 - 特点:
多路性:多用户使用一台计算机
独立性:独立运行
及时性:系统能在短时间内得到回答
交互性:实现人机对话 - 系统出现关键问题:
及时接收:实现多个用户信息及时接收
及时处理:及时控制作业运行
(响应时间的问题)
改善方法
采用重入码减少信息对换量(共享)。
采用虚拟存储技术,减少信息对换量。
实时操作系统
实时是及时的意思
计算机及时响应外部事件请求,在规定时间内对事件处理,并控制所有实时设备和实时任务协调一致的运行
- 实时系统分类:
- 实时任务分类:
- 特征:
多路性:多个对象进行控制
独立性:独立运行不混淆
交互性:仅限于访问系统中某些特定的专用服务程序。
可靠性:具有过载防护能力
及时性:不同的系统要求不一样,控制对象必须在截止时间内完成。
网络操作系统
功能:
- 数据通信功能
- 资源共享功能
- 网络管理:管理定义了差错、配置、性能、计费和安全五大管理功能 。
分布式操作系统
特点:分布式,并行性,透明性,共享性,稳健性
阿里云——>分布式操作系统——>虚拟机原理,分时无数个去卖
系统采用分布式计算结构,即把原来系统内中央处理器处理的任务分散给相应的处理器,实现不同功能的各个处理器相互协调,共享系统的外设与软件资源。
嵌入式操作系统
嵌入式操作系统负责嵌入式系统的全部软、硬件资源的分配、任务调度,控制、协调并发活动。它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。
嵌入式系统由硬件和软件组成.是能够独立进行运作的器件。
操作系统的四个基本特征
并发
并发:是指两个或多个事件在同一时间间隔(8:00~12:00也算一个时间间隔,像吃饭与思考,吃完饭后思考)发生
并行:两个或多个事件在同一时刻发生(边吃饭边思考)
在多道程序环境下,并发性是指在一段时间内,宏观上有多个程序在同时运行,但在单处理机系统中,每一时刻却仅能有一道程序执行,故微观上这些程序是分时交替执行。
在多处理机系统中,可把这些任务分配到多个处理机上,实行并行处理,即利用每个处理机来执行一个可并发执行的程序,实现多个程序同时执行。
程序是静态实体的是不能并发执行,并发与并行是建立在进程的基础上进行的
引入进程的目的:使多个程序能并发执行
-
进程:作为分配资源的基本单位,它由一组机器指令、数据和堆栈等组成,是一个活动实体。资源是指CPU、存储器、I/O设备。
-
一个进程包含若干个线程,将进程作为分配资源的基本单位,线程作为独立运行的基本单位。
-
任务共行:宏观上系统中有多个任务同时运行。
微观上:单处理的任务并发,多处理机的任务并行
共享
系统中资源可供内存中多个并发的进程同时使用
虚拟
通过某种技术把一个物理实体变为若干个逻辑上的对应物。
异步
在多道程序环境下,允许多个进程并发执行
进程
可并发执行的程序在一个数据集合上的运行过程