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

【软考---系统架构设计师】特殊的操作系统介绍

目录

一、嵌入式系统(EOS)

(1)嵌入式系统的特点

(2)硬件抽象层

(3)嵌入式系统的开发设计 

二、实时操作系统(RTOS)

(1)实时性能指标

(2)调度算法

(3)常见实时操作系统

三、微内核操作系统


一、嵌入式系统(EOS)

(1)嵌入式系统的特点

嵌入式系统主要由于嵌入式硬件平台,相关支撑硬件,嵌入式操作系统,支撑软件和应用软件组成。其中,嵌入型,专用性和计算机系统是嵌入式系统的三个核心要素。

特点:

(1)系统专用性强

(2)系统实时性强

(3)软硬件依赖性强

(4)处理器专用

(5)多种技术紧密结合

(6)系统透明性

(7)系统资源受限

(2)硬件抽象层

嵌入式操作系统特点:

(1)微型化

(2)代码质量高

(3)专业化

(4)实时性强

(5)可裁减,可配置

针对不同的硬件平台,操作系统通常建立在一个硬件抽象层上,该层次位于底层硬件和内核之间,为内核提供各种方便移植的宏定义接口,在不同的平台移植时,只需要修改宏定义即可。

与硬件相关,与操作系统相关。

 

(3)嵌入式系统的开发设计 

 嵌入式系统的开发设计师交叉开发环境

(1) 基于硬件的低功耗设计:

板级电路低功耗设计;选择低功耗处理器;总线的低功耗设计;接口驱动电路的设计;分区分时供电技术

(2)基于软件的低功耗设计:

编译优化技术;软件和硬件的协同设计(硬件功能交由软件完成);算法优化(低时间复杂度)

二、实时操作系统(RTOS)

(1)实时性能指标

任务切换时间

中断处理相关的时间指标

中断延迟时间

中断响应时间

系统响应时间(对用户的输入或请求作出反应时间)

信号量混洗时间(从一个任务释放信号量等到另一个等待该信号量的任务被激活的时间延迟)

(2)调度算法

这里我就列举一些常见的:

(1)优先级调度算法:根据优先级高低进行排序,按时间顺序进行高优先级调度

(2)抢占式优先级调度算法:在优先级调度基础上,允许高优先级任务抢占低优先级任务

(3)时间轮转调度:调度程序会依次调度每个任务运行一个小的时间片,然后再调度另一个任务。每个任务运行完一个时间片,无论是否结束都会释放cpu让下一个任务进行(纯粹的时间轮转不满足实时系统的要求,取而代之的是基于优先级的抢占式时间轮转调度)

(3)常见实时操作系统

常见的RTOS有:VxWorks,RT-Linux,ONX,pSOS

三、微内核操作系统

现代操作系统大多拥有两种工作状态,分别是核心态和用户态。一般应用程序工作在用户态,而内核模块和最基本的操作系统核心工作在核心态。

将传统的操作系统代码放置到最高层,从操作系统中去掉尽可能多的东西,而留下最小的核心,称之为微内核。

操作系统的内核服务:异常和中断,计时器,I/O管理

 

http://www.lryc.cn/news/324402.html

相关文章:

  • 大模型: 提示词工程(prompt engineering)
  • RabbitMQ的事务机制
  • 41 物体检测和目标检测数据集【李沐动手学深度学习v2课程笔记】
  • 软件包管理(rpm+yum)
  • 网关层针对各微服务动态修改Ribbon路由策略
  • 如何从零开始拆解uni-app开发的vue项目(二)
  • 【生成对抗网络GAN】一篇文章讲透~
  • 【设计模式】Java 设计模式之模板命令模式(Command)
  • 如何在Flutter中实现一键登录
  • Amazon SageMaker + Stable Diffusion 搭建文本生成图像模型
  • FPGA数字信号处理前沿
  • 【Android】系统启动流程分析 —— init 进程启动过程
  • 抖音视频批量下载软件可导出视频分享链接|手机网页视频提取|视频爬虫采集工具
  • 鸿蒙Harmony应用开发—ArkTS-@Observed装饰器和@ObjectLink装饰器:嵌套类对象属性变化
  • 深度解析:Elasticsearch写入请求处理流程
  • 数据结构:堆和二叉树遍历
  • [Halcon学习笔记]在Qt上实现Halcon窗口的字体设置颜色设置等功能
  • ArcGis 地图文档
  • 【C语言】动态内存分配
  • 算法思想总结:位运算
  • 四、HarmonyOS应用开发-ArkTS开发语言介绍
  • 3 Spring之DI详解
  • Web框架开发-Ajax
  • Python爬虫之urllib库
  • Docker学习笔记 - 常用命令
  • 数学建模(Topsis python代码 案例)
  • gateway网关指定路由响应超时时间
  • docker 和K8S知识分享
  • MySQL--select count(*)、count(1)、count(列名) 的区别你知道吗?
  • 使用verilog设计实现16位CPU及仿真