当前位置: 首页 > article >正文

互联网大厂面试高频题-操作系统部分

前言

        哈喽各位小伙伴们,本期小梁给大家带来了互联网大厂面试中操作系统部分高频题,本文会以通俗易懂的语言以及图解形式描述,希望能给大家的面试带来一点帮助,祝大家offer拿到手软!!!

        话不多说,我们立刻进入本期正题!



1 说说什么是操作系统吧。

答:操作系统是管理计算机硬件与软件资源、为用户提供交互接口的核心系统软件


2 说说操作系统的功能吧。

答:操作系统的主要功能包括进程管理、内存管理、文件系统管理、设备管理和用户接口。

        (1)进程管理:负责程序的执行,包括进程的创建、调度、同步、通信和终止,确保系统资源的高效利用和多个进程的协调运行。
        (2)内存管理:负责物理内存的分配与回收,提供虚拟内存功能,实现内存的扩充,保证各进程有效使用内存且互不干扰。
        (3)文件系统管理:负责文件的存储、检索、更新和删除,管理磁盘空间的使用,提供文件访问控制和安全保护。
        (4)设备管理:负责所有输入输出设备的管理,包括设备驱动程序的加载、I/O请求的调度和执行,以及设备状态的监控。
        (5)用户接口:提供用户与操作系统交互的界面,包括命令行接口(CLI)和图形用户接口(GUI),方便用户操作计算机。


3 什么是用户态和内核态?

答:操作系统中的用户态和内核态是指处理器执行代码时的两种不同的权限级别或模式

用户态:是应用程序执行时所处的较低权限级别;

内核态:是操作系统核心代码执行时所处的较高权限级别,可以直接访问硬件资源,可以控制 cpu、内存、硬盘等硬件和执行特权指令。


4 ⽤户态和内核态是如何切换的?

答:用户态和内核态之间的切换通常通过以下三种模式实现

(1)系统调用(System Call):
        当应用程序需要执行一些只有内核才能执行的操作(如文件I/O、进程管理等)时,它会执行一个系统调用。
        执行系统调用时,处理器从用户态切换到内核态,将控制权交给内核。
        内核执行完系统调用后,将结果返回给应用程序,并切换回用户态。


(2)中断(Interrupt):
        当硬件设备(如磁盘、网络适配器)需要操作系统处理某个事件时,它会发送一个中断信号给处理器。
        处理器接收到中断信号后,会暂停当前的用户态进程,切换到内核态,执行相应的中断处理程序。
        中断处理完成后,处理器通常会恢复被中断的用户态进程。


(3)异常(Exception):
        当应用程序执行非法操作(如访问非法内存地址、执行特权指令)时,会触发一个异常。
        处理器响应异常,从用户态切换到内核态,由内核决定如何处理该异常。
        异常处理完毕后,内核可能会终止违规的应用程序,或者将其状态恢复到异常发生前的状态,并重新切换到用户态。

相关文章:

互联网大厂面试高频题-操作系统部分

前言 哈喽各位小伙伴们,本期小梁给大家带来了互联网大厂面试中操作系统部分的高频题,本文会以通俗易懂的语言以及图解形式描述,希望能给大家的面试带来一点帮助,祝大家offer拿到手软!!! 话不多说,我们立刻进入本期正题! 1 说说什么是操作系统吧。 答…...

Sentinel——Spring Boot 应用接入 Sentinel 后内存开销增长计算方式

接入 Sentinel 对 Spring Boot 应用的内存消耗影响主要取决于 规则数量、资源数量、监控粒度、并发量 等因素。 1. 核心内存消耗来源 (1) Sentinel 核心库 默认依赖:Sentinel Core 本身占用较小,通常在 10~50MB(取决于资源数量和规则复杂度…...

redis之数据库

文章目录 服务器中的数据库切换数据库数据库键空间读写键空间时的维护操作 设置键的生存时间或过期时间保存过期时间过期键的判定过期键删除策略清性删除策略的实现定期删除策略的实现 总结 服务器中的数据库 Redis服务器将所有数据库都保存在服务器状态redis.h/redisServer结…...

Vue3(1)

一.create-vue // new Vue() 创建一个应用实例 > createApp() // createRouter() createStore() // 将创建实例进行了封装,保证每个实例的独立封闭性import { createApp } from vue import App from ./App.vue// mount 设置挂载点 #app (id为app的盒子) createA…...

01.Docker 概述

Docker 概述 1. Docker 的主要目标2. 使用Docker 容器化封装应用程序的意义3. 容器和虚拟机技术比较4. 容器和虚拟机表现比较5. Docker 的组成6. Namespace7. Control groups8. 容器管理工具9. docker 的优缺点10. 容器的相关技术 docker 官网: http://www.docker.com 帮助文档…...

从零搭建:Canal实时数据管道打通MySQL与Elasticsearch

Canal实时同步Mysql Binlog至 Elasticsearch 文章目录 Canal实时同步Mysql **Binlog**至**Elasticsearch** 一. 环境准备1.环境检查检查Mysql是否开启BinLog开启Mysql BinlogJava环境检查 2.新建测试库和表3.新建Es索引 二.**部署 Canal Server****2.1 解压安装包****2.2 配置 …...

PyArmor:一个超级厉害的 Python 库!

在 Python 的世界里,如何保护我们的代码不被轻易盗用或者破解,一直是开发者们关注的问题。尤其是在发布软件时,如何有效防止源代码泄漏或者被逆向工程分析,成为了一个重要课题。 PyArmor 作为一款强大的 Python 加密工具&#xff…...

《战神:诸神黄昏》游戏闪退后提示弹窗“d3dx9_43.dll缺失”“找不到d3dx11_43.d”该怎么处理?

宝子们,是不是在玩《战神:诸神黄昏》的时候,突然弹出一个提示:“找不到d3dx9_43.dll”或者“d3dx11_43.dll缺失”?这可真是让人着急上火!别慌,今天就给大家唠唠这个文件为啥会丢,还有…...

Ollama本地部署DeepSeek(Mac)

准备工作 DeepSeek对比 DeepSeek-r1 DeepSeek-R1的多个版本:加上2个原装671B的,总计8个参数版本 DeepSeek-R1 671B DeepSeek-R1-Zero 671B DeepSeek-R1-Distill-Llama-70B DeepSeek-R1-Distill-Qwen-32B DeepSeek-R1-Distill-Qwen-14B DeepSeek-R1-Di…...

mysql8 从C++源码角度看sql生成抽象语法树

在 MySQL 8 的 C 源码中,SQL 语句的解析过程涉及多个步骤,包括词法分析、语法分析和抽象语法树(AST)的生成。以下是详细的解析过程和相关组件的描述: 1. 词法分析器(Lexer) MySQL 使用一个称为…...

【Linux】修改语言编码

查询环境变量 locale#下载简体中文语言包 locale-gen zh_CN.UTF-8#查看当前环境的所有语言包 locale -a#查看配置文件中的编码 cat /etc/default/locale source /etc/default/locale修改为美式英语 LANG"en_US.UTF-8"修改为中文简体 LANG"zh_CN.UTF-8"…...

arm linux下的中断处理过程。

本文基于ast2600 soc来阐述,内核版本为5.10 1.中断gic初始化 start_kernel() -> init_IRQ() -> irqchip_init() of_irq_init()主要是构建of_intc_desc. 489-514: 从__irqchip_of_table中找到dts node中匹配的of_table(匹配matches->compatible)&#xf…...

Docker的深入浅出

目录 Docker引擎 Docker镜像 (镜像由多个层组成,每层叠加之后,从外部看来就如一个独立的对象。镜像内部是一个精简的操作系统(OS),同时还包含应用运行所必须的文件和依赖包) Docker容器 应用容器化--Docker化 最佳…...

内存映射工作原理和适用场景

Linux 内存映射(Memory Mapping)是一种将文件或其他资源直接映射到进程虚拟内存地址空间的机制,允许进程像访问内存一样访问文件或设备。这种机制通过 mmap() 系统调用实现,常用于高效文件操作、进程间共享内存等场景。 1. 内存映…...

【Nginx + Keepalived 实现高可用的负载均衡架构】

使用 Nginx Keepalived 可以实现高可用的负载均衡架构,确保在某个 Nginx 节点故障时,自动将流量转移到备用节点。以下是详细的实现步骤: 1. 架构概述 Nginx:作为负载均衡器,将流量分发到后端服务器。Keepalived&…...

自动驾驶超声波雷达:市场潜力爆发,引领未来出行新趋势

在自动驾驶技术的飞速发展中,自动驾驶超声波雷达作为一项关键技术,正逐渐崭露头角,其重要性及市场增长潜力不容忽视。本文将深入探讨自动驾驶超声波雷达的重要性、市场增长趋势、显著优势、全球市场规模与驱动因素、主要市场参与者以及不同地…...

Apache服务器的基础配置(认证考试笔记)

Apache服务器的基本配置 配置Apache服务器,有如下需求: 不能修改Apache默认配置文件建立虚拟主机www.test.com,端口80将URLwww.test.com/data的请求引至目录/web/database,将URL www.test.com/img的请求导至目录/web/imagesweb/…...

41.兼职网站管理系统(基于springbootvue的Java项目)

目录 1.系统的受众说明 2.相关技术 2.1 B/S架构 2.2 Java技术介绍 2.3 mysql数据库介绍 2.4 Spring Boot框架 3.系统分析 3.1 需求分析 3.2 系统可行性分析 3.2.1技术可行性:技术背景 3.2.2经济可行性 3.2.3操作可行性: 3.3 项目设计目…...

Linux ARM64 将内核虚拟地址转化为物理地址

文章目录 前言一、通用方案1.1 kern_addr_valid1.2 __pa 二、ARM64架构2.1 AT S1E1R2.2 is_kernel_addr_vaild2.3 va2pa_helper 三、demo演示参考资料 前言 本文介绍一种通用的将内核虚拟地址转化为物理地址的方案以及一种适用于ARM64 将内核虚拟地址转化为物理地址的方案&…...

spring学习(使用spring加载properties文件信息)(spring自定义标签引入)

目录 一、博客引言。 二、基本配置准备。 (1)初步分析。 (2)初始spring配置文件。 三、spring自定义标签的引入。 (1)基本了解。 (2)引入新的命名空间:xmlns:context。 &…...

Flutter项目试水

1基本介绍 本文章在构建您的第一个 Flutter 应用指导下进行实践 可作为项目实践的辅助参考资料 Flutter 是 Google 的界面工具包,用于通过单一代码库针对移动设备、Web 和桌面设备构建应用。在此 Codelab 中,您将构建以下 Flutter 应用。 该应用可以…...

Linux(Ubuntu)安装pyenv和pyenv-virtualenv

Ubuntu安装pyenv和pyenv-virtualenv 安装 pyenv1. 下载 pyenv2. 配置环境变量3. 重启 Shell4. 安装依赖5.检测是否安装成功 安装 pyenv-virtualenv1. 安装 pyenv-virtualenv2. 配置环境变量3. 重启 Shell pyenv 的使用1. 查看可安装的 Python 版本2. 安装指定版本的 Python3. 查…...

调用DeepSeek官方的API接口

效果 前端样式体验链接:https://livequeen.top/deepseekshow 准备工作 1、注册deepseek官网账号 地址:DeepSeek 点击进入右上角【API开放平台】,并进行账号注册。 2、注册完成后,依次点击【API keys】-【生成API key】&#x…...

MFC线程安全案例

作者:小蜗牛向前冲 名言:我可以接受失败,但我不能接受放弃 如果觉的博主的文章还不错的话,还请点赞,收藏,关注👀支持博主。如果发现有问题的地方欢迎❀大家在评论区指正 目录 一、项目解析 二…...

【Elasticsearch】bucket_sort

Elasticsearch 的bucket_sort聚合是一种管道聚合,用于对父多桶聚合(如terms、date_histogram、histogram等)的桶进行排序。以下是关于bucket_sort的详细说明: 1.基本功能 bucket_sort聚合可以对父聚合返回的桶进行排序&#xff…...

计算机毕业设计——Springboot点餐平台网站

📘 博主小档案: 花花,一名来自世界500强的资深程序猿,毕业于国内知名985高校。 🔧 技术专长: 花花在深度学习任务中展现出卓越的能力,包括但不限于java、python等技术。近年来,花花更…...

MATLAB中count函数用法

目录 语法 说明 示例 对出现次数计数 使用模式对数字和字母进行计数 多个子字符串的所有出现次数 忽略大小写 对字符向量中的子字符串进行计数 count函数的功能是计算字符串中模式的出现次数。 语法 A count(str,pat) A count(str,pat,IgnoreCase,true) 说明 A c…...

Win11下搭建Kafka环境

目录 一、环境准备 二、安装JDK 1、下载JDK 2、配置环境变量 3、验证 三、安装zookeeper 1、下载Zookeeper安装包 2、配置环境变量 3、修改配置文件zoo.cfg 4、启动Zookeeper服务 4.1 启动Zookeeper客户端验证 4.2 启动客户端 四、安装Kafka 1、下载Kafka安装包…...

51c自动驾驶~合集49

我自己的原文哦~ https://blog.51cto.com/whaosoft/13164876 #Ultra-AV 轨迹预测新基准!清华开源:统一自动驾驶纵向轨迹数据集 自动驾驶车辆在交通运输领域展现出巨大潜力,而理解其纵向驾驶行为是实现安全高效自动驾驶的关键。现有的开…...

nexus部署及配置https访问

1. 使用docker-compose部署nexus docker-compose-nexus.yml version: "3" services:nexus:container_name: my-nexusimage: sonatype/nexus3:3.67.1hostname: my-nexusnetwork_mode: hostports:- 8081:8081deploy:resources:limits:cpus: 4memory: 8192Mreservations…...