2015下半年软件设计师考点,难点

DMA:

  DMA是一种硬件设备。这种设备的工作原理是这样的:
——首先CPU告诉DMA设备,要有一堆数据需要传输,为了效率而请它出马。(DMA请求)
——DMA收到CPU的消息,开始准备。此时CPU把数据源地址、数据目标地址、传输数据量、传输模式等等参数告诉它。(DMA初始化)
——DMA初始化完,向CPU发送消息“借你的总线用一用,我要开始传输数据了!”(总线出借,DMA启动)
——CPU收到消息后,暂时切断自己与总线的联系。DMA开始传输数据。(DMA数据)
——DMA传输完数据之后,向CPU发送消息“搞定了!总线还给你。”(总线归还)
——CPU说:“干得好!老将出马一个顶俩!辛苦了,你先歇着吧。”DMA设备停止。CPU该干啥干啥。
由于是硬件实现的,所以DMA的速度非常快。快到什么程度呢S上,尤其是数据量非常大的时候,相比于CPU当中介,效率能够提高一百万倍以上。
由于DMA的速度是如此之快,所以大量的数据传输,一般都要求使用DMA。

  基础知识

 

防火墙: 

  • 过滤进出 络的数据包
  • 管理进出 络的访问行为
  • 封堵某些禁止的访问行为
  • 记录通过防火墙的信息内容和活动
  • 对 络攻击进行检测和告警
  • 能过滤大部分的危险端口
  • 设置严格的外向内的状态过滤规则
  • 抵挡大部分的拒绝服务攻击

  局限性

    ● 不能防范不经过防火墙的攻击
    ● 对新出现的漏洞和攻击方式不能迅速提供有效的防御方法
    ● 紧急情况下无法做到迅速响应
    ● 无法防止内部的攻击
    ● 不能关闭需提供对外服务的端口
    ● 无法防止利用TCP/IP等协议漏洞的攻击
    ● 不能防止受病毒感染文件的传输
    ● 防火墙自身也可能存在安全漏洞

  白话解析

 

软件的知识产权  

 

声音信 、音频信 :

  基础知识

 

软件开发方法

1.结构化方法:

  关键词:数据流图(面向数据流);自顶向下,逐层分解;功能的分解与抽象;最早出现

  组成:结构化分析,结构化设计、结构化程序设计

  适用场合:数据处理领域的问题;但不适合解决大规模的、特别复杂的项目,难以适应需求的变化

2.Jackson方法:

  关键词:数据结构

  适用场合:

JSP:小规模项目+输入数据结构与输出数据结构有对应关系。

JSD:时序特点较强的系统,包括数据处理系统和一些实时控制系统,以事件为驱动。

3.原型化方法:

  关键词:快速开发、需求不清

  适用场合:用户需求不清,业务理论不确定,需求经常变化的情况+当系统规模不是很大,也不太复杂时=采用该方法比较好的

5.面向对象开发方法:

  关键词:对象(按照人类认识世界的方法和思维)、UML(Unified Modeling Language,统一建模语言)

  组成:面向对象分析、面向对象设计、面向对象实现

  包括:Booch方法、Coad方法、OMT方法……

 

软件生存周期模型

1.瀑布模型(waterfall model)

  关键词:线性顺序(固定次序)、以文档为驱动、需求很明确

  使用场合:需求很明确(以文档为驱动);但缺乏灵活性,无法解决需求不明确、不准确的问题。一种理想的线性开发模式

2.演化模型(evolutionary model)=增量模型(Incremental Model)

  关键词:原型、需求模糊、快速构造一个初始可运行版本,逐步演化为最终版本、活动级迭代、交错的线性序列

  使用场合:需求缺乏准确认识,需求模糊

  先做总体需求分析、设计,编码、测试中逐个增量开发;在上一次增量的基础上提交新的一部分软件;避免使用未成熟技术、经常的客户反馈等方法减少风险

  强调每一个增量均发布一个可操作产品。早期的增量是最终产品的“可拆卸”版本,但提供了为用户服务的功能,并且为用户提供了评估的平台  

 

  编译器包括:

词法分析、语法分析、语义分析、中间代码生成、代码优化目标代码生成、符 表管理、出错处理

以中间代码为分水岭,分为机器有关、机器无关。同一种程序语言的编译器,开发出一个前端之后,就可以针对不同的机器开发相应的后端,前后端有机结合就形成了该语言的一个编译器

  区别:

1.编译方式下,机器上运行的是与源程序等价的目标程序。源程序、编译程序都不再参与到目标程序的执行过程中。翻译成独立保存的目标程序

2.解释方式下,解释程序、源程序(或某种等价表示)要参与到程序的运行过程中。运行程序的控制权在解释程序。不生成独立的目标程序

 

PV操作、同步信 量、互斥信 量

  互斥:“你用的时候别人都不能用,别人用的时候,你也不能去用”,是一种源于资源共享的间接制约关系。

  同步:“我们大家利用一些共同的资源区,大家一起合作,完成某些事情,但是我在干某些小事的时候,可能要等到你做完另一些小事”,是一种源于相互合作的直接制约关系。

  互斥的进程间没有必然的联系,属于竞争者关系,谁竞争到资源(的使用权),谁就使用它,直到使用完才归还。就比如洗衣房的洗衣机这个资源,去洗衣的同学并不需要有必然联系,你们可以互不认识,但是谁竞争到洗衣机的使用权,就可以使用,直到洗完走人。

 

  

  在实现互斥时,P,V操作相当于申请资源和释放资源。

  同步与互斥实现的P,V操作虽然都是成对出现。但是互斥的P,V操作出现在同一个进程的程序里,而同步的P,V操作出现在不同进程的程序中。

  同步:多个进程在执行次序上的协调,相互等待消息

      互斥:对临界资源的使用

  虽然P,V操作在每一个进程中都是成对出现的,但不一定是针对一个信 量。互斥信 量的P,V操作总是出现在一个进程中的临界区的前后,而同步信 量的P,V操作总是出现在具有同步关系的两个进程中,需要等待消息的一方执行P操作,发出消息的一方执行V操作。

 

单缓冲、双缓冲

  缓冲区: 

  • 缓和CPU与I/O设备间速度不匹配的矛盾。
  • 减少对CPU的中断频率,放宽对CPU中断响应时间的限制。
  • 解决基本数据单元大小(即数据粒度)不匹配的问题。
  • 提高CPU和I/O设备之间的并行性。

  CPU与I/O设备间速度不匹配,解决方法:

  • 釆用硬件缓冲器,但由于成本太高,除一些关键部位外,一般不釆用硬件缓冲器
  • 釆用缓冲区(位于内存区域)

  单缓冲:

  如图5-5所示,在块设备输入时,假定从磁盘把一块数据输入到缓冲区的时间为T,操作系统将该缓冲区中的数据传送到用户区的时间为M,而CPU对这一块数据处理的时间为 C。

  由于T和C是可以并行的,当T>C时,系统对每一块数据的处理时间为M十T,反之则为M+C,故可把系统对每一块数据的处理时间表示为Max(C, T)+M。T和M,M和C是不可以并行的

文章知识点与官方知识档案匹配,可进一步学习相关知识算法技能树首页概览35256 人正在系统学习中 相关资源:…有人说学了一年半软件理论,就一门编译看不懂;有人甚至说它是…

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2016年9月15日
下一篇 2016年9月15日

相关推荐