嵌入式八股文(三)操作系统篇

目录

1. 什么是操作系统?它的主要功能有哪些?

2. 进程管理部分。

(1)进程、线程、纤程。

(2)进程的五态模型。

(3)进程间通信。

(4)什么是进程调度算法?请列举几种常见的进程调度算法。

(5)什么是线程同步?常见的线程同步机制有哪些?

(6)什么是死锁?死锁产生的四个必要条件是什么?

(7)生产者和消费者模型。 

(8)协作型多任务和抢占型多任务?区别是什么? 

(9)用户态、内核态。如何从用户态切换到内核态呢?

(10)什么是单核、多核处理器?

(11)为什么上下文切换会有开销? 

 (12)进程控制块PCB。

(13)多级反馈队列调度算法。它如何平衡响应时间和吞吐量?

3. 内存管理部分。

(1)内存管理单元MMU。

(2)虚拟内存、交换空间、页面交换、地址映射、内存映射。

(6)虚拟地址与物理地址的映射。

(3)缺页中断及其处理过程。

 (4)页面置换算法?常见的页面置换算法有哪些?

(5)分页和分段?它们有什么区别?

(6)内存分配及其相应算法机制。

(8)页面、页表、多级页表、快表。

(7)内存保护、内存隔离。

(8)如何管理内存中的共享内存?

(9)如何提高内存访问的速度(缓存内存、TLB快表缓存)

(10)内存碎片?如何避免。

(11)物理内存RAM、ROM和Flash。

(12)内核态和用户态的内存申请。

4. 文件系统部分。

(1)什么是文件系统?

 (2)文件系统有哪些结构?

 (3)文件系统和磁盘有什么关系?

 (4)文件系统的类型。

(5)什么是文件的访问权限?

(6)什么是文件系统的磁盘块(block)?它是如何分配的?

 (7)零拷贝技术。

(8)磁盘的分类,都有什么特点?

(9)Linux文件系统中的硬链接和软连接。 

5. 设备管理部分。

(1)操作系统如何管理设备?

(2)解释什么是系统调用?

(2)操作系统中的I/O调度是什么?为什么需要I/O调度?

(4)什么是设备驱动程序?

(5)什么是虚拟设备?如何实现设备的虚拟化?

(6)同步IO、异步IO、阻塞IO、非阻塞IO。


1. 什么是操作系统?它的主要功能有哪些?

操作系统(OS)是管理计算机硬件与软件资源并为计算机程序提供服务的系统软件。它充当了计算机硬件与用户之间的中介。操作系统的主要功能包括:

  • 进程管理:管理和调度运行中的进程,确保它们能够有效地共享 CPU 时间。
  • 内存管理:分配和回收内存,确保程序有足够的内存来运行。
  • 文件系统管理:管理文件的存储、读取和访问权限。
  • 设备管理:管理输入输出设备,提供与硬件的交互。
  • 安全与保护:确保系统资源的安全性,并防止未经授权的访问。
  • 用户界面:提供用户与系统的交互接口,通常是命令行或图形用户界面。

2. 进程管理部分。

(1)进程、线程、纤程。

  • 进程:是操作系统管理资源的最小单位,每个进程有独立的资源和内存空间。
  • 线程:是进程内的最小执行单元,多个线程共享进程的资源,适合并发任务。
  • 纤程(协程):是一种用户管理的轻量级线程,通常用于细粒度的控制和高效的协作式任务切换。

(2)进程的五态模型。

  • 其中只有就绪状态和运行状态能互相转化,当进程为就绪态时,等待 CPU 分配时间片,得到时间片后就进入 运行状态
  • 运行状态在使用完 CPU 时间片后,又重回就绪态。
  • 阻塞状态是进程在运行状态时,需要等待某个资源比如打印机资源,而进入一个挂起的状态,等资源拿到后会回到就绪状态,等待 CPU 时间片。

(3)进程间通信。

进程间通信IPC。https://blog.csdn.net/qq_48361010/article/details/139203174?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522b1637546800a01a66687e09bd79d35b9%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=b1637546800a01a66687e09bd79d35b9&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-139203174-null-null.nonecase&utm_term=ipc&spm=1018.2226.3001.4450

(4)什么是进程调度算法?请列举几种常见的进程调度算法。

查看文章:实时操作系统知识点详情(任务调度)https://blog.csdn.net/qq_48361010/article/details/140539159?spm=1001.2014.3001.5502

(5)什么是线程同步?常见的线程同步机制有哪些?

  • 管道(Pipe):提供了一种流式的通信方式,常用于父子进程之间的数据传递。
  • 消息队列(Message Queue):通过队列来存储和传递消息,支持异步通信。
  • 共享内存(Shared Memory):多个进程共享一块内存区域,直接读写内存来实现通信,效率高,但需要同步机制来避免竞争。
  • 信号量(Semaphore):通过信号量来控制进程的访问,常用于同步操作。
  • 套接字(Socket):用于不同计算机之间的通信,支持基于TCP/IP协议的网络通信。

(6)什么是死锁?死锁产生的四个必要条件是什么?

        死锁是指两个或多个进程因争夺资源而导致相互等待的现象,这些进程无法继续执行下去,形成了一个“僵局”。

死锁产生的四个必要条件

(1)互斥条件:一个资源每次只能被一个进程使用,即在一段时间内某 资源仅为一个进程所占有。此时若有其他进程请求该资源,则请求进程只能等待。

(2)持有并等待条件:进程已经保持了至少一个资源,但又提出了新的资源请求,而该资源 已被其他进程占有,此时请求进程被阻塞,但对自己已获得的资源保持不放。

(3)不剥夺条件:进程所获得的资源在未使用完毕之前,不被其他进程强行剥夺,而只能由获得该资源的进程资源释放。

(4)循环等待条件:存在一种进程资源的循环等待关系,即进程 A 等待进程 B 持有的资源,进程 B 又等待进程 A 持有的资源。

(7)生产者和消费者模型。 

        生产者-消费者模型:是一种经典的多线程或多进程同步与通信模型,主要解决两个进程(或线程)如何协调地共享资源的问题。其核心是生产者负责生成数据,而消费者则负责消费数据。为了避免资源的争用、数据不一致或丢失,通常会使用一个共享缓冲区来暂存生产者和消费者的数据。

Ⅰ、模型描述

  • 生产者:负责生成数据,并将数据放入共享缓冲区(通常是队列或缓冲区)。
  • 消费者:从共享缓冲区取出数据进行处理(消费)。
  • 缓冲区:用来存储生产者生成的数据,消费者从这里取出数据。缓冲区通常有大小限制,因此可能会出现两种情况:
    • 缓冲区满:生产者需要等待直到消费者消费一些数据。
    • 缓冲区空:消费者需要等待直到生产者生产出新的数据。

Ⅱ、问题的关键点

  • 同步问题:生产者和消费者需要协调对缓冲区的访问,避免并发冲突。
  • 互斥问题:多个进程或线程对缓冲区的访问需要是互斥的,以防止同时读写导致数据错误。
  • 死锁和饥饿问题:如果生产者和消费者没有适当的条件和规则,可能会导致系统进入死锁状态或某一方长期等待,造成饥饿现象。

(8)协作型多任务和抢占型多任务?区别是什么? 

协作型多任务:进程在执行时主动让出 CPU,操作系统不会强制抢占。

抢占型多任务:操作系统定期中断进程,强制切换 CPU 给其他进程。

(9)用户态、内核态。如何从用户态切换到内核态呢?

从用户态切换到内核态的方法。

  • 系统调用:用户程序通过API(如文件操作、网络请求)触发软中断(如int 0x80syscall指令),CPU切换到内核态执行内核代码。

  • 硬件中断:外部设备触发中断(如键盘输入、定时器中断),CPU暂停用户程序,进入内核处理中断。

  • 异常:程序执行错误(如除零、页错误),强制切换到内核态处理异常。

(10)什么是单核、多核处理器?

单核处理器:指一个物理处理器芯片中只包含一个处理核心,每次只能执行一个任务,不能多个任务同时执行。

多核处理器:指一个物理处理器芯片中包含多个处理核心,每个核心都可以独立执行指令。多核处理器能够真正实现并行计算,每个核心都可以同时执行不同的任务或线程。

这里又延申出并发和并行的概念。

(11)为什么上下文切换会有开销? 

        上下文切换是操作系统保存当前进程的状态(上下文)并恢复另一个进程的状态。它会导致性能开销,因为涉及到寄存器、程序计数器等信息的保存和加载,可能还会涉及缓存失效和 TLB(翻译后备缓冲区)刷新等操作。

 (12)进程控制块PCB。

        进程控制块(PCB)是操作系统用来管理每个进程的信息结构,包含:进程状态、程序计数器(PC)、CPU 寄存器、内存管理信息、I/O 状态信息、进程优先级等。

(13)多级反馈队列调度算法。它如何平衡响应时间和吞吐量?

        多级反馈队列调度算法使用多个队列,每个队列有不同的优先级。新进程进入最高优先级队列,若执行时间超过某个阈值,则被移到较低优先级队列。它通过动态调整进程优先级平衡响应时间和吞吐量。 

3. 内存管理部分。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值