逻辑结构

程序设计语言发展回顾与展望

夙愿已清 提交于 2020-01-12 19:25:20
文章转载自:计算机世界网,原文链接地址:http://www2.ccw.com.cn/1995/13/138106.shtml 编者按:程序设计语言是与现代计算机共同诞生、共同发展的,至今已有40余年的历史,早已形 成了规模庞大的家族。进入80年代以后,随着计算机的日益普及和性能的不断改进,程序设 计语言也相应得到了迅猛发展。 《程序设计语言发展回顾与展望》一文对程序设计语言的发展历程进行了回顾,并对一 些著名语言的背景、特点、长处与不足,及其对程序设计语言发展的贡献作出了评述。 《面向对象方法、语言与支撑环境的特征与缺陷》一文对面向对象方法、语言与支撑 环境的优缺点进行了详细的评述,并对其发展方向做出了展望。 《实时程序语言的过去、现在和将来》一文中,阐述了计算机实时应用中对程序设计语 言的特殊要求,介绍了一些具有代表性的实时语言的设计和使用,并指出了实时程序设计语 言的发展方向。 《三种Windows Basic的介绍》一文中,介绍了用于Windows环境下的Basic语言的发展 情况。对Windows下的CA-Realizer 2.0、GFA Basic 4.1O和Visual Basic 3.0进行了介绍 和比较。 本期技术纵横:《奔腾(Pentium)芯片的瑕疵》。文中对Pentium芯片在做双精除法时出 现错误的发现过程做了详细介绍,并分析了这种瑕疵产生的原因

Linux 内核中的 Device Mapper 机制

核能气质少年 提交于 2020-01-11 22:14:05
本文结合具体代码对 Linux 内核中的 device mapper 映射机制进行了介绍。Device mapper 是 Linux 2.6 内核中提供的一种从逻辑设备到物理设备的映射框架机制,在该机制下,用户可以很方便的根据自己的需要制定实现存储资源的管理策略,当前比较流行的 Linux 下的逻辑卷管理器如 LVM2(Linux Volume Manager 2 version)、EVMS(Enterprise Volume Management System)、dmraid(Device Mapper Raid Tool)等都是基于该机制实现的。理解该机制是进一步分析、理解这些卷管理器的实现及设计的基础。通过本文也可以进一步理解 Linux 系统块一级 IO的设计和实现。 Device Mapper 是 Linux2.6 内核中支持逻辑卷管理的通用设备映射机制,它为实现用于存储资源管理的块设备驱动提供了一个高度模块化的内核架构,如图 1。 图1 Device Mapper的内核体系架构 在 内核中它通过一个一个模块化的 target driver 插件实现对 IO 请求的过滤或者重新定向等工作,当前已经实现的 target driver 插件包括软 raid、软加密、逻辑卷条带、多路径、镜像、快照等,图中 linear、mirror、snapshot、multipath

[MySQL]InnoDB逻辑存储结构

▼魔方 西西 提交于 2020-01-09 05:50:11
InnoDB存储引擎中的表非常像 Oracle 中的索引组织表,每张表必须得有主键,如果表在创建时没有显示定义主键,则根据以下原则自动创建主键: 1)如果有非空的唯一索引,则该索引所在的列为主键; 2)如果不符合上述条件,自动创建一个6个字节的指针为主键。 InnoDB存储引擎的逻辑存储结构和Oracle几乎一样,从大到小分别为:表空间、段、区、页,它们的关系如下图所示: 表空间 我们知道InnoDB有一个默认的表空间,如果我们启用了参数innodb_file_per_table,则针对每张可以单独放在表空间里。这里需要注意的是,即时启用了innodb_file_per_table,也并不是表中所有的数据都单独放在自己的表空间里,单独表空间只存放数据、索引和插入缓冲,其它如Undo、 系统 事务信息、二次写缓冲等还是存放在默认共享表空间里。 段 表空间有若干各段组成,常见的有数据段、索引段、回滚段等。前面提到InnoDB中的表是索引组织表,因此数据段也称为leaf node segment,索引段也称为non-leaf node segment。 区 每64个连续的页组成区,因此区大小正好为1M。 页 页是InnoDB磁盘管理的最小单位,固定大小为16K,不可以更改(也许通过更改 源码 可以修改固定大小)。 行 InnoDB表中数据按行存储。 来源: https://www

Oracle的逻辑存储结构

孤人 提交于 2020-01-08 07:13:21
1 :概述 逻辑存储结构主要描述Oracle数据库的内部存储结构,即从技术概念上描述在Oracle数据库种如何组织、管理数据. Oracle的逻辑存储结构如下图所示: 图4 逻辑结构 从逻辑上来看:   1> 数据库是由一个或者多个表空间等组成   2> 一个表空间(tablespace)由一组段组成   3> 一个段(segment)由一组区组成   4> 一个区(extent)由一批数据库块组成   5> 一个数据库块(block)对应一个或多个物理块   6> 表空间是最大的逻辑单位,块是最小的逻辑单位   因此,逻辑存储结构是和操作系统平台无关的,是由Oracle数据库创建和管理的. 1.1 数据库块 数据库块(Database Block)是数据库使用的I/O最小单元,又称逻辑块或ORACLE块。一个数据库块对应一个或多个物理块,块的大小由参数DB_BLOCK_SIZE确定。块的大小是操作系统块大小的整数倍。以Win2K为例,操作系统块(OS block)的大小为4kb,所以Oracle Block的大小可以是4kb,8kb,16kb等等。如果块的大小为4kb,某表每行的数据是100 bytes.,如果某查询语句只返回1行数据,那么,在将数据读入到数据高速缓存时,读取的数据量时4kb而不是100 bytes. 数据块由以下五部分组成 标题 :包括通用的块信息,如块地址

Oracle逻辑存储结构

旧时模样 提交于 2020-01-08 04:52:37
一、数据块(data blocks)   数据块是 Oracle 数据库逻辑存储结构中的最小单位,也是执行数据库输入输出的最小存储单位。通常 Oracle 数据块是操作系统块的整数倍。数据块的标准大小被写入到初始化参数 DB_BLOCK_SIZE 中, oracle 允许在同一个数据库中存在不同大小的数据块,与标准块大小不同的就是非标准块。 二、数据区( extent )   数据区是由一组连续的 Oracle 数据块所构成的 Oracle 存储结构,由一个或多个数据块组成。一个或多个数据区组成一个段,当段中所有空间被使用完后, Oracle 系统将自动为该段分配一个新的数据区,可见,数据区是 Oracle 存储分配的最小单位。   使用数据区的目的是用来保存特定数据类型的数据,也是表中数据增长的基本单位。在 Oracle 数据库中,分配存储空间就是以数据区为单位的,一个 Oracle 对象包含至少一个数据区。设置一个表或索引的存储参数包含设置它的数据区大小。 三、段( segment )   段是由一个或多个数据区构成的,它不是存储空间的分配单位,而是一个独立的逻辑存储结构,用于存储表、索引或簇等占用空间的数据对象。一个段只属于一个特定的数据对象,每当创建一个具有独立段的数据对象时, Oracle 将为它创建一个段。 1.数据段:数据段中保存的是表中的数据记录。建表时

【设计模式自习室】理解工厂模式的三种形式

折月煮酒 提交于 2020-01-04 00:19:06
前言 《设计模式自习室》系列,顾名思义,本系列文章带你温习常见的设计模式。主要内容有: 该模式的 介绍 ,包括: 引子、意图(大白话解释) 类图、时序图(理论规范) 该模式的 代码示例 :熟悉该模式的代码长什么样子 该模式的 优缺点 :模式不是万金油,不可以滥用模式 该模式的 实际使用案例 :了解它在哪些重要的源码中被使用 该系列会逐步更新于我的博客和公众号(博客见文章底部) 也希望各位观众老爷能够关注我的个人公众号: 后端技术漫谈 ,不会错过精彩好看的文章。 系列文章回顾 【设计模式自习室】开篇:为什么我们要用设计模式? 【设计模式自习室】建造者模式 【设计模式自习室】原型模式 【设计模式自习室】透彻理解单例模式 创建型——简单工厂/工厂模式/抽象工厂 引子 工厂模式是一个非常重要的创建型模式,但是工厂模式又分为好多种,并且网上文章很多,很多对工厂模式的定义都不是很明确,甚至还互相冲突,本文希望通过放在一起串讲的形式,力求能够用最简洁的语言 理清 工厂模式。 先看一个工厂模式的定义: “Define an interface for creating an object, but let subclasses decide which class to instantiate. Factory Method lets a class defer instantiation to

Linux 内核中的 Device Mapper 机制

瘦欲@ 提交于 2019-12-25 16:11:08
Device Mapper 是 Linux2.6 内核中支持逻辑卷管理的通用设备映射机制,它为实现用于存储资源管理的块设备驱动提供了一个高度模块化的内核架构,如图 1。 图1 Device Mapper的内核体系架构 在内核中它通过一个一个模块化的 target driver 插件实现对 IO 请求的过滤或者重新定向等工作,当前已经实现的 target driver 插件包括软 raid、软加密、逻辑卷条带、多路径、镜像、快照等,图中 linear、mirror、snapshot、multipath 表示的就是这些 target driver。Device mapper 进一步体现了在 Linux 内核设计中策略和机制分离的原则,将所有与策略相关的工作放到用户空间完成,内核中主要提供完成这些策略所需要的机制。Device mapper 用户空间相关部分主要负责配置具体的策略和控制逻辑,比如逻辑设备和哪些物理设备建立映射,怎么建立这些映射关系等等,而具体过滤和重定向 IO 请求的工作由内核中相关代码完成。因此整个 device mapper 机制由两部分组成–内核空间的 device mapper 驱动、用户空间的device mapper 库以及它提供的 dmsetup 工具。在下文中,我们分内核和用户空间两部分进行介绍。 内核部分 Device mapper

基于Vue的前后端分离项目实践

余生长醉 提交于 2019-12-20 22:51:03
一、为什么需要前后端分离 1.1什么是前后端分离 前后端分离这个词刚在毕业(15年)那会就听说过,但是直到17年前都没有接触过前后端分离的项目。怎么理解前后端分离?直观的感觉就是前后端分开去做,即功能和职责上的一种划分,前端负责页面的渲染,部分页面交互的逻辑,然后通过网络请求与后端进行数据的交互;后端则着重关注业务逻辑的处理,直接操控数据库。 1.2前后端未分离前 (1)jsp + servlet 开发模式: JSP页面:负责视图层的渲染及交互,内部可以嵌入java 代码,在某些场景下开发起来比较方便,但是这种页面和java代码混合开发的方式造成逻辑不够直观,项目代码维护起来困难。 Servlet类: 负责接收from表单提交的参数,进行业务层逻辑和页面导航的处理。但是这种方式需要区分请求的方式,手动把请求的参数拿出来进行封装。基本上一个请求对应一个servlet,需要在web.xml文件中配置urL映射或者注解的方式。 大体流程: 编写JSP页面,引入java常用类库和JSTL标签库,编写HTML表单,CSS,javascript。 编写Servlet 方法,重写service()方法,需要手动获取请求参数,然后业务逻辑处理。 配置web.xml。在web.xml文件中注册servlet,配置请求映射(简单方法:增加注册)。 (2)jsp + spring mvc开发模式

FPGA的工艺与原理

痴心易碎 提交于 2019-12-20 19:48:28
CPLD 是可以等价于 GAL 的阵列,编程的数学模型是基于多项式的乘用与门电路实现,而多项式的加用或门电路实现。那么我们 FPGA 的编程机理是什么呢?它为什么能够实现我们任意的函数表达式呢?我们在上一讲已经知道了 FPGA就实现技术是可以分成三种不同 FPGA 的结构特点、实现的机理,这三种 FPGA 分别是基于 SRAM 技术、基于反熔丝技术、基于 E2PROM/FLASH技术。 就电路结构来讲, FPGA 可编程是指三个方面的可编程,一个是可编程逻辑块,一个是可编程 IO,还有一个就是可编程布线资源。可编程逻辑块是 FPGA 可编程的核心,这一节里我们着重就这个方面可编程进行讨论。 1 基于 SRAM 技术原理 1.1 SRAM 与 DRAM 在前面我们提到过,最早出现的 FPGA 是基于 SRAM 技术的,它也是目前发展到现在发展的最快的,所谓走的早,走的路就越长。那么我们讲什么是 SRAM 技术呢?关于这个概念,可能有些初学者是很模糊的。 半导体 RAM 是有动态 RAM 和静态 RAM 之说,就是 DRAM 与 SRAM。 DRAM我们可能接触的更多一点,因为我们如果有自己组装机器或者选购电脑的时候,都会考虑一个内存大小的问题,目前市场上这个内存大部分都是动态的,从开始的 DDR 到 DDR2,再到现在的 DDR3。 DRAM 与 SRAM 的区别在于 DRAM

2019_12_18 Summary(revised)

混江龙づ霸主 提交于 2019-12-19 01:31:03
编程模式 计算机语言解决问题的模式 过程式编程模式 面向过程编程模式 函数式编程模式 说明式编程模式 高级编程语言介绍 高级语言(High-level programming language)相对于机器语言(machine language)是一种指令集的体系。在这种语言下,其语法和结构更类似汉字或者普通英文,且由于远离对硬件的直接操作,使得一般人更容易学习。高级语言通常按其基本类型、代系、实现方式、应用范围等分类。 高级语言有一下几种分类: BASIC语言 PASCAL语言 C语言 C++语言 Java语言 Ada语言 Logo语言 脚本语言 并行程序设计 并行程序设计语言 语言名称 注释 Concurrent Pascal Pascal语言的拓展 Ada 全新的编程语言 Modula-P Modula2语言的拓展 C ∗ C^* C ∗ C语言针对SIMD系统的扩展 Concurrent C C语言扩展 Fortran D Fortran语言针对数据并行化语言的拓展 并行程序设计语言的编译过程 计算机中的数据 数据 数据的定义 数据就是用文字, 数字, 图形, 图像, 声音等方式对人, 事件, 事物等进行的描述.在计算机科学中, 数据是指所有能输入计算机并能被计算机程序处理的符号的总称, 数字, 文本, 音频, 图形, 图像和视频等统称为数据. 数据和信息的区别