操作系统常见面试题汇总(2)

来源:互联网 发布:英菲克安装软件密码 编辑:程序博客网 时间:2024/05/29 02:37

1:内存管理

(1)解释下段式管理与页式管理方式

页是信息的物理单位,分页是为了实现离散分配方式,以消除内存的外零头,提高内存的利用率。简单的说分页是为了系统的需要,而不是用户的需要。

段是信息的逻辑单位,它含有一组相对较完整的信息。分段的目的是为了更好的满足用户的需要。

页的大小由系统决定,比如说在32位的机器中,线性地址最大为4G,如果4kb为一个页来划分。这样整个线性地址被划分为2的20次页。而段的长度不固定,决定与用户所编写的程序。

分页的作业地址空间是一维的,即单一的线性空间,程序员只须利用一个记忆符,即可表示一地址。分段的作业地址空间是二维的,程序员在标识一个地址时,既需给出段名,又需给出段内地址。

(2)简述物理地址、线性地址(虚拟地址)和逻辑地址的区别。

物理地址:(我们在寻址时希望得到的)出现在CPU外部地址总线上的寻址物理内存的地址信号。

线性地址(虚拟地址):在32位CPU架构下,可以表示4G的空间

逻辑地址:程序代码编译后汇编程序中使用的地址。

从逻辑地址到物理地址的转换过程:


(3)什么是虚拟内存技术?

Linux采用虚拟内存管理技术,使得每个进程都有独立的进程空间,该空间大小为3G。

Linux将4G的虚拟地址空间划分为连个部分:用户空间和内核空间。

在内存分配过程中,分配内存给进程,获得的不是物理地址,而是虚拟地址。实际的物理内存只有当进程真正去访问新获得的虚拟地址时,才会产生“请页机制”产生缺页异常从而进入分配实际页框的程序。该异常 是虚拟内存机制赖以存在的基本保证。它会告诉你内核去为进程分配物理页并建立对应的表。之后虚拟地址才实实在在的映射到了物理地址。

(具体的关于段式管理以及Linux系统的内存管理知识参考:http://blog.csdn.net/gzbaishabi/article/details/39367781)


虚拟内存是一些系统页文件,存放在磁盘上,每个系统页文件大小为4K,物理内存也被分页,每个页大小也为4K,这样虚拟页文件和物理内存页就可以对应,实际上虚拟内存就是用于物理内存的临时存放的磁盘空间。页文件就是内存页,物理内存中每页叫物理页,磁盘上的页文件叫虚拟页,物理页+虚拟页就是系统所有使用的页文件的总和。


(4)实现地址映射有哪几种方式?

  • 编程或者编译时确定映射关系:在用机器指令编程时,程序员直接按物理内存地址编程,这种程序在系统中是不能做任何移动的,否则就会出错。 
  • 静态地址映射:程序装入内存时完成从逻辑地址到物理地址的转换的。
  • 动态地址映射:动态地址映射是在程序执行时由系统硬件完成从逻辑地址到物理地址的转换的。动态地址映射是由硬件地执行时完成的,程序中不执行的程序就不做地址映射的工作,这样节省了CPU的时间 。
(5)内外存数据传输的控制

内外存数据流动控制方法有两种,一种是用户自己控制程序。另外一种是操作系统控制:A:操作系统把等待状态的进程换出内存,而把等待事件已发生,处于就绪态的进程换入内存。B:请求调入方式和预调入方式:请求调入方式:在程序执行时,如果所要访问的程序段或数据段不在内存中,则操作系统自动地从外存将有关程序段和数据段调入内存地一种操作系统控制方式。预调入方式:系统预测在不远的将来会访问到的哪些程序段和数据段,并在它们访问前调入。

(6)内存的分配与回收

请求调入方式和预调入方式:请求调入方式:在程序执行时,如果所要访问的程序段或数据段不在内存中,则操作系统自动地从外存将有关程序段和数据段调入内存地一种操作系统控制方式。预调入方式:系统预测在不远的将来会访问到的哪些程序段和数据段,并在它们访问前调入。

  • 分配结构  登记内存使用情况,供分配程序使用的表格和链表
  • 放置策略  确定调入内存的程序和数据在内存中的位置。决定内存中放置信息的区域(或位置),即如何在若干个空闲区中选择一个或几个空闲区的原则;
  • 交换策略     当内存不足时,决定将某些信息调出内存的策略 。
  • 调入策略     外存中的程序段和数据段什么时间按照什么样的控制方式进入内存
  • 回收策略     回收的时机,对所回收的内存空闲区和已存在的内存空闲区的整理
(7)内存信息的保护与共享,常见的存储保护的三种方法?

软件保护、硬件保护、软硬结合

(8)分区管理:把内存划分成若干个大小不等的区域,除操作系统占用一个区域之外,其余由多道环境下的各并发进程共享。 
分区管理基本原理:给每一个内存中的进程划分一块适当大小的存储区,以连续存储各进程的数据和程序,使各进程得以并发执行。

(9)外存分配的几种方式

*连续分配

*链接分配

*索引分配

2:Linux的系统架构

(1)Linux系统如何构成?

主要分为内核空间和用户空间。内核空间包括系统调用接口、狭义上的内核、内核代码、体系结构相关的代码。用户空间包括应用程序和C库

(2)Linux的内核构成。

内存管理模块

系统调用接口

进程管理模块

网络接口

虚拟文件系统

设备驱动程序

arch

(3)如何完成从用户空间到内核空间的转移?

用户空间到内核空间这两种状态的切换,分为主动式和被动式。其中主动式主要是系统调用。而被动式就是中断。

(4)操作系统的四个特性

并发性
共享性
虚拟性异步性

0 0
原创粉丝点击