TOM-数据库维护工程师-笔试经验

以下内容来自于应聘者回忆整理

很多同学都想得到TOM的实习或者校招机会。那从过来人的角度谈谈,要通过TOM的实习、校招面试,都有哪些经验和注意事项呢?今天就跟大家分享一下。

1、简述事务的 ADIC 特性。

2、简述 C 转换成可执行代码的过程。在 risc 和 cisc 平台上有何区别?

3、raid 的核心技术是什么?raid0,1,2,3,4,5 的特性和区别是什么?

RAID 技术的两大特点:一是速度、二是安全,由于这两项优点,RAID 技术早期被应用于高级服务器 中的 SCSI 接口的硬盘系统中,随着近年计算机技术的发展,PC 机的 CPU 的速度已进入 GHz 时代。IDE 接 口的硬盘也不甘落后,相继推出了 ATA66 和 ATA100 硬盘。这就使得 RAID 技术被应用于中低档甚至个人 PC 机上成为可能。RAID 通常是由在硬盘阵列塔中的 RAID 控制器或电脑中的 RAID 卡来实现的。 RAID 技术经过不断的发展,现在已拥有了从 RAID 0 到 6 七种基本的 RAID 级别。另外,还有 一些基本 RAID 级别的组合形式,如 RAID 10(RAID 0 与 RAID 1 的组合),RAID 50(RAID 0 与 RAID 5 的组合)等。不同 RAID 级别代表着不同的存储性能、数据安全性和存储成本。但我们最为常用的是下面的 几种 RAID 形式。 (1) RAID 0 (2) RAID 1 (3) RAID 0+1 应届生求职大礼包 应届生求职网 YingJieSheng.COM 应届生求职网 http://www.yingjiesheng.com 第 16 页 共 30 页 (4) RAID 3 (5) RAID 5 RAID 级别的选择有三个主要因素:可用性(数据冗余)、性能和成本。如果不要求可用性,选择 RAID0 以获得最佳性能。如果可用性和性能是重要的而成本不是一个主要因素,则根据硬盘数量选择 RAID 1。如果 可用性、成本和性能都同样重要,则根据一般的数据传输和硬盘的数量选择 RAID3、 RAID5。 RAID 卡是一种磁盘阵列卡,它的核心技术当然就是 RAID(Redundant Array of Independent Disks,物理磁盘冗余阵列)。它是一种工业标准,它的主要作用就是为了提高服务器的磁盘读写性能和镜像备 份以提高服务器磁盘系统的安全级别。当然要实现冗余,则至少需要两个以上的物理磁盘,所以在 RAID 卡上 则必须提供一个以上的磁盘接口,当然这里的磁盘接口不仅限于 SCSI 接口,目前还有 IDE (ATA)和 SATA 接口。(如图 2 所示)的是 ADAPTEC SCSI-3210S 磁盘阵列卡,它有内 2 个 68 针、2 个外 68 针 SCSI 接口, 可实现 30 个 SCSI 磁盘或 SCSI 外设的连接。(如图 3 所示)的 RocketRAID 404 磁盘阵列卡,它提供 4 条独立的 IDE 通道,因一个 IDE 接接口,最能连接 2 个硬盘,所以它最多可接 8 个 IDE 硬盘。目前对 RAID 级 别的定义可以获得业界广泛认同的有 4 种,RAID 0、RAID 1、RAID 0+1 和 RAID 5。 RAID 0 是无数据冗余的存储空间条带化,具有成本低、读写性能极高、存储空间利用率高等特点,适用 于音、视频信号存储、临时文件的转储等对速度要求极其严格的特殊应用。但由于没有数据冗余,其安全性大 大降低,构成阵列的任何一块硬盘的损坏都将带来灾难性的数据损失。这种方式其实没有冗余功能,没有安全 保护,只是提高了磁盘读写性能和整个服务器的磁盘容量。一般只适用磁盘数较少、磁盘容易比较紧缺的应用 环境中,如果在 RAID 0 中配置 4 块以上的硬盘,对于一般应用来说是不明智的。 RAID 1 是两块硬盘数据完全镜像,安全性好,技术简单,管理方便,读写性能均好。因为它是一一对应 的,所以它无法单块硬盘扩展,要扩展,必须同时对镜像的双方进行同容量的扩展。因为这种冗余方式为了安 全起见,实际上只利用了一半的磁盘容量,数据空间浪费大。 RAID 0+1 综合了 RAID 0 和 RAID 1 的特点,独立磁盘配置成 RAID 10,两套完整的 RAID1 0 互相镜像。它的读写性能出色,安全性高,但构建阵列的成本投入大,数据空间利用率低。 RAID 5 是目前应用最广泛的 RAID 技术。各块独立硬盘进行条带化分割,相同的条带区进行奇偶校验(异 或运算),校验数据平均分布在每块硬盘上。以 n 块硬盘构建的 RAID 5 阵列可以有 n-1 块硬盘的容量,存 储空间利用率非常高。任何一块硬盘上的数据丢失,均可以通过校验数据推算出来。它和 RAID 3 最大的区别 在于校验数据是否平均分布到各块硬盘上。RAID 5 具有数据安全、读写速度快,空间利用率高等优点,应用 非常广泛,但不足之处是如果 1 块硬盘出现故障以后,整个系统的性能将大大降低。 RAID 1、RAID 0+1、RAID 5 阵列配合热插拔(也称热可替换)技术,可以实现数据的在线恢复, 即当 RAID 阵列中的任何一块硬盘损坏时,不需要用户关机或停止应用服务,就可以更换故障硬盘,修复系统, 恢复数据,对实现高可用系统具有重要的意义


4、简述 OSI 七层模型,并描述 TCP 连接建立的三次握手。

OSI 七层模型介绍 OSI 是一个开放性的通行系统互连参考模型,他是一个定义的非常好的协议规范。OSI 模型有 7 层结构, 每层都可以有几个子层。下面我简单的介绍一下这 7 层及其功能。 OSI 的 7 层从上到下分别是 7 应用层 6 表示层 5 会话层 4 传输层 3 网络层 2 数据链路层 1 物理层 应届生求职大礼包 应届生求职网 YingJieSheng.COM 应届生求职网 http://www.yingjiesheng.com 第 17 页 共 30 页 其中高层,既 7、6、5、4 层定义了应用程序的功能,下面 3 层,既 3、2、1 层主要面向通过网络的端到 端的数据流。下面我给大家介绍一下这 7 层的功能: (1)应用层:与其他计算机进行通讯的一个应用,它是对应应用程序的通信服务的。例如,一个没有通信 功能的字处理程序就不能执行通信的代码,从事字处理工作的程序员也不关心 OSI 的第 7 层。但是,如果添加 了一个传输 文 件的选 项 ,那 么字处 理器的 程序 员就需 要实 现 OSI 的第 7 层。 示 例:telnet, HTTP,FTP,WWW,NFS,SMTP 等。 (2)表示层:这一层的主要功能是定义数据格式及加密。例如,FTP 允许你选择以二进制或 ASII 格式传 输。如果选择二进制,那么发送方和接收方不改变文件的内容。如果选择 ASII 格式,发送方将把文本从发送方 的字符集转换成标准的 ASII 后发送数据。在接收方将标准的 ASII 转换成接收方计算机的字符集。示例:加密, ASII 等。 (3)会话层:他定义了如何开始、控制和结束一个会话,包括对多个双向小时的控制和管理,以便在只完 成连续消息的一部分时可以通知应用,从而使表示层看到的数据是连续的,在某些情况下,如果表示层收到了 所有的数据,则用数据代表表示层。示例:RPC,SQL 等。 (4)传输层:这层的功能包括是否选择差错恢复协议还是无差错恢复协议,及在同一主机上对不同应用的 数据流的输入进行复用,还包括对收到的顺序不对的数据包的重新排序功能。示例:TCP,UDP,SPX。 (5)网络层:这层对端到端的包传输进行定义,他定义了能够标识所有结点的逻辑地址,还定义了路由实 现的方式和学习的方式。为了适应最大传输单元长度小于包长度的传输介质,网络层还定义了如何将一个包分 解成更小的包的分段方法。示例:IP,IPX 等。 (6)数据链路层:他定义了在单个链路上如何传输数据。这些协议与被讨论的歌种介质有关。示例:ATM, FDDI 等。 (7)物理层:OSI 的物理层规范是有关传输介质的特性标准,这些规范通常也参考了其他组织制定的标准。 连接头、针、针的使用、电流、电流、编码及光调制等都属于各种物理层规范中的内容。物理层常用多个规范 完成对所有细节的定义。示例:Rj45,802.3 等。

OSI 分层的优点: (1)人们可以很容易的讨论和学习协议的规范细节。 (2)层间的标准接口方便了工程模块化。 (3)创建了一个更好的互连环境。 (4)降低了复杂度,使程序更容易修改,产品开发的速度更快。 (5)每层利用紧邻的下层服务,更容易记住个层的功能。 大多数的计算机网络都采用层次式结构,即将一个计算机网络分为若干层次,处在高层次的系统仅是利用 较低层次的系统提供的接口和功能,不需了解低层实现该功能所采用的算法和协议;较低层次也仅是使用从高 层系统传送来的参数,这就是层次间的无关性。因为有了这种无关性,层次间的每个模块可以用一个新的模块 取代,只要新的模块与旧的模块具有相同的功能和接口,即使它们使用的算法和协议都不一样。 网络中的计算机与终端间要想正确的传送信息和数据,必须在数据传输的顺序、数据的格式及内容等方面 有一个约定或规则,这种约定或规则称做协议。

网络协议主要有三个组成部分: 1、语义: 是对协议元素的含义进行解释,不同类型的协议元素所规定的语义是不同的。例如需要发出何种控制信息、 完成何种动作及得到的响应等。 2、语法: 将若干个协议元素和数据组合在一起用来表达一个完整的内容所应遵循的格式,也就是对信息的数据结构 做一种规定。例如用户数据与控制信息的结构与格式等。 3、时序: 对事件实现顺序的详细说明。例如在双方进行通信时,发送点发出一个数据报文,如果目标点正确收到, 则回答源点接收正确;若接收到错误的信息,则要求源点重发一次。 应届生求职大礼包 应届生求职网 YingJieSheng.COM 应届生求职网 http://www.yingjiesheng.com 第 18 页 共 30 页 TCP 协议是面向连接的,两端主机需要同步双方的初始序号。同步需要双方都发送自己的初始序号,并且 接收双方的确认(ACK)信息;同时接收对方的初始序号,并且发送确认的 ACK。这个过程就是三次握手 (Three-way handshake)。 A->B SYN:我的初始序号是 X,ACK 是 0,设置 SYN 位,未设置 ACK 位。 B->A ACK:你的序号是 X+1,我的初始序号是 Y,设置 SYN 位和 ACK 位。 A->B ACK:你的序号是 Y+1,我的序号是 X+1,设置 ACK 位,未设置 SYN 位。


5、进程和线程有何区别,支持线程的标准是什么?超线程和多核的区别是什么?

进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并 发性。进程和线程的区别在于: 简而言之,一个程序至少有一个进程,一个进程至少有一个线程.线程的划分尺度小于进程,使得多线程程序的 并发性高。 另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。 线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的 出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。 从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有 将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一 个独立单位. 线程是进程的一个实体,是 CPU 调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己 基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属 一个进程的其他的线程共享进程所拥有的全部资源. 一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行. 多线程的标准 多线程编程的历史可以回溯到二十世纪 60 年代。在 UNIX 操作系统中的发展是从 80 年代中期开始的。也 许是令人吃惊的,关于支持多线程有很好的协议,但是今天我们仍然可以看到不同的多线程开发包,他们拥有 不同的接口。 但是,某几年里一个叫做 POSIX1003.4a 的小组研究多线程编程标准。当标准完成后,大多数支持多线程 的系统都支持 POSIX 接口。很好的改善了多线程编程的可移植性。 solaris 多线程支持和 POSIX1003.4a 没有什么根本性的区别。虽然接口是不同的,但每个系统都可以容易 地实现另外一个系统可以实现的任何功能。它们之间没有兼容性问题,至少 solaris 支持两种接口。即使是在同 一个应用程序里,你也可以混合使用它们。 用 solaris 线程的另一个原因是使用支持它的工具包,例如多线程调试工具(multighreaded debugger) 和 truss(可以跟踪一个程序的系统调用和信号),可以很好地报告线程的状态。  

想要更多【数据工程师】实习、校招的机会,请点击这里

  • 1、刺猬实习遵循行业规范,任何转载的稿件都会明确标注作者和来源
  • 2、刺猬实习的原创文章,请转载时务必注明"来源:刺猬实习",不尊重原创的行为刺猬实习或将追究责任
  • 3、作者投稿可能会经刺猬实习编辑修改或补充。

相关推荐