操作系统面试高频(操作系统基础)

操作系统基础

1 操作系统基本特性⭐⭐⭐⭐⭐

并发,并发是系统中程序能够并发执行的特征,可使得操作系统有效提高系统中的资源利用率,增加系统的吞吐量

并发和并行

并发:两个或者多个事件在同一时刻发生。

并行:两个或者多个时间在同一时间间隔内发生。在多道程序下,并发性是指在一段时间内宏观上有多道程序同时运行,但是单处理机系统中,每一时刻只能有一道程序执行。

共享 在操作系统环境下的资源共享成为资源复用,是指系统中资源可供内存中多个并发执行的进程共同使用

互斥共享和同时访问

互斥共享:系统的某些资源,虽然可以提供给多个进程使用,但应规定在一段时间内,只允许一个进程访问资源。

同时访问:系统中还有另一类资源,允许在一段时间内由多个进程同时对他们进行访问

并发和共享是操作系统的两个最基本的特征,它们互为存在的条件。一方面资源共享是以进行并发执行作为条件的,若系统不允许并发执行也就不存在资源共享问题;另一方面,若系统不能对资源共享实施有效管理,以协调好诸进程对资源共享的访问,也必然会影响到诸进程并发执行的程度,甚至无法并发执行。

虚拟 通过某种技术将一个物理实体变为若干个逻辑上对应的物的功能。在操作系统中可以通过时分复用技术和空分复用技术来实现虚拟的

时分复用技术:可利用某设备为一用户服务的空闲时间,又转去为其他用户服务,使设备得到最充分的利用。

空分复用技术:利用存储器的空闲空间分区域存放和运行其他的多道程序,以此来提高内存的利用率。

异步 在多道程序环境下,系统允许多个进程并发执行。在单处理机程序环境下,由于系统只能运行一个进程,其余进程只能等待。由于资源等因素的限制,使进程的执行通常不是一气呵成的,而是走走停停的方式运行。

2 操作系统主要功能⭐⭐⭐⭐⭐

操作系统主要包括以下几个方面的功能 :

(1)CPU管理:其工作主要是进程调度,在单用户单任务的情况下,处理器仅为一个用户的一个任务所独占,进程管理的工作十分简单。但在多道程序或多用户的情况下,组织多个作业或任务时,就要解决处理器的调度、分配和回收等问题。

(2)存储管理,分为几种功能:存储分配、存储共享、存储保护、存储扩张。

(3)设备管理,分为以下功能:设备分配、设备传输控制、设备独立性。

(4)文件管理:文件存储空间的管理、目录管理、文件操作管理、文件保护。

(5)作业管理,是负责处理用户提交的任何要求。

3 CPU工作原理⭐⭐⭐⭐⭐

CPU 的工作原理

CPU(中央处理器)是计算机的核心部件,负责执行指令和处理数据。其工作原理可分为以下几个关键环节:

1. 指令获取(Fetch)

  • 从内存读取指令:CPU 通过地址总线从内存中读取当前要执行的指令,指令地址由程序计数器(PC)指定。
  • 指令缓存优化:现代 CPU 会将常用指令预先加载到高速缓存(L1/L2/L3)中,减少内存访问延迟。

2. 指令解码(Decode)

  • 解析指令内容:控制单元(CU)将二进制指令分解为操作码(操作类型)和操作数(数据或地址)。
  • 确定执行路径:根据操作码确定需要调用的功能单元(如算术逻辑单元 ALU、浮点运算单元 FPU 等)。

3. 指令执行(Execute)

  • 运算处理:运算单元(ALU)对操作数进行算术运算(如加减乘除)或逻辑运算(如与、或、非)。
  • 地址计算:地址生成单元负责计算内存地址,用于读取或写入数据。

4. 结果写回(Write Back)

  • 存储结果:将运算结果写回寄存器或内存(通过数据总线)。
  • 更新状态:根据运算结果更新标志寄存器(如进位标志、溢出标志等)。

5. 流水线技术

  • 并行处理:现代 CPU 采用流水线技术,将指令执行分为多个阶段(如取指、解码、执行、写回),各阶段同时处理不同指令,提升效率。

6. 控制流管理

  • 分支预测:通过预测分支指令(如 if 语句)的执行方向,提前加载可能需要的指令,减少流水线停顿。
  • 异常处理:当遇到错误(如除数为零)或中断请求时,CPU 暂停当前任务,跳转至异常处理程序。

4 CPU流水线⭐⭐⭐⭐⭐

阶段划分与并行执行典型的五级流水线将指令执行分为:

取指(IF):从内存或缓存读取指令,地址由程序计数器(PC)确定。

译码(ID):解析指令操作码和操作数,计算有效地址。

执行(EX):通过算术逻辑单元(ALU)完成运算,或生成访存地址。

访存(MEM):访问内存读取数据(Load)或写入结果(Store)。

写回(WB):将结果存入寄存器或内存,更新标志位。

例如,当第一条指令处于执行阶段时,第二条指令可能正在译码,第三条指令已完成取指,形成 “指令流” 的连续处理。

5 内核态和用户态的区别⭐⭐⭐⭐⭐

内核态和用户态是操作系统中的两种不同的运行态,它们的主要区别在于权限和特权级

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

嵌入式/C++面试八股文 文章被收录于专栏

该专栏面向嵌入式开发工程师、C++开发工程师,包括C语言、C++,操作系统,ARM架构、RTOS、Linux基础、Linux驱动、Linux系统移植、计算机网络、数据结构与算法、数电基础、模电基础、5篇面试题目、HR面试常见问题汇总和嵌入式面试简历模板等文章。超全的嵌入式软件工程师面试题目和高频知识点总结! 另外,专栏分为两个部分,大家可以各取所好,为了有更好的阅读体验,后面会持续更新!!!

全部评论

相关推荐

25春招笔试完就开始面试了,提前给大家分享个去年的面经1.自我介绍2.可以说一下IOC和AOP吗?3.IOC有什么好处?3.Spring aop有几种代理模式?4.第二个项目是个人项目吗?5.Java的面向对象有几大特性?并说说你对这几个特性的理解6.关于Redis的了解,你在这个项目中用Redis做了什么?7.aof和rdb是什么技术?区别是什么?8.redis集群技术你了解吗?9.redis的一个key过来会分配到哪个机器上,算法是怎么样的呢?它有一套自己的算法,做一个映射10.hashmap和hashtable的区别?11.concurrent hashmap的阈值是多少?12.hash冲突的话有几种解决方式线性探测,平方探测,拉链法13.介绍一下hashmap的扩容因子,初始扩容因子是多少,初始数组容量是多少14.在你的项目中,kafka是用来做什么的?15.说一下redis的缓存雪崩,缓存穿透怎么解决的?16.缓存穿透怎么解决的?答:布隆过滤器 追问:有其他的解决方案吗?17.redis热点key过期了,怎么处理?大量用户同时访问一个key,热点失效了,动态调整失效时间18.项目中的es是做什么的?问了论文,专利19.Java用了多久了?平时遇到过OOM的状况吗?介绍了一次full gc20.介绍一下JVM的内存模型21.CMS垃圾回收和G1垃圾回收的区别22.关于Zookeeper?23.介绍一下Spring, Spring MVC, Spring Boot, Spring Cloud?24.微服务之间的通信方式?RPC25.数据库用的是什么?MySQL 哪个版本?26.讲一下数据库的事务?ACID特性27.MySQL事务的隔离级别:读未提交,读已提交,可重复读(默认隔离级别),串行化四个隔离级别分别解决了什么问题28.介绍一下七层网络架构29.介绍一下ARP协议,这是哪一层协议30.关于传输层协议了解哪些?TCP和UDP,介绍一下应用场景31.说一下Https和Http的区别32.Https的加密方式? 对称加密+非对称加密33.说一下Http请求建立时候的错误代码34.手撕一下二叉树的中序遍历?先写递归,再写非递归小米公司校招内推码: BAD31ZQ 投递链接: https://xiaomi.jobs.f.mioffice.cn/referral/campus/position/?token=NTsxNzQxNjU5NDI4MzU5OzcyNTI2MjA3NTAxMzI5MDQwNDQ7NzQyNzMxNTUyNTI5NjI5MTk0OA小米公司社招内推码: BAD31ZQ 投递链接: https://xiaomi.jobs.f.mioffice.cn/referral/position/?token=NTsxNzQxNjU5NDgzMTM1OzcyNTI2MjA3NTAxMzI5MDQwNDQ7NzQyNzMyNzM3MjQyNzYyNDU1Ng#小米内推##小米##春招##面经##内推#
小米集团
|
校招
|
超多精选岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务