2019/8/28 日常学习的一天

目录

  • ①、缓冲池
  • ②、八大软件开发方法
  • ③、动态链接库
  • ④、smalltalk
  • ⑤、Dynabook
  • ⑥、存储器、运算器和控制器的结构
  • ⑦、计算机工作过程

①、缓冲池

?缓冲技术是为了协调吞吐速度相差很大的设备之间数据传送而采用的技术。
?为了缓和CPU和I/O设备速度不匹配的矛盾,提高CPU和I/O设备的并行性,在现代操作系统中,几乎所有的I/O设备在与处理机交换数据时都用了缓冲区,并提供获得和释放缓冲区的手段。总结来说,缓冲区技术用到了缓冲区,而缓冲区的引入是为了缓和CPU和I/O设备的不匹配,减少对CPU的中断频率,提高CPU和I/O设备的并行性。

在操作系统中,引入缓冲的主要原因:

  1. 改善CPU与I/O设备间速度不匹配的矛盾
  2. 可以减少对 CPU的中断频率,放宽对中断响应时间的限制
  3. 提高 CPU和 I/O设备之间的并行性

?缓冲池:把多个缓冲区连接起来统一管理,既可用于输入又可用于输出的缓冲结构。
?缓冲池由多个缓冲区组成。
?而一个缓冲区由两部分组成:一部分是用来标识该缓冲器和用于管理的缓冲首部,另一部分是用于存放数据的缓冲体。这两部分有一一对应的映射关系。对缓冲池的管理是通过对每一个缓冲器的缓冲首部进行操作实现的。
?缓冲首部包括设备号、设备上的数据块号(块设备时)、互斥标识位以及缓冲队列连接指针和缓冲器号等。

参考资料
【百度百科】缓冲技术

②、八大软件开发方法

1. Parnas方法(信息隐藏原则)
?主要针对可维护性和可靠性
?首先,Parnas提出了信息隐蔽原则:在概要设计时列出将来可能发生变化的因素,并在模块划分时将这些因素放到个别模块的内部。这样,在将来由于这些因素变化而需修改软件时,只需修改这些个别的模块,其它模块不受影响。
?Parnas提出的第二条原则是在软件设计时应对可能发生的种种意外故障采取措施。如在分配使用设备前,应该取设备状态字,检查设备是否正常。此外,模块之间也要加强检查,防止错误蔓延。Parnas对软件开发提出了深刻的见解。遗憾的是,他没有给出明确的工作流程。所以这一方法不能独立使用,只能作为其它方法的补充。

2.SASD方法 (结构化方法)
?可称为面向功能的软件开发方法或面向数据流的软件开发方法。
?Yourdon方法是80年代使用最广泛的软件开发方法。它首先用结构化分析(SA)对软件进行需求分析,然后用结构化设计(SD)方法进行总体设计,最后是结构化编程(SP)。

?结构化分析
?是根据分解与抽象的原则,按照系统中数据处理的流程,用数据流图来建立系统的功能模型,从而完成需求分析工作。

?结构化设计
?根据模块独立性准则、软件结构优化准则将数据流图转换为软件的体系结构,用软件结构图来建立系统的物理模型,实现系统的概要设计。

?结构化程序设计
?使用3种基本控制结构构造程序,任何程序都可以由顺序、选择和重复3种基本控制结构构造。

?结构化方法总的指导思想是自顶向下、逐层分解,它的基本原则是功能的分解与抽象。适合于数据处理领域的问题,不适合解决大规模的、特别复杂的项目,且难以适应需求的变化。

3.面向数据结构的软件开发方法
?Jackson方法
?这一方法从目标系统的输入、输出数据结构入手,导出程序框架结构,再补充其它细节,就可得到完整的程序结构图。这一方法对输入、输出数据结构明确的中小型系统特别有效,如商业应用中的文件表格处理。该方法也可与其它方法结合,用于模块的详细设计。
?Jackson方法有时也称为面向数据结构的软件设计方法。

?Warnier方法
?Warnier提出的软件开发方法与Jackson方法类似。差别有三点:一是它们使用的图形工具不同,分别使用Warnier图和Jackson图;另一个差别是使用的伪码不同;最主要的差别是在构造程序框架时,Warnier方法仅考虑输入数据结构,而Jackson方法不仅考虑输入数据结构,而且还考虑输出数据结构。

4.问题分析法
?PAM问题分析法。PAM(Problem Analysis Method)
?它的基本思想是:考虑到输入、输出数据结构,指导系统的分解,在系统分析指导下逐步综合。这一方法的具体步骤是:
从输入、输出数据结构导出基本处理框;分析这些处理框之间的先后关系; 按先后关系逐步综合处理框,直到画出整个系统的PAD图。  从上述步骤中可以看出,这一方法本质上是综合的自底向上的方法,但在逐步综合之前已进行了有目的的分解,这个目的就是充分考虑系统的输入、输出数据结构。
?PAM方法的另一个优点是使用PAD图。这是一种二维树形结构图,是到目前为止最好的详细设计表示方法之一,远远优于NS图和PDL语言。

5.面向对象的软件开发方法
?随着OOP(面向对象编程)向OOD(面向对象设计)和OOA(面向对象分析)的发展,最终形成面向对象的软件开发方法OMT(Object Modelling Technique)。这是一种自底向上和自顶向下相结合的方法,而且它以对象建模为基础,从而不仅考虑了输入、输出数据结构,实际上也包含了所有对象的数据结构。所以OMT彻底实现了PAM没有完全实现的目标。不仅如此,OO技术在需求分析、可维护性和可靠性这三个软件开发的关键环节和质量指标上有了实质性的突破,彻底地解决了在这些方面存在的严重问题,从而宣告了软件危机末日的来临。

6.可视化开发方法
?可视化开发就是在可视开发工具提供的图形用户界面上,通过操作界面元素,诸如菜单、按钮、对话框、编辑框、单选框、复选框、列表框和滚动条等,由可视开发工具自动生成应用软件。
?这类应用软件的工作方式是事件驱动。对每一事件,由系统产生相应的消息,再传递给相应的消息响应函数。这些消息响应函数是由可视开发工具在生成软件时自动装入的。

7.ICASE
?ICASE的进一步发展则是与其它软件开发方法的结合,如与面向对象技术、软件重用技术结合,以及智能化的I-CASE。近几年已出现了能实现全自动软件开发的ICASE。
?ICASE的最终目标是实现应用软件的全自动开发,即开发人员只要写好软件的需求规格说明书,软件开发环境就自动完成从需求分析开始的所有的软件开发工作,自动生成供用户直接使用的软件及有关文档。

8.软件重用和组件连接
?软件重用(Reuse)又称软件复用或软件再用。软件人工制品可以是源代码片断、子系统的设计结构、模块的详细设计、文档和某一方面的规范说明等。所以软件重用是利用已有的软件成份来构造新的软件。它可以大大减少软件开发所需的费用和时间,且有利于提高软件的可维护性和可靠性。

参考资料
【百度百科】软件开发方法

③、动态链接库

2019/8/28 日常学习的一天
?Smalltalk被公认为历史上第二个面向对象的程序设计语言和第一个真正的集成开发环境 (IDE)。
?Smalltalk和许多程序设计语言不同,它不仅仅是一门语言。

? 一种面向对象的程序设计语言:它是一种面向对象的语言,包含语言的语法和语义。一些编译器可以通过Smalltalk源程序产生可执行文件。这些编译器通常产生一种能在虚拟机上运行的二进制代码。Smalltalk语言本身非常精炼。
?一种程序设计环境:这里指的是一种提供许多 对象 的系统,而不是某种特殊的开发环境。和许多语言不同(包括C++),Smalltalk附带有一个巨大的、相当标准的类库。这些 类 使得开发Smalltalk程序的效率非常高。在其它语言(例如 Ada , C 和 Pascal )中通常被作为语言的一部分的功能(例如条件判断,循环等),在Smalltalk由特定的类提供。
?一个应用开发环境(ADE):由于Smalltalk的历史原因,它具有一个非常优秀的高度集成、开放的应用开发环境。由于开发环境中的浏览器、监视器以及调试器都由同样的源程序衍生出来的,不同的版本之间也具有相当好的兼容性。此外,这些工具的源程序都可以在ADE直接存取。

⑤、Dynabook

? Dynabook,是艾伦·凯于1968年所提出的电子书的概念,Alan Kay 想像这是一台可以带着跑的电脑。

⑥、存储器、运算器和控制器的结构

2019/8/28 日常学习的一天
?启动机器,首先 PC ( 程序计数器 ) 存放的是一条指令的地址,对于这条指令指令送到存储器的 MAR ( 地址寄存器 ) 中。并命令存储器执行读操作,然后将读取的内容送至MDR ( 数据寄存器 ) 。然后MDR 讲指令送到 IR ( 指令寄存器 ) 中。这里就完成了获取指令。( 1-4 )

?IR存放当前指令,然后指令由 IR 送到 CU 控制单元,CU进行分析,该指令进行什么操作。然后获取指令的地址码,获取数据的地址码,这里完成了分析指令。( 5 )

?IR 将地址码送至存储器 MAR,MAR进入存储体读取数据,然后送至 MDR,再由MDR送至运算器。这里就完成了执行指令。

?接着PC=PC+1,读取下一条指令,继续上面的操作。直到获取停机指令,停止工作。

取指令: PC => MAR => M => MDR => IR
分析指令: OP(IR) => CU
执行指令: Ad(IR) => MAR => M => MDR => ACC

参考资料
【Robin_yy】计算机五大组成部件和工作过程

来源:TomLazy

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年7月25日
下一篇 2019年7月25日

相关推荐