第七章 现代操作系统发展 自测习题

一、单项选择题

1.下面关于嵌入式系统的描述,错误的是(  D  )。

 A. 因面向应用,嵌入式系统外观独特,各不相同

 B. 嵌入式系统一般自动运行,运行方式不可修改

 C. 嵌入式系统的程序一般不可以二次开发

 D. 软件与硬件相对独立安装和卸载

解析:
在嵌入式系统中,软件通常与硬件紧密耦合,软件是针对特定硬件平台开发的(固件),一般不存在像通用操作系统那样独立安装和卸载软件的概念(除非是某些高端嵌入式 Linux 系统支持应用层包管理,但这不是普遍特点)。

A 正确:嵌入式系统面向特定应用,外观和功能各不相同。

B 正确:多数嵌入式系统上电后自动运行预定程序,运行方式由固件决定,普通用户不能随意修改(除非烧录新固件)。

C 正确:嵌入式系统的程序(固件)通常不提供给最终用户二次开发(除非设备本身就是开发板)。

D 错误:嵌入式软件与硬件高度绑定,不能像 PC 一样随意独立安装或卸载软件。

2.嵌入式操作系统的最大特点是(  A  )。

 A. 可定制性 

 B. 实时性

 C. 非实时性   

 D. 分布性 

解析:
嵌入式操作系统(如 VxWorksFreeRTOS、嵌入式 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)、触摸屏、语音控制,推动操作系统对输入/输出设备和图形系统的支持。

移动与嵌入式:智能手机、物联网设备、智能汽车等,推动轻量级、低功耗、实时操作系统的出现(如 AndroidFreeRTOS)。

高可靠与高安全:金融、国防、医疗等领域要求系统具备容错、安全隔离、可信执行环境(TEE)等能力。

3. 应用软件复杂度的提升

大型应用与中间件:数据库、Web 服务器、容器等对内存、进程间通信、文件系统、网络性能提出更高要求。

多媒体与实时任务:音视频处理、游戏、工业控制等要求操作系统具备实时调度、低延迟 I/OQoS 保障。

分布式计算:云计算、大数据、微服务架构需要操作系统支持分布式资源管理、远程过程调用、网络存储等。

4. 资源利用效率与成本压力

提高 CPU I/O 的并行性:从早期的脱机 I/O”“SPOOLing”到现代的高效异步 I/O

减少内存与存储开销:虚拟内存、页面共享、写时复制、压缩内存、去重等技术不断演进。

降低功耗:在移动设备和数据中心中,节能调度、CPU 动态调频、休眠机制成为重要方向。

5. 系统安全与可靠性需求

隔离与保护:用户态与内核态分离、进程地址空间隔离、内存保护、Capability 模型。

访问控制:自主访问控制(DAC)、强制访问控制(MAC,如 SELinux)。

可信计算:安全启动、可信平台模块(TPM)、加密文件系统。

系统恢复:日志文件系统、快照、回滚、自动故障检测与恢复。

6. 软件工程与设计思想的演变

模块化与分层:便于维护与移植(如微内核 vs 宏内核之争)。

虚拟化与容器化:虚拟机监视器(Hypervisor)、容器(Docker)、Unikernel 等新抽象层。

微内核与现代内核架构L4seL4 等追求极小可信内核,提高安全性。

操作系统定制化:嵌入式、物联网、自动驾驶系统对操作系统的可剪裁、可配置需求。

总结:

硬件进步提供可能,用户需求提供方向,应用软件复杂度提出挑战,资源效率与成本施加压力,安全性与可靠性提出底线要求,而软件设计思想引领持续创新。这些动力共同推动操作系统从简单的批处理监控程序,演变为现代复杂、通用、高性能、安全可靠的系统软件。

2、嵌入式系统与通用计算机系统有何异同?

嵌入式系统与通用计算机系统(如 PC、服务器)在目标、设计理念、硬件结构、软件特征等方面有显著区别,也存在一些共通之处。下面从多个维度进行对比。

一、相同点

维度

相同点

基本组成

都包含处理器、内存、I/O 设备,运行操作系统(即使是极简内核)

软件层次

都有引导程序、操作系统内核、驱动、应用程序(虽然复杂程度不同)

任务调度

都需要某种形式的任务/进程调度机制(时间片、优先级等)

资源管理

都需要管理 CPU、内存、外设等资源

中断响应

都需要处理硬件中断,完成 I/O 或实时任务

二、不同点

对比维度

嵌入式系统

通用计算机系统

设计目标

面向特定应用,优化成本、功耗、体积

面向通用计算,优化性能、扩展性、用户体验

硬件结构

高度定制化(SoC、专用芯片、传感器),资源有限(小内存、低存储)

标准化(x86/ARM 主板、可扩展内存/硬盘),资源丰富

操作系统

轻量级(FreeRTOS、uC/OS、嵌入式 Linux),可裁剪,通常实时

通用系统(Windows、Linux、macOS),功能丰富,非实时或软实时

存储与启动

程序常固化在 FlashROM,上电快速启动(几秒甚至毫秒级)

从硬盘/SSD 加载,启动较慢(几秒到分钟)

用户交互

无界面或简单界面(按键、LED、触摸屏,且非主要功能)

复杂 GUI、多窗口、命令行,交互是核心需求

功耗

极低功耗(毫瓦~瓦级),支持电池供电、休眠唤醒

较高功耗(几十瓦~几百瓦),通常接交流电源

可靠性与生命周期

高可靠性(工业、医疗、汽车),要求长期稳定运行(数年)

可接受偶尔蓝屏、重启,寿命相对较短(3~5 年更新换代)

软件更新

难以更新(需专用工具、拆机或 OTA,风险高)

方便更新(网络下载、安装包,用户可自助)

成本

对成本敏感(大批量生产,每节约 0.1 美元都有意义)

对成本相对不敏感(几百~几千美元,用户为性能买单)

开发方式

交叉编译(宿主机 + 目标板),调试依赖 JTAG、串口

本地编译调试,集成开发环境成熟

并发与实时性

强实时(硬实时要求:任务必须在截止时间前完成)

弱实时或非实时(分时调度,响应时间不保证)

三、举例说明

嵌入式系统:洗衣机控制板、汽车 ECU、智能手表、路由器、智能摄像头、医疗监护仪。

通用计算机:台式机、笔记本电脑、服务器、工作站。

四、界限模糊的中间地带

有些系统兼具两者特征,例如:

树莓派 / 嵌入式工控机:运行通用 Linux,但尺寸小、功耗低、用于特定控制任务常被称为嵌入式通用系统

手机 / 平板:硬件高度集成、低功耗(嵌入式特征),但运行复杂的通用操作系统(Android/iOS)且用户可安装应用广义上也可视为嵌入式系统,但常被单列为移动系统

总结

嵌入式系统是为特定任务而生的专用计算机,追求低成本、低功耗、高可靠、实时性
通用计算机系统是为多任务通用计算设计的平台,追求高性能、灵活性、用户体验
两者在硬件、软件、开发模式上差异明显,但现代技术演进中界限在逐渐模糊(如嵌入式 Linux 的普及)。

3、嵌入式操作系统的最大特点是什么?举例说明。

嵌入式操作系统的最大特点是可裁剪性与可定制性。系统可以根据具体应用需求,只保留必要的功能模块(如内核、驱动、文件系统、网络协议栈等),去掉不需要的部分,从而在极小的资源(CPU、内存、存储) 上运行,并实现高可靠性、低功耗和实时性。

为什么可裁剪性是最大特点?

通用操作系统(如 WindowsLinux 桌面版)为了适应各种场景,包含了大量功能(图形界面、多种驱动、服务、工具),体积庞大。而嵌入式系统资源受限(可能只有几十 KB 内存、几十 MHz 主频),必须去掉无用的代码,只留下能完成特定任务的组件。这种量身定制的能力,是嵌入式操作系统与通用操作系统最本质的区别。

具体举例说明

1. FreeRTOS(小型嵌入式系统)

裁剪示例:一个只用来读取温度传感器并通过串口发送数据的设备。

只保留:内核调度器、任务管理、队列通信、串口驱动。

去掉:文件系统、TCP/IP 协议栈、USB 协议栈、图形界面。

结果ROM 占用约 6~10 KBRAM 占用仅几百字节,运行在 8 位单片机(如 AVRPIC)上。

2. 嵌入式 Linux(复杂嵌入式系统)

裁剪示例:一个智能电表(需要联网、记录数据、显示读数)。

配置:使用 buildroot  Yocto 构建系统,选择 ARM 架构,加入:

内核:去掉未使用的驱动(如显卡、蓝牙)、精简文件系统类型(只留 ext4 squashfs)。

用户态:只留 busybox(集成常用命令的小工具)、lighttpdWeb 服务器)、SQLite(数据库)、一个自定义的电表应用。

去掉:X11/GUIPythonPerlSSH 等非必要组件。

结果:整个系统(内核 + 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 和内存资源,分配给不同的计算任务。

四、分布式文件系统

功能

跨节点的文件存储与访问(文件可能分块存储在多个节点上)。

提供统一命名空间和访问接口(如 NFSCephGFS)。

数据冗余与容错(副本机制、纠删码)。

例子:用户访问 /data/bigfile 时,系统自动从多个节点的副本中读取数据块,即使某些节点故障也不丢失数据。

五、分布式同步与互斥

功能

解决跨节点资源的互斥访问(如分布式锁)。

实现全局时间与顺序(逻辑时钟、向量时钟)。

分布式事务与一致性协议(如两阶段提交 2PCPaxosRaft)。

例子:多用户同时修改分布式数据库中的同一条记录,系统通过分布式锁防止冲突。

六、分布式通信管理

功能

提供节点间的高效、可靠通信机制(消息传递、远程过程调用 RPC、消息队列)。

处理通信延迟、丢包、乱序等问题。

支持多播、广播、组通信。

例子:一个微服务调用另一个微服务通过 gRPC REST API 完成,分布式操作系统管理底层的连接、序列化和网络传输。

七、容错与高可用性

功能

检测节点故障、网络分区。

自动故障恢复:任务重启、数据副本切换、服务重新选举。

实现无单点故障(冗余设计、主备切换、集群仲裁)。

例子:在分布式键值存储(如 etcdZooKeeper)中,Leader 节点宕机后,Follower 自动选举出新 Leader,服务不中断。

八、分布式安全

功能

跨节点的身份认证(如 KerberosTLS 证书)。

分布式访问控制(跨节点的权限一致性)。

数据加密传输与存储。

例子:用户在分布式系统中登录一次,即可访问其他节点上的授权资源(单点登录 SSO)。

总结:与单机操作系统的核心区别

功能

单机操作系统

分布式操作系统

进程调度

单节点 CPU 调度

跨节点负载均衡、进程迁移

内存管理

统一物理内存

分布式共享内存、远程内存访问

文件系统

本地磁盘

分布式文件系统(跨节点冗余)

同步

信号量、互斥锁

分布式锁、选举、一致性协议

通信

管道、共享内存

RPC、消息传递、组通信

容错

系统崩溃整体不可用

节点故障自动切换,系统持续可用

一句话概括

分布式操作系统在单机操作系统功能的基础上,增加了跨节点通信、资源统一调度、透明访问、容错与一致性等核心功能,让多个计算机协同工作,表现得像一台虚拟的超级计算机

6、多机系统主要包括哪几种类型?它们之间有何异同?

多机系统(多计算机系统)是指由多个处理单元(CPU、计算机)组成的计算机系统,主要分为以下四种类型。它们之间在耦合度、通信方式、资源管理等方面存在显著差异。

一、四种主要类型

1. 多处理器系统(共享存储多处理机)

结构:多个 CPU 共享同一物理内存,通过总线或交叉开关互连。

通信方式:通过共享内存load/store 指令),通信极快(纳秒级)。

操作系统:单一操作系统实例管理所有 CPU(对称多处理 SMP 或非对称 AMP)。

典型例子:服务器(Intel XeonAMD EPYC)。

2. 多计算机系统(消息传递多计算机)

结构:每个节点有独立的 CPU 和内存,节点间通过高速网络(如 InfiniBand、以太网)连接。

通信方式显式消息传递(如 MPI),没有共享内存。

操作系统:每个节点运行自己的操作系统副本(通常是相同的),通过消息通信协作。

典型例子:大规模集群(如 TOP500 超级计算机)、IBM Blue Gene

3. 网络系统(局域网/互联网连接的计算机)

结构:通过通用网络(以太网、Wi-Fi)连接的独立计算机,硬件无特殊要求。

通信方式:基于套接字、HTTPRPC 等协议。

操作系统:各节点运行独立的操作系统(可能异构:WindowsLinuxmacOS)。

典型例子:企业内网、云计算集群(AWS、阿里云)。

4. 分布式系统(逻辑上单一系统映像的网络系统)

结构:物理上类似多计算机或网络系统,但软件层面提供了统一访问接口和全局资源管理。

通信方式:透明消息传递或远程过程调用(RPC)。

操作系统:可以是专用分布式操作系统(如 AmoebaPlan 9),或通用操作系统+分布式中间件(如 Hadoop、微服务框架)。

典型例子Google 搜索引擎、分布式数据库(Spanner)、Hadoop 集群。

二、异同对比表

特性

多处理器系统

多计算机系统

网络系统

分布式系统

耦合度

最紧密(共享内存)

中等(消息传递)

松散(标准网络)

松散~中等

内存模型

统一共享内存

分布式独立内存

分布式独立内存

逻辑统一(通过中间件)

通信延迟

纳秒级(硬件)

微秒~毫秒(消息)

毫秒级(TCP/IP)

毫秒级(依赖网络)

操作系统

单一 OS 实例

每个节点独立 OS

每个节点独立 OS

专用 OS 或 OS + 中间件

资源管理

全局统一(单 OS)

分布式(节点自治)

完全独立

逻辑统一(分布式 OS 或中间件)

可扩展性

差(总线/交叉开关瓶颈)

好(增加节点)

好(增加节点)

极好(水平扩展)

容错性

低(CPU 故障可能系统崩溃)

中等(节点故障影响局部)

低(依赖网络)

高(冗余、自动切换)

用户视图

单一计算机

多个计算机

多个计算机

单一系统映像

典型规模

2~256 个 CPU

数十~数百万节点

数十~数千节点

数百~数十万节点

三、相同点

都由多个处理单元组成。

都需要解决任务分配、通信、同步等问题。

目标都是为了获得比单机更高的性能、吞吐量或可靠性

都需要某种形式的并发控制资源管理

总结

多处理器系统追求紧密耦合、高性能,但扩展性受限。

多计算机系统追求大规模并行计算,显式管理通信。

网络系统松耦合、通用连接的基础。

分布式系统网络系统之上增加了单一系统映像、透明访问、高容错等软件能力。

实际应用中,现代大型系统往往是混合结构:例如一个分布式数据库(逻辑分布式)可能运行在多计算机集群上,而集群内每个节点又是多处理器系统。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐