Huge Lemon的博客

操作系统、计算机网络、数据库系统概论等相关问题

2020-02-05

操作系统、计算机网络、数据库系统概论等相关问题

操作系统

1. 中断和陷入有什么异同?

  1. 外中断时指来自处理机和内存外部的中断,如I/O中断、定时器中断、外部信号中断等。狭义上也叫中断;
  2. 内中断主要指在处理机和内存内部产生的中断,也称陷入,如校验错、页面失效、溢出、除数为零等;
  3. 中断和陷阱的主要区别:
    (1) 陷入通常由处理机正在执行的现行指令引起,而中断则是由与现行指令无关的中断源引起的。
    (2) 陷阱处理程序提供的服务为当前进程所用,而中断处理程序提供的服务则不是为了当前进程的。
    (3) CPU 在执行完一条指令之后,下一条指令开始之前响应中断,而在一条指令执行中也可以响应陷阱。

2. 父子进程是否可以并发运行?

可以

3. 在没有程序运行时, CPU在做什么?

只要计算机打开着,CPU 一定都在不停处理进程。在 Windows 系统下至少 rundll32.exe 这个程序是持续运行的。在 Linux 下 kernel 也是会持续运行的。运行进程个数为零的时候有没有呢?有,那就是计算机关机的时候。

4. 设备驱动器是否属于操作系统,它的作用是什么?

不是,驱动程序是另外安装的软件,是操作系统控制并且和硬件之间通讯的桥梁(程序)

5. 线程、进程、程序和任务的区别?

  1. 任务是最抽象的, 是一个一般性的术语, 指由软件完成的一个活动。一个任务既可以是一个进程,也可以是一个线程。简而言之,它指的是一系列共同达到某一目的的操 作。例如,读取数据并将数据放入内存中。这个任务可以作为一个进程来实现,也可以作为一个线程(或作为一个中断任务)来实现。
  2. 进程常常被定义为程序的执行。可以把一个进程看成是一个独立的程序,在内存中有其完备的数据空间和代码空间。一个进程所拥有的数据和变量只属于它自己
  3. 线程则是某一进程中一路单独运行的程序。也就是说,线程存在于进程之中。一个进程由一个或多个线程构成,各线程共享相同的代码和全局数据,但各有其自己的堆栈。由于堆栈是每个线程一个,所以局部变量对每一线程来说是私有的。由于所有线程共享同样的代码和全局数据,它们比进程更紧密,比单独的进程间更趋向于相互作用,线程间的相互作用更容易些,因为它们本身就有某些供通信用的共享内存:进程的全局数据进程的全局数据进程的全局数据进程的全局数据。
  4. 程序只是一组指令的有序集合,它本身没有任何运行的含义,它只是一个静态的实体。

6. 处理中断的过程

请求中断 → 响应中断 → 关闭中断 → 保留断点 → 中断源识别 → 保护现场 → 中断服务子程序 → 恢复现场 → 中断返回

7. 分页、分段、段页式的特点,为什么要引入?

  • 分页是为了提高内存的利用率,提高计算机性能,且分页通过硬件机制来实现,对用户完全透明。
  • 分段是为了方便编程,信息保护和共享、动态增长及动态链接等多方面的需要。
  • 段页式是两者的结合

8. 计算机系统怎样实现存储保护?

  1. 防止地址越界(对进程所产生的地址必须加以检查,发生越界时产生中断,由操作系统
    进行相应处理)
  2. 防止操作越权(对属于自己区域的信息,可读可写:对公共区域中允许共享的信息或获得授权可使用的信息,可读而不可修改;对未授权使用的信息,不可读,不可写)

9. MMU

MMU 是 Memory Management Unit 的缩写,中文名是内存管理单元,它是中央处理器(CPU)中用来

  • ①管理虚拟存储器、物理存储器的控制线路,
  • ②同时也负责虚拟地址映射为物理地址,
  • ③以及提供硬件机制的内存访问授权。

10. 多线程,真的提高了效率吗?

多线程效率,我认为未必会高,而且有时候相反会低。
多线程并不是为了提高效率,而是不必等待,可以并行执行多条数据。

  • 可以这么想:我们通过 xp 系统复制文件。你可以复制一份文件 —— 这叫是单线程。但是你要等这个复制完了才能复制另一份文件,而且不能多复制,这样很难受。所以你可以选择多复制文件,这就是多线程。但复制多份文件用的时间未必会比一份一份文件所用时间少。只是它合理利用了时间进行了多个操作。
  • 如果是买票系统,就会用到多线程。买票是同时进行的,如果一个用户一个用户等下去不是办法,所以可以多个用户同时买票,效率也就提高了。这里的效率不是执行的效率 而是时间的合理利用,多个线程同时进行。

11. 中断的作用

中断是计算机系统结构一个重要的组成部分。在中断机制中的硬件部分(中断装置)的作用就是在 CPU 每执行完一条指令后,判别是否有事件发生。如果没有事件发生,CPU继续执行;若有事件发生,中断装置①中断原先占用 CPU 的程序的执行,②把被中断程序的断点保存起来,③让操作系统的处理服务程序占用 CPU 对事件进行处理,④处理完后,再让被中断的程序继续占用 CPU 执行下去。

12. DMA 的优先级为什么比 CPU 的优先级高?

因为 DMA 请求得不到及时响应,I/O 传输数据可能会丢失。

13. 虚拟内存容量由什么决定?

虚拟存储区的容量与物理主存大小无关,而受限于计算机的地址结构和可用磁盘容量

14. RAID 的工作原理

  • RAID(独立磁盘冗余阵列(Redundant Array of Independent Disks))通过条带化存储和奇偶校验两个措施来实现其冗余和容错的目标。条带化存储意味着可以一次写入一个数据块的方式将文件写入多个磁盘。条带化存储技术将数据分开写入多个驱动器,从而提高数据传输速率并缩短磁盘处理总时间。这种系统非常适用于交易处理、但可靠性却很差,因为系统的可靠性等于最差的单个驱动器的可靠性 【木桶效应】
  • 奇偶校验通过在传输后对所有数据进行冗余校验可以确保数据的有效性。利用奇偶校验,当 RAID 系统的一个磁盘发生故障时,其它磁盘能够重建该故障磁盘。在这两种情况中,这些功能对于操作系统都是透明的。由磁盘阵列控制器(DAC)进行条带化存储和奇偶校验控制。

计算机网络

1. 计算机网络和分布式计算机系统的区别?

两者在计算机硬件连接、系统拓朴结构和通信控制等方面基本都是一样的,它们都具有通信资源共享的功能。
区别关键在于:

  • 分布式计算机系统是在分布式计算机操作系统支持下,进行分布式数据库处理的,也就是说各互联的计算机可以互相协调工作,共同完成一项任务,多台计算机上并行运行,且具有透明性——用户不知道数据、资源的具体位置,整个网络中所有计算机就像是一台计算机一样;
  • 而计算机网络却不具备这种功能,计算机网络系统中的各计算机通常是各自独立进行工作的。

2. 波特和比特的区别?

  • 波特是码元传输的速率单位,说明每秒传多少个码元。码元传输速率也称为码元速率、调制速率、波形速率或符号速率。
  • 比特是信息量的单位,与码元的传输速率“波特”是两个完全不同的概念。

但是,信息的传输速率“比特/秒”与码元的传输速率“波特”在数量上却有一定的关系。

3. TCP/IP网络协议核心以及如何引出over everything

TCP/IP(传输控制协议/网间协议)是一种网络通信协议,它规范了网络上的所有通信设备,尤其是一个主机与另一个主机之间的数据往来格式以及传送方式。TCP/IP是INTERNET的基础协议,也是一种电脑数据打包和寻址的标准方法。
核心是OSI模型,共七层:第 7 层应用层,第 6 层表示层,第 5 层会话层,第 4 层传输层,第 3 层网络层,第 2 层数据链路层,第 1 层物理层,从第七层传到第一层,接受方则相反。上三层总称应用层,用来控制软件方面。下四层总称数据流层,用来管理硬件。

应用层
表示层
会话层
传输层
网络层
链路层
物理层

everything over IP:everything 均以 IP 为基础,以后的网络中的设备都用 IP(现在的电话网络就不是)。【over:以…为基础】
IP over everything:在现在的电通信网过渡到光通信网的过程中,IP、ATM、WDM 会配合使用,渐渐过渡,即是 IP over everything。【over:凌驾于…之上】

4. 电路交换与分组交换区别

  1. 电路交换是以电路为目的的交换方式,即通信双方要通过电路建立联系,建立后没挂断则电路一直保持,实时性高。

    而分组交换是把信息分为若干分组,每个分组有分组头含有选路和控制信息,可以到达收信方,但是不能即时通信。

  2. 分组交换通信双方不是固定占有一条通信线路,而是在不同的时间一段一段地部分占有这条物理通路,因而大大提高了通信线路的利用率。

    电路交换时,数据直达,不同类型、不同规格、不同速率的终端很难相互进行通信,也难以在通信过程中进行差错控制。通信双方之间的物理通路一旦建立,双方可以随时通信,实时性强。

  3. 分组交换由于数据进入交换结点后要经历存储转发这一过程,从而引起转发时延(包括接收报文、检验正确性、排队、发送时间等),而且网络的通信量越大,造成的时延就越大,因此报文交换的实时性差,不适合传送实时或交互式业务的数据。

    电路交换连接建立后,物理通路被通信双方独占,即使通信线路空闲,也不能供其他用户使用,因而信道利用率低

    若要传送的数据量很大,且其传送时间远大于呼叫时间,则采用电路交换较为合适;
    当端到端的通路有很多段的链路组成时,采用分组交换传送数据较为合适;
    从提高整个网络的信道利用率上看,报文交换分组交换优于电路交换,其中分组交换比报文交换的时延小,尤其适合于计算机之间的突发式的数据通信

5. IPv4 和 IPv6 的区别

  1. IPv6 地址长度为 $128$ bit,地址增大了 $296$ 倍;
  2. 灵活的 IP 报文头部格式。使用一系列固定格式的扩展头部取代了 IPv4 中可变长度的选项字段。IPv6 中选项部分的出现方式也有所变化,使路由器可以简单路过选项而不做任何处理,加快了报文处理速度
  3. IPv6 简化了报文头部格式,字段只有 $7$ 个,加快报文转发,提高了吞吐量
  4. 提高安全性。身份认证和隐私权是 IPv6 的关键特性;
  5. 支持更多的服务类型;
  6. 允许协议继续演变,增加新的功能,使之适应未来技术的发展。

6. TCP 的拥塞控制与流量控制的功能和区别?

  1. 拥塞控制:防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载。拥塞控制所要做的都有一个前提:网络能够承受现有的网络负荷。拥塞控制是一个全局性的过程,涉及到所有的主机、路由器,以及与降低网络传输性能有关的所有因素。
  2. 流量控制:指点对点通信量的控制,是端到端的问题。流量控制所要做的就是抑制发送端发送数据的速率,以便使接收端来得及接收

7. 集线器,路由器和交换机有什么区别.

集线器工作在第一层(即物理层),它没有智能处理能力,对它来说,数据只是电流而已,
当一个端口的电流传到集线器中时,它只是简单地将电流传送到其他端口,至于其他端口连接的计算机接收不接收这些数据,它就不管了。
交换机工作在第二层(即数据链路层),它要比集线器智能一些,对它来说,网络上的数据就是 MAC 地址的集合,它能分辨出帧中的源 MAC 地址和目的 MAC 地址,因此可以在任意两个端口间建立联系,但是交换机并不懂得 IP 地址,它只知道 MAC 地址。
路由器工作在第三层(即网络层),它比交换机还要“聪明”一些,它能理解数据中的 IP 地址,如果它接收到一个数据包,就检查其中的 IP地址,如果目标地址是本地网络的就不理会,如果是其他网络的,就将数据包转发出本地网络。

8. P2P 网络编程的特点

P2P(对等网络,是一种有别于传统 C/S 客户/服务器式的分布式网络)直接将人们联系起来,让人们通过互联网直接交互。P2P 使得网络上的沟通变得容易、更直接共享和交互,真正地消除中间商。P2P 就是人可以直接连接到其他用户的计算机、交换文件,而不是像过去那样连接到服务器去浏览与下载。

9. DNS 的递归查询与迭代查询

  1. 递归查询:
    一般客户机和服务器之间属递归查询,即当客户机向 DNS 服务器发出请求后,若 DNS 服务器本身不能解析,则会向另外的 DNS 服务器发出查询请求,得到结果后转交给客户机。
  2. 迭代查询(反复查询):
    一般 DNS 服务器之间属迭代查询,如:若 DNS2 不能响应 DNS1 的请求,则它会将 DNS3 的 IP 给 DNS2,以便其再向 DNS3 发出请求。

10. ARP 协议的过程

ARP 协议是“Address Resolution Protocol”(地址解析协议)的缩写。在局域网中,网络中实际传输的是“”,帧里面是有目标主机的 MAC 地址的。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的 MAC 地址。但这个目标 MAC 地址是如何获得的呢?它就是通过地址解析协议 ARP 获得的。所谓“地址解析”就是主机在发送帧将目标 IP 地址转换成目标 MAC 地址的过程。 ARP 协议的基本功能就是通过目标设备的 IP 地址,查询目标设备的 MAC 地址,以保证通信的顺利进行。

11. 计算机网络的接入类型都有哪些?

局域网、城域网、广域网和互联网四种

12. 中继器,集线器,交换机,网桥,网关,路由器的功能作用,区别到底是什么?

  1. 物理层:中继器(Repeater)集线器(Hub)。用于连接物理特性相同的网段,这些网段,只是位置不同而已。Hub 的端口没有物理和逻辑地址。

  2. 逻辑链路层:网桥(Bridge)交换机(Switch)。用于连接同一逻辑网络中、物理层规范不同的网段,这些网段的拓扑结构和其上的数据帧格式,都可以不同。Bridge和Switch的端口具有物理地址,但没有逻辑地址。

  3. 网络层:路由器(Router)。用于连接不同的逻辑网络。Router的每一个端口都有唯一的物理地址和逻辑地址。

  4. 应用层:网关(Gateway)。用于互连网络上,使用不同协议的应用程序之间的数据通信,目前尚无硬件产品。

  • 中继器:物理层, 适用于完全相同的两类网络的互连,主要功能是通过对数据信号的重新发送或者转发,来扩大网络传输的距离。
  • 集线器:物理层,基本功能信息分发,它把一个端口接收的所有信号向所有端口分发出去。一些集线器在分发之前将弱信号重新生成。

    中继器与集线器的区别:区别在于集线器能够提供多端口服务,也称为多口中继器。

  • 网桥:数据链路层, 网桥(Bridge)像一个聪明的中继器, 网桥是一种对帧进行转发的技术,根据 MAC 分区块,可隔离碰撞。网桥将网络的多个网段在数据链路层连接起来。【将两个LAN连起来,根据MAC地址来转发帧,可以看作一个“低层的路由器”。】

  • 交换机:数据链路层,是一种基于MAC地址识别,能完成封装转发数据包功能的网络设备。可以理解为高级的网桥,他有网桥的功能,但性能比网桥强。交换机和网桥的细微差别就在于:交换机常常用来连接独立的计算机,而网桥连接的目标是 LAN,所以交换机的端口较网桥多。

  • 路由器:网络层,用于连接多个逻辑上分开的网络,几个使用不同协议和体系结构的网络;具有判断网络地址和选择路径的功能,过滤和分隔网络信息流。路由器的主要工作就是为经过路由器的每个IP数据包寻找一条最佳传输路径,并将该数据有效地传送到目的站点。 路由器的基本功能是,把数据(IP报文)传送到正确的网络。

  • 网关:网关(Gateway)又称网间连接器、协议转换器。网关在网络层以上实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关既可以用于广域网互连,也可以用于局域网互连。 通过字面意思解释就是网络的关口。从技术角度来解释,就是连接两个不同网络的接口,比如局域网的共享上网服务器就是局域网和广域网的接口。

    来源:中继器、集线器、网桥、交换机、路由器、网关的超全总结

数据库系统概论

1. 数据库安全性与操作系统安全性的关系?

安全性问题不是数据库系统所独有的,所有计算机系统都有这个问题。只是在数据库系统中大量数据集中存放,而且为许多最终用户直接共享,从而使安全性问题更为突出。系统安全保护措施是否有效是数据库系统的主要指标之一。数据库的安全性和计算机系统的安全性,包括操作系统,网络系统的安全性是紧密联系、相互支持的。

2. SQL 主键约束和唯一约束有什么区别呢?

主键不能为空而唯一可以为空相同的,就是都不允许重复

3. 什么是基本表?什么是视图?两者的区别和联系是什么?

  • 表是实实在在得保存数据的实体,写入的数据都保存在表中;而视图是不保存数据的,也没有数据。视图就是一条语句,实际上视图从表中去数据,只是给我们的感觉好像直接从表中取得一样。
  • 表可以建立各种触发器,可以建立索引,可以建立主健、约束等;但是视图不能建立这些对象( 视图可以建立替代触发器)。
  • 表和视图可以更新,但是视图的更新受到约束。比如,GROUP BY 和表连接生成的视图不能更新表是实实在在的保存数据的实体,写入的数据都保存在表中;而视图是不保存数据的,也没有数据。

4. 数据库索引

目的:提供多种存储路径,加快查找速度。
建立索引需要考虑的问题: 1. 没有查询、统计的需要则不建;2. 数据增删改频繁,系统会花费许多时间来维护索引,从而降低了查询效率。

5. 哪些视图是可以更新、哪些是不可以更新的

  1. 简单视图
    就是由一个表生成出来的视图,这种情况你更新她就和更新表一样。
  2. 二次加工出来的简单视图
    仍然是一个表出来的视图,但是视图中存在通过函数或计算二次加工出来的其他字段。更新的时候只要不更新这些加工出来的字段也是可以更新的。
  3. 组合视图
    通过表之间关联联合等出来的复杂视图。这种视图更新的时候要注意你所更新的列要来自同一个表,也是可以更新的。
  4. 静态视图
    这种视图等同于表可以直接更新,但是更新的数据尽在视图中反映出来,不反映到原表。
  5. 其他视图
    通过表函数等其他生成的更为复杂的视图,一般不可更新。
使用支付宝打赏
使用微信打赏

若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏