操作系统·第七章 现代操作系统发展自测题:嵌入式+分布式+多机系统(含超详细解析)
本文围绕现代操作系统发展主题,重点分析了嵌入式系统和分布式系统的特点与功能。嵌入式系统的最大特点是可定制性,可根据应用需求裁剪功能模块,如FreeRTOS和嵌入式Linux的典型应用案例。分布式系统具有分布性、并行性、全局性等特征,其操作系统需实现统一系统映像、分布式进程管理、资源管理等功能。文章通过对比多机系统类型(多处理器系统、多计算机系统、网络系统和分布式系统),阐明了它们在耦合度、通信方式
第七章 现代操作系统发展 自测习题
一、单项选择题
1.下面关于嵌入式系统的描述,错误的是( D )。
A. 因面向应用,嵌入式系统外观独特,各不相同
B. 嵌入式系统一般自动运行,运行方式不可修改
C. 嵌入式系统的程序一般不可以二次开发
D. 软件与硬件相对独立安装和卸载
解析:
在嵌入式系统中,软件通常与硬件紧密耦合,软件是针对特定硬件平台开发的(固件),一般不存在像通用操作系统那样“独立安装和卸载软件”的概念(除非是某些高端嵌入式 Linux 系统支持应用层包管理,但这不是普遍特点)。
A 正确:嵌入式系统面向特定应用,外观和功能各不相同。
B 正确:多数嵌入式系统上电后自动运行预定程序,运行方式由固件决定,普通用户不能随意修改(除非烧录新固件)。
C 正确:嵌入式系统的程序(固件)通常不提供给最终用户二次开发(除非设备本身就是开发板)。
D 错误:嵌入式软件与硬件高度绑定,不能像 PC 一样随意独立安装或卸载软件。
2.嵌入式操作系统的最大特点是( A )。
A. 可定制性
B. 实时性
C. 非实时性
D. 分布性
解析:
嵌入式操作系统(如 VxWorks、FreeRTOS、嵌入式 Linux)的最大特点是可定制性——系统可以根据应用需求进行剪裁和配置,只保留必要的内核模块和驱动,以节省存储空间和资源。
B 实时性(许多嵌入式系统确实需要实时性,但不是所有嵌入式系统都是实时的,且这不是最大区别)
C 非实时性(与嵌入式主流需求相反,很多嵌入式系统追求实时)
D 分布性(不是嵌入式系统的核心特点)
3.以下不属于分布式系统特征的是( D )。
A. 分布性
B. 并行性
C. 全局性
D. 可定制性
解析:
分布式系统的典型特征包括分布性(多个节点分散部署)、并行性(多个任务可在不同节点上并行执行)、全局性(系统对外表现为一个整体,用户不必关心内部节点分布)。而可定制性通常是嵌入式操作系统的特点(按需剪裁、配置),不是分布式系统的基本特征。
4.以下不属于分布式操作系统基本功能的是( C )。
A. 通信管理
B. 进程管理
C. 用户界面管理
D. 资源管理
解析:
分布式操作系统的基本功能包括:
A 通信管理(节点间进程通信)
B 进程管理(进程的创建、调度、迁移)
D 资源管理(统一管理分布的资源,如文件系统、设备)
用户界面管理通常不属于分布式操作系统的核心基本功能,而是由运行在操作系统之上的用户层软件(如 Shell、图形界面) 来负责,分布式操作系统主要关注底层资源与通信的管理。
5.下面4种多机系统中,节点彼此耦合最紧密的是( A )。
A. 多处理器系统
B. 多计算机系统
C. 网络系统
D. 分布式系统
解析:
A 多处理器系统(也称共享存储多处理机):多个 CPU 共享同一物理内存,通过总线或交叉开关互连,耦合程度最高,通信通过共享内存实现(纳秒级延迟)。
B 多计算机系统:每个节点有独立内存,通过消息传递通信,耦合程度次之。
C 网络系统:指局域网或互联网连接的一般计算机系统,耦合程度较低。
D 分布式系统:在用户层面表现为单一系统,但底层节点通常通过消息传递(如 TCP/IP),耦合程度低于多处理器系统。
6.控制和管理资源建立在单一系统策略基础上,将计算功能分散化,充分发挥网络互联的各自治处理机性能的多机系统是( D )。
A. 多处理器系统
B. 多计算机系统
C. 网络系统
D. 分布式系统
解析:
A 多处理器系统:多个 CPU 共享内存,紧密耦合,但并非强调“网络互联的自治处理机”。
B 多计算机系统:每个节点有独立内存,通过消息传递通信,但通常不强调“单一系统策略”和全局资源管理。
C 网络系统:一般指计算机网络,不强调操作系统的全局统一管理。
D 分布式系统:建立在单一系统策略基础上(用户看到的是一个逻辑整体),将计算功能分散到多个自治处理机上,通过网络互联,协同完成任务。完全符合题目描述。
二、简答题
1、推动操作系统发展的主要动力是什么?
推动操作系统发展的主要动力可以归纳为以下几个核心因素:
1. 硬件技术的进步
CPU 的发展:从单核到多核、从低性能到高性能,促使操作系统支持并行处理、多线程、负载均衡等。
内存容量增大与虚拟化:大内存、非易失内存(如 NVDIMM)的出现,推动内存管理、虚拟内存、内存压缩等技术的发展。
存储技术的演进:从机械硬盘(HDD)到固态硬盘(SSD)、NVMe、持久内存,促使 I/O 调度、文件系统、驱动模型不断革新。
网络与通信技术:高速以太网、无线网络、RDMA、智能网卡等,推动网络协议栈、分布式系统的优化。
2. 用户需求与使用场景的变化
多用户、多任务:从单道批处理到分时系统,再到现代的多任务、多用户支持。
人机交互:从命令行界面到图形用户界面(GUI)、触摸屏、语音控制,推动操作系统对输入/输出设备和图形系统的支持。
移动与嵌入式:智能手机、物联网设备、智能汽车等,推动轻量级、低功耗、实时操作系统的出现(如 Android、FreeRTOS)。
高可靠与高安全:金融、国防、医疗等领域要求系统具备容错、安全隔离、可信执行环境(TEE)等能力。
3. 应用软件复杂度的提升
大型应用与中间件:数据库、Web 服务器、容器等对内存、进程间通信、文件系统、网络性能提出更高要求。
多媒体与实时任务:音视频处理、游戏、工业控制等要求操作系统具备实时调度、低延迟 I/O、QoS 保障。
分布式计算:云计算、大数据、微服务架构需要操作系统支持分布式资源管理、远程过程调用、网络存储等。
4. 资源利用效率与成本压力
提高 CPU 与 I/O 的并行性:从早期的“脱机 I/O”、“SPOOLing”到现代的高效异步 I/O。
减少内存与存储开销:虚拟内存、页面共享、写时复制、压缩内存、去重等技术不断演进。
降低功耗:在移动设备和数据中心中,节能调度、CPU 动态调频、休眠机制成为重要方向。
5. 系统安全与可靠性需求
隔离与保护:用户态与内核态分离、进程地址空间隔离、内存保护、Capability 模型。
访问控制:自主访问控制(DAC)、强制访问控制(MAC,如 SELinux)。
可信计算:安全启动、可信平台模块(TPM)、加密文件系统。
系统恢复:日志文件系统、快照、回滚、自动故障检测与恢复。
6. 软件工程与设计思想的演变
模块化与分层:便于维护与移植(如微内核 vs 宏内核之争)。
虚拟化与容器化:虚拟机监视器(Hypervisor)、容器(Docker)、Unikernel 等新抽象层。
微内核与现代内核架构:L4、seL4 等追求极小可信内核,提高安全性。
操作系统定制化:嵌入式、物联网、自动驾驶系统对操作系统的可剪裁、可配置需求。
总结:
硬件进步提供可能,用户需求提供方向,应用软件复杂度提出挑战,资源效率与成本施加压力,安全性与可靠性提出底线要求,而软件设计思想引领持续创新。这些动力共同推动操作系统从简单的批处理监控程序,演变为现代复杂、通用、高性能、安全可靠的系统软件。
2、嵌入式系统与通用计算机系统有何异同?
嵌入式系统与通用计算机系统(如 PC、服务器)在目标、设计理念、硬件结构、软件特征等方面有显著区别,也存在一些共通之处。下面从多个维度进行对比。
一、相同点
|
维度 |
相同点 |
|
基本组成 |
都包含处理器、内存、I/O 设备,运行操作系统(即使是极简内核) |
|
软件层次 |
都有引导程序、操作系统内核、驱动、应用程序(虽然复杂程度不同) |
|
任务调度 |
都需要某种形式的任务/进程调度机制(时间片、优先级等) |
|
资源管理 |
都需要管理 CPU、内存、外设等资源 |
|
中断响应 |
都需要处理硬件中断,完成 I/O 或实时任务 |
二、不同点
|
对比维度 |
嵌入式系统 |
通用计算机系统 |
|
设计目标 |
面向特定应用,优化成本、功耗、体积 |
面向通用计算,优化性能、扩展性、用户体验 |
|
硬件结构 |
高度定制化(SoC、专用芯片、传感器),资源有限(小内存、低存储) |
标准化(x86/ARM 主板、可扩展内存/硬盘),资源丰富 |
|
操作系统 |
轻量级(FreeRTOS、uC/OS、嵌入式 Linux),可裁剪,通常实时 |
通用系统(Windows、Linux、macOS),功能丰富,非实时或软实时 |
|
存储与启动 |
程序常固化在 Flash、ROM,上电快速启动(几秒甚至毫秒级) |
从硬盘/SSD 加载,启动较慢(几秒到分钟) |
|
用户交互 |
无界面或简单界面(按键、LED、触摸屏,且非主要功能) |
复杂 GUI、多窗口、命令行,交互是核心需求 |
|
功耗 |
极低功耗(毫瓦~瓦级),支持电池供电、休眠唤醒 |
较高功耗(几十瓦~几百瓦),通常接交流电源 |
|
可靠性与生命周期 |
高可靠性(工业、医疗、汽车),要求长期稳定运行(数年) |
可接受偶尔蓝屏、重启,寿命相对较短(3~5 年更新换代) |
|
软件更新 |
难以更新(需专用工具、拆机或 OTA,风险高) |
方便更新(网络下载、安装包,用户可自助) |
|
成本 |
对成本敏感(大批量生产,每节约 0.1 美元都有意义) |
对成本相对不敏感(几百~几千美元,用户为性能买单) |
|
开发方式 |
交叉编译(宿主机 + 目标板),调试依赖 JTAG、串口 |
本地编译调试,集成开发环境成熟 |
|
并发与实时性 |
强实时(硬实时要求:任务必须在截止时间前完成) |
弱实时或非实时(分时调度,响应时间不保证) |
三、举例说明
嵌入式系统:洗衣机控制板、汽车 ECU、智能手表、路由器、智能摄像头、医疗监护仪。
通用计算机:台式机、笔记本电脑、服务器、工作站。
四、界限模糊的中间地带
有些系统兼具两者特征,例如:
树莓派 / 嵌入式工控机:运行通用 Linux,但尺寸小、功耗低、用于特定控制任务 → 常被称为“嵌入式通用系统”。
手机 / 平板:硬件高度集成、低功耗(嵌入式特征),但运行复杂的通用操作系统(Android/iOS)且用户可安装应用 → 广义上也可视为嵌入式系统,但常被单列为“移动系统”。
总结:
嵌入式系统是“为特定任务而生的专用计算机”,追求低成本、低功耗、高可靠、实时性;
通用计算机系统是“为多任务通用计算设计的平台”,追求高性能、灵活性、用户体验。
两者在硬件、软件、开发模式上差异明显,但现代技术演进中界限在逐渐模糊(如嵌入式 Linux 的普及)。
3、嵌入式操作系统的最大特点是什么?举例说明。
嵌入式操作系统的最大特点是可裁剪性与可定制性。系统可以根据具体应用需求,只保留必要的功能模块(如内核、驱动、文件系统、网络协议栈等),去掉不需要的部分,从而在极小的资源(CPU、内存、存储) 上运行,并实现高可靠性、低功耗和实时性。
为什么可裁剪性是最大特点?
通用操作系统(如 Windows、Linux 桌面版)为了适应各种场景,包含了大量功能(图形界面、多种驱动、服务、工具),体积庞大。而嵌入式系统资源受限(可能只有几十 KB 内存、几十 MHz 主频),必须去掉“无用”的代码,只留下能完成特定任务的组件。这种“量身定制”的能力,是嵌入式操作系统与通用操作系统最本质的区别。
具体举例说明
1. FreeRTOS(小型嵌入式系统)
裁剪示例:一个只用来读取温度传感器并通过串口发送数据的设备。
只保留:内核调度器、任务管理、队列通信、串口驱动。
去掉:文件系统、TCP/IP 协议栈、USB 协议栈、图形界面。
结果:ROM 占用约 6~10 KB,RAM 占用仅几百字节,运行在 8 位单片机(如 AVR、PIC)上。
2. 嵌入式 Linux(复杂嵌入式系统)
裁剪示例:一个智能电表(需要联网、记录数据、显示读数)。
配置:使用 buildroot 或 Yocto 构建系统,选择 ARM 架构,加入:
内核:去掉未使用的驱动(如显卡、蓝牙)、精简文件系统类型(只留 ext4 或 squashfs)。
用户态:只留 busybox(集成常用命令的小工具)、lighttpd(Web 服务器)、SQLite(数据库)、一个自定义的电表应用。
去掉:X11/GUI、Python、Perl、SSH 等非必要组件。
结果:整个系统(内核 + rootfs)可控制在 4~8 MB,运行在 32 位 ARM 芯片(如 Cortex-A8)上。
3. VxWorks(高可靠实时系统)
裁剪示例:火星探测器的着陆控制系统。
配置:启用硬实时调度、中断管理、网络栈(用于通信),禁用文件系统(因为数据直接通过遥测传输)、禁用 shell、禁用动态加载。
结果:系统紧凑,确定性极高,满足航天级的可靠性要求。
对比:通用操作系统无法如此裁剪
Windows 无法去掉“图形界面”或“注册表”而正常工作。
标准 Ubuntu Linux 即使最小化安装,也至少需要几百 MB 磁盘空间。
总结
嵌入式操作系统的最大特点就是可裁剪性——能根据硬件资源和应用需求“量体裁衣”,只保留必要模块。这使得嵌入式系统可以在极低成本、极低功耗的硬件上运行,广泛应用于家电、汽车、工业、航空航天等领域。
4、分布式系统有哪些主要特征?
分布式系统的主要特征可以概括为以下六个方面:
一、分布性(物理分散)
系统的各个节点(计算机、处理器)在地理上分散在不同位置,通过通信网络连接。
节点之间没有共享内存,依靠消息传递进行通信。
例如:一个分布式数据库集群跨多个机架、多个数据中心部署。
二、并行性(并发执行)
多个任务可以在不同节点上同时执行,提高系统整体处理能力。
例如:分布式搜索引擎(如 Google)可以同时处理成百上千个搜索请求,每个请求由不同节点并行处理。
三、全局性(单一系统映像)
用户面对的是一个逻辑上统一的整体,无需关心内部节点分布、数据分片、任务分配等细节。
访问远程资源与访问本地资源的方式相同(位置透明性)。
例如:Hadoop HDFS 表现为一个巨大的文件系统,用户不需要知道文件具体存储在哪个节点。
四、透明性
分布式系统隐藏了内部的复杂性和分布性,向用户和应用程序提供多种透明性:
|
透明性类型 |
含义 |
|
访问透明 |
本地资源与远程资源的访问方式一致(如相同的 API) |
|
位置透明 |
用户不知道资源位于哪个物理节点 |
|
迁移透明 |
资源可以在不改变访问方式的情况下移动到其他节点 |
|
复制透明 |
系统拥有多个数据副本,用户无需感知 |
|
故障透明 |
节点故障时系统仍能正常工作,用户不感知 |
|
并发透明 |
多个用户同时访问同一资源,由系统自动协调 |
五、高可用性与容错性
系统中部分节点故障,不影响整体系统的可用性。
通过冗余设计(数据副本、服务备份)、故障检测与恢复机制实现。
例如:分布式存储系统(如 Ceph)在多个节点上保存数据副本,即使几个节点宕机,数据仍然可读。
六、可扩展性
系统可以通过增加节点来线性提升性能(计算能力、存储容量、吞吐量)。
支持水平扩展(Scale Out),而非仅依靠垂直扩展(升级单机硬件)。
例如:分布式数据库(如 Cassandra)可以在不停机的情况下动态添加新节点,分担负载。
5、分布式操作系统的主要功能是什么?
分布式操作系统除了具备传统操作系统的基本功能(进程管理、内存管理、文件系统、设备管理)外,还需要解决跨节点协作带来的特有挑战。其主要功能可以概括为以下七个方面:
一、统一的系统映像(单一系统映像)
功能:将网络中多个独立的计算机抽象为一个逻辑上的“单一系统”,用户无需关心资源的位置或节点分布。
例子:用户使用 ls 命令看到的文件可能分布在多台机器的磁盘上,但感觉像是在本地。
价值:简化使用和管理,实现透明性(位置、访问、迁移等透明)。
二、分布式进程管理
功能:
进程可以透明地创建、迁移到其他节点运行(负载均衡)。
支持远程进程通信(RPC、消息传递)。
分布式调度:将任务分配到负载最轻或数据最近的节点。
例子:一个 Web 请求被调度到后端集群中当前最空闲的服务器上处理。
三、分布式资源管理
功能:
统一管理所有节点的 CPU、内存、存储、I/O 设备。
支持资源共享与访问控制(远程节点可以申请使用其他节点的资源)。
资源分配策略(如分布式锁、分布式计数器)。
例子:Hadoop YARN 统一管理集群的 CPU 和内存资源,分配给不同的计算任务。
四、分布式文件系统
功能:
跨节点的文件存储与访问(文件可能分块存储在多个节点上)。
提供统一命名空间和访问接口(如 NFS、Ceph、GFS)。
数据冗余与容错(副本机制、纠删码)。
例子:用户访问 /data/bigfile 时,系统自动从多个节点的副本中读取数据块,即使某些节点故障也不丢失数据。
五、分布式同步与互斥
功能:
解决跨节点资源的互斥访问(如分布式锁)。
实现全局时间与顺序(逻辑时钟、向量时钟)。
分布式事务与一致性协议(如两阶段提交 2PC、Paxos、Raft)。
例子:多用户同时修改分布式数据库中的同一条记录,系统通过分布式锁防止冲突。
六、分布式通信管理
功能:
提供节点间的高效、可靠通信机制(消息传递、远程过程调用 RPC、消息队列)。
处理通信延迟、丢包、乱序等问题。
支持多播、广播、组通信。
例子:一个微服务调用另一个微服务通过 gRPC 或 REST API 完成,分布式操作系统管理底层的连接、序列化和网络传输。
七、容错与高可用性
功能:
检测节点故障、网络分区。
自动故障恢复:任务重启、数据副本切换、服务重新选举。
实现无单点故障(冗余设计、主备切换、集群仲裁)。
例子:在分布式键值存储(如 etcd、ZooKeeper)中,Leader 节点宕机后,Follower 自动选举出新 Leader,服务不中断。
八、分布式安全
功能:
跨节点的身份认证(如 Kerberos、TLS 证书)。
分布式访问控制(跨节点的权限一致性)。
数据加密传输与存储。
例子:用户在分布式系统中登录一次,即可访问其他节点上的授权资源(单点登录 SSO)。
总结:与单机操作系统的核心区别
|
功能 |
单机操作系统 |
分布式操作系统 |
|
进程调度 |
单节点 CPU 调度 |
跨节点负载均衡、进程迁移 |
|
内存管理 |
统一物理内存 |
分布式共享内存、远程内存访问 |
|
文件系统 |
本地磁盘 |
分布式文件系统(跨节点冗余) |
|
同步 |
信号量、互斥锁 |
分布式锁、选举、一致性协议 |
|
通信 |
管道、共享内存 |
RPC、消息传递、组通信 |
|
容错 |
系统崩溃整体不可用 |
节点故障自动切换,系统持续可用 |
一句话概括:
分布式操作系统在单机操作系统功能的基础上,增加了跨节点通信、资源统一调度、透明访问、容错与一致性等核心功能,让多个计算机协同工作,表现得像一台虚拟的“超级计算机”。
6、多机系统主要包括哪几种类型?它们之间有何异同?
多机系统(多计算机系统)是指由多个处理单元(CPU、计算机)组成的计算机系统,主要分为以下四种类型。它们之间在耦合度、通信方式、资源管理等方面存在显著差异。
一、四种主要类型
1. 多处理器系统(共享存储多处理机)
结构:多个 CPU 共享同一物理内存,通过总线或交叉开关互连。
通信方式:通过共享内存(load/store 指令),通信极快(纳秒级)。
操作系统:单一操作系统实例管理所有 CPU(对称多处理 SMP 或非对称 AMP)。
典型例子:服务器(Intel Xeon、AMD EPYC)。
2. 多计算机系统(消息传递多计算机)
结构:每个节点有独立的 CPU 和内存,节点间通过高速网络(如 InfiniBand、以太网)连接。
通信方式:显式消息传递(如 MPI),没有共享内存。
操作系统:每个节点运行自己的操作系统副本(通常是相同的),通过消息通信协作。
典型例子:大规模集群(如 TOP500 超级计算机)、IBM Blue Gene。
3. 网络系统(局域网/互联网连接的计算机)
结构:通过通用网络(以太网、Wi-Fi)连接的独立计算机,硬件无特殊要求。
通信方式:基于套接字、HTTP、RPC 等协议。
操作系统:各节点运行独立的操作系统(可能异构:Windows、Linux、macOS)。
典型例子:企业内网、云计算集群(AWS、阿里云)。
4. 分布式系统(逻辑上单一系统映像的网络系统)
结构:物理上类似多计算机或网络系统,但软件层面提供了统一访问接口和全局资源管理。
通信方式:透明消息传递或远程过程调用(RPC)。
操作系统:可以是专用分布式操作系统(如 Amoeba、Plan 9),或通用操作系统+分布式中间件(如 Hadoop、微服务框架)。
典型例子:Google 搜索引擎、分布式数据库(Spanner)、Hadoop 集群。
二、异同对比表
|
特性 |
多处理器系统 |
多计算机系统 |
网络系统 |
分布式系统 |
|
耦合度 |
最紧密(共享内存) |
中等(消息传递) |
松散(标准网络) |
松散~中等 |
|
内存模型 |
统一共享内存 |
分布式独立内存 |
分布式独立内存 |
逻辑统一(通过中间件) |
|
通信延迟 |
纳秒级(硬件) |
微秒~毫秒(消息) |
毫秒级(TCP/IP) |
毫秒级(依赖网络) |
|
操作系统 |
单一 OS 实例 |
每个节点独立 OS |
每个节点独立 OS |
专用 OS 或 OS + 中间件 |
|
资源管理 |
全局统一(单 OS) |
分布式(节点自治) |
完全独立 |
逻辑统一(分布式 OS 或中间件) |
|
可扩展性 |
差(总线/交叉开关瓶颈) |
好(增加节点) |
好(增加节点) |
极好(水平扩展) |
|
容错性 |
低(CPU 故障可能系统崩溃) |
中等(节点故障影响局部) |
低(依赖网络) |
高(冗余、自动切换) |
|
用户视图 |
单一计算机 |
多个计算机 |
多个计算机 |
单一系统映像 |
|
典型规模 |
2~256 个 CPU |
数十~数百万节点 |
数十~数千节点 |
数百~数十万节点 |
三、相同点
都由多个处理单元组成。
都需要解决任务分配、通信、同步等问题。
目标都是为了获得比单机更高的性能、吞吐量或可靠性。
都需要某种形式的并发控制和资源管理。
总结
多处理器系统追求紧密耦合、高性能,但扩展性受限。
多计算机系统追求大规模并行计算,显式管理通信。
网络系统是松耦合、通用连接的基础。
分布式系统在网络系统之上增加了单一系统映像、透明访问、高容错等软件能力。
实际应用中,现代大型系统往往是混合结构:例如一个分布式数据库(逻辑分布式)可能运行在多计算机集群上,而集群内每个节点又是多处理器系统。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)