6 计算机软件-操作系统&数据库
计算机软件是指计算机系统中的程序及其文档,是计算任务的处理对象和处理规则的描述。
- 任何计算机执行计算的单位是任务;
- 处理对象是数据(如数字、文字、图形、图像和声音等,他们只是表示,而无含义)或信息(数据及有关含义);
- 处理规则指出来的动作和步骤;
- 文档是为了便于程序所需的阐述性资料。
计算机系统是指在计算机硬件系统上运行的程序、相关文档资料和数据的集合。计算机软件用来扩充计算机系统的功能,提供计算机效率。
系统软件是为整个计算机系统配置的不依赖特定应用领域的通用软件。可以划分为:操作系统、程序设计语言翻译系统、数据库管理系统、网络软件等。
应用软件指各类应用需要或解决某个特定问题而设计的软件,如:图形图像处理软件、财务软件、游戏软件、各类软件包等。
操作系统是计算机系统的资源管理者,包含对系统软、硬件资源实施管理的一组程序,主要作用是通过CPU管理、存储管理、设备管理和文件管理对各种资源进行分配,最大限度发挥计算机的工作效率。操作系统是在计算机硬件上的第1层软件,可向下管理裸机及其中的文件,向上为其他软件(汇编程序、编译程序、数据库管理系统等)和大量应用软件提供支持,为用户提供使用系统的接口。
1 操作系统的组成
操作系统通常包括:内核(Kernel)和其他附加配套软件,包括:通信用户界面、常用应用程序(如日历、计算器、资源管理器、浏览器等)、实用程序(任务管理器、磁盘清理程序、杀毒软件和防火墙等)以及支持应用软件开发和运行的各种软件构件(如应用框架、编译器、程序库等)。
操作系统内核是能够提供进程管理(任务管理)、存储管理、文件管理和设备管理等功能的软件模块,为各种应用程序访问计算机硬件提供服务。操作系统内核对硬件设备进行了抽象,为应用提供简洁、统一接口(系统调用接口/应用程序接口API)。内核通常常驻内存,以CPU最高优先级运行,能执行指令系统中的特权指令,具有直接访问各种外设和全部主存空间的特权,负责对系统资源进行管理和分配。
2 操作系统的作用
- 管理计算机中运行的程序和分配各种软硬件资源。
- 为用户提供友善的人机界面。
- 为应用程序的开发和运行提供一个高效率的平台。
- 除上述作用外,操作系统还具有辅导用户操作(帮助功能)、处理软硬件错误、监控系统性能、保护系统安全等作用。
3 操作系统特征
- 并发性:指在一段时间内,宏观上有多个程序同时运行,但实际上再单CPU运行环境,每个时刻只有一个程序在执行。
- 共享性:指操作系统中的资源(包括硬件资源和信息资源)可以被多个并发执行的进程(线程)共同使用,而不是被一个进程所独占。共享资源的方式可以分为同时共享和互斥共享。
- 虚拟性:把物理上的一个实体(实际存在)变成逻辑上的多个对应物,或把物理上的多个实体变成逻辑上的一个对应物的技术(虚构假想)。采用虚拟技术的目的是为用户提供易于使用且方便高效的操作环境。把多个实体变成一个逻辑对应物,尚未实现。现在采用的都是讲大的任务分解成小任务的方式,类比Hadoop生态的方式。
- 不确定性:系统中的进程何时执行,如何暂停,以什么样的速度向前推进,进程总共要花多少时间才能执行完成,这些都是不可预知的。或者说进程以不确定的方式运行,其导致的直接后果是执行结果可能不唯一。
4 操作系统分类
1)批处理操作系统:分为单道批处理、多道批处理。
- 单道批处理:一次只有一个作业装入内存执行。作业由用户程序、数据和作业说明书(作业控制语言)组成。当一个作业装入内存执行,随即自动调入同批的下一个作业,避免人员干预提高资源利用率。
- 多道批处理:允许多个作业装入内存执行,在任意时刻,作业都处于开始点和终止点之间。每当运行中的一个作业由于输入/输出操作需要调用外部设备时,就把CPU交给另一个等待运行的作业,从而将主机与外部设备的工资由串行改为并行,避免CPU等待多道批处理的特点:多道、宏观上并行、微观上串行。
2)分时操作系统:一个计算机系统与多个终端设备连接。分时操作系统将CPU时间划分为时间片,轮流为各个终端用户服务。特点:多路性、独立性、交互性、及时性。
3)实时操作系统:实时是计算机对外来信息能够以足够快的速度进行处理,并在被控对象允许的时间范围内做出快速反应。实时系统对交互能量要求不高,但要求可靠性有保障。实时系统分为:实时控制系统、实时信息处理系统。
- 实时控制系统:主要用于生产过程的自动控制,如:数据自动采集、武器控制、火炮自动控制、飞机自动驾驶、导弹制导系统等。
- 实时信息处理系统:用于实时信息处理,如:飞机订票系统、情报检索系统。
4)网络操作系统:使联网计算机方便而有效地共享网络资源,为网络用户提供各种服务软件和有关协议的集合。其功能包括:高效、可靠的网络通信;对网络享资源(在LAN中有硬盘、打印机等)有效管理;提供电子邮件、文件传输、共享硬盘、打印机服务;网络安全管理;提供互操作能力。网络操作系统的特征:硬件独立性、多用户支持。
- 硬件独立性:网络操作系统可以运行在不同网络硬件上,可以通过网桥、路由器与其他网络连接;
- 多用户支持:能同时支持多个用户对网络访问,应对信息资源提供完全的安全和保护功能;
- 支持玩乐高实用程序及其管理功能,如:系统备份、安全管理、容错、性能控制;
- 多客户端支持;
- 目录服务:以单一逻辑的方式让用户访问位于世界范围内的所有网络服务和资源的技术;
- 多种增值服务,如:文件服务、打印服务、通信服务、数据服务等。
5)分布式操作系统:由多个分散的计算机连接而成的计算机系统,系统中的计算机无主、次之分,任意两台计算机可以通过通信交换信息。通常,为分布式计算机系统配置的操作系统称为分布式操作系统。直接对系统中的各类资源进行动态分配和调度、任务划分、信息传输协调工作,并为用户提供一个统一的界面与标准接口,用户通过这一界面实现所需要的操作和使用系统资源,是系统中若干台计算机相互协作完成共同的任务,有效控制和协调任务的并行执行。是网络操作系统的更高级形式,保持网络操作系统的全部功能,同时又有透明性、可靠性和高性能等特性。
6)微型计算机操作系统:又称微机操作系统,如:Windows、Mac OS、Linux。
7)嵌入式操作系统:在嵌入式智能设备环境中,对智能设备进行及其操作、控制的各种部件装置等资源进行统一协调、处理、指挥、控制。其特点:
- 微型化;
- 可定制:运行在不同的处理器平台上,能针对硬件变化进行结构与功能上的配置,以满足不同应用需要;
- 实时性:嵌入式操作系统主要用于:过程控制、数据采集、传输通信、多媒体信息、关键要害领域需要迅速响应的场合,对实时性要求高;
- 可靠性:系统构件、模块和体系结构必须达到应有的可靠性,对关键要害应用还要提供容错和防故障措施;
- 易移植性:通常采用硬件抽象层(HAL,Hardware Abstraction Level)和板级支撑包(BSP,Board Support Package)的底层设计技术。
常见的嵌入式操作系统有:VxWorks、μClinux、PalmOS、WindowCE、μC/OS-II、eCos等。
数据库(DB,Database):长期存储在计算机内、有组织的、统一管理的相关数据的集合。它描述事务的数据本身,还包括事物之间的关系。
早期数据库:
- 层次式数据库
- 网络式数据库
- 关系型数据库
目前的数据分为:关系型数据库和非关系型数据库。
根据存储体系分类:
- 关系型数据库:把复杂的数据结构归结为简单的二管关系,对数据的操作建立在一个或多个关系表格上,通过这些关联的表格进行分类、合并、连接或选取等运算来实现数据库的管理。
- 键值(Key-Value)数据库:使用简单的键值方法来存储数据,键值数据库将数据存储为键值对集合,其中键作为唯一标识符。
- 列存储数据库:列式存储(Column-Based)与关系型数据库的行式存储(Row-Based Storage)来说,存储形式上存在差异。
- 文档数据库:可存放并获取文档,可以是:XML、JSON、BSON等格式,这些文档具备可描述性(Self-Describing),呈现分层的树状结构(Hierarchical Tree Data Structure),可以包含映射表、集合和纯量值。文档数据库可视为其值可查的键值数据库。
- 搜索引擎数据库:搜素引擎是应用在搜索引擎领域的数据存储形式。
1 关系数据库
数据模型:数据特征的抽象,是对数据库组织方式的一种模型化表示,是数据库系统的核心与基础。它具有数据结构、数据操作、完整性约束条件三要素。
关系:就是二维表。
1)关系数据库设计的特点及方法
数据库设计的特点
- 从数据库结构即数据模型开始,并以数据模型为核心展开;
- 静态结构设计与动态行为设计分离;
- 试探性;
- 反复性;
- 多步性。
数据库设计方法分类,分为如下四类:
- 直观设计法;
- 规范设计法;
- 计算机辅助设计法;
- 自动化设计法。
数据库设计方法,包括:3NF的设计方法、实体关系(E-R)模型设计方法、基于视图概念的设计方法、面向对象的设计方法、计算机辅助设计方法、敏捷数据库设计方法等。
2)数据库设计步骤
数据库设计的步骤
- 需求分析:对象需要处理的对象进行详细调查,了解现行系统概况和确定新系统功能过程中,收集支持系统目标的基础数据及其出来方法。包括用户的数据需求、对数据业务处理的需求。
- 数据库概念结构设计,也称数据建模:根据需求,对用户信息加以分类、聚集和概括,建立信息模型,并依照选定的数据库管理系统软件,把它们转换为数据的逻辑结构,并依照软硬件环境,最终实现数据合理存储。最常用的方法是E-R方法。主要分为:设计局部E-R模型、设计全局E-R模型、全局E-R模型优化。
- 逻辑结构设计:在概念结构设计基础进行数据模型设计,可以是:层次、网状模型、关系模型。将E-R图转换为指定的数据模型,确定:完整性约束、用户视图。
- 物理结构设计:物理结构是数据库在物理设备上存储结构与存取方法的总称。利用DBMS的方法、技术,以较优的存储结构和路径、合理的数据存放位置以及存储分配等,实现数据库物理结构。
- 数据库应用设计是对DBMS的二次开发,包括:对用户信息的存储、对用户处理要求的实现。
数据库应用的设计主要包括的工作:选择设计方法、制定开发计划、选择系统架构、设计安全性策略。设计方法包括:结构化设计、面向对象设计方法。安全策略包括:硬件平台、OS、数据库系统、网络及应用系统的安全。
- 数据库运维:主要工作有数据库的转储和恢复,数据库的安全性、完整性控制,数据库性能监督、分析和改造,数据库重组和重构。
2 分布式数据库
分布式数据库系统(Distributed DataBase System, DDBS)是真的物理分散,而管理又需要不同程度集中管理的需求而产生的一种数据管理信息系统。满足:分布性、逻辑相关性、场地透明性、场地自治性的DBMS成为完全分布式数据库系统。
1)分布式数据库系统的特点:
- 数据的集中控制性;
- 数据独立性;
- 数据冗余可控性;
- 场地自治性;
- 存取有效性。
2)分布式数据库体系结构
分布式数据库体系结构
3 常用数据库管理系统
1)Oracle:适用于大型、中型和微型计算机关系数据库管理系统。主要结构包括:内部结构、外部存储结构、内存结构、进程结构,包括:物理上的数据、处理这些数据的程序,即 DBMS 本身。Oracle 使用 PL/SQL(Procedural Language/SQL)语言执行各种操作。Oracle 8 以上版本开始支持面向对象的结构(如抽象数据类型)。Oracle 产品包括数据库服务器、开发工具、数据库连接产品等,一并提供工具,如 Export/Import、数据泵等。
2)IBM DB2:IBM的大型关系型数据库平台,支持多用户。
核心特色:
- 支持面向对象编程
- 支持多媒体应用程序
- 支持备份恢复
- 支持存储过程/触发器
- 支持 SQL 查询
- 支持异构分布式数据库访问
- 支持数据复制
DB2 采用多进程多线索体系结构,可运行于多种OS上。还提供Visualizer、Visualage、Visualgen等开发工具。
3)Sysbase:SYBASE公司的 Client/Server(C/S)结构关系数据库系统,世界首个 C/S RDBMS。
Sybase主要包括:
- 进行数据库管理和维护的联机关系数据库管理系统 Sybase SQL Server
- 支持数据库应用系统建立与开发的前端组件 Sybase SQLToolset
- 可把异构环境下其他厂商应用软件和任何类型数据连接在一起的接口 Sybase OpenClient/OpenServer.
Sybase还提供如下工具:
- Sybase Adaptive Server Enterprise,高性能企业智能型关系数据库管理系统
- EAServer 电子商务解决方案应用服务器
- PowerDesigner 系统分析设计工具
- PowerBuilder 应用开发工具
4)Microsoft SQL Server:典型关系型数据库管理系统,运行于多OS,使用 Transact-SQL 语言完成数据操作。主要包括如下服务组件:
- Open Data Services
- MS SQL Server
- SQL Server Agent
- Microsoft Distributed Transaction Coordinator
SQL Server 还包括以下工具:
- 关系型数据库
- 复制服务
- 通知服务
- 集成服务
- 分析服务
- 报表服务
- 管理工具
- 开发工具
4 大型数据库管理系统的特点
共有7大特点:
- 基于网络环境的数据库管理系统;
- 支持大规模应用。支持高并发、海量事务、海量数据、海量数据存储。
- 提供自动锁功能使得并发用户可以安全高效地访问数据。
- 可以保证系统的高度安全性。
- 提供方便而灵活的数据备份、恢复方法及设备镜像功能,苛可以利用操作系统提供的容错功能,确保设计良好的应用中的数据在发生意外情况下能最大限度地恢复。
- 提供多种维护数据完整性的手段。
- 提供方便易用的分布式处理功能。
系统架构师:数据库的故障与恢复
数据库的故障可用事务的故障来表示,主要分为四类:
- 事务故障。事务在运行过程中由于种种原因,如输入数据的错误、运算溢出、违反了某些完整性限制、某些应用程序的错误,以及并发事务发生死锁等,使事务未运行至正常终止点就被撤销,这种情况称为“事务故障”。
- 系统故障。系统故障是指系统在运行过程中,由于某种原因(如操作系统或数据库管理系统代码错误、操作员操作失误、特定类型的硬件错误(如 CPU 故障)、突然停电等造成系统停止运行),致使事务在执行过程中以非正常方式终止,这时内存中的信息丢失,但存储在外存储设备上的数据不会受影响。
- 介质故障。系统在运行过程中,由于某种硬件故障,如磁盘损坏、磁头碰撞或由于操作系统的某种潜在的错误、瞬时强磁场干扰,使存储在外存上的数据部分损失或全部损失,称为“介质故障”。这类故障比前两类故障的可能性虽然小得多,但破坏性却最大。
- 计算机病毒。计算机病毒是一种人为破坏计算机正常工作的特殊程序。通过读写染有病毒的计算机系统中的程序与数据,这些病毒可以迅速繁殖和传播,危害计算机系统和数据库。目前大多数病毒是在 PC 和其兼容机上传播的。有的病毒一侵入系统就马上摧毁系统,有的病毒有较长的潜伏期,有的病毒则只在特定的日期发生破坏作用,有的病毒感染系统所有的程序和数据,有的只影响特定的程序和数据。在数据库系统中,恢复的基本含义就是恢复数据库本身。也就是说,在发生某种故障使数据库当前的状态已经不再正确时,把数据库恢复到已知为正确的某一状态。目前数据库系统中最常用的恢复方法是转储和登记日志文件,可根据故障的不同类型,采用不同的恢复策略。
事务故障的恢复。事务故障是指事务未运行至正常终止点前被撤销,这时恢复的系统应对此事务做撤销处理。事务故障的恢复是由系统自动完成的,不需要用户干预,步骤如下:
- 反向扫描文件日志,查找该事务的更新操作。
- 对该事务的更新操作执行逆操作。
- 继续反向扫描日志文件,查找该事务的其他更新操作,并做同样处理。
- 如此处理下去,直至读到此事务的开始标记,事务故障恢复完成。
系统故障的恢复。系统故障发生时,造成数据库不一致状态的原因有两个:一是由于一些未完成事务对数据库的更新已写入数据库;二是由于一些已提交事务对数据库的更新还留在缓冲区没来得及写入数据库。系统故障的恢复是在重新启动时自动完成的,不需要用户干预,步骤如下:
- 正向扫描日志文件,找出在故障发生前已经提交的事务,将其事务标识记入重做(Redo)队列。同时找出故障发生时尚未完成的事务,将其事务标识记入撤销(Undo)队列。
- 对撤销队列中的各个事务进行撤销处理:反向扫描日志文件,对每个 Undo 事务的更新操作执行逆操作。对重做队列中的各个事务进行重做处理:正向扫描日志文件,对每个 Redo 事务重新执行日志文件登记的操作。
- 介质故障与病毒破坏的恢复。在发生介质故障和遭病毒破坏时,磁盘上的物理数据库被破坏,这时的恢复操作可分为三步:
- 装入最新的数据库后备副本,使数据库恢复到最近一次转储时的一致性状态。
- 从故障点开始反向读日志文件,找出已提交事务标识将其记入重做队列。
- 从起始点开始正向阅读日志文件,根据重做队列中的记录,重做所有已完成事务,将数据库恢复至故障前某一时刻的一致状态。
具有检查点的恢复技术。检查点记录的内容可包括:
建立检查点时刻所有正在执行的事务清单。
这些事务最近一个日志记录的地址。采用检查点的恢复步骤如下:
- 从重新开始文件中找到最后一个检查点记录在日志文件中的地址,由该地址在日志文件中找到最后一个检查点记录。
- 由该检查点记录得到检查点建立时所有正在执行的事务清单队列A。建立重做队列R和撤销队列U,把 A 队列放入 U 队列中,R 队列为空。
- 从检查点开始正向扫描日志文件,若有新开始的事务 T1,则把 T1 放入 U 队列,若有提交的事务 T2,则把T2从U队列移到R队列,直至日志文件结束。
- 对 U 队列的每个事务执行 Undo 操作,对 R 队列的每个事务执行 Redo 操作。
DBA 要做的基本操作是:
- 重装最近转储的后援副本。
- 运行日志文件,执行系统提供的恢复命令。
数据库安全和恢复是数据库系统正常运行的保证。大型数据库管理系统一般都提供了实现安全机制的保证,即由系统提供了相应的功能,但小型的数据库管理系统并非都具有相应功能,因此有时需要人工的辅助措施,用以保证数据库的安全和恢复。
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。