嵌入式面试6---操作系统原理

====
6 优先级反转问题在嵌入式系统中是一中严重的问题,必须给与足够重视。
a) 首先请解释优先级反转问题
b) 很多RTOS提供优先级继承策略(Priority inheritance)和优先级天花板策略(Priority ceilings)用来解决优先级反转问题,请讨论这两种策略。
答:
优先级反转:高优先级任务被低优先级任务阻塞,导致高优先级任务迟迟得不到调度。但其他中等优先级的任务却能抢到CPU资源。从现象上来看,好像是中优先级的任务比高优先级任务具有更高的优先权。
具体来说,当高优先级任务正等待信号量(此信号量被一个低优先级任务拥有着)的时候,一个介于两个任务优先之间的中等优先级任务开始执行,这就会导致一个高优先级任务在等待一个低优先级任务,而低优先级任务却无法执行类似死锁的情形发生。
优先级继承策略:进程调度算法对获取到临界资源的进程(A)增加其优先级为所有等待该资源的进程中的最高优先级。一旦进程(A)释放了该资源,就恢复到原来的优先级。
优先级天花板策略:给每个信号量设置一个优先级天花板,优先级天花板的值大于所有使用该信号的任务的优先级,当某个任务得到该信号量时,将其优先级置为优先级天花板的值。
权重:中
备注:平常编程时用不到,但需要了解运行原理,类似的还有内存管理的原理。

====
18.操作系统采用缓冲技术,能够减少CPU(A)次数,从而提高资源的利用率。
A 中断
B 访问
C 控制
D 依赖
解析:
引入缓冲的主要原因包括:缓和CPU与I/O设备间速度不匹配的矛盾;减少对CPU的中断频率,放宽对中断响应时间的限制;提高CPU和I/O设备之间的并行性。所以采用缓冲技术,可减少对CPU的中断次数,从而提高系统效率。
权重:中

====
11. uClinux 和linux的区别(或者说rtos和linux的区别)
对uCLinux来说,其设计针对没有MMU的处理器,不能使用处理器的虚拟内存管理技术。uCLinux仍然采用存储器的分页管理,系统在启动时把实际存储器进行分页。在加载应用程序时程序分页加载。但是由于没有MMU管理,所以实际上uCLinux采用实存储器管理策略。uCLinux系统对于内存的访问是直接的,所有程序中访问的地址都是实际的物理地址。操作系统对内存空间没有保护,各个进程实际上共享一个运行空间。
权重:较高

====
14. Linux图形系统有哪些?
X Window、SVGALib、FrameBuffer、LibGGI、QT
权重:较低

====
c) 中断(interrupt,如键盘中断)与异常(exception,如除零异常)有何区别?
异常:在产生时必须考虑与处理器的时钟同步,实践上,异常也称为同步中断。在处理器执行到由于编程失误而导致的错误指令时,或者在执行期间出现特殊情况(如缺页),必须靠内核处理的时候,处理器就会产生一个异常。
所谓中断应该是指外部硬件产生的一个电信号,从cpu的中断引脚进入,打断cpu当前的运行;
所谓异常,是指软件运行中发生了一些必须作出处理的事件,cpu自动产生一个陷入来打断当前运行,转入异常处理流程。
权重:中

====
6 优先级反转问题在嵌入式系统中是一中严重的问题,必须给与足够重视。
a) 首先请解释优先级反转问题
b) 很多RTOS提供优先级继承策略(Priority inheritance)和优先级天花板策略(Priority ceilings)用来解决优先级反转问题,请讨论这两种策略。
答:
高优先级任务需要等待低优先级任务释放资源,而低优先级任务又正在等待中等优先级任务的现象叫做优先级反转
优先级继承策略(Priority inheritance):继承现有被阻塞任务的最高优先级作为其优先级,任务退出临界区,恢
复初始优先级。
优先级天花板策略(Priority ceilings):控制访问临界资源的信号量的优先级天花板。
优先级继承策略对任务执行流程的影响相对教小,因为只有当高优先级任务申请已被低优先级任务占有的临界资源
这一事实发生时,才抬升低优先级任务的优先级。
权重:中

====
5、进程调度策略。
先进先出算法,最短CPU运行期优先调度算法,轮转法,多级队列方法
权重:较高

====
3、进程间通讯机制有哪些?
答:linux下使用的进程间通信的方式主要有:管道和有名管道,信号,消息队列,共享内存,信号量,套接字。
权重:较高

====
4、比较一下进程和线程的区别?
(1)、调度:线程是CPU调度和分派的基本单位
(2)、拥有资源:

  • 进程是系统中程序执行和资源分配的基本单位
  • 线程自己一般不拥有资源(除了必不可少的程序计数器,一组寄存器和栈),但他可以去访问其所属进程的资源,
    如进程代码,数据段以及系统资源(已打开的文件,I/O设备等)。
    (3)系统开销:
  • 同一进程中的多个线程可以共享同一地址空间,因此它们之间的同步和通信的实现也比较简单
  • 在进程切换的时候,涉及到整个当前进程CPU环境的保存以及新被调度运行的进程的CPU环境的设置;
    而线程切换只需要保存和设置少量寄存器的内容,并不涉及存储器管理方面的操作,从而能更有效地使用系统资源和
    提高系统吞吐量。
    权重:较高

====
21:进程和线程的区别:
1:调度:线程作为调度和分配的基本单元,进程作为拥有资源的基本单位;
2:并发性:不仅进程可以并发执行,同一进程内的线程也可以并发执行。
3:拥有资源:进程是拥有资源的基本独立单元,线程不拥有资源,但可以访问进程内的资源;
4:在创建或撤销线程时,由于系统都要为之分配和回收内存资源,导致系统的开销明显大于创建或撤销线程时的开销。
权重:较高

====
5、死锁的四个条件及处理方法。
   (1)互斥条件:一个资源每次只能被一个进程使用。
(2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。
(3)不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。
(4)循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。
   解决死锁的方法分为死锁的预防,避免,检测与恢复三种
权重:高

===
9、中断的概念?简述中断的过程。
可以描述一下isr、dsr,中断上半部、中断下半部,软中断
权重:较高

====
3.描述实时系统的基本特性
在特定时间内完成特定的任务,实时性与可靠性。
权重:高

====
8.谈谈IA32下的分页机制
小页(4K)两级分页模式,大页(4M)一级
权重:低
备注:内存分页

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

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

相关文章

【N32L40X】学习笔记14-在RT-thread系统中读取eeprom数据

eeprom 说明 eeprom介绍 AT24C01A,1K串行EEPROM:内部组织16页8字节,1K需要一个7位数据字地址进行随机字寻址。AT24C02,2K串行EEPROM:内部组织32页8字节,2K需要一个8位数据字地址进行随机字寻址。AT24C04,4K串行EEPRO…

Android 高级进阶知识整理

Android Framework 启动流程 init 进程启动过程 Android系统启动流程 Zygote启动流程及源码分析 APP启动流程 init进程是Android用户空间第一个进程,主要做以下3件事情: 创建和挂载启动所需的文件目录。初始化和启动关键服务,守护关键…

以太网帧格式与吞吐量计算

以太网帧结构 帧大小的定义 以太网单个最大帧 6(目的MAC地址) 6(源MAC地址) 2(帧类型) 1500{IP数据包[IP头(20)DATA(1480)]} 4(CRC校验&#xff…

4.2、Flink任务怎样读取文件中的数据

目录 1、前言 2、readTextFile(已过时,不推荐使用) 3、readFile(已过时,不推荐使用) 4、fromSource(FileSource) 推荐使用 1、前言 思考: 读取文件时可以设置哪些规则呢? 1. 文件的格式(tx…

COCOS项目运行的时候图片模糊的原因

1、首先。用X坐标来分析,如果size*Anchor Position有小数,如上图57*0.5667695.5。这样就会导致x模糊。如果y同样计算结果包含小数,那么y也会模糊。xy同时模糊的情况是最模糊的。 2、如果当前node没有问题,那么就要检查上级node是…

跨境电商线上店铺智能装修系统源码开发

搭建一个跨境电商线上店铺智能装修系统源码开发需要以下步骤: 1. 确定需求:首先,需要明确线上店铺智能装修系统的具体需求。 2. 选择开发语言和框架:根据需求,选择合适的开发语言和框架进行开发,可以提高…

快速上手Vue开发:新一代Vue官方脚手架(create-vue)

文章目录 一、简介二、创建一个 Vue 应用1、前提条件2、安装命令3、可选插件 一、简介 create-vue 是 Vue3 的专用脚手架,使用 vite 创建 Vue3 的项目,也可以选择安装需要的各种插件,使用更简单。 二、创建一个 Vue 应用 官网地址&#xff…

JVM源码剖析之System.getProperty实现

版本信息 jdk版本:jdk8u40 操作系统:Mac System.getProperty 方法大家并不陌生,在各大框架源码中都能见到,项目中也能使用到,那么此篇文章将带你揭开System.getProperty方法底层实现。 System.getProperty 可以拿到…

Zookeeper特性与节点数据类型详解

CAP&Base理论 CAP理论 cap理论是指对于一个分布式计算系统来说,不可能满足以下三点: 一致性 : 在分布式环境中,一致性是指数据在多个副本之间是否能够保持一致的 特性,等同于所有节点访问同一份最新的数据副本。在一致性的需…

ChatGPT在大规模数据处理和信息管理中的应用如何?

ChatGPT作为一种强大的自然语言处理模型,在大规模数据处理和信息管理领域有着广泛的应用潜力。它可以利用其文本生成、文本理解和问答等能力,为数据分析、信息提取、知识管理等任务提供智能化的解决方案。以下将详细介绍ChatGPT在大规模数据处理和信息管…

Langchain module ‘hnswlib‘ has no attribute ‘Index‘ 错误解决

Langchain module hnswlib has no attribute Index 错误解决 使用 Langchain 操作 Chroma 向量数据库时,报一下错误信息, module hnswlib has no attribute Index试着重装了不同 hnswlib 版本没有解决,最后解决方法是,不要使用 h…

Apache DolphinScheduler 3.1.8 版本发布,修复 SeaTunnel 相关 Bug

近日,Apache DolphinScheduler 发布了 3.1.8 版本。此版本主要基于 3.1.7 版本进行了 bug 修复,共计修复 16 个 bug, 1 个 doc, 2 个 chore。 其中修复了以下几个较为重要的问题: 修复在构建 SeaTunnel 任务节点的参数时错误的判断条件修复 …

《24海南大学835软件工程考研经验贴》

1.经验之谈 首先,我是一个二战的考生,一战给我带来的经验有几点。第一,数学、专业课这两门越早复习越好,越拖到后面你就会发现来不及了,这学不完,那学不完的。第二、我认为是比较关键的一点,一定…

玩转graphQL

转载至酒仙桥的玩转graphQL - SecPulse.COM | 安全脉搏 前言 在测试中我发现了很多网站开始使用GraphQL技术,并且在测试中发现了其使用过程中存在的问题,那么,到底GraphQL是什么呢?了解了GraphQL后能帮助我们在渗透测试中发现哪些…

2 指针与数组:理解指针与数组的关系与转换

推荐最近在工作学习用的一款好用的智能助手AIRight 网址是www.airight.fun。 引言 在计算机科学中,指针与数组是两个基础且重要的概念。指针是一个用于存储变量地址的变量,而数组是一系列相同类型的元素的集合。虽然指针和数组看起来是两个不同的概念&…

在Mac本地搭建Kubernetes和Istio的详细教程

系列文章目录 文章目录 系列文章目录前言一、安装Docker和kind二、创建kind集群三、安装Istio四、部署示例应用五、配置Ingress Gateway六、访问示例应用总结前言 Kubernetes(简称K8s)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。而Istio是一个服…

如何使用HAL库手动配置一个可输出可输入的引脚

在使用CubeMX配置GPIO口时的时候,对于某一个引脚只能选择用来输出或者输入。而有时我们需要在STM32上使用一些外设,比如DHT11温湿度传感器,其中的DATA口需要既能接收信号又能发送信号,所以我们可以参照CubeMX自动生成的GPIO初始化…

c++11 标准模板(STL)(std::basic_fstream)(三)

定义于头文件 <fstream> template< class CharT, class Traits std::char_traits<CharT> > class basic_fstream : public std::basic_iostream<CharT, Traits> 类模板 basic_fstream 实现基于文件的流上的高层输入/输出。它将 std::basic_i…

常见分布式ID解决方案总结:数据库、算法、开源组件

常见分布式ID解决方案总结 分布式ID分布式ID方案之数据库数据库主键自增数据库号段模式Redis自增MongoDB 分布式ID方案之算法UUIDSnowflake(雪花算法) 雪花算法的使用IdWorker工具类配置分布式ID生成器 分布式ID方案之开源组件uid- generator(百度)Tinyid&#xff08;滴滴&…

【LangChain学习】基于PDF文档构建问答知识库(三)实战整合 LangChain、OpenAI、FAISS等

接下来&#xff0c;我们开始在web框架上整合 LangChain、OpenAI、FAISS等。 一、PDF库 因为项目是基于PDF文档的&#xff0c;所以需要一些操作PDF的库&#xff0c;我们这边使用的是PyPDF2 from PyPDF2 import PdfReader# 获取pdf文件内容 def get_pdf_text(pdf):text "…