2016系统架构师考试知识点总结
- 格式:doc
- 大小:481.50 KB
- 文档页数:65
软考系统架构设计师教程考点精讲(四)软考系统架构设计师属于软考中的一项高级资格考试,考试分综合知识、案例分析和论文3个科目。
系统架构设计师考试作为一项高级资格考试,有一定的考试难度,那么该如何备考才能顺利通过考试呢?面对系统架构设计师教程无从下手的同学,希赛为您准备了几个重要的教程章节考点精讲,希望对您的学习有所帮助。
第四章4.1软件开发方法4.1.1软件开发生命周期传统的软件生命期是指软件产品从形成概念(构思)开始,经过定义、开发、使用、维护、废弃,的全过程。
可以把软件生命期划分为软件定义、软件开发、软件运行与维护,三个阶段。
1、软件定义时期1.问题定义,目标系统“是什么”,系统的定位以及范围。
2.可行性研究,技术可行性、经济可行性、操作可行性、社会可行性。
3.需求分析,确定软件系统的功能需求、性能需求、运行环境的约束,写出需求规格说明书、软件系统测试大纲、用户手册概要。
充分理解用户的需求,并以书面形式写出规格说明书,这是以后软件设计和验收的依据;用户也许很难一次性说清楚系统应该做什么。
系统分析员、软件开发人员、用户,共同完成,逐步细化、一致化、完全化等。
软件需求规格说明SRS,内容可以有系统(或子系统)名称、功能描述、接口、基本数据结构、性能、设计需求、开发标准、验收原则等。
2、软件开发时期软件开发时期就是软件的设计与实现,概要设计、详细设计、编码、测试等。
概要设计是在软件需求规格说明的基础上,建立系统的总体结构(含子系统的划分)和模块间的关系,定义功能模块及各功能模块之间的关系。
详细设计对概要设计产生的功能模块逐步细化,包括算法与结构、数据分布、数据组织、模块间接口信息、用户界面等,写出详细设计报告。
测试可分成单元测试、集成测试、确认测试、系统测试等。
通常把编码和测试称为系统的实现。
3、软件运行和维护软件维护就是尽可能地延长软件的寿命,没有维护的价值时,宣告退役,软件的生命结束。
4.1.2软件开发模型软件生存周期模型又称软件开发模型或软件过程模型,模型的特点是简单化,是软件开发实际过程的抽象与概括。
系统规划:包括系统项目的提出预可行性分析;系统方案的制定、评价和改进;新旧系统的分析和比较;现有软件、硬件和数据资源的有效利用;软件架构设计:XML技术;基于架构的软件开发过程;软件的质量属性;架构(模型)风格;特定领域软件架构;基于架构的软件开发方法;架构评估;软件产品线;系统演化设计模式:设计模式概念;设计模式的组成;模式和软件架构;设计模式分类;设计模式实现;系统设计:处理流程设计;人机界面设计;文件涉及;存储设计;数据库设计;网络应用系统的设计;系统运行环境的集成与设计;中间件;应用服务器;性能设计与性能评估;系统转换设计划;软件系统建模:系统需求、建模的作用以及意义;定义问题(目标、功能、性能)与归结模型(静态结构模型、动态行为模型、物理模型);结构化系统建模;数据流图;面向对象系统建模;统一建模语言(UML);数据库建模;E-R图;逆向工程;分布式系统设计:分布式通行协议的设计;基于对象的分布式系统设计;基于web的分布式系统设计;基于消息和协同的分布式系统设计;异构分布式系统的互操作性设计;嵌入式系统设计:实时系统和嵌入式系统特征;实时任务调度和多任务设计;中断处理和异常处理;嵌入式系统的开发设计系统的可靠性分析与设计:系统故障模型和可靠性模型;系统的可靠性分析与可靠度计算;提高系统可靠性的措施;系统的故障对策和系统的备份与恢复;系统安全性和保密性设计:系统的访问控制技术;数据的完整性;数据与文件的加密;通信的安全性;系统的安全性设计;1、概念类系统规划项目计划:包括范围计划、工作范围计划、活动定义、资源需求、资源计划、活动排序、费用估算、进度计划、费用计划;项目辅助计划包括质量计划、沟通计划、人力资源计划、风险计划、采购计划。
虚拟化技术:计算元件在虚拟的基础上运行;有完全虚拟化,准虚拟化,操作系统层虚拟化等;虚拟化收益:1、有效提高服务器资源利用率2、支持运行在不同操作系统之上的多个业务共享一台服务器3、减少服务器数量,降低硬件成本4、节约场地面积,减少能耗软件架构设计架构风险:架构设计中潜在的、存在问题的架构决策所带来的隐患敏感点:为了实现某种特定的质量属性,一个或者多个系统组件所具有的特性权衡点:影响多个质量属性,并且对多个质量属性来说都是敏感点的系统属性软件质量属性包括:功能性、性能、可用性、可靠性、健壮性、安全性、可修改性、可变性、易用性、可测试性、互操作性六种质量属性策略:1、可用性错误检测:命令/响应,心跳机制,异常监控错误恢复:表决(裁决表),主动冗余,被动冗余,备件,状态再同步,检查点/回滚错误预防:从服务中删除,事物(要么全成功,要么全失败),定期重置,进程监视器2、可修改性局部化修改:维持语义的一致性,预期期望的变更,泛化该模块,限制可能的选择防止连锁反应:信息隐藏,维持现有的接口,限制通信路径,仲裁者的使用推迟绑定时间:运行时注册,配置文件,多态,构件更换3、性能资源需求:减少处理时间所需的资源,减少所处理事件的数量,控制资源使用,限制执行时间资源管理:引入并发,维持数据或计算的多个副本,增加可用资源资源仲裁:先进/先出,固定优先级,动态优先级调度,静态调度4、安全性抵抗攻击:对用户进行身份验证,对用户进行授权,维护数据的机密性,维护完整性,限制暴露的信息,限制访问检测攻击:部署入侵检测系统从攻击中恢复:恢复,识别攻击者5、可测试性输入/输出:记录/回放,将接口—实现分离,优化访问线路/接口内部监控:当监视器处于激活状态时,记录事件6、易用性运行时:任务模型,用户模型,系统模型设计时:将用户接口与应用的其余部分分离支持用户主动:支持用户主动操作软件架构风格:描述某一类特定应用领域中软件系统组织方式和惯用方式;组织方式描述了系统的组成构建和这些构建的组织方式,惯用模式则反映众多系统共有的结构和语义。
系统架构设计师笔记一、系统架构基础。
1. 定义与概念。
- 系统架构的含义:从整体上描述系统的组成结构、各组件的功能与关系,以及系统运行的原理等。
- 与软件工程的关系:系统架构是软件工程中的高层次设计,为软件项目的开发提供蓝图。
2. 架构风格。
- 分层架构。
- 优点:各层职责明确,易于维护和扩展。
例如,常见的三层架构(表示层、业务逻辑层、数据访问层),表示层负责与用户交互,业务逻辑层处理业务规则,数据访问层操作数据库。
- 缺点:层与层之间可能存在过度耦合的情况,如果分层不合理会影响系统性能。
- 客户端 - 服务器架构(C/S)- 特点:客户端负责用户界面展示和部分业务逻辑处理,服务器端负责数据存储和核心业务逻辑处理。
如早期的邮件客户端软件,客户端软件负责邮件的收发界面操作,服务器端存储邮件数据并进行邮件的转发等操作。
- 适用场景:适用于对交互性要求较高、网络环境相对稳定的应用,如企业内部管理系统。
- 浏览器 - 服务器架构(B/S)- 特点:用户通过浏览器访问服务器上的应用,服务器端承担更多的业务逻辑和数据处理。
例如,Web邮件系统,用户只需在浏览器中输入网址即可使用邮件服务,服务器端负责邮件的存储、收发和用户管理等功能。
- 适用场景:便于部署和更新,适用于广泛的互联网应用,用户无需安装专门的客户端软件。
3. 架构视图。
- 逻辑视图:描述系统的功能组件及其关系,从功能角度展示系统的结构。
例如,在一个电商系统中,逻辑视图可能包括用户管理模块、商品管理模块、订单管理模块等,以及它们之间的交互关系,如用户管理模块为订单管理模块提供用户信息。
- 物理视图:关注系统的硬件部署和软件安装情况。
电商系统的物理视图可能包括服务器的分布(如应用服务器、数据库服务器的部署位置),网络设备(路由器、防火墙等)的连接情况,以及软件在不同服务器上的安装情况。
- 进程视图:着眼于系统运行时的进程和线程情况。
在多用户的电商系统中,进程视图会描述订单处理进程、用户登录验证进程等的并发执行情况,以及进程之间的同步和通信机制。
1.常见缩写基于架构的软件设计(Architecture-Based Software Design, ABSD)特定领域软件架构(Domain Specific Software Architecture,DSSA)软件架构评估方法:1)架构权衡分析法(Architecture Tradeoff Analysis Method,ATAM)2)软件架构分析方法(Software Architecture Analysis Method, SAAM)快速应用开发(Rapid Application Development,RAD)软件开发环境(Software Development Environment,SDE)架构描述语言(Architecture Description Language, ADL)“4+1”视图模型(逻辑开发(姬发)进屋里的场景)-类实现进程部署的例子设计模式:1)创建型:单元相公造;2)结构型:理赔乔装观元组软件架构风格:流返购机舱用例关系包括:包含include、扩展extend、泛化UML图、类图关系:范组局联谊(泛化、组合、聚合、关联、依赖)系统可靠性:冗余技术、软件容错技术(恢复块设计、N版本程序设计)、双机容错技术、集群技术软件可靠性:软件容错设计(恢复块设计、N版本程序设计)、检错设计和降低复杂度设计2.*基于架构的软件设计(ABSD)强调由商业、质量和功能需求的组合驱动软件架构设计。
它强调采用视角和视图来描述软件架构,采用用例和质量属性场景来描述需求。
用例描述的是功能需求,质量属性场景描述的是质量需求。
使用ABSD方法,设计活动可以从项目总体功能框架明确就开始。
ABSD方法有三个基础:第一个是功能分解,在功能分解中使用已有的基于模块的内聚和耦合技术。
第二个是通过选择架构风格来实现质量和商业需求。
第三个是软件模板的使用。
ABSD方法是一个自顶向下,递归细化的过程,软件系统的架构通过该方法得到细化,直到能产生软件构件的类。
软考高级系统架构师知识点一、知识概述《软考高级系统架构师知识点》①基本定义:软考高级系统架构师是一个针对计算机系统架构相关知识和技能的高级别认证考试涉及的知识点。
简单说就是关于怎么把一个计算机系统,像建大楼似的规划好、设计好,从硬件到软件,各个部分怎么搭配让系统性能优秀、可靠、安全等方面的知识。
②重要程度:在计算机领域尤其是涉及大型系统开发和架构设计方面那可是相当重要的。
就好比建高架桥得有专业设计师设计好结构一样,大型软件系统也需要架构师设计好系统结构。
这能让企业的软件项目顺利进行,节约成本避免走弯路。
③前置知识:像编程语言(如Java、C++等),操作系统基础(懂得Windows、Linux这些系统的常规操作原理等),数据库基础(知道怎么创建、管理数据库等)这些都得先掌握些。
④应用价值:实际应用场景可多了去了。
像电商公司开发大型购物平台,社交软件公司搭建聊天应用,都需要系统架构师来设计系统框架才能应对高并发、海量数据存储这些问题。
二、知识体系①知识图谱:这个知识点在软考体系里处于高级水平的重要位置,涵盖从系统需求分析开始,到架构设计,再到最后的架构评估优化这么一个整体流程相关的知识。
②关联知识:它和软件工程知识联系密切,因为软件从开发到部署都要在设计好的架构里进行。
还有计算机网络知识,架构师得考虑分布式系统架构下网络传输等问题。
③重难点分析:掌握难度比较大。
一方面理论知识多而且抽象,像架构风格这些。
另一方面还得有实际项目经验。
关键点在于把理论结合实际项目。
④考点分析:在考试中占很大比例。
考查方式可能有选择题分析概念,简答题阐述架构设计思路,还有可能给个案例让你去分析架构的优劣并改进。
三、详细讲解【理论概念类】①概念辨析:核心概念有比如架构风格,简单说就是系统架构像盖房子的风格有欧式、中式那样,有分层架构、事件驱动架构等不同风格,就是组织系统各部分的一种方式。
②特征分析:以分层架构为例,它的主要特点就是把系统按不同功能分层,像表现层、业务逻辑层、数据访问层。
系统架构设计师复习资料【自己整理】系统架构师是怎样炼成的坦率的讲,除了少数对开发程序极其热爱并愿意为之奋斗终身的编程者来说,对于大多数开发人员,写代码只是他们未来获得职业提升的一个必不可少的积累阶段,在做开发的时间里,他们会积极学习各种知识,经验,培养自己的商业头脑,包括扩展自己各方面的资源,这些积累会为他们未来成为管理者或创业打下牢固的基础。
成为架构设计师是广大开发者职业发展道路之一,架构师究竟是个什么样的职业?需要具备什么基本能力?如何才能成为一个优秀的架构设计师以及架构设计师需要关注哪些内容?针对有关问题,本期我们为您采访了(微软认证专家,系统分析员,希赛顾问团顾问,中国计算机学会会员) 张友邦,他会就相关问题与大家分享他的看法。
“在我工作的六年多时间里,除了第一年是纯粹编码以外,其余时间都在做和架构设计有关的工作,当然也还一直在写各种各样的代码。
”张友邦认为架构设计可能看起来很神秘,新入门或没有架构设计经验的程序员刚开始的时候会有种不知所措的感觉,但其实架构设计是件很容易的事,它只是软件系统开发中的一个环节而已,整个软件系统的开发和维护以及变更还涉及到很多事情,包括技术、团队、沟通、市场、环境等等。
同时,张友邦表示,虽然架构设计是件容易的事情,但也不是大多数没有架构设计经验的程序员想象中的画画框图那么简单。
把几台服务器一摆,每一台服务器运行什么软件分配好,然后用网络连接起来,似乎每个企业级应用都是如此简间单单的几步。
但现实生活中的软件系统实实在在可以用复杂大系统来形容,从规划、开发、维护和变更涉及到许许多多的人和事。
架构设计就是要在规划阶段都把后面的事情尽量把握进来,要为稳定性努力,还要为可维护性、扩扩展性以及诸多的性能指标而思前想后。
除了技术上的考虑,还要考虑人的因素,包括人员的组织、软件过程的组织、团队的协作和沟通等。
另外,架构设计还需要方法论的指导。
张友邦强调,这些方法论的思路包括,至上而下的分析,关注点分离,横向/纵向模块划分等。
架构师十大知识点总结作为一名架构师,需要具备全面的技术知识和丰富的经验,才能够设计出高效可靠的系统架构。
在实际工作中,架构师需要掌握一系列的知识点,才能够胜任复杂的系统设计任务。
以下是我对架构师十大知识点的总结,希望能够帮助大家更好地理解和掌握这些知识。
一、系统设计原则系统设计原则是系统架构师必须掌握的核心知识之一。
在系统设计过程中,需要遵循一系列的原则,如高内聚低耦合、模块化设计、接口设计等。
这些原则可以帮助架构师设计出稳定高效的系统架构,提高系统的可维护性和可扩展性。
二、软件架构软件架构是系统设计的关键组成部分。
架构师需要深入了解各种常见的软件架构,如分层架构、微服务架构、事件驱动架构等。
通过了解不同的软件架构,架构师可以根据实际需求选择最合适的架构模式,确保系统具有高性能和高可靠性。
三、数据库设计数据库设计是系统架构设计的重要环节。
架构师需要了解各种常见的数据库技术,如关系型数据库、NoSQL数据库、分布式数据库等。
同时,还需要掌握数据库设计的基本原则,如范式化设计、索引设计、事务处理等。
只有深入了解数据库设计,才能够设计出高效可靠的数据存储方案。
四、网络架构在当今互联网时代,网络架构设计是系统设计的重要组成部分。
架构师需要了解各种常见的网络架构技术,如CDN、负载均衡、反向代理等。
同时还需要掌握网络安全、性能优化、无状态通信等相关知识。
只有深入了解网络架构,才能够设计出稳定高效的系统架构。
五、安全架构安全架构设计是系统设计中一个关键的环节。
架构师需要了解各种常见的安全技术,如SSL/TLS、加密算法、防火墙、入侵检测系统等。
同时还需要掌握安全架构设计的基本原则,如最小权限原则、防御深度原则、安全审计等。
只有深入了解安全架构,才能够设计出安全可靠的系统架构。
六、系统性能优化系统性能优化是系统设计中一个关键的环节。
架构师需要了解各种常见的性能优化技术,如缓存、负载均衡、分布式计算等。
同时还需要掌握性能测试、性能监控、性能调优等相关知识。
系统架构师知识点摘要:1.系统架构师的定义和职责2.系统架构师的必备技能3.系统架构设计的重要性4.系统架构设计的流程和方法5.系统架构师的未来发展趋势正文:一、系统架构师的定义和职责系统架构师,顾名思义,是负责设计和规划系统架构的专业人员。
他们需要确保系统的稳定性、可扩展性和可维护性,以满足业务需求。
作为系统架构师,他们的主要职责包括:进行系统需求分析,制定系统架构设计方案,评估系统性能,以及参与项目的技术决策等。
二、系统架构师的必备技能要成为一名优秀的系统架构师,需要掌握一定的技能。
这些技能包括:1.扎实的计算机基础知识,如操作系统、计算机网络、数据结构与算法等;2.熟悉各种软件开发方法和流程,如敏捷开发、瀑布模型等;3.熟悉各种系统架构设计模式,如分层架构、微服务架构等;4.熟悉数据库设计和优化技术;5.良好的沟通和团队协作能力。
三、系统架构设计的重要性系统架构设计是软件开发过程中至关重要的一环。
一个优秀的系统架构可以提高系统的灵活性、可扩展性和可维护性,从而降低开发和维护成本。
此外,良好的系统架构还可以提高系统安全性,降低系统风险。
四、系统架构设计的流程和方法系统架构设计没有固定的流程,但通常包括以下几个步骤:1.需求分析:了解业务需求,明确系统功能和性能指标;2.架构选型:根据需求选择合适的架构风格,如分层架构、事件驱动架构等;3.模块划分:将系统功能分解为若干个模块,并确定模块间的接口和关系;4.设计详细架构:对每个模块进行详细设计,包括数据结构、算法和接口等;5.验证和评估:对架构设计进行验证和评估,确保满足性能和可靠性要求;6.实施和优化:根据设计文档进行开发,并在实际运行中进行优化。
五、系统架构师的未来发展趋势随着云计算、大数据和人工智能等技术的发展,系统架构师将面临更多的挑战和机遇。
未来,系统架构师需要掌握更多新技术,如容器技术、边缘计算等,以满足不断变化的业务需求。
系统架构设计师一本通-精华知识点一、系统架构基础概念。
1. 架构定义与目标。
- 系统架构是对系统的组成结构、元素间关系、系统与环境间关系等的高层次描述。
其目标包括满足功能需求、非功能需求(如性能、可靠性等),并为系统的演进提供框架。
- 例如,企业级信息系统架构需要考虑不同业务模块间的数据交互、用户访问权限管理等多方面因素。
2. 架构视图。
- 逻辑视图:描述系统的功能组件及其关系,关注系统的功能需求。
如电商系统中用户管理、商品管理、订单处理等功能模块的逻辑关系。
- 物理视图:涉及系统的硬件、软件在物理环境中的部署。
例如,服务器的分布、网络设备的连接等。
- 开发视图:着眼于软件开发过程中的模块划分、代码结构等。
对于大型软件项目,合理的开发视图有助于提高代码的可维护性和开发效率。
- 进程视图:主要针对系统运行时的进程、线程等的交互与调度。
在多用户并发访问的系统中,进程视图能帮助优化资源分配和提高响应速度。
3. 架构风格。
- 分层架构:将系统按照功能层次进行划分,如常见的三层架构(表示层、业务逻辑层、数据访问层)。
每层有明确的职责,层与层之间通过接口进行通信。
这种风格提高了系统的可维护性和可扩展性。
- 微服务架构:将系统拆分为多个小型、独立的服务,每个服务都可以独立开发、部署和扩展。
例如,在电商系统中,用户服务、商品服务、支付服务等微服务可以根据业务需求灵活组合和演进。
- 事件驱动架构:基于事件的产生和处理构建系统。
在物联网系统中,传感器产生的事件可以触发相应的处理逻辑,如温度传感器检测到异常温度后触发报警机制。
二、需求工程。
1. 需求获取。
- 与用户、利益相关者进行沟通,采用的方法包括访谈、问卷调查、观察等。
例如,开发医疗信息系统时,通过与医生、护士、患者等不同角色的访谈,获取他们对系统功能和操作流程的需求。
- 收集业务流程、规则等信息。
对于金融系统,需要深入了解各种金融业务的交易规则、风险控制流程等需求。
2016系统架构师考试知识点总结1操作系统操作系统是计算机系统中的核心系统软件,负责管理和控制计算机系统中硬件和软件资源,合理组织计算机工作流程和有效利用资源,在计算机与用户之间起接口的作用1.1操作系统的类型操作系统的类型(依据使用环境和对作业的处理方式)分为批处理、分时、实时、网络和分布式等。
1、批处理:把作业分类,把一批作业编成一个作业执行序列。
可分联机和脱机。
特征为脱机使用计算机、成批处理和多道程序运行。
2、分时:采用分时技术,使多个用户同时以会话控制自己程序的运行,每个用户都认为拥有各自独立的、支持自己请求服务的系统。
特征有交互性、多用户同时性和独立性。
3、实时:专用,系统与应用难分离。
并不强调资源利用率,更关心及时性、可靠性和完整性。
分实时过程控制和实时信息处理。
特征有即时响应、高可靠性。
4、网络:按网络架构的各个协议标准制订,包括网络管理、通信、资源共享、系统安全和多种网络应用,实现协同工作和应用集成。
特征有互操作性、协作处理。
5、分布式:要求一个统一的操作系统,实现系统操作的统一性,负责全系统的资源分配和调度,为用户提供统一的界面。
6、操作系统的5项基本功能,包括处理器管理、存储管理、设备管理、文件管理和作业管理。
1.2操作系统的结构结构分为无序、层次、面向对象、对称多处理和微核。
1、无序:又称整体或模块结构。
以大型表格和队列为中心,操作系统各个部分围绕着表格运行,整个系统是一个程序。
模块结构相对独立,模块之间通过规定的接口相互调用。
优点为缩短开发周期。
缺点是模块之间调用关系复杂、相互依赖,使分析、移植和维护系统较易出错。
2、层次:操作系统分解成若干个单向依赖的层次,由多层正确性保证操作系统的可靠性。
优点层次结构清晰,简化了接口设计,有利于系统功能的增加或删改,易于保证可靠性,便于维护和移植。
3、面向对象:基于面向对象程序设计的概念,采用了各种不同的对象技术。
把对象最为系统中的最小单位,由对象、对象操作、对象保护组成的操作系统。
优点适用于网络操作系统和分布式操作系统。
4、对称多处理:所有多处理运行且共享同一存(存储器、主存、实存)。
优点适合共享存储器结构的多处理机系统。
5、微核:把系统的公共部分抽象出来,形成一个底层核心,提供最基本的服务,其他功能以服务器形式建立在微核之上。
具有良好的模块化和结构化特征,模块之间和上下层之间通过消息来通信。
操作系统大多拥有两种工作状态:核心态和用户态。
一般的应用程序工作在用户态,核模块和最基本的操作系统核心工作在核心态。
微核结构由一个简单的硬件抽象层和一组比较关键的原语(仅仅为建立系统必须的部分,包括线程管理、地址空间和进程间通信)或系统调用组成。
微核的目标将系统服务的实现和系统的基本操作规则分离开来。
微核技术的优点:(1)统一的接口;(2)可伸缩性好;(3)可移植性好;(4)实时性好;(5)安全可靠性高,安全是微核的特性;(6)支持分布式系统、支持多处理器的架构和高度并行的应用程序;(7)真正面向对象的操作系统。
1.3处理器管理程序的并行运行就涉及到资源的竞争使用,就需要管理其核心资源。
1.3.1进程状态进程是一个程序关于某个数据集的一次运行。
进程是程序的一次运行活动,动态的概念,而程序是静态概念,是指令的集合。
进程具有动态性和并发性,程序是进程运行时所对应的运行代码。
在操作系统中进程是进行系统分配、调度和管理的最小单位,线程是处理器分配资源的最小单位。
静态的观点看,进程是程序、数据和进程控制块组成,动态观点看,进程是计算机状态的一个有序集合。
进程状态总体分为为三态模型和五态模型。
1、三态模型(所有进程在存中)包括运行、就绪和等待态。
运行态→就绪态,运行时间片到;出现更高优先权进程。
运行态→等待态,等待使用资源,如等待外设传输;等待人工干预。
就绪态→运行态,CPU空闲时选择一个就绪进程;等待态→就绪态,资源得到满足,如外设传输结束;人工干预完成。
2、五态模型:包括运行、活跃就绪、活跃阻塞、静止就绪和静止阻塞。
1.3.2信号量和PV操作操作系统中,进程之间存在互斥和同步。
1、互斥控制是为了保护共享资源,不让多个进程同时访问这个共享资源。
就是阻止多个进程同时访问这些资源的代码段(临界区),一次只允许一个进程访问的资源。
初始值信号量S应该设置为1.2、同步控制进程A在另一个进程B到达指定位置L2之前,不应前进到超过点L1。
初始值信号量S应该设置为03、生产者-消费者问题不仅要解决生产者进程与消费者进程的同步关系,还要处理缓冲区的互斥关系。
1.3.3死锁问题死锁是指多个进程之间互相等待对方的资源,而在得到对方资源之前又不释放自己的资源,这样,造成循环等待的一种现象。
1、死锁发生的必要条件产生死锁的根本原因在于系统提供的资源个数少于并发进程要求的该类资源数。
产生死锁有4个必要条件:互斥条件、不可抢占条件、保持与等待条件(部分分配条件)、循环等待条件。
2、银行家算法指在分配资源之前先看清楚,资源分配后是否会导致系统死锁。
如果会死锁,则不分配,否则就分配。
3、解决死锁的策略(1)死锁预防。
破坏导致死锁必要条件中的任意一个就可以预防死锁。
(2)死锁避免。
指进程在每次申请资源时判断这些操作是否安全。
(3)死锁检测。
判断系统是否处于死锁状态,如果是,则执行死锁解除策略。
(4)死锁解除。
将某进程所拥有的资源强行收回,分配给其他的进程。
1.3.4管程与线程1、管程由管程名、局部子管程的变量说明、使用共享资源并在数据集上进行操作的若干过程,对变量赋初值的语句等4个基本部分组成。
每一个管程管理一个临界资源。
2、线程可共享进程的资源与地址空间,通过线程的活动,进程可以提供多种服务或实行子任务并行。
多线程实现的并行避免了进程间并行的缺点:创建线程的开销比创建进程要小,同一进程的线程共享进程的地址空间。
1.4文件管理对外部存储设备上以文件方式存放的信息的管理。
用户通过对文件的访问(读写)来完成对文件的查找、修改、删除和添加等操作。
常用的访问方法有两种,即顺序访问和随机访问。
1.4.1文件的逻辑组织逻辑结构是用户可见的结构。
文件的逻辑结构可以分为无结构的字符流文件和有结构的记录文件(格式文件)两种。
记录文件由记录组成,即文件容划分为多个记录,以记录为单位组织和使用信息。
常用的记录式结构有连续结构、多重结构、转置结构和顺序结构。
用户通过对文件的存取来完成对文件的修改、追加和搜索等操作,常用的存取方法有顺序存取法、随机存取法(直接存取法)和按键存取法。
1.4.2文件的物理组织文件的物理结构是指文件在存储设备上的存储方法,常用的文件物理结构有连续文件(顺序文件)、串联文件(文件)和索引文件。
1.4.3树形目录结构文件控制块的集合被称为文件目录,文件目录被组织成文件,叫目录文件。
文件管理的一个重要的方面是对文件目录进行组织和管理。
文件系统一般采用一级目录结构、二级目录、多级目录结构。
DOS、UNIX和WINDOWS都是采用多级树形目录结构。
路径是指从树形目录中的某个目录层次到某个文件的一条道路。
1.4.4存储空间管理文件存储设备的管理实质上是对空闲块的组织和管理问题,包括空闲块的组织、空闲块的分配与空闲块的回收等问题。
存储管理方法有:1、空闲表法;2、空闲链表法(包括空闲盘块链、空闲盘区链);3、位图法;(4)成组连接法(将空闲表和空闲链表结合形成的一种空闲盘块管理方法)。
1.5存储管理虚拟存储技术,即在存中保留一部分程序或数据,在外存中放置整个地址空间的副本。
虚拟存储技术是一种性能非常优越的存储器管理技术,被广泛地应用于大、中、小型及微型机中。
1.5.1地址变换用户编程所用的地址(虚地址),实际的存地址则称为物理地址(实地址)。
每次访问存时都要进行逻辑地址到物理地址的转换,这种转换由硬件完成的,而存和外存间的信息动态调度是硬件和操作系统两者配合完成的。
1、静态重定位:在虚空间程序执行之前由装配程序完成地址映射工作。
优点:不需要硬件的支持;缺点:无法实现虚拟存储器,必须占用连续的存空间且难以做到程序和数据的共享。
2、动态重定位:在程序执行过程中,在CPU访问存之前,将要访问的程序或数据地址转换为存地址。
动态重定位依靠硬件地址变换机制完成,其优点主要是可以对存进行非连续分配;提供了虚拟存储器的基础;有利于程序段的共享。
1.5.2存储组织虚拟存储器分为单一连续分区、固定分区、可变分区、可重定位分区、非请求页式、请求页式和段页式7种。
(((x)+s)+p)*2^n+d,其中x为基号,s段号,p页号,d为页偏移,n的值为d的总位数。
(x)表示x里的容。
1.5.3存储管理在虚拟存储器的管理中,涉及到载入(调入)、放置(放入分区)和置换等问题1、调入策略:何时将一页或一段从外存中调入存,通常有两种策略,包括请求调入法和先行调入法。
2、放置策略:调入后,放在存的什么位置。
3、置换策略:实际存小于虚存的,可能发生存中已满,但需要使用的页不在存中这一情况(缺页中断),就需要进行置换,即将一些存中的页淘汰到外存,腾出空间给要使用的页。
4、置换算法:(1)最优OPT算法:淘汰不再使用或将来才使用的页;(2)随机Rand算法,随机的选择淘汰的页,开销很小,但可能选中立即就要使用的页;(3)先进先出FIFO算法:可能会出现Belady现象;(4)最近最少使用LRU算法5、存储管理局部性原理分时间局部性和空间局部性。
时间局部性指最近访问存储位置,很可能在不久将来还要访问;空间局部性指存储访问有成组的倾向,当访问了某个位置后,很可能也要访问其附近的位置。
根据局部性原理的特征性,Denning阐述了程序性能的工作集理论。
工作集是进程频繁访问的页面集合。
工作集理论指出,为使进程有效地运行,它的页面工作集中、应驻留存中。
控制颠簸的技术还有控制缺页率。
1.6作业管理操作系统中用来控制作业的进入、执行和撤销的一组程序称为作业管理程序。
在作业管理中,系统为每一个作业建立一个作业控制模块jcb,系统通过jcb感知作业的存在。
JCB包括的主要容有作业名、作业状态、资源要求、作业控制方式、作业类型以及作业优先权。
1.6.1作业状态一个作业从交给计算机系统到执行结束退出系统,一般都要经历提交、后备、执行和完备4个状态。
1.6.2作业调度1、处理器调度分为三级调度,即低级调度、中级调度和高级调度。
2、低级调度(进程调度):确定处理器在就绪进程间的分配;中级调度(交换调度):决定进程在、外存之间的调入、调出;高级调度(作业调度):选取一个或一组作业,为它们建立进程,分配必要的资源,使它们能够运行起来。
3、作业调度主要完成从后备状态到执行状态的转变,及从执行状态到完成状态的转变。
4、作业调度算法有如下几种:(1)先来先服务FCFS;(2)短作业优先SJF;(3)响应比高者优先HRN=1+W/T;(4)优先级调度。