操作系统面试知识点(1):操作系统基础

目录

1.什么是操作系统:

2.操作系统有哪些功能?

3.常见的操作系统有哪些

4.用户态和内核态

5.内核态权限这么高,为什么不还要用户态?

6.用户态和内核态是如何切换的?

7.系统调用

8,系统调用的过程


​​​​​​​1.什么是操作系统:

(1)操作系统(OS)是管理计算机软硬件资源程序,运行在你计算机上的所有软件都通过操作系统调用内存和磁盘等硬件

(2)操作系统是硬件管理员,屏蔽了硬件的复杂性

(3)操作系统的核心是内核(Kernel),负责内存,硬件,文件系统,以及应用程序管理.

区分内核和CPU:

1.内核属于操作系统层面,CPU属于硬件

2.CPU提供运算和处理指令的能力,内核负责系统管理

2.操作系统有哪些功能?

(1)进程和线程的管理:进程的创建,撤销,阻塞,唤醒,进程间的通信等

在Window系统直观的表现是任务资源管理器,可以看到同一个软件,却分出了多个不同的线程

Java的JUC包和操作系统线程之间的关系:

JUC构建在Java线程模型之上,而Java线程最终依赖操作系统

(2).存储管理:内存的分配和管理,外存(磁盘)的分配和管理

(3).文件管理:文件的创建,读写,及删除等

最直接的体现是Window资源管理器,新建,打开,编辑,删除文件

(4)设备管理

完成设备(输入输出设备和外部存储设备等)的请求或释放,以及设备启动等功能

这里的输入输出设备有键盘,显示器等,外部存储设备有U哦按,磁带等

设备启动过程:(以U盘为例)

设备检测,设备驱动加载,设备初始化和设备就绪

(5)网络管理

操作系统提供计算机网络的使用

(6)安全管理

用户的身份认证,访问控制,文件加密等

3.常见的操作系统有哪些

window(打游戏好用),linux(编程),macos(编程体验和linux相当,还有自己的苹果生态)

4.用户态和内核态

进程在系统上的运行分为两个级别

(1).用户态:读取用户程序的数据,较低权限

(2).内核态:几乎可以访问计算机的任何资源.当操作系统接收到系统调用请求时,就会从用户态切换到内核态,执行相应的系统调用并将结果返回给进程后,切换回用户态

开销大,需要进行一系列上下文切换和权限检查,不利于系统的性能和稳定性,因此尽量少的使用内核态

5.内核态权限这么高,为什么不还要用户态?

(1).一些指令比较危险,比如内存分配,设置时钟,IO处理等,这些指令需要被限制在内核中运行,也叫特权指令

(2).只有内核态,所有的程序必须共享系统资源,资源的竞争和冲突会影响系统性能和效率

6.用户态和内核态是如何切换的?

1.系统调用,为了实现功能主动切换到内核态

2.中断:当外围设备完成用户请求的操作后,会向CPU发送相应的中断信号,这时CPU会暂停执行下一条即将执行的指令转而去执行与中断程序相对应的处理程序

3异常:CPU在执行用户态下的程序时,发生了某些不可预知的异常,会切换到处理次异常的内核相关程序中去

7.系统调用

我们运行的程序基本都是用户态,当需要访问系统资源时需要通过系统调用向操作系统提出服务请求并让其代为完成,包括内存管理,存储管理,进程管理,文件管理,网络管理等

8,系统调用的过程

1用户态因为权限不足发起系统调用

2,发生中断后,CPU停止执行当前程序跳转到中断处理程序开始执行内核程勋

3.系统调用完成后操作系统使用特权指令切换回用户态,回复用户态的上下文,继续执行用户程序包

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

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

相关文章

Linux 和 Windows 服务器:哪一个更适合您的业务需求?

在选择服务器操作系统时,Linux 和 Windows 服务器是最常见的两种选择。它们各有特点,适合不同的业务需求和使用环境。本文将详细分析 Linux 和 Windows 服务器的主要差异,包括成本、安全性、性能、定制化能力和用户界面等方面,帮助…

CertiK联创顾荣辉将于港大活动发表演讲,分享Web3安全与发展新视角

CertiK联合创始人、哥伦比亚大学教授顾荣辉,将于6月30日出席香港大学经管学院主办的“Web3革新与商业机遇”活动,并发表主题演讲《规模化Web3:面向全球受众的创新与安全平衡之道》。 本次活动由港大经管学院高层管理教育主办,Met…

SpringAI系列---【SpringAI如何接入阿里云百炼大模型?】

1.导言 阿里云百炼的通义千问模型支持 OpenAI 兼容接口,您只需调整 API Key、BASE_URL 和模型名称,即可将原有 OpenAI 代码迁移至阿里云百炼服务使用。 如果是要接入阿里云百炼模型,首先推荐使用Spring AI Alibaba,而不是使用Spri…

电子电气架构 --- 实时系统评价的概述

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 做到欲望极简,了解自己的真实欲望,不受外在潮流的影响,不盲从,不跟风。把自己的精力全部用在自己。一是去掉多余,凡事找规律,基础是诚信;二是…

Flink SQL执行流程深度剖析:从SQL语句到分布式执行

在大数据处理领域,Flink SQL凭借其强大的处理能力和易用性,成为众多开发者的选择。与其他OLAP引擎类似,Flink SQL的SQL执行流程大致都需要经过词法解析、语法解析、生成抽象语法树(AST)、校验以及生成逻辑执行计划等步…

什么是redis

Redis是一个开源的、基于内存的高性能键值存储数据库,广泛用于缓存、消息队列、会话存储等场景。 - 核心特点: - 内存存储:数据存储在内存中,读写速度极快。 - 键值对:以键值对形式存储数据,键通常是字…

《从0到1:C/C++音视频开发自学指南》

开启自学之旅:为何选择 C/C 音视频开发 在当今数字化时代,音视频开发的应用场景极为广泛,深刻融入了我们生活与工作的方方面面。从火爆的直播行业,无论是电商直播中主播与观众的实时互动,还是游戏直播里精彩赛事的实时…

学习日记-spring-day37-6.25

知识点: 1.使用utillist进行配置 知识点 核心内容 重点 Spring框架中utl名称空间创建List 通过utl名称空间创建并管理集合对象,实现数据复用 utl list与普通list赋值的区别; 名称空间引入方法 无参构造器使用规则 当类中没有其他构造器时&#x…

【Python练习】012. 使用字符串的upper()方法将字符串转换为大写

012. 使用字符串的upper方法将字符串转换为大写 012. 使用字符串的upper()方法将字符串转换为大写示例代码运行结果代码解释 扩展:动态输入字符串示例运行 何时使用upper方法基本用法示例忽略大小写的字符串比较数据清洗标准化 注意事项 012. 使用字符串的upper()方…

Python Polars库详解:高性能数据处理的新标杆

在数据驱动的时代,高效的数据处理能力已成为开发者和数据科学家的核心竞争力。作为Pandas的强劲挑战者,Polars库凭借其基于Rust的底层架构和创新的表达式引擎,在性能测试中展现出惊人的速度优势。本文将深入解析Polars的核心特性、使用技巧及…

Go语言- 单元测试

实际开发中,需要保证单元功能正确。 传统方式:在main函数中直接调用,查看结合是否和预期一致。 缺点:1. 不方便 2. 不利于管理 因此,单元测试具有必要性 testing测试框架 Go语言中自带testing轻量级测试框架和go…

Vue移动端开发的适配方案与性能优化技巧

文章目录 1. 移动端适配方案1.1. 视口适配1.2. 基于rem/em的适配方案1.3. vw/vh视口单位适配1.4. 移动端UI组件库适配 2. 移动端性能优化技巧2.1. 虚拟列表实现长列表优化2.2. 图片懒加载与优化2.3. 减少首屏加载时间2.4. 事件节流与防抖 3. 移动端常见问题解决方案3.1. 移动端…

如何微调和部署OpenVLA在机器人平台上

这个教程来自这个英伟达网址 教程的目标是提供用于部署 VLA 模型的优化量化和推理方法,以及针对新机器人、任务和环境的参考微调流程。在一个自包含的仿真环境中,结合场景生成和领域随机化(MimicGen)对性能和准确性进行严格验证。…

深入剖析Flink内存管理:架构、调优与实战指南

在大数据处理领域,Apache Flink凭借强大的流处理和批处理能力备受青睐。而Flink内存管理机制,作为保障作业高效稳定运行的关键支柱,深刻影响着任务执行性能、资源利用率以及系统容错能力。理解并掌握Flink内存管理原理与优化策略,…

【力扣 C】动态规划专题目录

【力扣 简单 C】509. 斐波那契数https://blog.csdn.net/2503_92320911/article/details/148810148 【力扣 中等 C】983. 最低票价https://blog.csdn.net/2503_92320911/article/details/148833421 【力扣 中等 C】91. 解码方法https://blog.csdn.net/2503_92320911/article/d…

Linux 中如果网络连接丢失或无法找到网络设备

如下步骤 1. 检查网络服务状态 sudo systemctl status NetworkManager 如果服务未运行,启动并启用它: sudo systemctl start NetworkManager sudo systemctl enable NetworkManager ______ 2. 检查网络接口 ip add 确认网卡(如 eth0、en…

【Linux 平台总线驱动开发实战】

Linux 平台总线驱动开发实战 一、平台总线驱动基础概念二、核心数据结构解析2.1 设备结构体 struct platform_device2.2 驱动结构体 struct platform_driver2.3 资源结构体 struct resource 三、驱动开发完整流程3.1 设备注册3.2 驱动注册3.3 设备与驱动匹配 四、编译与测试4.1…

LabVIEW液位上升图像识别 附件有源码

源程序在这里https://www.bjcyck.com/nd.jsp?fromColId101&id2675#_np101_331 本LabVIEW 程序实现基于图像灰度特征的液位上升监测与控制,通过读取序列液位上升图像,分析指定区域灰度变化获取液位斜率,依据设定标记位置实现液位上升到目…

git安装使用详细教程

git高速下载 macOS 系统 # 方法1:Homebrew(推荐) brew install git# 方法2:官方安装包 下载地址:https://sourceforge.net/projects/git-osx-installer/Linux 系统 # Debian/Ubuntu sudo apt update && sudo…

玛哈特机械矫平机:精密制造的“应力消除师”与“平整度雕刻家”

机械矫平机,作为金属板材加工链中的关键一环,其价值远不止于“压平”那么简单。它是材料科学、精密机械与控制技术的结晶,是确保高端制造品质的幕后功臣。本文将深入探讨其核心机理、进阶应用及未来方向。 一、 矫平机理再探:超越…