0

0

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

php中文网

php中文网

发布时间:2016-06-07 15:25:02

|

1449人浏览过

|

来源于php中文网

原创

1:内存管理 (1)解释下段式管理与页式管理方式 页是信息的物理单位,分页是为了实现离散分配方式,以消除内存的外零头,提高内存的利用率。简单的说分页是为了系统的需要,而不是用户的需要。 段是信息的逻辑单位,它含有一组相对较完整的信息。分段的目的

1:内存管理

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

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

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

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

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

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

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

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

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

从逻辑地址到物理地址的转换过程:
操作系统常见面试题汇总(2)


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

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

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

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

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


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


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

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

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

(6)内存的分配与回收

易语言学习手册 十天学会易语言图解教程  pdf版
易语言学习手册 十天学会易语言图解教程 pdf版

十天学会易语言图解教程用图解的方式对易语言的使用方法和操作技巧作了生动、系统的讲解。需要的朋友们可以下载看看吧!全书分十章,分十天讲完。 第一章是介绍易语言的安装,以及运行后的界面。同时介绍一个非常简单的小程序,以帮助用户入门学习。最后介绍编程的输入方法,以及一些初学者会遇到的常见问题。第二章将接触一些具体的问题,如怎样编写一个1+2等于几的程序,并了解变量的概念,变量的有效范围,数据类型等知识。其后,您将跟着本书,编写一个自己的MP3播放器,认识窗口、按钮、编辑框三个常用组件。以认识命令及事件子程序。第

下载

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

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

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

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

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

*连续分配

*链接分配

*索引分配

2:Linux的系统架构

(1)Linux系统如何构成?

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

(2)Linux的内核构成。

内存管理模块

系统调用接口

进程管理模块

网络接口

虚拟文件系统

设备驱动程序

arch

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

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

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

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

相关专题

更多
javascript void运算符
javascript void运算符

void是一元运算符,执行右侧表达式但始终返回undefined;用于丢弃返回值、阻止a标签跳转、IIFE忽略结果、动态导入不取Promise、安全获取undefined。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1

2025.12.29

vscode的界面字体大小调整
vscode的界面字体大小调整

调整VSCode界面字体大小可通过设置编辑器或整体UI缩放实现;2.修改"Editor:FontSize"改变代码字体;3.设置"Window:ZoomLevel"调整整体界面字体;4.使用Ctrl+滚轮快捷键临时缩放。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1

2025.12.29

VSCode的注释快捷键
VSCode的注释快捷键

单行注释快捷键为Ctrl+/(Windows/Linux)或Cmd+/(macOS),块注释使用Shift+Alt+A(Windows/Linux)或Shift+Option+A(macOS),VSCode会根据语言类型自动匹配语法,如JavaScript用//,Python用#,C++用//,若快捷键无效需检查语言扩展或插件冲突。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1

2025.12.29

Golang 命令行工具(CLI)开发实战
Golang 命令行工具(CLI)开发实战

本专题系统讲解 Golang 在命令行工具(CLI)开发中的实战应用,内容涵盖参数解析、子命令设计、配置文件读取、日志输出、错误处理、跨平台编译以及常用CLI库(如 Cobra、Viper)的使用方法。通过完整案例,帮助学习者掌握 使用 Go 构建专业级命令行工具与开发辅助程序的能力。

4

2025.12.29

ip地址修改教程大全
ip地址修改教程大全

本专题整合了ip地址修改教程大全,阅读下面的文章自行寻找合适的解决教程。

165

2025.12.26

压缩文件加密教程汇总
压缩文件加密教程汇总

本专题整合了压缩文件加密教程,阅读专题下面的文章了解更多详细教程。

56

2025.12.26

wifi无ip分配
wifi无ip分配

本专题整合了wifi无ip分配相关教程,阅读专题下面的文章了解更多详细教程。

108

2025.12.26

漫蛙漫画入口网址
漫蛙漫画入口网址

本专题整合了漫蛙入口网址大全,阅读下面的文章领取更多入口。

356

2025.12.26

b站看视频入口合集
b站看视频入口合集

本专题整合了b站哔哩哔哩相关入口合集,阅读下面的文章查看更多入口。

703

2025.12.26

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Rust 教程
Rust 教程

共28课时 | 3.9万人学习

PostgreSQL 教程
PostgreSQL 教程

共48课时 | 6.2万人学习

Git 教程
Git 教程

共21课时 | 2.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号