2.1.11 同步和异步的区别是什么?

【考点映射】
  • 作业管理
【出现频度】★★★☆
【难度】★★☆

【参考答案】
同步和异步属于消息通信机制的范畴。
同步(Synchronous):同步传输方式中发送方和接收方的时钟是统一的、字符与字符间的传输是同步无间隔的。从代码调用的角度来看,就是调用某个方法,调用方得等待这个调用返回结果才能继续往后执行。
异步(Asynchronous):异步传输方式并不要求发送方和接收方的时钟完全一样,字符与字符间的传输是异步的。从代码调用的角度来看,调用方不会立即得到结果,而是在调用发出后,调用者可继续执行后续操作,被调用者通过状态来通知调用者,或者通过回调函数来处理这个调用。


2.1.12 阻塞和非阻塞的区别是什么?

【考点映射】
  • 作业管理
【出现频度】★★★☆
【难度】★★☆

【参考答案】
阻塞和非阻塞,强调的是程序在等待调用结果(消息,返回值)时的状态。
阻塞调用是指调用结果返回之前,当前线程会被挂起,调用线程只有在得到结果之后才会返回。
非阻塞调用指在不能立刻得到结果之前,该调用不会阻塞当前线程。


2.1.13 操作系统的内存管理主要是做什么?

【考点映射】
  • 内存管理
【出现频度】★★☆
【难度】★★★☆

【参考答案】
操作系统的内存管理主要负责内存的分配与回收(malloc 函数:申请内存,free 函数:释放内存),另外地址转换也就是将逻辑地址转换成相应的物理地址等功能也是操作系统内存管理做的事情。
内存管理方式可以分为连续分配管理方式非连续分配管理方式。
连续分配管理方式是指为一个用户程序分配一个连续的内存空间,如块式管理 。
非连续分配管理方式允许一个程序使用的内存分布在离散或者说不相邻的内存中,常见的如页式管理、段式管理和段页式管理机制
块式管理: 远古时代的计算机操系统的内存管理方式。将内存分为几个固定大小的块,每个块中只包含一个进程。如果程序运行需要内存的话,操作系统就分配给它一块,如果程序运行只需要很小的空间的话,分配的这块内存很大一部分几乎被浪费了。这些在每个块中未被利用的空间,我们称之为碎片。
页式管理:把主存分为大小相等且固定的一页一页的形式,页较小,相对相比于块式管理的划分力度更大,提高了内存利用率,减少了碎片。页式管理通过页表对应逻辑地址和物理地址。
段式管理: 页式管理虽然提高了内存利用率,但是页式管理其中的页实际并无任何实际意义。 段式管理把主存分为一段段的,每一段的空间又要比一页的空间小很多 。但是,最重要的是段是有实际意义的,每个段定义了一组逻辑信息,例如,有主程序段 MAIN、子程序段 X、数据段 D 及栈段 S 等。 段式管理通过段表对应逻辑地址和物理地址。
段页式管理机制:段页式管理机制结合了段式管理和页式管理的优点。简单来说段页式管理机制就是把主存先分成若干段,每个段又分成若干页,也就是说段页式管理机制中段与段之间以及段的内部的都是离散的。


2.1.14 什么是虚拟内存?

【考点映射】
  • 内存管理
【出现频度】★★☆
【难度】★★☆

【参考答案】
虚拟内存在Windows系统中尤为常见,我们打开很多占内存的软件之后,会发现这些软件占用的内存可能已经远远超出了我们电脑本身具有的物理内存。正是因为虚拟内存的存在,通过虚拟内存可以让程序可以拥有超过系统物理内存大小的可用内存空间。
为了更加有效地管理内存并减少出错,现代操作系统提供了一种对主存的抽象概念,即是虚拟内存(Virtual Memory)。虚拟内存为每个进程提供了一个一致的、私有的地址空间,它让每个进程产生了一种自己在独享主存的错觉(每个进程拥有一片连续完整的内存空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。
与没有使用虚拟内存技术的系统相比,使用这种技术的系统使得大型程序的编写变得更容易,对真正的物理内存(例如 RAM)的使用也更有效率。
目前,大多数操作系统都使用了虚拟内存,如 Windows 家族的“虚拟内存”;Linux 的“交换空间”等。


2.1.15 什么是I/O操作?

【考点映射】
  • I/O操作
【出现频度】★★☆
【难度】★☆

【参考答案】
I/O操作,即输入(Input)/输出(Output)操作。
要明白什么是I/O操作,先需要明确哪些是I/O设备。
计算机系统中的IO设备按使用特性可以分为一下类型:
  1. 人机交互类外部设备,又称慢速IO设备,用于桶计算机用户之间交互的设备,如打印机、显示器、鼠标、键盘等。这类设备数据交换速度相对较慢,通常是以字节为单位进行数据交换。
  2. 存储设备,用于存储程序和数据的设备,如磁盘、磁带、光盘等。这类设备用于数据交换,速度较快,通常以多字节组成的块为单位进行数据交换。
  3. 网络通信设备,用于与远程设备通信的设备,如各种网络接口、调制解调器等。其数据交换速度介于外部设备与存储设备之间。
I/O操作,也可以看作是计算机对I/O设备进行的一系列的操作。


2.1.16 谈谈你对死锁的理解

【考点映射】
  • 进程与线程相关概念
【出现频度】★★★☆
【难度】★★☆