系统架构设计师教程1_W_第1页
系统架构设计师教程1_W_第2页
系统架构设计师教程1_W_第3页
系统架构设计师教程1_W_第4页
系统架构设计师教程1_W_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、系统架构设计师教程(第 3 版)本书介绍:本书由希赛教育软考学院组织编写,作为计算机技术与软件专业技术资格(水平)考试中的系统架构设计师级别的考试辅导指定教材。内容涵盖了最新的系统架构设计师考试大纲的所有知识点,对系统架构设计师所必须掌握的理论基础知识做了详细的介绍,重在培养系统架构设计师所必须具备的专业技能和方法。 本书内容既是 对系统架构设计师考试的总体纲领性的要求,也是系统架构设计师职业生涯的知识与技能体系。准备参加考试的人员可通过阅读本书掌握考试大纲规定的知识,把握考试重点和难点。 本书可作为系统架构设计师和系统分析师的工作手册,也可作为软件设计师、数据库系统工程师和网络工程师进一步发

2、展的学习用书,还可作为计算机专业教师的教学参考书。1.1 操作系统的类型与结构 .2操作系统的定义操作系统分类1.2 操作系统基本原理 2.1 数据库管理系统的类型 2.2 数据库模式与范式.22.2.3数据库的结构与模式数据模型数据的规范化系统架构设计师交流群【246721028】 微信:educity_cn第 2 章 数据库系统1.2.1进程管理1.2.2存储管理1.2.3设备管理1.2.4文件管理1.2.5作业管理第 1 章 操作系统2.2.4 反规范化2.3 数据操纵和使用 2.4 数据库设计...62

3、.2.4.9数据库设计的特点数据库设计的方法数据库设计的基本步骤需求分析概念结构设计(一) 概念结构设计(二) 逻辑结构设计物理结构设计数据库应用程序设计2.5 事务管理 .2并发控制故障与恢复2.6 备份与恢复 2.7 分布式数据库系统2.8 并行数据库系统 .2功能和结构并行处理技术2.9 数据仓库 .22.9.3数据仓库的概念数据仓库的结构数据仓库的实现方法2.10 数据挖掘 系统架构设计师交流群【246721028】 微信:educity_cn2.10.1数据挖掘的概念2.10.2数据挖掘的功能2.10.3数据挖掘常用技术

4、2.10.4数据挖掘的流程2.7.1分布式数据库的概念2.7.2分布式数据库的架构2.11 NoSQL2.12 大 数 据3.1 数据通信基础知识 .2信道特性数据传输技术3.2 网络架构与协议 .23.2.3网络互联模型常见的网络协议IPv63.3 局域网与广域网 识网络接入技术3.4 网络互连与常用设备 3.5 网络工程3.6 网络存储技术 3.7 综合布线 4.1 性能指标 ..44.1.5计算机网络操作系统数据库管理系统Web 服务器系统架构设计师交流群【246721028】 微信:educity_cn第 4 章 系统性

5、能评价3.5.1网络规划3.5.2网络设计3.5.3网络实施3.3.1局域网基础知3.3.2无线局域网3.3.3广域网技术3.3.4第 3 章 数据通信与计算机网络4.2 性能计算4.3 性能设计.24.3.3系统性能调整阿姆达尔解决方案负载均衡4.4 性能评估 .24.4.3基准测试程序Web 服务器的性能评估系统监视第 5 章 开发方法5.1 软件生命周期 5.2 软件开发模型构件组装模型5.3 统一过程 5.4 敏捷方法.2极限编程特征驱动开发5.5 软件重用 5.6 基于架构的软件设计 .2ABSD 方法与生命周期基于架构

6、的软件开发模型5.7 形式化方法 系统架构设计师交流群【246721028】 微信:educity_cn第 6 章 系统规划5.5.1软件重用5.5.2构件技术5.2.1瀑布模型5.2.2演化模型5.2.3螺旋模型5.2.4增量模型 项目的提出与选择围6.2 可行性研究与效益分析 .26.2.3可行性研究的内容成本效益分析可行性分析报告6.3 方案的制订和改进 6.4 新旧系统的分析和比较6.5 资源估计 7.1 定义问题与归结模型 7.2 需求分析与软件设计 .27.2.3需求分析的任务与过程如何进行系统设计软件设计的任务与活动7.3 结构化分

7、析与设计 .27.3.3结构化分析结构化设计模块设计7.4 面向对象的分析与设计 .27.4.3面向对象的基本概念面向对象分析统一建模语言系统架构设计师交流群【246721028】 微信:educity_cn7.1.1问题分析7.1.2问题定义第 7 章 系统分析与设计方法6.4.1遗留系统的评价方法6.4.2遗留系统的演化策略6.1.1项目的立项目标和动机6.1.2项目提出的角色和工作范6.1.3项目的选择和确定6.1.4项目提出和选择的结果7.4.4 结构化方法和面向对象方法的比较7.5 用户界面设计 .2用户界面设计的原则用户界面设计过程7

8、.6 工作流设计 7.7 系统的文件设计 7.8 网络环境下的计算机应用系统的设计7.9 简单分布式计算机应用系统的设计7.10 系统运行环境的集成与设计7.11 系统过渡计划 8.1 软件架构概述 .2软件架构的定义软件架构的重要性8.2 架构需求与软件质量属性 .2软件质量属性六个质量属性及实现8.3 架构设计 8.4 软件架构文档化8.5 软件架构评估.28.5.3软件架构评估的方法架构的权衡分析法成本效益分析法8.6 构件及其复用 8.6.1 商用构件标准规范系统架构设计师交流群【246721028】 微信:educity_cn第 8 章

9、 软件架构设计7.6.1工作流设计概述7.6.2工作流管理系统.3应用系统簇与构件系统基于复用开发的组织结构8.7 产品线及系统演化 ..48.7.5复用与产品线基于产品线的架构产品线的开发模型特定领域软件架构架构及系统演化8.8 软件架构建模 .28.8.3架构的模型架构风格架构风格举例8.9 软件架构视图 ..48.9.5软件视图的分类模块视图类型及其风格C&C 视图类型及其风格分配视图类型及其风格各视图类型间的映射关系9.1 设计模式概述 ..49.1.5

10、9.1.6设计模式的概念设计模式的组成GoF 设计模式其他设计模式设计模式与软件架构设计模式分类9.2 设计模式及实现 y 模式nFacade 模式系统架构设计师交流群【246721028】 微信:educity_cn9.2.1Abstract Factor9.2.2Singleton 模式9.2.3Decorator 模式9.2.4Facade/Sessio9.2.5Mediator 模式9.2.6Observer 模式第 9 章 设计模式9.2.7 Intercepting Filter 模 式9.3 设计模式总结 10.1 测试方法 .210.1.310.1.4软件测

11、试阶段白盒测试和黑盒测试缺陷的分类和级别调试10.2 评审方法 10.3 验证与确认10.4 测试自动化10.5 面向对象的测试 11.1 嵌入式系统概论 .2嵌入式系统的基本概念嵌入式系统的分类11.2 嵌入式系统的组成 11.3 嵌入式应用软件与开发平台 .211.3.311.3.411.3.5嵌入式窗口系统嵌入式窗口系统实例分析嵌入式系统的 Java 虚拟机嵌入式系统软件开发平台嵌入式开发调试11.4 嵌入式网络系统 .211.4.3现场总线网家庭信息网无线数据通信网(一)系统架构设计师交流群【246721028】 微信:edu

12、city_cn11.2.1硬件架构11.2.2软件架构第 11 章 嵌入式系统设计第 10 章 测试评审方法11.5 嵌入式数据库管理系统 .211.5.3使用环境的特点系统组成与关键技术实例解析11.6 实时系统与嵌入式操作系统 主流嵌入式操作系统介绍11.7 实时多任务调度与多任务设计 计模型11.8 中断处理与异常处理.211.8.3异常和中断的概念中断处理中断服务例程的设计问题11.9 嵌入式系统开发设计 技术系统架构设计师交流群【246721028】 微信:educity_cn11.9.1嵌入式系统设计概述11.9.2开发模型与设计流程11.9

13、.3嵌入式系统设计的核心11.9.4嵌入式开发设计环境11.9.5嵌入式软件设计模型11.7.1并发识别与多任务设11.7.2多任务调度算法11.7.3任务的同步与通信11.7.4资源分类与资源请求11.7.5死锁11.7.6优先级反转问题11.6.1嵌入式系统的实时概念11.6.2嵌入式操作系统概述11.6.3一般结构11.6.4实时嵌入式操作系统11.6.5内核对象11.6.6内核服务11.6.711.4.4无线数据通信网(二)11.4.5无线数据通信网(三)11.4.6无线数据通信网(四)11.4.7无线数据通信网(五)11.4.8嵌入式 Internet11.9.6 需求分析11.9.

14、7 系统设计11.9.8 系统集成与测试11.9.9 嵌入式系统的软件移植11.9.10 可移植性软件的设计12.1 项目的范围、时间与成本 12.2 配置管理与文档管理 .212.2.3软件配置管理的概念软件配置管理的解决方案软件文档管理12.3 软件需求管理 12.4 软件开发的质量与风险 12.5 人力资源管理 12.6 软件的运行与评价12.7 软件过程改进 13.1 集成开发环境 13.2 建模工具 系统架构设计师交流群【246721028】 微信:educity_cn13.1.1开发环境的组成13.1.2开发环境的分类13.1.3分布式开发环境第 13 章 软件

15、开发环境与工具12.4.1软件质量管理12.4.2项目风险管理12.3.1需求变更12.3.2需求跟踪12.1.1项目范围管理12.1.2项目成本管理12.1.3项目时间管理第 12 章 开发管理13.3 设计工具13.4 编程工具13.5 测试工具13.6 项目管理工具 14.1 中间件技术 .214.1.3中间件的概念中间件的分类中间件产品介绍14.2 应用服务器技术 14.3 J2EE .2表示层应用服务层14.4 .NET 14.5 企业应用集成 14.6 轻量级架构和重量级架构14.6.4 基于 Struts、Spring 和 Hibernat

16、e 的轻量级架构14.6.5 轻量级架构和重量级架构的探讨15.1.1 对称密钥加密算法系统架构设计师交流群【246721028】 微信:educity_cn15.1加密和第 15 章 安全性和保密性设计14.6.1Struts 框 架14.6.2Spring 框架14.6.3Hibernate 框架14.4.1.NET 平台14.4.2.NET 框架14.2.1应用服务器的概念14.2.2主要的应用服务器第 14 章 基于中间件的开发15.1.2 不对称密钥加密算法15.2 数字签名与数字水印 15.3 数字证书与密钥管理 .2密钥分配中心数字证书和公开密钥基础设施15.

17、4 安全协议 .215.4.3IPSec 协议简述SSL 协议PGP 协议15.5 计算机病毒与防治 .215.5.315.5.4计算机病毒概述网络环境下的病毒发展新趋势计算机病毒的检测与清除计算机病毒的预防15.6 身份认证与访问控制 15.7 网络安全体系 .2OSI 安全架构VPN 在网络安全中的应用15.8 系统的安全性设计 15.8.1 物理安全问题与设计15.8.3 入侵检测系统15.9 安全性规章 .2安全管理制度计算机犯罪与相关法规第 16 章 系统的可靠性分析与设计16.1 可靠性概述 系统架构设

18、计师交流群【246721028】 微信:educity_cn15.8.2及其在系统安全中的应用15.6.1身份认证技术15.6.2访问控制技术15.2.1数字签名15.2.2数字信封16.2 系统故障模型16.3 系统配置方法 .216.3.3单机容错技术双机热备份技术服务器集群技术16.4 系统可靠性模型 .216.4.3时间模型故障植入模型数据模型16.5 系统的可靠性分析和可靠度计算 .2组合模型马尔柯夫模型16.6 提高系统可靠性的措施 16.7 故障对策和备份与恢复 17.1 著作权法及实施条例 .217

19、.1.3著作权法客体著作权法主体著作权17.2 计算机软件保护条例 17.3 商标法及实施条例17.4 专利法及实施细则17.5 反不正当竞争法 系统架构设计师交流群【246721028】 微信:educity_cn第 18 章 标准化知识第 17 章 软件的知识产权保护16.6.1硬件冗余16.6.2信息冗余16.2.1故障的来源以及表现16.2.2几种常用的故障模型18.1 标准化概论18.2 标准分级与标准类型.2标准分级强制性标准与推荐性标准18.3 软件开发规范与文档标准 .2软件开发规范软件文档标准第 19 章 应用数学19.1 运筹方法 术

20、19.2 数学建模 20.1 信息系统概述 .220.1.320.1.420.1.520.1.6信息系统的发展阶段信息系统的组成信息系统实现的复杂性信息系统的生命周期 信息系统建设的原则信息系统开发方法20.2 信息系统工程 .220.2.320.2.4信息系统工程的概念信息系统工程的内容信息系统工程的总体规划总体规划的方法论20.3 政府信息化与电子政务 系统架构设计师交流群【246721028】 微信:educity_cn第 20 章 信息系统基础知识19.1.1网络计划技19.1.2线性规划19.1.3决策论19.1.4对策论19.1.5排队论19

21、.1.6存贮论.220.3.3我国政府信息化的历程和策略电子政务的内容和技术形式电子政务建设的过程模式和技术模式20.4 企业信息化与电子商务 20.4.1 企业信息化概述20.4.3 客户关系管理20.4.5 企业门户20.4.7 供应链管理20.5 信息资源管理 20.5.1 信息孤岛20.6 知识管理与商业智能20.7 业务流程重组 21.1 虚 拟 化21.1.1 虚拟化技术的分类21.1.2 虚拟化的模式21.2 云 计 算21.2.2 云计算的类型21.2.3 云计算的应用21.3 物 联 网.2物联网的层次结构物联网的相关领域与技术系统架构

22、设计师交流群【246721028】 微信:educity_cn21.2.1 云计算的特点第 21 章 虚拟化、云计算与物联网20.6.1知识管理20.6.2商业智能20.5.2 信息资源分类20.5.3信息资源规划20.5.4信息资源网建设20.4.8 电子商务概述20.4.6 企业应用集成20.4.4 产品数据管理20.4.2 企业资源规划21.3.3 物联网的应用第一章操作系统本章主要介绍操作系统的基本概念及其形成、发展历史和主要类型,并指出操作系统的 5 大管理功能。掌握操作系统原理的关键在于深入理解一个观点、两条线索.一个观点是以资源管理的观点来定义操作系统;两条线索是操作系统如何管理

23、计算机各类资源和控制程序的执行。操作系统如何实现对这些资源的管理,其内涵、设计和实现是本章的主要内容。1.1 操作系统的类型与结构计算机系统由硬件和软件两部分组成。操作系统是计算机系统中最基本的系统软件,它既管理计算机系统的软、硬件资源,又控制程序的执行。操作系统随着计算机研究和应用的发展进步形成并日趋成熟,它为用户使用计算机提供了一个良好的环境,从而使用户能充分利用计算机资源,提高系统的效率。操作系统的基本类型有:批处理操作系统、分时操作系统和实时操作系统。从资源管理的观点看,操作系统主要是对处理器、存储器、文件、设备和作业进行管理。1.1.1 操作系统的定义操作系统(Operating S

24、ystem,OS)是计算机系统中的核心系统软件,负责管理和控制计算机系统中的硬件和软件资源,合理地组织计算机工作流程和有效地利用资源,在计算机与用户之间起接口的作用。操作系统与硬件/软件的关系如图 1-1 所示。系统架构设计师交流群【246721028】 微信:educity_cn图 1-1 操作系统与硬件/软件的关系1.1.2 操作系统分类按照操作系统的功能划分,操作系统的基本类型有批处理操作系统、分时操作系统、实时操作系统、网络操作系统、分布式操作系统、嵌入式操作系统等。1.批处理操作系统在批处理操作系统(Batch Processing Operating System,BPOS)中,系

25、统操作员将作业成批地输入计算机,由操作系统选择作业调入内存加以处理,最后由操作员将运行结果交给用户。批处理操作系统有两个特点:一是多道,指系统内可同时容纳多个作业;二是成批,指系统能成批自动运行多个作业,在运行过程中不允许用户与其作业发生交互作用。所以,合理地调度和管理系统资源是操作系统的主要任务。资源使用的有效性和作业的吞吐量是多道批处理操作系统的主要设计目标,同时也要兼顾作业的周转时间。2.分时操作系统在计算机架构发展中,引进了中断和通道技术,于是就有了分时的概念。分时操作系统(Time Share Operating System,TSOS)是指一台计算机连接多个终端,系统把 CPU(C

26、entral Process Unit,中央处理单元)时间分为若干时间片,采用时间片轮转的方式处理用户的服务请求。对每个用户能保证足够快的响系统架构设计师交流群【246721028】 微信:educity_cn应时间,并提供交互会话能力。在计算机系统中,分时的概念是指两个或两个以上按时间划分轮流地使用系统中的某一资源。实际上,在多道程序系统中,3.实时操作系统计算机不但广泛应用于科学计算和数据处理方面,也广泛应用于工业生产过程中的通常称之为实时控制的自动控制,实验室中的实验过程控制,发射控制,票证预订管理等应用领域。实时系统是随着计算机应用于实时控制和实时信息处理领域中而发展起来的。实时是指及

27、时响应随机发生的外部的请求,并以足够快的速度完成对外部的处理,控制所有实时设备和实时任务协调一致地运行。实时系统包括实时控制系统和实时处理系统。实时控制指生产过程控制等。实时处理指实验数据采集、订票系统等;实时系统的主要特点是及时性和高可靠性。4.网络操作系统网络操作系统(Network Operating System,NOS)是建立在各结点计算机的操作系统之上,用于管理网络通信和共享资源,协调各结点计算机上任务的运行,并向用户提供统一、有效的网络接口的一组系统软件。网络用户只有通过网络操作系统才能为其提供各种网络服务。网络操作系统的主要任务是用统一的方法管理整个网络享资源的使用和协调处理任

28、务。它应具有下述 4 个基本功能:系统架构设计师交流群【246721028】 微信:educity_cn(1)网络通信。实现源计算机与目标计算机之间的无差错数据传输。它包括为通信双方建立通信链路;对传输过程中的数据差错进行检查和校正,并使发送、接收速度匹配;在传输任务完成后,拆除通信链路。(2)资源管理。采用统一、有效的方法协调多个用户对共享资源的使用,使用户能很方便地使用远程资源。对资源的具体管理和控制,仍由其主机的操作系统实现。(3)提供多种网络服务。主要的网络服务有:远程作业录入服务,使用户能将作业传输到远程结点计算机进行批处理,并将结果回送给用户;电子邮件服务,为用户传输实时和非实时的

29、电子邮件;文件传送、访问和管理服务,使用户能方便地访问远程结点的文件。(4)提供网络接口。向网络用户提供统一、有效的网络共享资源和得到网络服务的网络接口。5.分布式操作系统从计算机发展趋势来看,计算机的架构开始向并行处理技术和多处理机的计算机系统结构的方向发展。分布式操作系统是为分布式计算机系统配置的操作系统。它在多计算机系统环境下,负责控制和管理以协同方式工作的各类系统资源和分布式进程的同步,并执行和处理机间的通信、调度与分配等控制事务,自动实行全系统范围内的任务分配和负载平衡。它是具有高度并行性、故障检测和重构能力的一种高级软件系统。分布式操作系统(Distributed Operatin

30、g System,DOS)与网络操作系统都工作在一个由多台计算机组成的系统中,这些计算机之间可以通过一些传输设备来进行通信和共享系统资源。分布式操作系统更倾向于任务的协同执行,并且系统架构设计师交流群【246721028】 微信:educity_cn各系统之间无主次之分,也无须采用标准的通信协议进行通信。它基本上废弃(或改造)了各单机的操作系统,整个网络设有单一的操作系统,由这个操作系统负责整个系统的资源分配和调度,为用户提供统一的界面。用户在使用分布式操作系统时,不需要像使用网络操作系统那样指明资源在哪台计算机上,因此分布式操作系统的透明性、坚强性、统一性及系统效率都比网络操作系统要强,但实

31、现起来难度也大。6.嵌入式操作系统嵌入式系统是指将操作系统和功能软件集成于计算机硬件系统之中,简单地说就是系统的软件与系统的硬件一体化,类似于 BIOS(Basic Input OutputSystem,基本输入输出系统)的工作方式,具有软件体积小,高度自动化,响应速度快等特点。根据 IEEE(Institute of Electrical and Electronics Engineers,美国电气和电子工程师协会)的定义,嵌入式系统是用于控制、监视或者辅助操作机器和设备的装置。此定义是从应用上考虑的,嵌入式系统是软件和硬件的综合体,还可以涵盖机电等附属装置。嵌入式系统是以应用为中心、以计算

32、机技术为基础、软硬件可裁减,对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。广而言之,可以认为凡是带有微处理器的专用软硬件系统都可以称为嵌入式系统。嵌入式系统采用量体裁衣的方式把所需的功能嵌入到各种应用系统中,它融合了计算机软硬件技术、通信技术和半导体微电子技术,是信息技术的最终产品。7.微内核操作系统系统架构设计师交流群【246721028】 微信:educity_cn微内核操作系统结构是 20 世纪 80 年代后期发展起来的,其基本思想是将操作系统中最基本的部分放入内核中,而把操作系统的绝大部分功能都放在微内核外面的一组服务器中实现。这样使得操作系统内核变得非常小,自然提高了系统

33、的可扩展性,增强了系统的可靠性和可移植性,同时微内核操作系统提供了对分布式系统的支持,融入了面向对象技术。虽然微内核操作系统具有诸多优点,但它也并非完美无缺,在运行效率方面它就不如以前传统的操作系统。当前比较流行的、能支持多处理机运行的操作系统,几乎全部都采用了微内核结构,如卡耐基梅隆大学研制的 Mach OS,便属于微内核结构操作系统;又如当前广泛使用的 Windows 操作系统,也采用了微内核结构。1.2 操作系统基本原理操作系统的主要功能是进行处理机与进程管理、存储管理、设备管理、文件管理和作业管理,本节讨论操作系统是如何完成这些功能的。1.2.1 进程管理处理机是计算机系统的核心资源。

34、操作系统的功能之一就是处理机管理。随着计算机的迅速发展,处理机管理显得更为重要,这主要由于:计算机的速度越来越快,处理机的充分利用有利于系统效率的大大提高;处理机管理是整个操作系统的重心所在,其管理的好坏直接影响到整个系统的运行效率;而且操作系统中并发活动的管理和控制是在处理机管理下实现的,它集中了操作系统中最复杂的部分,它设计的好坏关系到整个系统的成败,进程(process)是处理机管理中最基本的、最重要的概念。进程是系统并发执行的体现。由于在多道程序系统中,众多的计算机用户都以各种各样的任务,随时随地争夺使用处理机。为了动态地看待操作系统,则以进程作为独立运行的系统架构设计师交流群【246

35、721028】 微信:educity_cn基本单位,以进程作为分配资源的基本单位,从进程的观点来研究操作系统。因此,处理机管理也被称为进程管理。处理机管理的功能就是组织和协调用户对处理机的争夺使用,把处理机分配给进程,对进程进行管理和控制,以最大限度发挥处理机的作用。1. 进程的概念用静态的观点看,操作系统是一组程序和表格的集合。用动态的观点看,操作系统是进程的动态和并发执行的。而进程的概念实际上是程序这一概念发展的产物。因此,可以从分析程序的基本特征入手,引出进程的概念。顺序程序是指程序中若干操作必须按照某种先后次序来执行,并且每次操作前和操作后的数据、状态之间都有一定的关系。在早期的程序设

36、计中,程序一般都是顺序地执行的。在多道程序系统中,程序的运行环境发生了很大的变化。主要体现在:(1)资源共享。为了提高资源的利用率,计算机系统中的资源不再由一道程序专用,而是由多道程序共同使用。(2)程序的并发执行或并行执行。逻辑上讲:允许多道不同用户的程序并行运行;允许一个用户程序内部完成不同操作的程序段之间并行运行;允许操作系统内部不同的程序之间并行运行。物理上讲:内存储器中保存多个程序,I/O设备被多个程序交替地共享使用;多处理机系统的情形下,表现为多个程序在各自的处理机上运行,执行时间是重叠的。单处理机系统时,程序的执行表现为多道程序交替地在处理机上相互空插运行。系统架构设计师交流群【

37、246721028】 微信:educity_cn实际上,在多道程序系统中,程序的并行执行和资源共享之间是相辅相成的。一方面,只有允许程序并行执行,才可能存在资源共享的问题;另一方面,只有有效地实现资源共享,才可能使得程序并行执行。这样,可增强计算机系统的处理能力和提高机器的利用率。并发操作实际上是这样的事实:大多数程序段只要求操作在时间上是有序的,也就是有些操作必须在其他操作之前。这是有序的,但其中有些操作却可以同时进行。2.进程的定义与分类由于多道程序系统环境下并行程序执行的特征:并发性、动态性、开放性和相互制约,这样,使用程序的概念就不能如实地反映程序活动的这些特征,必须引入新的概念-进程

38、。操作系统内在最本质的特征是动态性和并发性,而进程正反映了动态性和并发性等特征。程序的并行执行具有如下特征:(1)并发性。即并发程序的若干个程序段同时在系统中运行,这些程序段的执行在时间上是重迭的,一个程序段的执行尚未结束,另一个程序段的执行已经开始,即使这种重迭是很小的一部分,也称这几个程序段是并发执行的。(2)动态性。指程序与其执行活动不再一一对应。并发程序中的并发活动是动态产生、动态消亡的。如,几道并发执行的 C 语言程序共享 C 编译系统,在这种情况下,-个编译程序能同时为多道程序服务,每个程序调用-次就是执行一次,即这个编译程序对应多个执行活动。(3)开放性。指系统中并发执行的程序共

39、享使用的资源,程序的执行与外部因素(如执行速度)相关,不再具有封闭性。系统架构设计师交流群【246721028】 微信:educity_cn(4)相互制约性。指程序的动态活动相互依赖、相互制约。其制约关系可分为间接制约关系和直接制约关系两种:间接制约关系是指相互无逻辑关系的用户程序之间竞争使用资源所发生的制约关系;直接制约关系是指存在逻辑关系的程序之间相互等待而发生的制约关系。通过程序活动的这种相互制约关系,才能保证程序的正确运行。系统中同时存在许多进程,它们依性质不同可分为各种不同的类别:(1)系统进程和用户进程。一般来讲,在管态下执行的进程称为系统进程;在目态下执行的进程称为用户进程。系统

40、进程起着资源管理和控制的作用;用户进程是为用户任务而建立的进程。(2)父进程和子进程。系统或用户首先创建的进程称为父进程;在父进程下面的进程称为子进程。父子进程间存在着某些控制结构和控制关系,因此可以定义一个进程图。进程图是一棵有向的、包含一个根节点的树。节点表示进程,记为 Pi,从节点 Pi 到节点 Pj 的一条边表示进程 Pj 是由进程 Pi 创建的。其中,称Pi 是 Pj 的父进程,而 Pj 则是 Pi 的子进程。如图 1-2 所示。图 1-2 进程图系统架构设计师交流群【246721028】 微信:educity_cn进程图反映了进程间的父、子关系,创建与被创建关系,控制与被控制关系,

41、反映了进程间的层次关系。同一个进程下属的所有进程称为一个进程族,即协调完成同一任务的进程集合同属于一个进程族。父、子进程间的关系主要如下:(1)进程控制。任何一个进程只能由其直接的父进程创建,进程也只能被其父进程删除。而且当删除某一中间进程(即非叶子节点)时,同时隐含地删除其所属的所有各级子进程。父进程能对其下属的各级子孙进程实施控制,如挂起某个子孙进程。而子进程无权对其父进程实施控制。(2)运行方式。父进程一旦创建了进程后,可以选择父、子进程同时运行的方式;父进程也可以等待子进程的运行,直至全部子进程结束后,才开始重新运行。(3)资源共享。可以选择两种不同的资源共享方式:一是子进程可共享父进

42、程所拥有的全部资源;二是子进程仅能共享父进程的部分资源。3. 进程的状态转换由进程运行的间断性,决定了进程至少具有下述三种状态:(1)就绪状态。当进程已分配了除 CPU 以外的所有必要的资源后,只要能再获得处理机,便能立即执行,把进程这时的状态称为就绪状态。在一个系统中,可以有多个进程同时处于就绪状态,通常把它们排成一个队列,称为就绪队列。(2)执行状态指进程已获得处理机,其程序正在执行。在单处理机系统中,只能有一个进程处于执行状态。(3)阻塞状态进程因发生某(如请求 I/O、申请缓冲空间等)而暂停执行时的状态,亦即进程的执行受到阻塞,故称这种暂停状态为阻塞状态,有时系统架构设计师交流群【24

43、6721028】 微信:educity_cn也称为等待状态,或睡眠状态。通常将处于阻塞状态的进程排成一个队列,称为阻塞队列。进程的状态随着自身的推进和外界的变化而变化。例如,就绪状态的进程被进程调度程序选中进入执行状态;执行状态的进程因等待某一的发生转入等待状态;等待状态的进程所等待来到便进入就绪状态。进程的状态可以动态地相互转换,但阻塞状态的进程不能直接进入执行状态,就绪状态的进程不能直接进入阻塞状态。在任何时刻,任何进程都处于且只能处于某一状态。进程状态的变化情况如下:(1)运行态等待态:一个进程运行中启动了外围设备,它就变成等待外围设备传输信息的状态;进程在运行中申请资源(主存储空间及外

44、围设备因得不到满足)时,变成等待资源状态,进程在运行中出现了故障(程序出错或主存储器读写错等),变成等待干预状态。(2)等待态就绪态:外围设备工作结束后等待外围设备传输信息的进程结束等待;等待的资源能得到满足时(另一个进程归还了资源),则等待资源者就结束等待;故障排队后让等待干预的进程结束等待,任何一个结束等待的进程必须先变成就绪状态,待分配到处理器后才能运行。(3)运行态就绪态:进程用完了一个使用处理器的时间后强迫该进桂暂时让出处理器,当有更优先权的进程要运行时也迫使正在运行的进程让出处理器。由于自身或外界原因成为等待状态的进程让出处理器时,它的状态就变成就绪状态。系统架构设计师交流群【24

45、6721028】 微信:educity_cn(4)就绪态运行态:等待分配处理器的进程,系统按一种选定的策略从处于就绪状态的进程中选择一个进程,让它占用处理器,那个被选中的进程就变成了运行态。图 1-3 表示了进程的三种基本状态及各状态之间的转换。图 1-3 进程三态模型及其状态转换3.关于挂起状态在不少系统中,进程只有图 1-3 所示的三种状态。但在另一些系统中,又增加了一些新状态,其中最重要的是挂起状态。引入挂起状态的原因有:(1)对换的需要。为了缓和内存紧张的情况,而将内存中处于阻塞状态的进程换至外存上,使进程又处于一种有别于阻塞状态的新状态。因为即使该进程所期待的发生,该进程仍不具备执行

46、条件而不能进入就绪队列,称这种状态为挂起状态。(2)终端用户的请求。当终端用户在自己的程序运行期间,发现有可疑问题时。往往希望使自己的进程暂停下来。也就是说,使正在执行的进程暂停执行,若是就绪进程,则不接受调度以便研究其执行情况或对程序进行修改。把这种静止状态也称为挂起状态。(3)父进程请求。父进程常希望挂起自己的子进程,以便考查和修改子进程,或者协调各子进程间的活动。系统架构设计师交流群【246721028】 微信:educity_cn(4)负荷调节的需要。当实时系统中的工作负荷较重,有可能影响到对实时任务的控制时,可由系统把一些不重要的进程挂起,以保证系统能正常运行。(5)操作系统的需要。

47、操作系统希望挂起某些进程,以便检查运行中资源的使用情况及进行记账。由上所述,不难了解挂起状态具有下述三个属性:(1)被挂起的进程,原来可能处于就绪状态,此时进程(被挂起)的状态称为挂起就绪;若被挂起的进程原来可能处于阻塞状态,此时的状态称为挂起阻塞。不论哪种状态。该进程都是不可能被调度而执行的。(2)处于挂起阻塞状态的进程,其阻塞条件与挂起条件无关;当进程所期待的出现后,进程虽不再被阻塞,但仍不能运行,这时,应将该进程从静止阻塞转换为挂起就绪。(3)进程可以由其自身挂起,也可由用户或操作系统等将之挂起。其目的都在于阻止进程继续运行,被挂起的进程是只能被用显式方式来激活,以便从挂起状态中解脱出来。图 1-4 示出了具有挂起操作的进程状态演变情况。图 1-4 进程状态转换系统架构设计师交流群【246721028】 微信:educity_cn4.进程互斥与同步进程互斥定义为:一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论