什么是程序局部性.docx
《什么是程序局部性.docx》由会员分享,可在线阅读,更多相关《什么是程序局部性.docx(17页珍藏版)》请在冰豆网上搜索。
什么是程序局部性
1.什么是程序局部性,为什么会有程序的空间局部性?
程序局部性是指程序在运行时呈现出局部性规律,在一段时间间隔内,程序的执行是局限在某个部份,所访问的存储空间也只局限在某个区域。
空间局部性是指若一个存储单元被访问,那么它附近的单元也可能被访问,这是由于程序的顺序执行引起的。
2.比较TCP与UDP
TCP与UDP都是传输层的协议,且都用端口号标识数据所达的进程。
TCP提供的是面向连接服务,提供可靠交付。
且具有流量控制和拥塞控制。
可用于可靠要求高的场合如:
SMTP,FTP,HTTP等
UDP提供的是无连接服务,提供不可靠交付,且无确认机制。
主要用于即时强的场合如:
视频聊天,语音电话等。
3.网络协议的三个核心要素,及概念.各起什么作用?
语法,定义了数据与控制信息的格式;
语义,定义了需要发出何种控制信息,完成何种响应动作以及作出何种响应;
同步,定义了事件实现顺序的详细说明;
4.关系数据库都有那些操作,特点是什么?
◇查询:
选择、投影、连接、除、并、交、差
◇数据更新:
插入、删除、修改
关系操作的特点:
集合操作方式,即操作的对象和结果都是集合。
5.解释一下网络体系结构,它得实现和理论有什么区别?
是指通信系统的整体设计,它为网络硬件、软件、协议、存取控制和拓扑提供标准。
网络体系统结构采用分层结构,各层之间相互独立、较易维护、灵活性好。
国际标准化组织制定了OSI/RM标准,该标准采用了七层结构应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。
七层协议体系结构既复杂又不实用,但其概念清楚,体系结构理论较完整。
而TCP/IP却成为了事实上的标准,它采用了四层结构即应用层、传输层、网络层和网络接口层。
6.为了实现重定位需要哪些硬件?
最简单的方式是在系统中增设一个重定位寄存器,用来存放正在执行作业的内存地址,每次访问数据时,由硬件自动将相对地址与重定位寄存器中的起始地址相加,形成实际的特理地址。
当然在分页式与分段式系统中,具地址变换机构,以及快表等硬件。
7.数据库保护(访问)的内容有哪些?
利用权限机制,利用完整性约束防止法数据进入数据库,提供故障恢复能力,提供并发访问控制
8.在交互式系统中,非剥夺是不是一个好的策略?
为什么?
非剥夺方式:
分派程序一旦把处理机分配给某进程后便让它一直运行下去,直到进程完成或发生某事件而阻塞时,才把处理机分配给另一个进程。
剥夺方式:
当一个进程正在运行时,系统可以基于某种原则,剥夺已分配给它的处理机,将之分配给其它进程。
剥夺原则有:
优先权原则、短进程、优先原则、时间片原则。
在分时系统中不剥夺并不是一个好的策略。
因为,在分时系统中,除了交互性以外,及时性是很重要的性能因素。
当一个作业被阻塞后,CPU就完全空闲了,别的用户的及时性就无法保证了,而完全可以把这些时间分配给别的作业运行。
以提高整体的吞吐量。
9.DBA的职责是什么?
DBA则是这个机构的一个(组)人员,负责全面管理和控制数据库系统.职责有:
(1)决定数据库中的信息内容和结构:
数据库中要存放哪些信息
(2)决定数据库的存储结构和存取策略:
获得较高的存取效率和存储空间利用率(3)约定义数据的安全性要求和完整性约束条件:
负责确定各个用户对数据库的存取权限、数据的保密级别和完整性约束条件(4)监控数据库的使用和运行:
转储数据、维护日志文件、故障恢复(5)数据库的改进和重组重构:
对运行情况进行记录、统计分析,以此来不断改进数据库设计
10.系统调用的定义
系统调用是OS与应用程序之间的接口,它是用户程序取得OS服务的惟一途径。
它与一般的过程调用的区别:
运行在不同的系统状态。
调用程序在运行在用户态,而被调用的程序运行在系统态;
通过软中断机制,先由用户态转为系统态,经枋心分析后,才能转向相应的系统调用处理子程序;一般的过程调用返回后继续执行,但对系统调用,当调用的进程仍具有最高优先权时,才返回到调用进程继续处理;否则只能等被重新调度;
11.死锁是什么?
指多个有关进程由于争夺资源而造成的一种僵局,在无外力的情况下这些进程都将无法再向前推进的状态。
12.CPU不执行程序的时候干什么?
当没有被任何程序使用的时候,计算机的处理器被认为是空闲的。
当然下面提到的空闲任务不在此列中。
当有程序利用CPU空闲时间的时候,就意味着它以较低的优先权运行着,以便不会影响那有正常优先权的程序运行。
一般来讲,这会引起CPU消耗更多的电能,而大多数的现代CPU当它们空闲的时候是能够进入省电模式的。
大多数操作系统都有个空闲任务,它是一个特殊的任务。
仅当CPU无事可做的时候由操作系统调度器载入它。
在现代的处理器中,HLT停机指令节省了大量的电能与执量,而空闲任务几乎总是由一个重复执行HLT停机指令的循环组成。
13.举例解释一下同步和互斥
同步表现为直接制约,如管道通信,一个进程写,一个进程读,它们是相互制约的。
互斥表现为间接制约,比如多个进程同时请求打印机(没使用SPOOLing技术)、多个进程同时请求一张网卡发送数据包等。
14.解释一下管程
管程是由一组局部变量、对局部变量进行操作的一组过程和对局部变量进行初始化的语句序列组成。
引入它的目的是因为Wait/Singal操作太过分散,对它的维护很麻烦且容易造成死锁。
管程的特点是:
管程的过程只能访问管程的局部变量,管程的局部变量只能由其过程来访问;任何时刻只能有一个进程进入管程执行;进程只能通管程提供的过程入口进入管程;
15.在可变分区管理中,需要哪些硬件机制
采用可变分区方式管理时,一般均采用动态重定位方式装入作业。
地址变换要靠硬件支持,主要是两个寄存器:
基址寄存器和限长寄存器,限长寄存器存放作业所占分区的长度,基址寄存器则存放作业所占分区的起始地址,这两个值确定了一个分区的位置和大小。
转换时根据逻辑地址与限长值比较,如果不有超过这个值,表示访问地址合法,再加上基址寄存器中的值就得到了绝对地址了,否则形成“地址越界”中断。
16.中断和陷入有什么异同?
外中断时指来自处理机和内存外部的中断,如I/O中断、定时器中断、外部信号中断等。
狭义上也叫中断;
内中断主要指在处理机和内存内部产生的中断,也称陷入,如校验错、页面失效、溢出、除数为零等;
中断和陷阱的主要区别:
(1)陷入通常由处理机正在执行的现行指令引起,而中断则是由与现行指令无关的中断源引起的。
(2)陷阱处理程序提供的服务为当前进程所用,而中断处理程序提供的服务则不是为了当前进程的。
(3)CPU在执行完一条指令之后,下一条指令开始之前响应中断,而在一条指令执行中也可以响应陷阱。
17.数据库系统和文件系统相比有什么优点?
文件系统
数据库管理系统
某一应用
现实世界
共享性差,冗余度大
共享性高,冗余度小
记录内有结构,整体无结构
整体结构化,用数据模型描述
应用程序自己控制
由数据库管理系统提供数据安全性,完整性,并发控制和恢复能力
独立性差
具有高度的物理独立性和一定的逻辑独立性
18.计算机网络和分布式计算机系统的区别?
两者在计算机硬件连接、系统拓朴结构和通信控制等方面基本都是一样的,它们都具有通信和资源共享的功能。
区别关键在于:
分布式计算机系统是在分布式计算机操作系统支持下,进行分布式数据库处理的,也就是说各互联的计算机可以互相协调工作,共同完成一项任务,多台计算机上并行运行。
且具有透明性,用户不知道数据、资源的具体位置,整个网络中所有计算机就像是一台计算机一样;而计算机网络却不具备这种功能,计算机网络系统中的各计算机通常是各自独立进行工作的。
19.为什么引入多道程序技术?
因为引入多道程序技术后,可以进一步提高了CPU利用率(阻塞),提高内存和I/O设备利用率(小作业把内存浪费了),增加系统吞吐量(两都提高后的必然)。
20.什么是管态?
什么是目态?
它们与进程运行状态的关系是什么?
CPU交替执行操作系统程序和用户程序。
管态又叫特权态,系统态或核心态。
CPU在管态下可以执行指令系统的全集。
通常,操作系统在管态下运行。
目态又叫常态或用户态。
机器处于目态时,程序只能执行非特权指令。
用户程序只能在目态下运行,如果用户程序在目态下执行特权指令,硬件将发生中断,由操作系统获得控制,特权指令执行被禁止,这样可以防止用户程序有意或无意的破坏系统。
21.n个任务一个cup,阻塞,运行,就绪的进程最多有多少个?
阻塞n个;运行1个;就绪n-1个;
22.波特和比特的区别?
波特是码元传输的踵率单位,说明每秒传多少个码元。
码元传输速率也称为调制速率、波形速率或符号速率。
比恃是信息量的单位,与码元的传输速率"波特"是两个完全不同的概念。
但是,信息的传输速率"比特/秒"与码元的传输速率"波特"在数量上却有一定的关系。
23.什么是网络延时
时延(delay或latency)是指一个报文或分组从一个网络(或一条链路)的一端传送到另一端所需的时间。
24.什么是完整性约束?
强制数据完整性可确保数据库中的数据质量。
25.什么是码元?
什么是码元长度?
在数字通信中常常用时间间隔相同的符号来表示一位二进制数字。
这样的时间间隔内的信号称为二进制码元,而这个间隔被称为码元长度。
26.结合Internet,说说有连接服务和无连接的服务?
面向连接服务具有连接建立、数据传输和连接释放这三个阶段。
面向连接服务是在数据交换之前,必须先建立连接。
当数据交换结束后,则必须终止这个连接。
在传送数据时是按序传送的,是可靠交付。
面向连接服务比较适合于在一定期间内要向同一日的地发送许多报文的情况。
无连接服务,两个实体之间的通信不需要先建立好一个连接,因此其下层的有关资源不需要事先进行预定保留。
这些资源将在数据传输时动态地进行分配。
无连接服务的优点是灵活方便和比较迅速。
但无连接服务不能防止报文的丢失、重复或失序。
是一种不可靠的服务。
这种服务常被描述为"尽量大努力支付"。
27.点对点和端到端工作在哪层?
工作机制?
点对点协议(PointtoPointProtocol)的缩写为PPP,是TCP/IP网络协议包的一个成员。
PPP是TCP/IP的扩展,它增加了两个额外的功能组:
(1)它可以通过串行接口传输TCP/IP包;
(2)它可以安全登录。
数据传输的可靠性是通过数据链路层和网络层的点对点和传输层的端对端保证的。
点对点是基于MAC地址或者IP地址,是指一个设备发数据给另外一个设备,这些设备是指直连设备包括网卡,路由器,交换机。
端对端是网络连接,应用程序之间的远程通信。
端对端不需要知道底层是如何传输的,是一条逻辑链路。
端到端与点到点是针对网络中传输的两端设备间的关系而言的。
端到端传输指的是在数据传输前,经过各种各样的交换设备,在两端设备问建立一条链路,就像它们是直接相连的一样,链路建立后,发送端就可以发送数据,直至数据发送完毕,接收端确认接收成功。
点到点系统指的是发送端把数据传给与它直接相连的设备,这台设备在合适的时候又把数据传给与之直接相连的下一台设备,通过一台一台直接相连的设备,把数据传到接收端。
端到端传输的优点是链路建立后,发送端知道接收设备一定能收到,而且经过中间交换设备时不需要进行存储转发,因此传输延迟小。
端到端传输的缺点是直到接收端收到数据为止,发送端的设备一直要参与传输。
如果整个传输的延迟很长,那么对发送端的设备造成很大的浪费。
端到端传输的另.一个缺点是如果接收设备关机或故障,那么端到端传输不可能实现。
点到点传输的优点是发送端设备送出数据后,它的任务已经完成,不需要参与整个传输过程,这样不会浪费发送端设备的资源。
另外,即使接收端设备关机或故障,点到点传输也可以采用存储转发技术进行缓冲。
点到点传输的缺点是发送端发出数据后,不知道接收端能否收到或何时能收到数据。
在一个网络系统的不同分层中,可能用到端到端传输,也可能用到点到点传输。
如Internet网,IP及以下各层采用点到点传输,IP层以上采用端到端传输。
端对端,点对点,只是称为问题,本质区别很小
端对端,主要服务于ApplicationLayer,是说两台主机(终端),跨过网络直接连接
点对点,是说两台主机(终端)在局域网中传输。
28.DBMS支持那几种数据模型
常用的是层次模型,网状模型和关系模型(最重要)。
新兴的是面向对象数据模型和对象关系数据模型。
层次模型:
层次模型是指用树行结构表示实体及其之间的联系,树中每一个节点代表一个记录类型,树状结构表示实体型之间的联系。
在一个层次模型中的限制条件是:
有且仅有一个节点,无父节点,此节点为树的根;其他节点有且仅有一个父节点。
网状模型的数据结构主要有以下两个特征:
(1)允许一个以上的节点无双亲。
(2)一个节点可以有多于一个的双亲。
网状模型:
用有向图结构表示实体类型及实体间联系的数据结构模型称为网状模型
关系实际上就是关系模式在某一时刻的状态或内容。
也就是说,关系模式是型,关系是它的值。
关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的,因为关系操作在不断地更新着数据库中的数据。
但在实际当中,常常把关系模式和关系统称为关系现实世界的实体以及实体间的各种联系均用关系来表示,从用户角度看,关系模型中数据的逻辑结构是一张二维表。
29.父子进程是否可以并发运行
可以并发运行,因为不管是父进程还是子进程都是系统分配资源的最小单位,都是独立的进程,是可以并发运行的,跟进程和线程的关系不一样。
30.SQL的四个组成部分?
1、数据定义语言(DDL);2、查询语言(QL);3、数据操纵语言(DML);4、数据控制语言(DCL)。
31.数据库操纵语言举例
数据操纵语言DML(DataManipulationLanguage),用户通过它可以实现对数据库的基本操作。
例如,对表中数据的查询、插入、删除和修改
32. 介绍下有哪些应用数据库?
大概知道的有:
桌面型:
Access、Foxpro、DBase企业型:
SQLServer系列、MySQL、Oracle、Sybase等等
33. 什么是数据独立性。
数据独立性表示应用程序与数据库中存储的数据不存在依赖关系,包括逻辑数据独立性和物理数据独立性。
逻辑数据独立性是指局部逻辑数据结构(外视图即用户的逻辑文件)与全局逻辑数据结构(概念视图)之间的独立性。
当数据库的全局逻辑数据结构(概念视图)发生变化(数据定义的修改、数据之间联系的变更或增加新的数据类型等)时,它不影响某些局部的逻辑结构的性质,应用程序不必修改。
物理数据独立性是指数据的存储结构与存取方法(内视图)改变时,对数据库的全局逻辑结构(概念视图)和应用程序不必作修改的一种特性,也就是说,数据库数据的存储结构与存取方法独立。
34.网络时延又拿几部分组成?
各产生于何处?
网络时延主要由发送时延,传播时延,处理时延组成。
发送时延是指结点在发送数据时使数据块从结点进入到传输媒体所需的时间,也就是从数据块的第一个比特开始发送算起,到最后一个比特发送完毕所需的时间。
发送时延又称为传输时延,它的计算公式是:
发送时延=数据块长度/信道带宽
信道带宽就是数据在信道上的发送速率,它也常称为数据在信道上的传输速率。
传播时延是指从发送端发送数据开始,到接收端收到数据(或者从接收端发送确认帧,到发送端收到确认帧),总共经历的时间。
传播时延=d/s
d=物理链路的长度
s=介质的信号传播速度(~2x108m/sec)
处理时延是指计算机处理数据所需的时间,与计算机CPU的性能有关。
35. 实体协议服务
实体表示任何可发送或接收信息的硬件或软件进程。
协议是控制两个对等实体或多个实体进行通信的规则的集合。
在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务。
要实现本层协议,还需要使用下面一层所提供的服务。
协议时水平的服务是垂直的
36.1NF是啥,数据模式
第一范式是数据库最基本的要求,即属性不可分
第二范式是数据库非主属性对码的部分函数依赖
第三范式是非主属性对码的传递依赖
数据库存放数据的模式,正因为有数据模式,才能构造复杂的数据结构来建立数据之间的内在联系与复杂关系,从而构成数据的全局结构模式。
附加:
数据模式是基于选定的数据模型对数据进行的“型”的方面的刻画,而相应的“实例”则是对数据“值”的方面的描述。
先有数据模型,才能据其讨论相应数据模式,有了数据模式,就能依据该模式得到相应的实例。
37.缓冲的定义,为什么引入
引入缓冲技术主要是为了解决设备速度差异引起的效率问题。
如果两个设备速度相差很大,快速设备总是需要等待慢速设备,快速设备效率低下。
在设备之间加上缓冲区,慢速设备将数据送入缓冲区时,快速设备不需等待,可以处理其他任务,直到缓冲区满时才通过中断通知快速设备处理缓冲区中的数据,将提高设备工作的独立性,提高快速设备的利用率。
(1)缓和CPU与IO设备间速度不匹配的矛盾
(2)减少对CPU的中端频率,放宽对CPU中断响应时间的限制
(3)提高CPU和IO设备之间的并行性。
38.TCP/IP网络协议的核心是什么,如何引出“overeverything”和“everythingover?
”
TCP/IP协议的核心是TCP、UDP和IP协议
分层次画出具体的协议来表示TCP/IP协议族,它的特点是上下两头大而中间小:
应用层和网络接口都有很多协议,而中间的IP层很小,上层的各种协议都向下汇聚到一个IP协议中。
这种很像沙漏计时器形状的TCP/IP协议族表明:
TCP/IP协议可以为各种各样的应用提供服务(everythingoverip)同时TCP/IP协议也允许IP协议在各种各样的网络构成的互联网上运行(IPovereverything)。
39.数据库的关系操作有哪些?
各有什么作用?
关系模型中常用的关系操作包括:
选择(Select)、投影(Project)、连接(Join)、除(Divide)、并(Union)、交(Intersection)、差(Difference)等查询(Query)操作和增加(Insert)、删除(Delete)、修改(Update)操作两大部分。
查询的表达能力是其中最主要的部分。
关系操作的特点是集合操作方式,即操作的对象和结果都是集合。
这种操作方式也称为一次一集合(set-at-a-time)的方式。
相应地,非关系数据模型的数据操作方式则为一次一记录(record-at-a-time)的方式
40用白军和蓝军解释下没有100%可靠的通信
占据东边和西边两个山顶的蓝军与驻扎在这两个山之间的山谷的白军作战.其力量对比是:
一个山顶上的蓝军打不过白军,但两个山顶的蓝军同时协同作战则可战胜白军.东边蓝军打算在第二天正午向白军发起攻击.于是用计算机发送电文给西边的友军.由于通信线路很不好,电文出错或丢失的可能性较大(没有电话使用).因此要求收到电文的友军必须送回一个确认电文.但是确认电文也可能丢失或者出错.试问能否设计出一种协议能使协同作战实现从而一定(100%而不是99.999...%)取得胜利?
蓝军先发送:
"拟于明日正午向白军发起攻击.请协同作战,并确认."
西边蓝军收到电文并加以确认,回答:
"同意."
然而两边都不敢贸然下决心,因为西边蓝军还要等待东边蓝军发送:
"我已经收到你的确认了."
然后东边蓝军还要等收到西边蓝军的"我收到了你的"我已经收到你的确认了"."
如此反复...
这样一直等对方确认的确认,两边都无法确定自己发出去的电文是否对方一定收到了.因此,没有一种协议能够使两边的蓝军100%地确定一定会共同进攻.
所以也设计不出来100%可靠的协议.
13.解释一下网络体系结构,它得实现和理论有什么区别?
计算机网络是一个涉及计算机技术、通讯技术等多个方面的复杂系统。
现在计算机网络在工业、商业、军事、政府、教育、家庭、等领域。
网络中的各部分都必须遵照合理而严谨的结构话管理规则。
这也是计算机网络体系结构研究的内容
体系结构是研究系统各部分组成及相互关系的技术科学。
所谓网络体系就是为了完成计算机之间的通信合作,把每台计算几乎连的功能划分成有明确定义的层次,并固定了同层次的进程通信的协议及相邻之间的接口及服务,将纸屑层次进程通讯的协议及相邻层的接口统称为网络体系结构。
OSI:
开放系统互联基本参考模型
OSI的专家们缺乏实际经验,他们在完成OSI标准时缺乏商业驱动力
OSI的协议实现起来过分复杂而且运行效率很低
OSI标准的制定周期太长因而使得按OSI标准生产的设备无法及时进入市场
OSI的层次划分不太合理有些功能在多个层次中重复实现。
38.电路与分组交换的区别
x->y,y->z,x和y不互相依赖,问x和z是什么关系(复习数据库关系论)
x依赖于yy依赖于zx与y是多对1的关系m:
1y与z是多对1的关系m:
1
数据库系统中的常见故障有哪些?
DB并发操作通常带来哪三类问题?
丢失修改:
当一个事务修改了数据,并且这种修改还没有还没有提交到数据库中时,另外一个事务又对同样的数据进行了修改,并且把这种修改提交到了数据库中。
这样,数据库中没有出现第一个事务修改数据的结果,好像这种数据修改丢失了一样。
脏读:
当一个事务正在访问数据,并对数据进行了修改,而这种修改还没有提交到数据库中,这时,另一个事务也访问这个数据,然后使用了这个数据。
因为这个数据是还没有提交的数据,那么另一个事务读到的这个数据是脏数据,依据脏数据所做的操作可能是不正确的。
不可重复读:
在一个事务内,多次读同一数据。
在这个事务还没有结束时,另一个事务也访问该同一数据,那么,在第一个事务中的两次读数据之间,由于第二个事务的修改,第一个事务两次读到的数据可能是不一样的。
DNS是计算机域名系统(DomainNameSystem或DomainNameService)的缩写,它是由解析器和域名服务器组成的。
域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。
其中域名必须对应一个IP地址,而IP地址不一定有域名。
域名系统采用类似目录树的等级结构。
域名服务器为客户机/服务器模式中的服务器方,它主要有两种形式:
主服务器和转发服务器。
将域名映射为IP地址的过程就称为“域名解析”。
在Internet上域名与IP地址之间是一对一(或者多对一)的,也可采用DNS轮循实现一对多,域名虽然便于人们记忆,但机器之间只认IP地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,DNS就是进行域名解析的服务器。
DNS命名用于Internet的TCP/IP网络中,通过用户友好的名称查找计算机和服务。
当用户在应用程序中输入DNS名称时,DNS服务可以将此名称解析为与之相关的其他信息,如IP地址。
因为,你在上网时输入的网址,是通过域名解析系统解析找到了相对应的IP地址,这样才能上网。
其实,域名的最终指向是IP。
ARP攻击,是针对以太网地址解析协议(ARP)的一种攻击技术。
此种攻击可让攻击者取得局域网上的数据封包甚至可篡改封包,且可让网络上特定计算机或所有计算机无法正常连接。
最早探讨ARP攻击的文章是由YuriVolobue所写的《ARP与ICMP转向游戏》。
ARP(AddressResolutionProtocol,地址解析协议)是一个位于TCP/IP协议栈中的底层协议,对应于数据链路层,负责将某个IP地址解析成对应的MAC地址。
ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信