企业模板建站有哪些,ps软件官方下载,网站开发主流语言,济南企业建站哪家做的好1 、嵌入式软件基础 #xff08;1#xff09;嵌入式软件的特点#xff1a; A、规模较小。 B、开发难度大。 C、实时性和可靠性要求高。 D、要求固化存储。 #xff08;2#xff09;嵌入式软件分类#xff1a; A、 系统软件1嵌入式软件的特点 A、规模较小。 B、开发难度大。 C、实时性和可靠性要求高。 D、要求固化存储。 2嵌入式软件分类 A、 系统软件控制和管理嵌入式系统资源如嵌入式操作系统、驱动程序、中间件等。 B、 应用软件定义嵌入式设备的主要功能和用途负载与用户进行交互。 C、 支撑软件辅助软件开发的工具软件。 3无操作系统的嵌入式软件的两种实现方式 A、 循环轮转 优点简单、直观、开销小、可预测。 缺点过于简单所有代码顺序执行无法处理异步事件缺乏并行处理能力。 B、 前后台系统在循环轮转的基础上增加了中断处理功能 前台事件处理级中断服务程序负载处理异步事件。 后台任务级一个无限循环负载资源分配、任务管理和系统调度。 4有操作系统的三大优点 A、提高系统的可靠性。 B、提高了系统的开发效率降低了开发成本缩短了开发周期。 C、有利于系统的扩展与移植。 5设备驱动层也叫板级支持包 BSP 包含了嵌入式系统中所有与硬件相关的代码 大多数的嵌入式硬件设备都需要某种类型软件的初始化和管理。这部分工作由设备驱动层来完成的它负责直接与硬件大交道对硬件进行管理和控制为上层软件提供所需的驱动支持类似 PC 系统中的 BIOS 和驱动程序。 6板级支持包BSP的基本思想 把嵌入式操作系统与具体的硬件平台隔离开来。在 BSP 当中把所有与硬件相关的代码都封装起来并向上提供一个虚拟的硬件平台而操作系统就运行在这个虚拟的硬件平台上。它使用一组定义好的编程接口来与 BSP 进行交互并通过 BSP 来访问真正的硬件。 7一般来说 BSP 主要包括两个方面的内容 A、 引导加载程序 BootLoader。 B、 设备驱动程序。 8关于引导加载程序 BoorLoader 引导加载程序是嵌入式系统加电后运行的第一段软件代码是在操作系统内核运行之前运行的一段小程序它的实现高度依赖于具体的硬件平台主要的基本功能如下 A、 片级初始化纯硬件初始化过程把微处理器从上电的默认状态设置成系统要求的工作状态。 B、 板级初始化同时有软件和硬件在内的初始化过程设置各种硬件的寄存器和设置某些软件的数据结构和参数。 C、 加载内核将操作系统和应用程序的映象从 Flash 存储器复制到系统内存当中然后跳转到系统内核的第一条指令处继续执行。 补充 PC 系统的引导加载过程。 PC 系统的引导加载程序由两部分代码组成――BIOS 和 MBR 中的引导程序。BIOS 在完成硬件检测和资源配置后将硬盘主引导记录 MBR 中的引导程序读到系统的内存当中然后将控制权交给它由它负责把操作系统的内核映象从硬盘读入到内存然后跳转到内核入口去运行即启动操作系统。 9设备驱动程序 在一个嵌入式系统中操作系统可能有也可能无但是设备驱动程序是必不可少的。设备驱动程序 就是一组库函数用来对硬件进行初始化和管理并向上层软件提供良好的访问接口。大多数设备驱动程序都具备下面的基本功能 启动、关闭、停用、启用、读操作、写操作。这些功能一般用函数的形式来实现这些函数之间的组织结构主要有两种 分层结构和 混合结构。 10关于分层结构 A、硬件接口直接操作和控制硬件。 B、调用接口不直接跟硬件大交道为上层软件提供服务和函数接口。 C、优点把所有与硬件相关的细节都封装在硬件接口中在硬件需要升级需要更新设备驱动程序的时候只需要改动硬件接口中的函数即可而上层调用接口中的函数不用做任何修改。 D、混合结构在设备驱动程序当中没有明确的层次关系上层接口和硬件接口混在一起相互调用。 11嵌入式中间件它是在操作系统内核、设备驱动程序和应用软件之外的所有系统软件其 基本思路是把原本属于应用软件层的一些通用的功能模块抽取出来形成独立的一层软件从而为运行在它上面的那些应用软件提供一个灵活、安全。移植性好、相互通信、协同工作的平台。 2 、嵌入式操作系统概述 1内核 内核是指操作系统中的一个组件它包含了 OS 的主要功能即 OS 的各种特性及其相互之间的依赖关系这些功能主要包括 A、 任务管理对系统中运行的软件进行描述和管理并完成处理器资源分配和调度。 B、 存储管理提高内存的利用率方便用户使用提供足够的存储空间。 C、 设备管理方便设备的使用提高 CPU 和 I/O 设备的利用率。 D、 文件管理解决文件资源存储、共享、保密和保护等问题。 注不同嵌入式操作系统的内核设计各不相同取决于系统设计和实际需求。 2嵌入式操作系统分类 A、按系统类型商业系统、专用系统、开源系统。 B、按响应时间硬实时系统、软实时系统。 C、按软件结构单体结构(uCOS)、分层结构(MS-DOS)、微内核结构(Vxworks)。 3 、任务管理 1嵌入式操作系统的任务管理可以分为 A、单道程序技术操作系统中任何时候只能有一个程序在运行。 B、多道程序技术操作系统中允许多个程序同时存在并运行。 2进程 进程简单的说是一个正在运行的程序。进程与程序既有联系又有区别主要表现为下面结构方面 A、程序由 数据和 代码两部分内容组成它是一个 静态的概念。而进程是正在执行的程序它也由两部分组成 程序和该程序的 运行上下文。它是一个 动态的概念。 B、程序和进程之间并不是一一对应的。一个进程在运行的时候可以启动一个或多个程序。反之同一个程序也可能由多进程同时执行。 C、程序可以作为一种软件资源长期保存以文件的形式存放在光盘或硬盘上而进程则是一次执行的过程它是暂时的是动态的产生和终止。一个进程至少应包括三个方面 相应的程序、 CPU 上下文、一组系统资源。 进程有三个特性 A、动态性进程是正在运行的程序而程序的运行状态是不断变化的。 B、独立性进程是系统资源的使用单位每个进行有自己的运行上下文和内部状态。 C、并发性宏观来看系统中同时有多个进程存在它们相互独立地运行。 注对于并发的理解。 在单 CPU 的情况下所谓的并发性指的是宏观上的并发运行而微观上还是顺序进行各个进程轮流去使用 CPU 资源。在单核 CPU 中真正的、物理上的 PC 寄存器只有一个进程在轮流执行的时候物理 PC 的取值也在不断变化。而逻辑 PC 其实就是一个内存变量。每个进程都有一个逻辑 PC当一个进程要运行的时候就把它的逻辑 PC 装载到物理 PC 中去反之当一个进程暂不运行的时候就把物理 PC中的值保存在它的逻辑 PC 当中。 3线程 线程就是进程当中的一条执行流程。进程其实包含两个部分资源平台和执行流程线程。在一个进程当中或者说在一个资源平台上可以同时存在多个线程可以用线程作为 CPU 的基本调度单位使得各个线程之间可以并发执行对于同一个进程当中的各个线程来说他们可以共享该进程的大部分资源。 每个线程都有自己独立的 CPU 运行上下文和栈这是不能共享的。 4任务 在嵌入式系统中任务其实就是线程它是能够独立运行的一个实体。原因有二 A、 任务具有独立的优先级和栈空间CPU 上下文一般存放在栈空间中。 B、 任务之间可以很方便地、直接地使用共享的内存单元而不需要经过系统内核。在多道程序的嵌入式系统中同时存在着多个任务这些任务之间的结构一般为 层状结构存在着 父子关系。当嵌入式内核刚刚启动的时候只有一个任务存在然后由该任务派生出所有其他任务。 5任务的创建与中止 任务的创建主要发生在以下三种情形 A、 系统初始化。 B、 任务运行的过程中。 C、 用户提出请求。 从技术的角度来说实际上新任务只有一种创建的方法也就是在一个已经存在的任务中通过调用相应的系统函数来创建一个新的任务。任务的创建只要有两种可能的实现模型fork/exec 和 spawn。两种模型的差别主要在于内存的分配方式。 A、fork/exec 模型下首先调用 fork 函数为新任务创建一份与父任务完全相同的内存空间然后再调用 exec 函数装入新任务的代码并用它来覆盖原有的属于父任务的内容。 嵌入式 Linux 操作系统是基于 fork/exec 模型的。 B、spawn 模式下在创建新任务的时候直接为它分配一个全新的地址空间然后将新任务的代码装入并运行。 S uCOS 操作系统是基于 spawn 模型的。 任务的中止可能有多种原因主要有下面三种情况 A、 正常退出。 B、 错误推出。 C、 被其他任务踢出。 在有些嵌入式系统中尤其是一些控制系统中它的某些任务被设计为“死循环”的模式一直循环下去不会中止。 6任务的状态 任务有三中基本状态 A、运行状态任务占有 CPU并在 CPU 上运行。 B、就绪状态任务已经具备运行的条件在等待 CPU 空闲。 C、阻塞状态任务因为正在等待某种事件的发生而暂时不能运行。 对于就绪状态和阻塞状态它们的相同之处在于任务都是处于暂停状态没有运行 。不同之处在于暂停的原因是不一样的导致就绪状态的原因是外因是操作系统的 CPU正忙而导致阻塞状态的原因是内因是任务自身的问题。 任务状态的四种转换关系 A、 运行 - 阻塞任务由于等待某个时间被阻塞起来。 B、 运行 - 就绪调度器由于某种原因例如优先级选择了另一个任务去运行。 C、 就绪 - 运行CPU 空闲了处于就绪状态的任务被调度器选中去运行。 D、 阻塞 -就绪任务的等待事件完成具备了继续运行的条件。 7任务控制块 TCB 任务控制块 TCB就是在操作系统中用来描述和管理一个任务的数据结构。系统为每一个任务都维护了一个相应的 TCB用来保存该任务的各种相关信息。它的主要内容包括下面几项 A、任务的管理信息任务的标识 ID、状态、优先级、调度信息、各种队列指针等。 B、CPU 上下文信息CPU 各种寄存器当前的值以及逻辑寄存器。 C、资源管理的信息段表地址、页表地址、根目录、文件描述字等。 当需要创建一个任务的时候就为它生成一个 TCB并初始化这个 TCB 的内容当需要中止一个任务的时候只要回收它的 TCB 就可以了。 8任务的切换 基本思想把当前任务的运行上下文保存起来并恢复新任务的上下文。任务切换通常有下面的 基本步骤 A、将处理器的运行上下文保存在当前任务的 TCB 中。 B、更新当前任务的状态从运行状态变为就绪状态或阻塞状态。 C、按照一定的策略从所有处于就绪状态的任务中选择一个去运行。 D、修改新任务的状态从就绪状态变成运行状态。 E、 根据新任务的 TCB 的内容恢复它的运行上下文环境。 在一个多任务的操作系统中采用 任务队列的方式来组织它的所有任务。由操作系统来维护一组队列用来表示系统当中所有任务的当前状态不同的状态用不同的队列来标志。 9任务的调度 调度器可以看作 CPU 的资源管理者。任务调度的首要问题是何时进行调度即调度发生的时机。一般有下面几种情形 A、一个新任务被创建时需要决定运行新任务还是继续执行父任务。 B、一个任务运行结束时需要从就绪队列中选择某个任务去运行。 C、一个任务运行阻塞时需要选择另一个任务去运行。 D、一个 I/O 操作完成任务阻塞结束立即执行新就绪任务还是继续执行被中断任务。 E、一个时钟节拍结束时需要对就绪任务重新调度。 任务调度的第二个问题是如何调度即调度方式。主要有两种方式 A、 不可抢占调度方式例如时间片轮转。 B、 可抢占调度方式例如优先级调度。 实时操作系统大都采用可抢占调度方式。 任务调度的第三个问题是调度算法。 A、先来先服务算法按照任务到达的先后次序进行调度是不可抢占的调度方式。 B、短作业优先算法各个任务开始执行之前事先预计好它的执行时间从中选择用时较短的任务优先执行。 C、时间片轮转算法所有的就绪任务按照先来先服务的原则排成一个队列。在每次调度的时候把处理器分派给队列当中的第一个任务让它去执行一小段时间。在这个时间段里任务被阻塞或由于其他原因暂停或者任务的时间片用完了它会被送到就绪队列的末尾然后调度器再执行当前队列的第一个任务。这种算法的优点是各个就绪任务都平均地分配使用 CPU 的时间每个就绪任务都能一直保持着活动性。时间片轮转法有一个默认前提即位于就绪队列中的各个任务是同等重要的。 D、优先级算法给每个任务都设置一个优先级。然后在任务调度的时候在所有处于就绪状态的任务中选择优先级最高的那个任务去运行。采用优先级调度算法的一个问题是可能会发生 优先级反转 出现任务“ 饥饿”现象。 10实时系统调度 对于 RTOS 调度器来说任务之间的公平性并不是最重要的它追求的是 实时性。 A、 单调速率调度算法 RMS任务的优先级与它的周期表现为单调函数的关系任务的周期越短优先级越高任务的周期越长优先级越低。RMS 假定任务是相同独立的 、周期性的、任务在能够在任何位置被抢占而实际中的系统任务之间需要进行通信和同步 这是一种理想的调度方法实际中并不一定存在。 B、 最早期限优先法 EDF 根据任务的截止时间来确定其优先级对于时间限期最近的任务分配最高的优先级。当有一个新的任务处于就绪状态时各个任务的优先级就有可能要进行调整选择截止时间最近的任务去运行。 11任务互斥 A、任务之间的关系相互独立、任务互斥、任务同步、任务通信。 B、任务间的互斥当前已经有一个任务正在访问临界区共享数据那么其他任务暂时不能访问。 C、提出互斥访问的四个条件 a、在任何时候最多只能有一个任务位于它的临界区中。 b、不能事先假定 CPU 的个数和系统的运行速度。 c、没有任务位于它的临界区中它不妨碍其他任务去访问临界区资源。 d、任何一个任务进入临界区的请求必须在有限的时间内得到满足不能无限期。 D、任务互斥的解决方案 a、关闭中断法 b、繁忙等待法 c、信号量处理 12信号量 信号量记录当前可用资源的数量。信号量由操作系统维护任务不能直接去修改它的值只能通过初始化和两个标准原语PV 原语来对它进行访问。 注关于原语。 原语通常由若干条语句组成用来实现某个特点的操作并通过一段不可分割或不可中断的程序来实现其功能。原语时操作系统内核的一个组成部分必须在内核态下执行。原语的不可中断性是通过在其执行过程中关闭中断来实现的。关键要理解 PV 原语的实现 P(semaphores S) { --S.count; //申请一个资源 if(S.count 0) //没有空闲资源 { 将当前任务阻塞起来加到阻塞队列末尾调度新的任务运行。 } } V(semaphores S) { S.count; //释放一个资源 if(S.count 0) //有任务被阻塞 { 从阻塞队列中取出一个任务把该任务改为就绪状态插入就绪队列。 } }利用操作系统提供的信号量机制可以方便、有效地实现对临界资源的互斥访问优点有两个 A、 可以设置信号量的计数值从而允许多个任务同时进入临界区。 B、 当一个任务暂时无法进入临界区时它会被阻塞起来将 CPU 让给其他任务。 13任务同步 任务之间的同步可以使用信号量机制通过引入 PV 操作来设定两个任务在运行时的先后顺序。例如可以把信号量视为某个共享资源的当前个数然后由一个任务负责生成这种资源而另一个任务则负责消费这种资源这样可以构成两个任务之间的先后顺序。在具体实现上一般把信号量的初始值设为 NN 大于或等于0。然后在一个任务内使用 V 原语 把信号量加1而在另外一个任务内部使用 P 原语将信号量减1从而实现这两个任务之间的同步关系。 14死锁 在一组任务中每个任务都占用着若干资源同时又在等待其他任务占用的资源从而造成所有任务都无法进展下去的现象这称为死锁现象。除了资源的竞争之外PV 操作使用不当也会引起死锁。 15信号 所谓信号是系统给任务的一个指示表明某个异步事件已经发生了。该事件可能来自外部也可能来自内部。信号机制也可以称为软中断机制。信号机制与中断处理机制非常相似相同点 A、 都具有中断性。 B、 都有相应的服务程序。 C、 都可以屏蔽响应。 不同点 A、 中断由硬件或特定指令产生而信号由系统调用产生。 B、 中断触发后硬件会根据中断向量找到相应的处理程序执行而信号则通过发送信号的系统调用来触发系统不一定马上对它进行处理。 C、 中断处理程序在系统内核的上下文中运行是全局的而信号处理程序在相关任务的上下文中运行是任务的一个组成部分。 16任务间通信 任务之间的通信可以分为两种类型 A、 低级通信只能传递状态和整数值等控制信息例如信号量机制。 B、 高级通信能够传输任意数量的数据只要有三类 共享内存 、 消息传递和管道。 任务之间的通信方式有两种 A、 直接通信通信双方必须明确知道与之通信的对象。例如 PV 原语。 B、 间接通信通信双方不需指出消息的来源和去向通过共享邮箱发送和接收消息。 邮箱只能存放单条消息它提供一种低开销的消息传递机制只有空和满两种状态。 消息队列与邮箱类似但是可以同时存放若干条消息提供了一种任务间缓冲通信的方法。管道由 UNIX 首创以 文件系统为基础连接两个任务之间的一个打开的共享文件专用于任务直接的数据通信。 4 、设备管理 1设备管理基础 一个 I/O 单元通常由两个部分组成 A、 机械部分I/O 设备本身。 B、 电子部分设备控制器或设备适配器。 硬件寄存器的编址方式有三种 A、 I/O 独立编址对于各种设备控制器中的每一个寄存器分配一个唯一的 I/O 端口编号也叫 I/O 端口地址然后用专门的 I/O 指令对这些端口进行操作。这些端口地址构成的地址空间是完全独立的与内存地址空间没有任何关系。 B、 内存映象编址把各种设备控制器当中的每一个寄存器都映射为一个内存单元这内存单元专门用于 I/O 操作。端口地址空间与内存地址空间是统一编址的端口地址空间是内存地址空间的一部分。 C、 混合编址对于设备控制器当中的寄存器采用独立编址的方法每个寄存器有一个独立的 I/O 端口地址而对于设备的数据缓冲区则采用内存映象编址的方法把他们统一到内存地址空间当中。 2 I/O 控制方式 A、 程序循环检测要一直占用 CPU浪费 CPU 的时间。 B、 中断驱动方式前后台系统。 C、 直接内存访问DMA 控制减少了中断的次数。 3 I/O 软件 A、 中断处理程序当一个用户程序需要某种 I/O 服务时它会去调用相应的系统函数 而这个函数又会去调用相应的设备驱动程序在驱动程序中会启动相应的 I/O 操作并且被阻塞起来直到这个 I/O 操作完成后产生一个中断程序并跳到相应的中断处理程序在这里将会唤醒被阻塞的驱动程序。 B 设备驱动程序直接同 I/O 设备打交道直接对它们进行控制的软件模块。上层的 I/O软件通过抽象的函数接口与设备驱动程序打交道这些接口是标准的、稳定不变的而硬件设备的具体细节被封装在设备驱动程序里面。设备驱动程序的管理通过驱动程序地址表来实现。驱动程序表中存放了各个设备驱动程序的入口地址可以通过此表来实现设备驱动的动态安装与卸载。 C、 设备独立 I/O 软件这部分软件在设备驱动程序的上面是独立的 I/O 软件也是系统内核的一部分主要任务是实现所有设备都需要的一些通用 I/O 功能并向用户级的软件提供一个统一的访问接口。 D、 用户空间的 I/O 软件大部分的 I/O 软件都是包含在操作系统当中的也有一小部分运行在系统内核之外。主要可以分为下面两种 a、与用户程序进行链接的库函数例如 C 语言中与 I/O 相关的库函数。 b、完全运行在用户空间当中的程序例如 Spooling 技术。 注 Spooling 技术 Spooling 是“外围设备联机操作”的所写spooling 技术也叫假脱机技术或虚拟设备技术它可以把一个独占的设备转变为具有共享特征的虚拟设备。在多道系统中对于一个独占设备专门利用一道程序来增强该设备的 I/O 功能。优点有二能提供高速的虚拟 I/O 服务能实现对独占设备的共享。 5 、文件系统 1嵌入式文件系统概述 文件系统就是操作系统中用以 组织、存储、命名、使用和 保护文件的一套管理机制。常见的嵌入式文件系统有 A、 FAT VxWorks、QNX、WindowsCE 等 B、 NFS网络文件系统基于远程调用和扩展数据表示。 C、 FFS用于 Flash 存储器的文件系统。 2文件和目录 A、当一个文件被创建时必须给它指定一个名字用户就是通过 文件名来访问这个文件的。 B、文件命是一个有限长度的字符串由两部分组成 文件名和 扩展名。 C、文件的逻辑结构主要有三种无结构、简单的记录结构和复杂结构。现代文件系统通常采用的是无结构的形式。 D、除了文件名之外操作系统会给每个文件附加一些其他信息称为 文件的属性。 E、文件的存取方法有两种 顺序存取和 随机存取。 F、目录也称为文件夹它是一张 表格记录了在该目录下每个文件名和其他的一些管理信息。 G、在多级目录结构中访问文件或目录主要有两种方法 绝对路径名和 相对路径名。 3文件系统的实现 A、数据块在磁盘中以扇区为单元进行读写操作。对文件系统而言把磁盘空间划分为一个个大小相同的块称为物理块每个物理块包含若干个连续的扇区同时把文件的字节流也分成大小相同的逻辑块。在文件系统内部以块为单位来进行操作把每一个逻辑块保存在一个物理块中。 B、文件的实现需要解决两个方面的问题 a、如何描述一个文件。 b、如何存储一个文件。 C、文件控制块FCB它是 文件的描述方法是操作系统为了管理文件而设置的一种 数据结构里面存放了与文件有关的所有管理信息 FCB 是文件存在的标志。 D、文件的物理结构连续结构、链表结构和索引结构。 连续结构把文件的各个逻辑块按照顺序存放在若干个连续的物理块当中。主要用于CD-ROM 等一次性写入的光学存储介质当中。 链表结构把文件的各个逻辑块依次存放在若干个物理块当中这些物理块既可以是连续的也可以是不连续的然后在各个块之间通过指针连接起来前一个物理块指向下一个物理块从而形成一条链表。带有文件分配表的链表结构在链表结构的基础上把每一个物理块当中的链表指针抽取出来单独组成一个表格就是文件分配表 FAT 。如果要随机访问文件的地 n 个逻辑块可以先从 FAT 表中查到相应的物理块地址然后根据这个地址直接去访问磁盘。索引结构把文件当中每一个逻辑块所对应的物理块编号直接记录在这个文件的文件控制块当中这样的文件控制块称为是 I 节点或索引节点。这样对于系统中的每一个文件都有一个自己的索引节点通过这个索引节点就能够直接实现逻辑块与物理块之间的映射关系。 4目录的实现 A、 直接法把文件控制块的内容直接保存在目录项当中因此每个目录项就等于某个文件名加上它的 FCB。 B、 间接法目录项里面只有文件名和该文件的 FCB 所在地址。不管是那一种类型的实现方法目录的基本功能都一样即用户给出一个文件名就返回相应文件的 FCB。 5空闲空间管理方法 A、位图法。 B、链表法。 C、索引法。转载于:https://www.cnblogs.com/chenshikun/p/7723374.html