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

操作系统面试知识点(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.xdnf.cn/news/1069975.html

相关文章:

  • 解锁AI无限潜能!景联文科技数据产品矩阵再升级:多语言题库、海量语料、垂域代码库,全面赋能大模型训练
  • Pydantic 模型
  • vscode运行c++文件和插件的方法
  • 信息化系统流程管理模块,企业高价值资产的跨省/市运输审批流程的功能
  • PHP基础2(流程控制,函数)
  • redis8.0新特性:t-digest计算数据百分位
  • 美团业务调整,但不裁员不降薪
  • 使用 Python 自动化文件获取:从 FTP 到 API 的全面指南
  • 力扣网C语言编程题:搜索插入位置
  • SpringBoot 中 @Transactional 的使用
  • lua 程序性能分析工具 Plua 推荐
  • CTF:PHP 多关卡绕过挑战
  • python 爬虫 下载视频
  • lua脚本为什么能保证原子性
  • 新手向:Anaconda3的安装与使用方法
  • 【UniApp 日期选择器实现与样式优化实践】
  • 大语言模型介绍
  • 推荐系统的视频特征-视频关键帧特征提取与向量生成
  • 七天学会SpringCloud分布式微服务——02——第一个微服务项目
  • Flink Oracle CDC 总结
  • 六个安全Agent设计模式:有效防止Prompt注入攻击
  • Milvus 资源调度系统的核心部分:「查询节点」「资源组」「数据库」
  • 黑马ReactDay02
  • gitlab https链接转为ssh链接
  • Android 开发 获取Debug 跟 Release 包的SHA1值
  • Host ‘db01‘ is not allowed to connect to this MariaDB server 怎么解决?
  • 原子级制造革命:双原子镧催化剂登顶Angew,焦耳超快加热技术深度解析
  • 卷积神经网络(Convolutional Neural Network, CNN)
  • 论文阅读:A Survey on Large Language Models for Code Generation
  • 量学云讲堂王岩江宇龙2025年第58期视频 主课正课系统课+收评