试题一
阅读以下关于应用服务器业务对象管理的叙述,回答问题 1 和问题 2;
某软件公司最近接到一个电信局的计费项目,该电信局要求计费系统支持实时出帐( 如用户可随时通过诸如电话、上网等方式查询当前的话费情况 )、实时划价( 如新增业务或改变的记费规则能实时的添加到计费系统中 )。鉴于该项目的实时性要求较高,难度较大,为此,张工召开了一次课题组会议,会上项目组成员的意见分为两大派;一派坚持使用磁盘数据库( DRDB Disk-residentdatabase ) Oracle,另一派坚持使用内存数据库( MMDB MainMemoryDatabase )。坚持 Oracle 的那一派认为只要配置 Oracle 使得所有数据都缓冲到内存,就一定能达到实时性的要求;而坚持 MMDB 的那一派认为即使再扩大内存容量和调整Oracle的参数,也无法达到 MMDB 的性能。张工在听取两方面的意见,经过深思熟虑后,成功地说服了坚持使用 Oracle 的那一派,最终大家一致同意采用 MMDB。张工是通过回答下面 2 个问题来说服 Oracle 派的。
[问题1]
即使 Oracle 将数据都缓冲到内存中,其性能也往往难以赶上 MMDB。为什么?
请你用 200 字以内文字,以提纲方式列出理由说明
[问题2]
B+ 树索引适合于象 Oracle 这样的磁盘数据库而不适于 MMDB,MMDB 采用的是更适合于内存的 Hash 索引和 T 树索引。为什么?
请你用 100 字以内文字,简要说明这些不同的索引技术在性能上会有什么主要差别。
从下列的 4 道试题(试题二至试题五)中任选 2 道解答。如果解答的试题数超过2道,则题号小的 2 道解答有效。
试题二
阅读以下关于进程和线程的叙述,回答问题 1 和问题 2。
某公司要开发一个网络服务程序,该程序需要处理客户的请求,查询或者修改后台的数据库。其中,查询和修改后台数据库是一个需要同步并且相对耗时的操作。
假定该网络服务程序是在某个支持进程和用户线程的操作系统中实现,用户线程由用户空间的线程库调度。
在设计该网络服务程序的体系结构时,项目组产生了分歧:
(1) 张工程师认为应采用单进程多个用户线程的体系结构,每个用户线程处理一个客户请求,原因是用户线程开销小,从而能提高系统的响应时间。
(2) 李工程师认为应采用多进程的体系结构,由每个进程处理一个客户请求,原因是多进程结构的系统稳定并且相对安全。
经过项目组的激烈讨论,最终选用了进程和用户线程混合使用的一类体系结构。
[问题1]
在这种支持用户线程的操作系统中,实现该网络服务程序,请你用 200 字以内文字简要讨论多个用户线程是否可以提高并发度?并指出理由。
[问题2]
请你基于数据库访问的情况,设计进程和用户线程混合使用的一类体系结构的功能划分。( 以 200 字以内文字列出提纲即可 )。