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

news2025/3/17 6:42:18

前言

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

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



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

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


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

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

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


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

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

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

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


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

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

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


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


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

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

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

相关文章

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 配置 …

《战神:诸神黄昏》游戏闪退后提示弹窗“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…

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. 内存映…

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

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

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线程安全案例

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

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 轨迹预测新基准!清华开源:统一自动驾驶纵向轨迹数据集 自动驾驶车辆在交通运输领域展现出巨大潜力,而理解其纵向驾驶行为是实现安全高效自动驾驶的关键。现有的开…

Python——批量图片转PDF(GUI版本)

目录 专栏导读1、背景介绍2、库的安装3、核心代码4、完整代码总结专栏导读 🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手 🏳️‍🌈 博客主页:请点击——> 一晌小贪欢的博客主页求关注 👍 该系列文章专栏:请点击——>Python办公自动化专…