操作系统大题整理

专题一

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

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

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

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

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

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

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

sudo apt - get install 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)内存管理中相应的又分为动态分区和静态分区,其中堆和栈的区别是什么?

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/66274.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

web安全常用靶场

这里写自定义目录标题 phpstydy2018pikachuxss-labs phpstydy2018 网盘地址 提取码: nxnw ‌phpStudy是一款专为PHP开发者设计的集成环境工具&#xff0c;主要用于简化PHP开发环境的搭建过程。‌ 它集成了Apache、MySQL、PHP等核心组件&#xff0c;用户只需进行一次性安装&a…

【yolov8自卸卡车-挖掘机-装载机检测】

yolov8自卸卡车-挖掘机-装载机检测 YOLOv8算法介绍数据集和模型下载数据集准备数据配置文件&#xff08;data.yaml&#xff09;安装依赖模型训练步骤 YOLOv8算法介绍 YOLOv8是You Only Look Once&#xff08;YOLO&#xff09;算法家族的最新版本&#xff0c;它是一种单阶段目标…

扩散模型论文概述(二):Google系列工作【学习笔记】

视频链接&#xff1a;扩散模型论文概述&#xff08;二&#xff09;&#xff1a;Google系列工作_哔哩哔哩_bilibili 本视频讲的是Google在图像生成的工作。 同样&#xff0c;第一张图片是神作&#xff0c;总结的太好了&#xff01; 在生成式AI的时代&#xff0c;OpenAI和Google不…

redis常用数据类型

在Redis中&#xff0c;有几种数据类型是非常常用且核心的&#xff0c;它们各自有着独特的应用场景和优势。 1. 字符串&#xff08;String&#xff09;&#xff1a; • 这是Redis中最基本、最常用的数据类型。 • 字符串可以是任何形式的二进制数据&#xff0c;包括文本、图片等…

【Go研究】Go语言脚本化的可行性——yaegi项目体验

0x01 背景——云计算中脚本化困境 作为云基础设施管理中&#xff0c;大量需要跟文件系统、容器等相关的操作&#xff0c;这些操作实现通常用脚本来实现。 现在探讨下&#xff0c;这些脚本为什么一定要用脚本语言来实现&#xff0c;以及目前实现中的常见的问题。 常见的两个场…

基于氢氧燃料电池的分布式三相电力系统Simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 基于氢氧燃料电池的分布式三相电力系统Simulink建模与仿真&#xff0c;仿真输出燃料电池中氢氧元素含量变化以及生成的H2O变化情况。 2.系统仿真结果 3.核心程序与模型 版本…

3218. 切蛋糕的最小总开销 I

3218. 切蛋糕的最小总开销 I 题目链接&#xff1a;3218. 切蛋糕的最小总开销 I 代码如下&#xff1a; class Solution { public:int minimumCost(int m, int n, vector<int>& horizontalCut, vector<int>& verticalCut){ranges::sort(horizontalCut);ra…

洛谷 P3205 [HNOI2010] 合唱队

思路 先设 d p [ i ] [ j ] dp[i][j] dp[i][j] 为区间 [ i , j ] [i, j] [i,j] 的队形方案数。 考虑如何转移&#xff1a;对于区间 [ i , j ] [i, j] [i,j] 来说&#xff0c;最后一个入队的要么是 i i i&#xff0c;要么是 j j j。 所以分类讨论&#xff1a; 当 j j j …

UE5.3 虚幻引擎 Windows插件开发打包(带源码插件打包、无源码插件打包)

0 引言 随着项目体量的增大&#xff0c;所有代码功能都放一起很难管理。所以有什么办法可以将大模块划分成一个个小模块吗。当然有&#xff0c;因为虚幻引擎本身就遇到过这个问题&#xff0c;他的解决办法就是使用插件的形式开发。 例如&#xff0c;一个团队开发了文件I/O模块插…

MySQL 的事务与多版本并发控制(MVCC)的那些事

什么是事务原子性:一致性隔离性 问题1: 为什么MySQL要使用mvcc实现隔离性而不使用 锁 解决并发问题?持久性 问题2: MySQL 不是磁盘数据库吗,持久化为什么是 redo log 保证的?问题 3: redo log 储存了什么东西,持久化(崩溃恢复是怎么做的?)问题 4 : MySQL 的 bing log (二进制…

27.Java 线程间通信(synchronized 实现线程间通信、Lock 实现线程间通信)

一、线程间通信 1、概述 线程间通信的模型有两种&#xff1a;共享内存和消息传递 2、多线程编程步骤&#xff08;中&#xff09; 创建资源类&#xff0c;在资源类中创建属性和操作方法 在资源类操作方法进行判断、操作、通知 创建多个线程&#xff0c;调用资源类中的操作方…

多模态论文笔记——U-ViT

大家好&#xff0c;这里是好评笔记&#xff0c;公主号&#xff1a;Goodnote&#xff0c;专栏文章私信限时Free。本文详细介绍U-ViT的模型架构和实验细节&#xff0c;虽然没有后续的DiT在AIGC领域火爆&#xff0c;但为后来的研究奠定了基础&#xff0c;但其开创性的探索值得学习…

SpringBoot的6种API请求参数读取方式

RequestParam 用来加载URL中?之后的参数 比如: 这个请求/user?namedidspace 就可以如下面这样&#xff0c;使用RequestParam 来加载URL 中的name 参数 GetMapping("/user") ResponseBody() public User findUserByName(RequestParam("name") String n…

node.js内置模块之---http 和 https 模块

http 和 https 模块的作用 在 Node.js 中&#xff0c;http 和 https 模块用于创建和处理 HTTP 和 HTTPS 请求/响应 http模块 http 模块提供了用于实现 HTTP 协议的功能。它可以用来创建 HTTP 服务器&#xff0c;处理 HTTP 请求&#xff0c;发送 HTTP 响应&#xff0c;同时也可以…

Image和Video在同一个Dataloader中交错加载联合训练

单卡实现 本文主要从两个方面进行展开&#xff1a; &#xff11;&#xff0e;将两个或多个dataset组合成pytorch中的一个ConcatDataset&#xff0e;这个dataset将会作为pytorch中Dataloader的输入。 &#xff12;&#xff0e;覆盖重写RandomSampler修改batch产生过程&#xff…

rpm包详解

一、rpm包 1、过滤系统rpm包&#xff0c;查询已安装的包 rpm -qa | grep htop2、rpm包导出 yumdownnloader htop-2.2.0.33、查看rpm包信息 rpm -qi 包名二、rpm包列表 1、查看软件包列表 yum list available *docker*2、查看软件包依赖 # rpl仓库 yum install epel-rel…

【Adobe Acrobat PDF】Acrobat failed to connect to a DDE server.是怎么回事?

【Adobe Acrobat PDF】Acrobat failed to connect to a DDE server.是怎么回事&#xff1f; 【Adobe Acrobat PDF】Acrobat failed to connect to a DDE server.是怎么回事&#xff1f; 文章目录 【Adobe Acrobat PDF】Acrobat failed to connect to a DDE server.是怎么回事&…

Rabbitmq 业务异常与未手动确认场景及解决方案

消费端消费异常&#xff0c;业务异常 与 未手动确认是不是一个场景&#xff0c;因为执行完业务逻辑&#xff0c;再确认。解决方案就一个&#xff0c;就是重试一定次数&#xff0c;然后加入死信队列。还有就是消费重新放入队列&#xff0c;然后重新投递给其他消费者&#xff0c;…

每日一题 380. O(1) 时间插入、删除和获取随机元素

380. O(1) 时间插入、删除和获取随机元素 最复杂的部分最简单来思考&#xff0c;其他的部分来弥补 class RandomizedSet { public:vector<int> nums;unordered_map<int,int> mp;RandomizedSet() {}bool insert(int val) {if(mp.count(val)){return false;}else{m…

MongoDB-文章目录

MongoDB学习总结1&#xff08;服务安装&#xff09; MongoDB学习总结2&#xff08;常用命令&#xff09; MongoDB学习总结3&#xff08;js文件中写命令&#xff09; MongoDB学习总结4&#xff08;数据插入、修改&#xff09; MongoDB学习总结5&#xff08;数据查询1&#x…