操作系统大题整理

专题一

程序代码题:程序设计与分析,主要考的是线程,多线程的并发?

大题第一问(1)操作系统的结构有哪几种常用的结构?

宏内核:宏内核是将操作系统的主要功能模块都集中在内核的一种结构。高性能,复杂度高,缺乏灵活性。具体表现在:由于所有的功能都在内核中,模块之间的调用通过函数调用实现,通信开销小,执行效率高。内核代码庞大且复杂,因为包含了众多功能模块,使得内核的开发,维护和调试都比较困难。

微内核:微内核只把操作系统最基本的功能放在内核中,其他功能如文件系统,设备管理等都放在内核之外的空间。高可靠性,良好的拓展性。内核小简单,减少了内核出错的概率,如果用户空间的服务出现故障,不会直接导致整个系统崩溃。可以方便的在用户空间添加新的服务。

混合内核:混合内核结合了宏内核和微内核的特点,它在内核中保留了较多的功能,但又采用了微内核的一些设计理念,如将部分功能模块进行了分离和模块化处理。性能与拓展性的平衡,复杂性适中。

大题第二问(2)Linux源码从git中如何下载(题干中源码的链接给了)?拓展一下git常用方法,git怎么用,分支管理,创建......

在下载源码之前,需要确保系统已安装 Git。如果未安装,可以通过以下方式安装

sudo apt- getinstall git

克隆远程仓库: git clone <repository rul> 远程仓库的地址(URL)

创建并切换到新分支: git checkout -b <branch name>

仅创建分支:如果只想创建分支而不切换: git branch <branch name>

合并分区:git merge <source branch>

大题第三问(3)对于Linux是典型的宏结构,但是它仍然把微内核的优势引用进来,动态的内核加载机制,可以动态加载,加载的步骤是什么?

只需要写核心的步骤:第一步编写内核,第二步进行编译,第三步编译之后加载内核,第四步加载完成后还可以进行卸载。

专题二 虚拟化(主要是虚拟处理器)

大题第一问(1)给你一组实验数据,这个实验数据是上课做过的,让你计算cpu的个数,物理cpu和逻辑cpu的个数。

大题第二问(2)得出是有多颗cpu的,多核的,再给你一组数据,查看有几个进程,请把这俩个进程绑定到指定的逻辑cpu上,怎么处理?

专题三:虚拟化(包含虚拟化的内存)

大题第一问(1)对着程序输出结果找到相应的地址段就行

大题第二问(2)还需要解释.bss .data .rodata .text的含义:

.text段通常存放程序的可执行代码,它是可读的,因为在程序运行的过程中,代码本身通常是不会被修改的。

.data段存放的是已经初始化的全局变量和静态变量(非零初始化)

.rodata段存放的是只读数据,例如字符串常量,被const修饰的全局变量等

.bss段存放的是未初始化的全局变量和静态变量

PS:初始化赋值为0的变量属于.bss段

大题第三问(3)内存管理中相应的又分为动态分区和静态分区,其中堆和栈的区别是什么?

堆是一种无序的数据存储区域,更像是把数据随意的堆放在一块大的内存空间里,数据的存储和释放并没有像栈那样固定的顺序。堆的内存空间大小相对于栈来说要大的多,它通常是可以动态扩展的。堆的数据访问速度相对于栈要慢一些。

栈是一种后进先出的数据结构。在内存中,栈的生长方向是从高地址向低地址进行的,数据的存入和取出操作都是在栈顶进行,新的数据入栈时会被压入栈顶,而数据出栈时也是从栈顶取出相应的数据。栈的大小通常是有限的,并且相对较小。栈的数据访问速度通常比较快。因为栈的内存分配和释放操作简单且有规律。

相关推荐
PKNLP1 分钟前
07.docker介绍与常用命令
运维·docker·容器
Mxsoft61934 分钟前
电力系统AR远程运维与数字孪生交互技术
运维·ar
一叶之秋141242 分钟前
Linux基本指令
linux·运维·服务器
码割机1 小时前
Linux服务器安装jdk和maven详解
java·linux·maven
亚林瓜子1 小时前
在amazon linux 2023上面源码手动安装tesseract5.5.1
linux·运维·服务器·ocr·aws·ec2
爱学习的大牛1231 小时前
Ubuntu 24.04 安装 FreeSWITCH 完整教程
linux·freeswitch
FreeBuf_1 小时前
研究人员披露 Windows SMB 服务器权限提升漏洞(CVE-2025-58726)
运维·服务器·windows
go_bai1 小时前
Linux--进程池
linux·c++·经验分享·笔记·学习方法
人工智能训练2 小时前
在ubuntu系统中如何将docker安装在指定目录
linux·运维·服务器·人工智能·ubuntu·docker·ai编程
Lisonseekpan2 小时前
Linux 常用命令详解与使用规则
linux·服务器·后端