2017年11月全国计算机技术与软件专业技术资格(水平)考试《系统架构设计师(高级)》复习全书【核心讲义+历年真题详解】(txt+pdf+epub+mobi电子书下载)


发布时间:2021-04-10 04:49:30

点击下载

作者:圣才电子书

出版社:圣才电子书

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

2017年11月全国计算机技术与软件专业技术资格(水平)考试《系统架构设计师(高级)》复习全书【核心讲义+历年真题详解】

2017年11月全国计算机技术与软件专业技术资格(水平)考试《系统架构设计师(高级)》复习全书【核心讲义+历年真题详解】试读:

第一部分 备考指南

第一章 计算机技术与软件专业技术资格(水平)考试概述(系统架构设计师篇)

一、考试简介

计算机技术与软件专业技术资格(水平)考试(以下简称计算机软件考试)是原中国计算机软件专业技术资格和水平考试(简称软件考试)的完善与发展。这是由国家人力资源和社会保障部、工业和信息化部领导下的国家级考试,其目的是,科学、公正地对全国计算机与软件专业技术人员进行职业资格、专业技术资格认定和专业技术水平测试。

原软件考试在全国范围内已经实施了二十年,截止2011年,累计参加考试的人数约有三百万人。该考试由于其权威性和严肃性,得到了社会及用人单位的广泛认同,并为推动我国信息产业特别是软件产业的发展和提高各类IT人才的素质做出了积极的贡献。

根据人事部、信息产业部文件(国人部发[2003]39号),计算机软件考试纳入全国专业技术人员职业资格证书制度的统一规划。通过考试获得证书的人员,表明其已具备从事相应专业岗位工作的水平和能力,用人单位可根据工作需要从获得证书的人员中择优聘任相应专业技术职务(技术员、助理工程师、工程师、高级工程师)。计算机专业技术资格(水平)实施全国统一考试后,不再进行计算机技术与软件相应专业和级别的专业技术职务任职资格评审工作。因此,这种考试既是职业资格考试,又是职称资格考试。

同时,这种考试还具有水平考试性质,报考任何级别不需要学历、资历条件,只要达到相应的技术水平就可以报考相应的级别。部分级别的考试已与日本、韩国相应级别的考试互认,以后还将进一步扩大考试互认的级别以及互认的国家。

考试合格者将颁发由中华人民共和国人力资源和社会保障部、工业和信息化部用印的计算机技术与软件专业技术资格(水平)证书。

二、考试专业与级别

根据《计算机技术与软件专业技术资格(水平)考试暂行规定》(以下简称《暂行规定》)第五条规定,计算机专业技术资格(水平)考试划分为计算机软件、计算机网络、计算机应用技术、信息系统和信息服务5个专业类别,并在各专业类别中分设了高、中、初级专业资格考试,详见《计算机技术与软件专业技术资格(水平)考试专业类别、资格名称和级别层次对应表》(见下)。人事部和信息产业部将根据发展需要适时调整专业类别和资格名称。

考生可根据本人情况选择相应专业类别、级别的专业资格(水平)参加考试。

三、报考条件

凡遵守中华人民共和国宪法和各项法律,恪守职业道德,具有一定计算机技术应用能力的人员,均可根据本人情况,报名参加相应专业类别、级别的考试。

因此,计算机软件资格考试报名条件不设学历与资历条件、年龄以及专业等限制,考生可根据自己的技术水平选择合适的级别合适的资格进行报考。

注:每次考试个人只允许报考一种资格。

四、报考方式

符合《暂行规定》(即《计算机技术与软件专业技术资格(水平)考试暂行规定》)第八条规定的人员,由本人提出申请,按规定携带身份证明到当地考试管理机构报名,领取准考证。凭准考证、身份证明在指定的时间、地点参加考试。

各地的报名办法由考生报考所在地的当地考试机构决定。考生相关报考费用标准由当地物价部门核准。

考生报名方式主要分为:网上报名与考生本人到指定地点报名两种。

注:报名时依据的身份证明包括:居民身份证、军人的证件、护照、户口本等。

五、报考时间

计算机专业技术资格(水平)考试原则上每年组织两次,在每年第二季度和第四季度举行。

注:各地的报名时间由考生报考所在地的当地考试机构决定。

六、考试形式与时间规定

除信息处理技术员和多媒体应用制作技术员采取笔试与上机操作考试相结合的形式外,其他各种考试都采用笔试形式。考试实行全国统一大纲、统一试题、统一时间、统一标准、统一证书的考试办法。

高级资格考试设综合知识、案例分析和论文3个科目;中级、初级资格考试设基础知识和应用技术2个科目。各级别考试均分2个半天进行。笔试安排在一天之内。上机考试将分期分批进行。

知识科目采用单项选择题,考试150分钟,考生需要用2B铅笔填涂答题卡;

应用技术科目采用问答题,考试时间150分钟;上机考试时间为150分钟;

案例分析科目采用问答题,考试时间为90分钟;论文科目考试时间为120分钟。各个科目的满分均为75分。

七、系统架构设计师考试科目设置(1)信息系统综合知识,考试时间为l50分钟,笔试,选择题;(2)系统架构设计案例分析,考试时间为90分钟,笔试,问答题;(3)系统架构设计论文,考试时间为120分钟,笔试,论文题。

八、考试目标

通过本考试的合格人员能够根据系统需求规格说明书,结合应用领域和技术发展的实际情况,考虑有关约束条件,设计正确、合理的软件架构,确保系统架构具有良好的特性;能够对项目的系统架构进行描述、分析、设计与评估;能够按照相关标准编写相应的设计文档;能够与系统分析师、项目管理师相互协作、配合工作;具有高级工程师的实际工作能力和业务水平。

九、系统架构设计师考试要求(1)掌握计算机硬软件与网络的基础知识;(2)熟悉信息系统开发过程;(3)理解信息系统开发标准、常用信息技术标准;(4)熟悉主流的中间件和应用服务器平台;(5)掌握软件系统建模、系统架构设计基本技术;(6)熟练掌握信息安全技术、安全策略、安全管理知识;(7)了解信息化、信息技术有关法律、法规的基础知识;(8)了解用户的行业特点,并根据行业特点架构合适的系统设计;(9)掌握应用数学基础知识;(10)熟练阅读和正确理解相关领域的英文文献;

十、指定书目

考试大纲——《系统架构设计师考试大纲(2009版)》 清华大学出版社

指定教材——《系统架构设计师教程》 清华大学出版社

十一、考试内容

说明:“Ⅰ”、“Ⅱ”和“Ⅲ”表示掌握或熟悉的程度。“I”是指对所列知识要理解其内容及含义(理解)。“Ⅱ”是指有关问题中能直接使用(一般应用)。“Ⅲ”是指对所列知识要理解其确切含义及与其他知识的联系,能够进行叙述和解释,并能在实际问题的分析、综合、推理和判断等过程中运用(综合应用)。

考试科目1:信息系统综合知识

一、计算机软件与网络基础知识

1.1 操作系统

·操作系统的类型和结构

·操作系统基本原理

·网络操作系统及网络管理

·嵌入式操作系统与实时操作系统

1.2 数据库系统

·数据库管理系统的类型、结构和性能评价

·常用的关系型数据库管理系统

·数据库模式

·数据库规范化

·分布式数据库系统,并行数据库系统

·数据仓库与数据挖掘技术

·数据库工程

·备份恢复

1.3 嵌入式系统

·嵌入式系统的特点

·嵌入式系统的硬件组成与设计

·嵌入式系统应用软件及开发平台

·嵌入式系统网络

·嵌入式系统数据库

1.4 数据通信与计算机网络

·数据通信的基本知识

·开放系统互连参考模型

·常用的协议标准

·网络互连与常用网络设备

·计算机网络的分类与应用

1.5 多媒体

多媒体的类型、特点及数据格式

多媒体数据的压缩编码

1.6 系统配置与性能评价

·多层结构、分布式系统

·系统配置方法(双份、双重、热备份、容错、集群)

·性能计算(响应时间、吞吐量、TAT)

·性能设计(系统调整、Amdahl解决方案、响应特性、负载均衡)

·性能指标(SPEC-Int、SPEC-Fp、TPC、Gibsonmix、响应时间)

·性能评估

二、信息化基础知识

2.1 信息系统工程总体规划

·总体规划目标、范围

·总体规划的方法论

·信息系统的组成

·信息系统的实现

2.2 政府信息化与电子政务

·电子政务的概念、内容和技术形式

·中国政府信息化的策略和历程

·电子政务建设的过程模式和技术模式

2.3 企业信息化与电子商务

·企业信息化的概念、目的、规划、方法

·ERP的主要模块和主要算法

·企业业务流程重组(BPR)

·CRM、PDM在企业的应用

·知识管理

·企业应用集成

·全程供应链管理的思想

·商业智能

·电子商务的类型、标准

2.4 信息资源管理

2.5 国际和国内有关信息化的标准、法律和规定

三、系统开发基础知识

3.1 开发管理

·项目的范围、时间、成本

·文档管理工作、配置管理

·软件开发的质量与风险

·软件的运行与评价

3.2 需求管理

·需求变更

·需求跟踪

·需求变更风险管理

3.3 软件开发方法

·软件开发生命周期

·软件开发模型(瀑布模型、演化模型、增量模型、螺旋模型、原型,构件组装模型、RUP,敏捷方法)

·构件与软件重用

·逆向工程

·形式化方法

3.4 软件开发环境与工具

·集成开发环境

·开发工具(建模工具、分析设计工具、编程工具、测试工具、项目管理工具等)

3.5 设计方法

·分析设计图示(DFD、ERD、UML、流程图、NS图、PAD)

·结构化分析与设计

·模块设计

·面向对象的分析与设计

·I/O设计、人机界面设计

·设计模式

3.6 基于构件的开发

·构件的概念与分类

·中间件技术

·典型应用架构(J2EE、.NET)

3.7 应用系统构建

·应用系统设计与开发(分析与设计方法的使用、外部设计、内部设计、程序设计、测试)

·软件包的使用(开发工具、运行管理工具、业务处理工具、ERP、群件、OA工具)

3.8 测试与评审

·测试评审方法

·验证与确认(V&V)

·测试自动化

·测试设计和管理方法

四、软件架构基础知识

·软件架构的概念

·软件架构的风格

·特定领域软件架构

·基于架构的软件开发方法

·软件架构评估

·软件产品线

·设计模式

五、安全性与可靠性技术

5.1 信息安全与保密

·加密和解密

·身份认证(数字签名、密钥、口令)

·访问控制

·安全保密管理(防泄漏、数字水印)

·安全协议(SSL、PGP、IPSec)

·系统备份与恢复

·防治病毒

5.2 系统可靠性

·可靠性设计(容错技术、避错技术)

·可靠性指标与评估

5.3 安全性规章与保护私有信息规则

·信息系统安全法规与制度

·计算机防病毒制度

·保护私有信息规则

六、标准化与知识产权

·标准化意识,标准化的发展,标准的的生命周期

·国际标准、美国标准、国家标准、行业标准、地方标准、企业标准

·代码标准、文件格式标准、安全标准、软件开发规范和文档标准

·标准化机构

·知识产权

七、应用数据

·概率统计应用

·图论应用

·组合分析

·算法(数值算法与非数值算法)的选择与应用

·运筹方法(网络计划技术、线性规划、预测、决策、库存管理、模拟)

·数学建模

八、专业英语

·具有高级工程师所要求的英文阅读水平

·掌握本领域的英语术语

考试科目2:系统架构设计案例分析

一、系统规划

·系统项目的提出与可行性分析

·系统方案的制定、评价和改进

·新旧系统的分析和比较

·现有软件、硬件和数据资源的有效利用

二、软件架构设计

·软件架构设计

·XML技术

·基于架构的软件开发过程

·软件质量属性

·架构模型(风格)

·特定领域软件架构

·基于架构的软件开发方法

·架构评估

·软件产品线

·系统演化

三、设计模式

·设计模式的概念

·设计模式的组成

·模式和软件架构

·设计模式分类

·设计模式的实现

四、系统设计

·处理流程设计

·人机界面设计

·文件设计、存储设计

·数据库设计

·网络应用系统的设计

·系统运行环境的集成与设计

·中间件、应用服务器

·性能设计与性能评估

·系统转换计划

五、软件系统建模

·系统需求

·建模的作用和意义

·定义问题(目标、功能、性能等)与归结模型(静态结构模型、动态行为模型、物理模型)

·结构化系统建模、数据流图

·面向对象系统建模

·统一建模语言(UML)

·数据库建模、E-R图

·逆向工程

六、分布式系统设计

·分布式通信协议的设计

·基于对象的分布式系统设计

·基于Web的分布式系统设计

·基于消息和协同的分布式系统设计

·异构分布式系统的互操作性设计

七、嵌入式系统设计

·实时系统和嵌入式系统特征

·实时任务调度和多任务设计

·中断处理和异常处理

·嵌入式系统开发设计

八、系统的可靠性分析与设计

·系统的故障模型和可靠性模型

·系统的可靠性分析和可靠度计算

·提高系统可靠性的措施

·系统的故障对策和系统的备份与恢复

九、系统的安全性和保密性设计

·系统的访问控制技术

·数据的完整性

·数据与文件的加密

·通信的安全性

·系统的安全性设计

考试科目3:系统架构设计论文

根据给出的系统架构设计有关的若干个专题,选择其中一个专题,按照规定的要求撰写论文。

一、系统建模

·定义问题与归结模型

·结构化系统建模

·面向对象系统建模

·数据库建模

二、软件架构设计

·软件架构设计

·特定领域软件架构

·基于架构的软件开发方法

·软件演化

三、系统设计

·处理流程设计

·系统人机界面设计

·文件设计、存储设计

·数据库设计

·网络应用系统的设计

·系统运行环境的集成与设计

·系统性能设计

·中间件、应用服务器

四、分布式系统设计

·分布式通信协议的设计

·基于对象的分布式系统设计

·基于Web的分布式系统设计

·基于消息和协同的分布式系统设计

·异构分布式系统的互操作性设计

五、系统的可靠性分析与设计

·系统的故障模型和可靠性模型

·提高系统可靠性的措施

·系统的故障对策和系统的备份与恢复

六、系统的安全性和保密性设计

·系统的访问控制技术

·数据的完整性

·数据与文件的加密

·通信的安全性

·系统的安全性设计

第二章 系统架构设计师考试复习技巧

一、解题的方法与技巧

1.勇往直前

进入下午的考试,会有些许疲劳的感觉,尤其当看到题干很长、算法较复杂的题时,就有想回避或焦虑、急躁的情绪。这是典型的“两军未战,兵先屈”的败兴思绪。要知道两对手相遇勇者胜,勇者相遇智者胜。抛开所有不必要的想法,相信自己的实力,做到心无旁鹜,勇往直前。

2.审清题干

题干包含了整个题目的条件和要求,但也有很多提示信息在程序的“注释”当中;若题干比较复杂,就要注意将题干“分段”来阅读,前后注意衔接,必要时在草稿纸上记录下关键数据。有时候题干很长,看似很复杂,让很多人望而却步。其实,这种题更好解,因为题干长了预示着题目的提示信息相应的多了,此时,主要是考你有没有勇气和耐心。

3.正确作答

在下午考试的问答题目中,一定要看清题目的问题和要求,以免答非所问,另外还需根据大纲考点进行解答,不可盲目的分析案例,也要避免答案与题目的中的案例没有关系,要根据案例对大纲考点进行分析。

二、总结

常言道“熟能生巧”、“打铁还得本身硬”,再好的方法与技巧若没有基础,是发挥不了作用的;如若有了一定的功底,再差的招式也会产生很大的威力,就像金庸小说中杨过的那柄钝剑。系统架构设计师考试的难度较大,下午题要求对项目系统架构进行描述、分析、设计与评估比较熟练;如果只看不练,不会有提高。建议大家多做模拟试题和历年试题,锻炼解题的能力与节奏。

第二部分 核心讲义

第1章 操作系统

1.1 操作系统的类型与结构

一、操作系统的类型

1.定义

操作系统是计算机系统中的核心系统软件,负责管理和控制计算机系统中硬件和软件资源,合理地组织计算机工作流程和有效地利用资源,在计算机与用户之间起接口的作用。

2.分类

根据使用环境和对作业的处理方式划分操作系统,可分为以下几种类型:(1)批处理操作系统

①原理

通过把用户提交的作业分类,把一批中的作业编成一个作业执行序列。

②分类

批处理分为:联机批处理和脱机批处理。

③主要特征

用户脱机使用计算机、成批处理、多道程序运行。(2)分时操作系统

①原理

采用分时技术,使多个用户同时以会话方式控制自己程序的运行,每个用户都感到似乎各自有一台独立的、支持自己请求服务的系统。分时技术把处理机的运行时间分成很短的时间片,按时间片轮流把处理机分配给各联机作业使用。若某个作业在分配给它的时间片内不能完成其计算,则该作业暂时中断,把处理机让给另一作业使用,等待下一轮时再继续运行。

②主要特征

交互性、多用户同时性、独立性。(3)实时操作系统

①原理

实时操作系统往往是专用的,系统与应用很难分离,紧密结合在一起。实时系统不强调资源利用率,而更关心及时性(时间紧迫性)、可靠性和完整性。

②分类

实时系统分为:实时过程控制与实时信息处理。

③主要特征

提供即时响应、高可靠性。(4)网络操作系统

①原理

按照网络架构的各个协议标准进行开发,包括网络管理、通信、资源共享、系统安全和多种网络应用服务等。在网络系统中,各计算机的操作系统可以互不相同,它需要有一个支持异种计算机系统之间进程通信的网络环境,以实现协同工作和应用集成。

②主要特征

互操作性、协作处理。(5)分布式操作系统

分布式操作系统要求有个统一的操作系统,实现系统操作的统一性,负责全系统的资源分配和调度,为用户提供统一的界面。它是一个逻辑上紧密耦合的系统。目前还没有真正实现的网络操作系统。

3.基本功能

所有的操作系统都应该具有5个基本功能:处理机管理、存储管理、设备管理、文件管理和作业管理。

二、操作系统的结构

1.无序结构(1)原理

无序结构又称整体结构或模块组合结构。它以大型表格和队列为中心,操作系统的各部分程序围绕着表格运行,整个系统是一个程序。这种操作系统常称为面向过程的操作系统。操作系统由许多标准的、可兼容的基本单位构成(称为模块),各模块相对独立,模块之间通过规定的接口相互调用。(2)优点

模块化设计方法的优点是:缩短了系统的开发周期。(3)缺点

模块化设计方法的缺点是:模块之间调用关系复杂、相互依赖,从而使分析、移植和维护系统较易出错。

2.层次结构(1)原理

把一个大型复杂的操作系统分解成若干个单向依赖的层次,由多层的正确性保证操作系统的可靠性。(2)优点

层次结构清晰,大大地简化了接口的设计,且有利于系统功能的增加或删改,易于保证可靠性,也便于维护和移植。

3.面向对象结构(1)原理

基于面向对象程序设计的概念,采用了各种不同的对象技术。在计算机系统中对象是操作系统管理的信息和资源的抽象,是一种抽象的数据类型。可以把对象作为系统中的最小单位,由对象、对象操作、对象保护组成的操作系统,就是面向对象的操作系统,如Windows Server中有执行体对象(例如:进程、线程、文件和令牌等)和内核对象(例如:时钟、事件和信号等)。(2)优点

适用于网络操作系统和分布式操作系统中。

4.对称多处理结构(1)原理

在系统中的所有处理机运行且共享同一内存(内存储器、主存、实存)。(2)优点

适合共享存储器结构的多处理机系统,即紧耦合的多处理机系统。

5.微内核结构(1)原理

把系统的公共部分抽象出来,形成一个底层核心,提供最基本的服务,其他功能以服务器形式建立在微内核之上。它具有良好的模块化和结构化特征,模块之间和上下层之间通过消息来通信。建立在微内核上的服务器可以根据不同的需要构造,从而形成不同的操作系统。(2)工作状态

现代操作系统大多拥有两种工作状态:

①核心态:内核模块和最基本的操作系统核心工作在核心态。

②用户态:用户使用的一般应用程序工作在用户态。(3)组成

微内核结构由一个非常简单的硬件抽象层和一组比较关键的原语或系统调用组成,这些原语仅仅包括了建立一个系统必需的几个部分,如:线程管理、地址空间和进程间通信等。(4)目标

微内核的目标是将系统服务的实现和系统的基本操作规则分离开来。模块化的用户态服务用于完成操作系统中比较高级的操作,从而使内核中最核心的部分的设计更简单。一个服务组件的失效不会导致整个系统的崩溃。(5)优点

①具有统一的接口,在用户态和核心态之间无需进程识别;

②可伸缩性好,能适应硬件更新和应用变化;

③可移植性好,所有与具体机器特征相关的代码,全部隔离在微内核中,如果操作系统要移植到不同的硬件平台上,只需修改微内核中极少代码即可;

④实时性好,微内核可以方便地支持实时处理;

⑤安全可靠性高,微内核将安全性作为系统内部特性来进行设计,对外仅使用少量应用编程接口;

⑥支持分布式系统,支持多处理器的架构和高度并行的应用程序;

⑦真正面向对象的操作系统。(6)适用情况

由于操作系统核心常驻内存,而微内核结构精简了操作系统的核心功能,内核规模比较小,所以微内核结构十分适合嵌入式的专用系统,对于通用性较广的系统,将使CPU(Central Processing Unit,中央处理单元)的通信开销增大,从而影响到计算机的运行速度。

1.2 处理器管理

一、进程的状态

1.概述(1)进程和程序的比较

①进程是一个程序关于某个数据集的一次运行。进程是程序的一次运行活动,是一个动态的概念,而程序是静态的概念,是指令的集合。具有动态性和并发性。

②程序是进程运行所对应的运行代码,一个进程对应于一个程序,一个程序可以同时对应于多个进程。(2)进程的组成

在操作系统中进程是进行系统资源分配、调度和管理的最小单位。从静态的观点看,进程由程序、数据和进程控制块(Process Control Block,PCB)组成;从动态的观点看,进程是计算机状态的一个有序集合。(3)进程控制块(PCB)

PCB是进程存在的唯一标志,PCB描述了进程的基本情况。其内容可分成:

①调度信息:供进程调度使用,包括进程当前的一些基本属性。

②执行信息:即现场,刻画了进程的执行情况。

PCB随着进程的建立而产生,随着进程的完成而撤销。

2.进程状态的划分

一个进程从创建而产生至撤销而消亡的整个生命周期,可以用一组状态加以刻画,为了便于管理进程,把进程划分为几种状态,分别有三态模型和五态模型。(1)三态模型

①三种状态

如果假设所有进程都在内存中,可以进程的状态划分为以下三种:

a.运行态:占有处理器正在运行。

b.就绪态:具备运行条件,等待系统分配处理器以便运行。

c.等待态(阻塞态):不具备运行条件,正在等待某个事件的完成。

②状态之间的转换

一个进程在创建后将处于就绪状态。每个进程在执行过程中,任一时刻当且仅当处于上述三种状态之一。同时,在一个进程执行过程中,它的状态将会发生改变,如图1-1所示。图1-1 进程三态模型及其状态转换

运行状态的进程将由于出现等待事件而进入等待状态,当等待事件结束之后等待状态的进程将进入就绪状态,而处理器的调度策略又会引起运行状态和就绪状态之间的切换。

③状态转换的原因

a.运行态→等待态:等待使用资源。

b.等待态→就绪态:进程运行所需资源得到满足。

c.运行态→就绪态:运行时间片结束,或者出现更高优先权的进程。

d.就绪态→运行态:CPU空闲时选择一个就绪进程。(2)五态模型

①进程挂起的目的

实际使用中,进程不能总是全部存在于内存之中,有时需要将某些进程挂起,对换到磁盘镜像区中,使之暂时不参与进程调度,起到平滑系统操作负荷的目的。

②进程挂起的原因

a.系统中的进程均处于等待状态,处理器空闲,此时需要把一些阻塞进程对换出去,以腾出足够的内存装入就绪进程运行;

b.进程竞争资源,导致系统资源不足,负荷过重,此时需要挂起部分进程以调整系统负荷,保证系统的实时性或让系统正常运行;

c.把一些定期执行的进程(如审计程序、监控程序、记账程序)对换出去,以减轻系统负荷;

d.用户要求挂起自己的进程,以便根据中间执行情况和中间结果进行某些调试、检查和改正;

e.父进程要求挂起自己的后代子进程,以进行某些检查和改正;

f.操作系统需要挂起某些进程,检查运行中资源使用情况,以改善系统性能;或当系统出现故障或某些功能受到破坏时,需要挂起某些进程以排除故障。

③五种状态

图1-2给出了具有挂起进程功能的系统中的进程状态。静止就绪态表明进程具备运行条件但目前在二级存储器(外存储器、外存、辅存)中,只有当它被对换到内存才能被调度执行。静止阻塞态则表明进程正在等待某一个事件且在二级存储器中。图1-2 具有挂起功能系统的进程状态及其转换

④状态转换的原因

a.活跃阻塞态→静止阻塞态:如果当前不存在活跃就绪进程,那么至少有一个等待态进程将被对换出去成为静止阻塞态;操作系统根据当前资源状况和性能要求,可以决定把活跃阻塞态进程对换出去成为静止阻塞态。

b.静止阻塞态→静止就绪态:引起进程等待的事件发生之后,相应的静止阻塞态进程将转换为静止就绪态。

c.静止就绪态→活跃就绪态:当内存中没有活跃就绪态进程,或者静止就绪态进程具有比活跃就绪态进程更高的优先级,系统将把静止就绪态进程转换成活跃就绪态。

d.活跃就绪态→静止就绪态:操作系统根据当前资源状况和性能要求,也可以决定把活跃就绪态进程对换出去成为静止就绪态。

e.静止阻塞态→活跃阻塞态:当一个进程等待一个事件时,原则上不需要把它调入内存。但是,当一个进程退出后,内存已经有了一大块自由空间,而某个静止阻塞态进程具有较高的优先级并且操作系统已经得知导致它阻塞的事件即将结束,此时便发生了这一状态变化。

⑤挂起进程的特征

一个挂起进程等同于不在内存的进程,因此挂起的进程将不参与进程调度,直到它们被对换进内存。一个挂起进程具有如下特征:

a.该进程不能立即被执行;

b.挂起进程可能会等待一个事件,但所等待的事件是独立于挂起条件的,事件结束并不能导致进程具备执行条件;

c.进程进入挂起状态是由于操作系统、父进程或进程本身阻止它的运行;

d.结束进程挂起状态的命令只能通过操作系统或父进程发出;

e.阻塞态:进入阻塞态通常是因为在等待I/O完成或等待分配到所需资源。

二、信号量与PV操作

1.概述

在操作系统中,进程之间经常会存在互斥(都需要共享独占性资源时)和同步(完成异步的两个进程的协作)两种关系。为了有效地处理这两种情况,W.Dijkstra在1965年提出信号量和PV操作。(1)信号量:是一种特殊的变量,表现形式是一个整型S和一个队列。(2)P操作:S=S-1,若S<0,表示当前没有资源分配给该进程,进程暂停执行,进入等待队列。(3)V操作:S=S+1,若S≤0,表示阻塞队列中有等待该资源的进程,唤醒等待队列中的第一个进程。

2.互斥控制(1)概述

互斥控制是为了保护共享资源,不让多个进程同时访问这个共享资源,换句话说,就是阻止多个进程同时进入访问这些资源的代码段,这个代码段称为临界区,而这种一次只允许一个进程访问的资源称为临界资源。(2)代码实现

为了实现进程互斥地进入自己的临界区,代码可以写为:

由于只允许一个进程进入,信号量S的初值应为1。S的值表示可以允许进入的进程数,当S<0时,其绝对值就是等待使用临界资源的进程数,也就是等待队列中的进程数。而当一个进程从临界区出来时,执行V操作(S=S+1),如果等待队列中还有进程(S≤0),则调入一个新的进程进入(唤醒)。

3.同步控制

最简单的同步形式是进程A在另一个进程B到达L以前,不应前2进到超过点L,这样就可以使用如下程序:1

要确保进程B执行V操作之前,不让进程A的运行超过L,就要设1置信号量S的初值为0。这样,如果进程A先执行到L,那么执行P操1作(S=S-1)后,则S<0,就停止执行。直到进程B执行到L时,将执2行V操作(S=S+1),唤醒A以继续执行。

4.生产者-消费者问题

生产者-消费者是一个经典的问题,它不仅要解决生产者进程与消费者进程的同步关系,还要处理缓冲区的互斥关系,因此通常需要3个信号量来实现,如表1-1所示。表1-1 生产者-消费者问题信功功能说明号能量类别em同说明空闲的缓冲区数量,因为程序开始时,缓冲区全pty步部为空。所以,其初始值应为缓冲区的总个数full同说明已填充的缓冲区数量,因为程序开始时,所有缓步冲区都为空(未填充),所以,其初始值应为0mu互保证同时只有一个进程在写缓冲区,因此,其初始值tex斥应为1

如果对缓冲区的读写无须进行互斥控制的话,那么就可以省去mutex信号量。

5.PV操作的理解(1)信号量与PV操作是用来解决并发问题的,而在并发问题中最重要的是互斥与同步两个关系,在解题时,应该先从寻找互斥与同步关系开始。(2)通常一个互斥或一个同步关系可以使用一个信号量来解决。(3)信号量的初值通常就是表示资源的可用数。而且通常对于初始为0的信号量,会先做V操作。(4)在资源使用之前,将会使用P操作;在资源用完之后,将会使用V操作。在互斥关系中,PV操作是在一个进程中成对出现的;而在同步关系中,则PV操作一定是在两个进程甚至是多个进程中成对出现的。

6.实际应用【例1.1】在某并发系统中,有一个发送进程A、一个接收进程B、一个环形缓冲区BUFFER、信号量S和S。发送进程不断地产生12消息并写入缓冲区BUFFER,接收进程不断地从缓冲区BUFFER取消息。假设发送进程和接收进程可以并发地执行,那么,当缓冲区的容量为N时,如何使用PV操作才能保证系统能够正常工作。发送进程A和接收进程B的工作流程如图1-3所示。请在图1-3中的①~④处填写正确的操作。图1-3 PV操作例1.1【解析】很显然,这是一个“生产者-消费者”问题,在本题中,进程A和进程B允许并发地访问缓冲区,因此无须管理互斥。只需定义两个信号量:S和S,初值为1的S在此承担的是信号量empty的功121能,初值为0的S在此则承担的是信号量full的功能。①处应该是2P(S),将空闲缓冲区数量减1;②处应该是V(S),将已填充的12缓冲区数量加1;③处则是P(S);④处为V(S)。21【例1.2】在例1.1的基础上,如果系统中有多个发送进程和接收进程,进程间的工作流程如图1-4所示,其中空①~④的内容与图1-3相同。发送进程产生消息并顺序地写入环形缓冲区BUFFER,接收者进程顺序地从BUFFER中取消息,且每条消息只能读取一次。为了保证进程间的正确通信,增加了信息量S和S,试说明信息量S和SABAB的物理意义,在图1-4中的⑤和⑥处填入正确的内容,并从图1-4的a~l中选择4个位置正确地插入P(S)、V(S)、P(S)和AABV(S)。B图1-4 PV操作实例1.2

图1-4所涉及的问题在普通的“生产者-消费者”问题上增加了一些复杂度:“系统中有多个发送进程和接收进程”,根据题意,我们可以得知它要完成的控制是:发送进程顺序写入,接收进程顺序读取,而且每条消息都只能够读取一次。这显然是两个互斥的问题,即多个发送进程在写缓冲区时是互斥关系,多个接收进程读缓冲区也是互斥关系。因此,信号量S和S分别实现这两个用来完成进程的互斥控AB制。(1)S:初值为1,表示允许同时对缓冲区进行写操作的进程数A量。(2)S:初值为1,表示允许同时对缓冲区进行读操作的进程数B量。两个对调也可以。在发送进程和接收进程中分别有一组信号量S和S的PV操作。互斥控制的要点在于判断出临界区的范围。在发AB送进程中,进程产生消息后准备写入缓冲区时就要进行互斥判断,因此在位置b应插入P(S);而直到完成“i=(i+1) mod N”操作A后,才完成缓冲区操作,因此必须在位置f插入V(S)。在接收进程A中,如果数据区是空的则应该等待,因此必须先完成P(S)操作,2来决定其是否需要阻塞。如果没有阻塞时,再进入临界区,因此应该在位置h处操作P(S);而“对读取的消息进行处理’’已显然在临B界区之外,因此应该在位置k插入V(S)。B

三、死锁问题

1.定义

死锁是指多个进程之间互相等待对方的资源,而在得到对方资源之前又不释放自己的资源,造成循环等待的一种现象。如果一个进程在等待一个不可能发生的事件,则进程就死锁了。如果一个或多个进程产生死锁,就会造成系统死锁。

2.发生的必要条件

产生死锁的根本原因在于系统提供的资源个数少于并发进程所要求的该类资源数。产生死锁有4个必要条件:(1)互斥条件:即一个资源每次只能被一个进程使用。(2)保持与等待条件:有一个进程已获得了一些资源,但因请求其他资源被阻塞时,对已获得的资源保持不放。(3)不可抢占条件:有些系统资源是不可抢占的,当某个进程已获得这种资源后,系统不能强行收回,只能由进程使用完时自己释放。(4)循环等待条件:若干个进程形成环形链,每个都占用对方要申请的下一个资源。

死锁的4个条件只要打破任何一个,都不会产生死锁。

3.银行家算法

银行家算法是指在分配资源之前先看清楚资源分配后是否会导致系统死锁。如果会死锁,则不分配,否则就分配。按照银行家算法的思想,当进程请求资源时,系统将按如下原则分配资源:(1)当一个进程对资源的最大需求量不超过系统中的资源数时可以接纳该进程;(2)进程可以分期请求资源,但请求的总数不能超过最大需求量;(3)当系统现有的资源不能满足进程尚需资源数时,对进程的请求可以推迟分配,但总能使进程在有限的时间里得到资源;(4)当系统现有的资源能满足进程尚需资源数时,必须测试系统现存的资源能否满足该进程尚需的最大资源数,若能满足则按当前的申请量分配资源,否则也要推迟分配。【例1.3】系统中有三类互斥资源R、R和R,可用资源数分别123是9、8和5。在T时刻系统中有P、P、P、P和P五个进程,这些012345进程对资源的最大需求量和已分配资源数如表1-2所示。进程按照P-1P-P-P-P序列执行,系统状态安全吗?如果按P-P-P-P-P的序245324513列呢?表1-2 进程对资源的最大需求量和已分配资源数最大需求量已分配资源数资源   进程RRRRRR1  2  31  2  3 P16  5  2 2  2  1 1  2  1 2  1  1 P28  0  1 1  2  1 2  1  0 1  2  0 P33  4  41  1  3 PP45【解析】从表1-2中可以看出,还有2个R未分配,1个R未分配,而12R全部分配完毕。按照P-P-P-P-P的顺序执行时,首先执行P,3124531这时由于其R、R和R的资源数都未分配够,因而开始申请资源,123得到还未分配的2个R,1个R。但其资源仍不足(没有R资源),从123而进入阻塞状态,并且这时所有资源都已经分配完毕。因此,后续的进程都无法得到能够完成任务的资源,全部进入阻塞,死锁发生了。

而如果按照P-P-P-P-P的序列执行时:24513(1)首先执行P,它还差1个R资源,系统中还有1个未分配的R,222因此满足其要求,能够顺利结束进程,释放出2个R、2个R、1个R。123这时,未分配的资源就是:4个R、2个R、1个R。123(2)然后执行P,它还差一个R,而系统中刚好有一个未分配的43R,因此满足其要求,也能够顺利结束,并释放出其资源。因此,3这时系统就有5个R、4个R、1个 R。根据这样的方式推下去,会123发现按这种序列可以顺利地完成所有的进程,而不会出现死锁现象。

4.解决死锁的策略(1)死锁预防

破坏导致死锁必要条件中的任意一个就可以预防死锁。但预防通常会降低系统的效率。(2)死锁避免

避免是指进程在每次申请资源时判断这些操作是否安全。(3)死锁检测

死锁预防和避免都是事前措施,而死锁的检测则是判断系统是否处于死锁状态,如果是,则执行死锁解除策略。(4)死锁解除

死锁解除是与死锁检测结合使用的,它使用的方式就是剥夺。即将某进程所拥有的资源强行收回,分配给其他的进程。

四、管程与线程

1.管程(1)组成

管程由管程名、局部子管程的变量说明、使用共享资源并在数据集上进行操作的若干过程,以及对变量赋初值的语句等4个基本部分组成。(2)执行过程

每一个管程管理一个临界资源。当有几个进程调用某管程时,仅允许一个进程进入管程,其他调用者必须等待。方法是通过调用特定的管程入口进入管程,然后通过管程中的一个过程使用临界资源。当某进程通过调用请求访问某临界资源而未能满足时,管程调用相应同步原语使该进程等待,并将它排在等待队列上。当使用临界资源的进程访问完该临界资源并释放之后,管程又调用相应的同步原语唤醒等待队列中的队首进程。为了表示不同的等待原因,设置条件变量,条件变量不能取任何值,只是一个排队栈。

2.线程(1)概述

线程是进程的活动成分,是处理器分配资源的最小单位,它可以共享进程的资源与地址空间,通过线程的活动,进程可以提供多种服务(对服务器进程而言)或实行子任务并行(对用户进程而言)。(2)优点

采用线程机制的最大优点是节省开销,创建时间短。(3)多线程系统

在多线程系统中,一个进程可以由一个或多个线程构成,每一线程可以独立运行,一个进程的线程共享这个进程的地址空间。核心级线程和用户级线程以及二者的组合方式都可以实现多线程系统。多线程实现的并行避免了进程间并行的缺点:创建线程的开销比创建进程要小,同一进程的线程共享进程的地址空间,所以线程切换(处理器调度)比进程切换快。

1.3 文件管理

一、概述

文件管理是对外部存储设备上的以文件方式存放的信息的管理。文件的结构是指文件的组织形式,从用户角度所看到的文件组织形式,称为文件的逻辑结构。用户通过对文件的访问(读写)来完成对文件的查找、修改、删除和添加等操作。常用的访问方法有两种:顺序访问和随机访问。

二、文件的逻辑组织

1.定义

文件的逻辑组织是为了方便用户的使用,逻辑结构是用户可见的结构。

2.分类

文件的逻辑结构可以分为无结构的字符流文件和有结构的记录文件两种,记录文件也称为有格式文件。记录文件由记录组成,以记录为单位组织和使用信息。常用的记录式结构有如下几种:(1)连续结构

连续结构是一种把记录按生成的先后顺序排列的逻辑结构。连续结构的特点是适用性强,可用于所有文件,且记录的排列顺序与记录的内容无关。缺点是搜索性能较差。(2)多重结构

多重文件把记录按键和记录名排列成行列式结构,一个包含n个记录名、m个键的文件构成一个m×n维行列式。(3)转置结构

转置结构把含有相同键的记录指针全部指向该键,把所有与同一键对应的记录的指针连续地置于目录中该键的位置下。转置结构最适合于给定键后的记录搜索。(4)顺序结构

顺序结构把文件中的键按规定的顺序排列起来。

3.存取方式

常用的存取方法有顺序存取法、随机存取法(直接存取法)和按键存取法。

三、文件的物理组织

1.概述

文件的物理结构是指文件在存储设备上的存放方法,侧重于提高存储器的利用效率和降低存取时间。文件的存储设备通常划分为大小相同的物理块,物理块是分配和传输信息的基本单位。

2.分类(1)连续文件(顺序文件)

①定义

连续文件是一种最简单的物理文件结构,它把一个在逻辑上连续的文件信息依次存放到物理块中。

②优点

连续文件的优点是一旦知道文件在文件存储设备上的起始位置和文件长度,就能进行存取。连续文件适合于顺序存取,在连续存取相邻信息时,存取速度快。

③缺点

连续文件的缺点是在文件建立时必须指定文件的信息长度,以后不能动态增长,需要经常修改的文件一般不宜采用此方式存储。(2)串联文件(链接文件)

①原理

串联文件用非连续的物理块来存放文件信息,这些物理块之间没有顺序关系,其中每个物理块设有一个指针,指向下一个物理块的地址,这样,所有的物理块都被链接起来,形成一个链接队列。

②优点

可以解决存储器的碎片问题,提高存储空间利用率。

③缺点

由于串联文件只能按照队列中的链接指针顺序查找,因此搜索效率低,一般只适用于顺序访问,不适用于随机存取。(3)索引文件

①原理

索引文件是另一种对文件存储不连续分配的方法。为每个文件建立一张索引表,索引表中的每一表项指出文件信息所在的逻辑块号和与之对应的物理块号。一般采用多级(间接索引)技术,这时在由索引表指出的物理块中存放的是存放文件信息的物理块地址。如果一个物理块能存储n个地址,则一级间接索引,将使可寻址的文件长度变2成n块,对于更大的文件可以采用二级甚至三级间接索引。

②优点

索引文件既可以满足文件动态增长的要求,又可以方便而迅速地实现随机存取。既适用于顺序存取,又适用于随机存取。

③缺点

索引表增加了存储空间的开销。对一些大的文件,当索引表的大小超过一个物理块时,会发生索引表的分配问题。另外,在存取文件时至少需要访问两次磁盘,一次是访问索引表,另一次是根据索引表提供的物理块号访问文件信息。为了提高效率,一种改进的方法是,在对某个文件进行操作之前,预先把索引表调入内存。这样,文件的存取就能直接从在内存的索引表中确定相应的物理块号,从而只需要访问一次磁盘。

三、树形目录结构

1.文件目录

文件控制块的集合称为文件目录,文件目录也被组织成文件,常称为目录文件。文件管理的一个重要方面是对文件目录进行组织和管理。文件系统一般采用一级目录结构、二级目录结构和多级目录结构。DOS、UNIX、Windows系统都是采用多级树形目录结构。

2.多级树形目录(1)结构

在多级树形目录结构中,整个文件系统有一个根,然后在根上分枝,任何一个分枝上都可以再分枝,枝上也可以长出树叶。根和枝称为目录或文件夹。而树叶则是一个个的文件。这种结构的文件系统效率比较高。图1-5就是一个树形目录结构,其中方框代表目录,圆形代表文件。图1-5 树形文件结构(2)目录

在树形目录结构中,树的根结点为根目录,数据文件作为树叶,其他所有目录均作为树的结点。系统在建立每一个目录时,都会自动为它设定两个目录文件,一个是“.”,代表该目录自己,另一个是“..”,代表该目录的父目录。对于根目录,“.”和“..”都代表其自己。从逻辑上讲,用户在登录到系统中之后,每时每刻都处在某个目录之中,此目录被称作工作目录或当前目录,工作目录是可以随时改变的。(3)路径

①定义

路径是指从树形目录中的某个目录层次到某个文件的一条道路。在树形目录结构中,从根目录到任何数据文件之间,只有一条唯一的通路,从树根开始,把全部目录文件名与数据文件名依次用“/”连接起来,构成该数据文件的路径名,且每个数据文件的路径名是唯一的。这样可以解决文件重名问题。

②分类

a.绝对路径

是指从根目录开始的路径,也称为完全路径,绝对路径是确定不变的。

b.相对路径

是从用户工作目录开始的路径,相对路径则随着用户工作目录的变化而不断变化。

在树形目录结构中到某一确定文件的绝对路径和相对路径均只有一条。(4)文件格式

在Windows系统中,有两种格式的文件:FAT32(FAT16)文件和NTFS文件。NTFS在使用中产生的磁盘碎片要比FAT32少,安全性也更高,而且支持单个文件的容量更大,超过了4GB,适合现在的大容量存储。NTFS可以支持的分区(如果采用动态磁盘则称为卷)大小可以达到2TB,而Windows 2000中的FAT32支持分区的大小最大为32GB。

四、存储空间管理

1.概述

由于文件存储设备是分成许多大小相同的物理块,并以块为单位交换信息,因此,文件存储设备的管理,实质上是对空闲块的组织和管理问题,它包括空闲块的组织、空闲块的分配与空闲块的回收等问题。

2.管理方法(1)空闲表法

空闲表法属于连续分配,系统为外存上的所有空闲区建立一张空闲表,每个空闲区对应一个空闲表项,包括序号、第一空闲盘块号和空闲盘块数。(2)空闲链表法

将所有空闲盘区,拉成一条空闲链,根据构成链所用的基本元素的不同,可把链表分成两种形式:

①空闲盘块链

将磁盘上所有空闲区空间,以盘块为单位拉成一条链,当用户因创建文件而请求分配存储空间时,系统从链首开始,依次摘下适当数目的空闲盘块链给用户。当用户因删除文件而释放存储空间时,系统将回收的盘块依次插入空闲盘块链的末尾。在为一个文件分配盘块时,可能要重复多次操作。

②空闲盘区链

将磁盘上所有空闲盘区拉成一条链,在每个盘区上包含若干用于指示下一个空闲盘区的指针,指明盘区大小的信息。分配盘块时,通常采用首次适应算法(显式链接法)。在回收时,要将回收区与空闲盘区相合并。(3)位图法

位图(bitmap)用二进制位表示磁盘中的一个盘块的使用情况,0表示空闲,1表示已分配。磁盘上的所有盘块都与一个二进制位相对应,由所有的二进制位构成的集合,称为位图。位图法的优点是很容易找到一个或一组相邻的空闲盘块。位图小,可以把它保存在内存中,从而节省了磁盘的启动操作。(4)成组链接法

成组链接法将空闲表和空闲链表法结合形成的一种空闲盘块管理方法,适用于大型文件系统。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载