导图社区 第一章 操作系统的概念
这是一篇关于第一章 操作系统的概念的思维导图,主要内容包括:详细课程讲解,17版、23版习题合辑及答案及解析。
编辑于2025-10-30 04:55:04第一章 操作系统的概念
课程
第一节 操作系统的概念
一、计算机系统
定义
计算机系统是一种可以按用户的要求接收和存储信息、自动进行数据处理并输出结果信息的系统
分类
广义的计算机系统包含机械式系统和电子式系统两类。
在电子式系统中,还可以划分为模拟式和数字式两种计算机系统。
我们在这里讨论的是数字电子计算机系统,简称计算机系统。
组成
硬件 (子) 系统
硬件系统是计算机系统赖以工作的实体。
中央处理器 (CPU=运算器+控制器)
内存储器 (又称主存)
外存储器 (磁盘、磁带等)
输入输出设备 (键盘、鼠标、显示器、打印机等)
软件 (子) 系统
软件系统=程序+数据
应用软件:文字处理、图形图像处理、科学计算、MIS…
支撑软件:数据库、网络、多媒体…
系统软件:操作系统、编译程序…
二、操作系统(Operating System, OS)的定义
操作系统是系统软件的核心,负责管理和控制计算机硬件与软件资源,为用户和其他软件提供接口和服务。
它们能有效地组织和管理计算机系统中的硬件及软件资源
合理地组织计算机工作流程,控制程序的执行
并向用户提供各种服务功能,使得用户能够灵活、方便、有效地使用计算机
并使整个计算机 系统能高效地运行。
三、操作系统的特征
1.并发性
操作系统能够同时处理多个任务或进程,通过时间片轮转等方式实现多任务的并发执行。
计算机程序的并发性体现在如下具体两个方面:
1) 用户程序与用户程序之间并发执行;
2) 用户程序与操作系统程序之间并发执行。
两个相似的概念:并行性以及并发性。
并行性是指两个或者多个事件在同一时刻发生,这是一个具有微观意义的概念,即在物理上这些事件是同时发生的。
而并发性是指两个或者多个事件在同一时间间隔内发生,它是一个较为宏观的概念,与所使 用的时间间隔相对应的、有某种程度的统计意义。
2.共享性
共享性是指操作系统程序与多个用户程序共用系统中的各种资源(硬件和软件资源)。
这种共享性是在操作系统控制下实现的。
资源的共享性主要针对计算机系统中的如下几项重要资源。
1) 中央处理器
2) 内存储器
3) 外存储器
4) 外部设备
资源的共享一般有两种形式:互斥共享和同时共享
互斥共享
互斥共享是指某些资源在同一时间内只能被一个进程或线程独占使用,其他进程或线程必须等待该资源释放后才能使用。
同时共享
同时共享是指某些资源可以被多个进程或线程同时访问和使用,而不会导致冲突或数据不一致。
3.虚拟性
虚拟性是一种管理技术,该技术把物理上的一个实体变成逻辑上的多个对应物,或把物理上的多个实体变成逻辑上的一个对应物。
操作系统通过虚拟化技术,使得每个用户或应用程序仿佛独占了整个计算机资源。
4.异步性(随机性)
操作系统的运行是在一种随机的环境下进行的。
这种随机环境的含义是,操作系统不能对所运行的程序的行为以及硬件设备的情况做出任何事先的假定。
随机性并不意味着操作系统不能很好地控制资源的使用和程序的运行,随机性突出强调了在 进行操作系统的设计与实现时要充分考虑各种各样的可能性。
操作系统本身应该稳定、可靠、安全、高效,实现程序并发和资源共享的目的。
操作系统必须能够处理不可预测的事件,如用户输入、硬件中断等,保证系统能够及时响应。
四、研究操作系统的观点
1、软件的观点
核心思想:将操作系统视为一种软件,研究其结构、功能、设计和实现。
从软件的观点来看,操作系统是一种大型软件系统,它是多种功能程序的集合。 作为一种大型软件系统,操作系统有软件的外在特性和内在特性。
1) 外在特性是指,操作系统是一种软件,它的外部表现形式。
2) 内在特性是指,操作系统既然是一种软件,它就具有一般软件的结构特点。
重点内容:
操作系统的模块化设计。
操作系统的层次结构(如内核、系统调用、用户接口等)。
操作系统的开发、调试和维护。
研究意义:
帮助理解操作系统的内部工作原理。
为操作系统的设计和优化提供理论支持。
2、资源管理的观点
核心思想:将操作系统视为计算机资源的管理者,负责高效地分配和管理硬件和软件资源。
硬件和软件资源可以分成以下几部分:中央处理器 (CPU) 、存储器 (内存和外存) 、外部设备和信息 (文件) 。
重点内容:
资源类型:CPU、内存、磁盘、I/O设备等。
资源分配策略:如何公平、高效地分配资源。
资源保护:防止资源被非法访问或滥用。
研究意义:
提高资源利用率。
确保系统的稳定性和安全性。
3、进程的观点
核心思想:将操作系统视为进程的管理者,研究进程的创建、调度、同步和通信。
用进程的观点,则把操作系统看作由多个可以同时独立运行的程序和一个对这些程序进行协调的核心所组成。
重点内容:
进程管理:进程的创建、终止、状态转换。
进程调度:如何分配CPU时间片给多个进程。
进程同步:解决多个进程对共享资源的竞争问题。
进程通信:进程之间的数据交换和协作。
研究意义:
实现多任务并发执行。
提高系统的响应速度和吞吐量。
4、虚机器的观点
核心思想:将操作系统视为一个虚拟机器,为用户和应用程序提供一个抽象的计算环境。
虚机器的观点是从系统功能分解的角度出发,考虑操作系统的结构。
重点内容:
虚拟化技术:通过虚拟化技术,操作系统为每个用户或应用程序提供一个独立的虚拟计算机。
抽象接口:操作系统隐藏硬件细节,提供简单易用的接口(如系统调用)。
资源隔离:确保不同用户或应用程序之间的资源隔离。
研究意义:
简化应用程序开发。
提高系统的安全性和可靠性。
5、服务提供者观点
核心思想:将操作系统视为服务的提供者,为用户和应用程序提供各种服务。
从用户的角度,站在操作系统之外观察操作系统,则可以认为该服务提供者为用户提供了比裸机功能更强、服务质量更高、更方便的灵活的虚拟机器。
为了用户使用上的便利,该服务提供者提供了一组功能强大的、方便、易用的广义指令 (称为系统调用) 。
重点内容:
服务类型:文件管理、设备管理、内存管理、进程管理等。
服务接口:操作系统通过系统调用、API等方式提供服务。
服务质量:如何高效、可靠地提供服务。
研究意义:
提高系统的可用性和用户体验。
支持多样化的应用需求。
五、操作系统的功能
1. 进程管理 (处理器管理):
定义:
进程管理是操作系统对进程的创建、调度、执行和终止进行管理的过程。
主要功能:
进程创建与终止(进程控制):通过系统调用(如fork()、exit())创建和终止进程。
创建进程时资源分配,进程退出回收资源。控制进程的状态。
进程调度:决定哪个进程获得CPU时间片(如时间片轮转、优先级调度等)。
即处理器调度。包括线程调度、进程调度、作业调度。
进程同步:协调多个进程对共享资源的访问(如信号量、互斥锁)。
多个进程并发执行,用同步或者互斥的方式实现同步机制。
进程通信:实现进程之间的数据交换(如共享内存、消息传递)。
相互协作的进程之间交换数据和消息。
意义:
实现多任务并发执行。
提高CPU利用率和系统吞吐量。
2. 内存管理(存储管理):
1. 定义:
内存管理是操作系统对计算机内存资源的分配、回收和保护进行管理的过程。
存储管理的任务是管理计算机内存的资源。存储管理有三个方面的任务。
1) 当多个程序共享有限的内存资源时,要考虑如何为多个程序分配有限的内存空间;
2) 存储在内存中的多个程序和数据应该彼此隔离、互不侵扰;
3) 解决内存扩充的问题,即将内存和外存结合起来管理,为用户提供一个容量比实际内存大得 多的虚拟存储器;
2. 主要功能:
内存分配:为进程分配所需的内存空间(如连续分配、分页、分段)。
内存回收:释放进程结束后的内存空间。
内存保护:防止进程非法访问其他进程的内存空间。
虚拟内存:通过虚拟内存技术扩展可用内存空间(如页面置换算法)。
3. 意义:
提高内存利用率。
支持多任务并发执行。
提供内存保护和隔离。
3. 文件管理:
1. 定义:
文件管理是操作系统对计算机文件系统的组织、存储、访问和保护进行管理的过程。
(1) 文件存储空间管理
(2) 目录管理
(3) 文件系统的安全性
2. 主要功能:
文件存储:管理文件的物理存储(如磁盘空间分配)。
文件访问:提供文件的读写操作(如顺序访问、随机访问)。
文件保护:控制文件的访问权限(如读、写、执行权限)。
文件系统:组织和管理文件的逻辑结构(如FAT、NTFS、EXT等)。
3. 意义:
提供高效的文件存储和访问机制。
确保文件的安全性和一致性。
4. 设备管理:
1. 定义:
设备管理是操作系统对计算机输入输出设备的分配、调度和控制进行管理的过程。
2. 主要功能:
由操作系统的设备管理功能负责外部设备的分配、启动和故障处理,用户不必详细了解设备及接口的技术细节,就可以方便地通过操作系统提供的设备管理手段,对设备进行操作。
设备分配:为进程分配所需的设备资源。
设备调度:优化设备的访问顺序(如磁盘调度算法)。
设备驱动:提供设备的驱动程序,实现操作系统与设备的交互。
缓冲管理:通过缓冲区提高设备访问效率。
3. 意义:
提高设备的利用率和响应速度。
简化用户对设备的使用。
5. 用户接口:
1. 定义:
用户接口是操作系统为用户提供的与计算机交互的方式。
除了上述五项功能之外,操作系统还应该向用户提供使用它自己的手段,这就是用户与 计算机系统之间的接口。
1) 命令接口
2) 应用程序接口
2. 主要类型:
命令行接口(CLI):用户通过输入命令与系统交互(如Linux Shell)。
图形用户接口(GUI):用户通过图形界面与系统交互(如Windows桌面)。
应用程序接口(API):为应用程序提供系统调用接口。
3. 意义:
提供便捷的用户操作方式。
支持多样化的应用需求。
6. 总结
这些功能共同构成了操作系统的核心,确保计算机系统的高效运行和用户操作的便捷性。
第二节 操作系统的体系结构
一、Windows操作系统的体系结构
1. 分层结构:Windows操作系统采用分层结构,主要分为用户模式和内核模式。
内核模式:
微内核(Microkernel)
混合内核(Hybrid kernel)(官方)
包含执行体(Executive)、内核(Kernel)、硬件抽象层(HAL)、子系统集合等。
负责进程管理、内存管理、文件系统、设备驱动等核心功能。
用户模式:
包含用户应用程序和子系统(如Win32子系统、POSIX子系统)。
应用程序通过系统调用与内核交互。
2. 特点:
模块化设计,便于扩展和维护。
支持多用户、多任务。
提供丰富的API和图形用户界面(GUI)。
3. 主要组件:
执行体:提供基本的系统服务(如内存管理、进程管理)。
内核:处理低级任务(如线程调度、中断处理)。
硬件抽象层(HAL):屏蔽硬件差异,提供统一的硬件接口。
二、UNIX操作系统的体系结构
1. 分层结构:UNIX操作系统采用分层结构,主要分为内核层和用户层。
内核层:
单内核(Monolithic Kernel)设计
包含进程管理、内存管理、文件系统、设备驱动等核心功能。
提供系统调用接口供用户层使用。
用户层:
包含Shell、实用程序(如ls、cp)和用户应用程序。
用户通过Shell与系统交互。
2. 特点:
简洁高效,模块化设计。
支持多用户、多任务。
强大的命令行界面(CLI)和脚本支持。
3. 主要组件:
内核:负责系统资源管理和任务调度。
Shell:用户与系统交互的命令解释器(如Bash、Ksh)。
文件系统:采用树形目录结构,支持多种文件类型。
三、Linux操作系统的体系结构
1. 分层结构:Linux操作系统采用分层结构,主要分为用户空间和内核空间。
用户空间:
包含用户应用程序、库函数(如Glibc)和Shell。
应用程序通过系统调用与内核交互。
内核空间:
单内核(Monolithic Kernel)设计
包含进程管理、内存管理、文件系统、设备驱动等核心功能。
提供系统调用接口供用户空间使用。
2. 特点:
开源、模块化设计,高度可定制。
支持多用户、多任务。
强大的命令行界面(CLI)和脚本支持。
3. 主要组件:
内核:负责系统资源管理和任务调度。
Shell:用户与系统交互的命令解释器(如Bash、Zsh)。
文件系统:支持多种文件系统(如EXT4、XFS)。
用户应用程序
四、Android操作系统的体系结构
分层结构:
应用层:
包含用户应用程序(如浏览器、联系人)。
应用框架层:
提供API供应用程序使用(如Activity Manager、Content Provider)。
系统运行库层:
包含核心库(如SQLite、WebKit)和Android运行时(ART)。
Linux内核层:
提供进程管理、内存管理、文件系统、设备驱动等核心功能。
特点:
基于Linux内核,专为移动设备设计。
支持多任务、多线程。
提供丰富的应用开发框架(如Android SDK)。
主要组件:
Linux内核:负责系统资源管理和硬件抽象。
Android运行时(ART):执行应用程序的字节码。
应用框架:提供应用程序开发的基础设施。
总结
第三节 操作系统的发展
操作系统发展的主要历程:
一、手工操作阶段(1940年代-1950年代)
二战时期对武器装备设计的需要,美国、英国和德国等国家,陆续开始使用真空 管建造数字电子计算机。通过在插板上的硬连线控制计算机的基本功能,程序设计全部采用机 器语言,没有程序设计语言 (甚至没有汇编语言) 。20世纪50年代早期,出现穿孔卡片,可以 将程序写在卡片上,此阶段特点是手工操作、独占方式
背景:
早期的计算机没有操作系统,用户需要直接操作硬件。
计算机资源昂贵,使用效率低。
特点:
用户通过手工操作(如插拔线路、设置开关)运行程序。
每次只能运行一个任务,计算机资源利用率极低。
问题:
操作繁琐,容易出错。
计算机资源浪费严重。
二、批处理系统(1950年代-1960年代)
背景:
为了提高计算机资源利用率,出现了批处理系统。
特点:
用户将作业(Job)提交给操作员,操作员将一批作业按顺序输入计算机。
系统自动依次执行作业,减少了人工干预。
类型:
单道批处理系统(监控程序 ): 一次只能处理一个作业(早期批处理)
50年代晶体管的发明后,出现了FORTRAN、ALGOL以及COBOL等高级 语言要运行一个作业 (JOB) ,程序员首先将程序写在纸上,穿孔成卡片,将卡片盒带到输入室, 交给操作员,计算结果从打印机上输出,操作员到打印机上取下运算结果并送到输出室,程序员 取到结果。由于处理器速度提高,导致手工操作设备输入/输出信息与计算机计算速度不匹配, 人们设计了监督程序 (或管理程序) ,来实现作业的自动转换处理。操作员将作业“成批”地输 入到计算机中,由监督程序识别一个作业,进行处理后再取下一个作业。这种自动定序的处理方 式称为“批处理 (Batch Processing) ”方式,由于是串行执行作业,因此称为单道批处理
多道批处理系统:允许多个作业同时进入内存,通过调度算法交替执行。
进入第三代计算机以后,硬件有了很大发展,通道使得输入/输出操作与CPU操作 并行处理成为可能。与此同时软件系统也随之相应变化,实现了在硬件提供并行处理之上的多道程序设计
所谓多道是指它允许多个程序同时存在于主存之中,由中央处理器以切换方式为之服务,使得多个程序可以同时执行。
计算机资源不再是“串行”地被一个个用户独占,而可以同时为几个用户共享,从而极大地提高了系统在单位时间内处理作业的能力。
这时管理程序已迅速地发展成 为一个重要的软件分支——操作系统
优点:
提高了计算机资源的利用率。
减少了人工操作时间。
缺点:
用户无法与作业交互。
作业响应时间较长。
三、分时系统(1960年代-1970年代)
1. 背景:
为了提高系统的交互性,出现了分时系统。
批处理系统不适合交互式的作业,对交互式工作方式的需求导致了分时系统 (Time Sharing System) 的出现。分时系统是指多个用户通过终端设备与计算机交互作用来运 行自己的作业,并且共享一个计算机系统而互不干扰。由于调试程序的用户常常只发出简短的命 令 (如编译一个五页的源文件) ,而很少有长的费时命令 (如上百万条记录的文件排序) ,所以 计算机能够为许多用户提供交互式快速的服务,同时在CPU空闲时还能运行大的后台作业
2. 特点:
多个用户通过终端同时访问计算机。
系统通过时间片轮转的方式为每个用户分配CPU时间。
3. 优点:
提高了系统的交互性。
用户可以在短时间内获得响应。
4. 典型系统:
UNIX:第一个广泛使用的分时操作系统。
20世纪60年代末,贝尔实验室的Ken Thompson和Dennis M. Ritchie设计了 UNIX操作系统,以下是UNIX的特点:
• 用C语言编写,可移植
• 世界上唯一能在笔记本计算机、PC机、工作站直至巨型机上运行的操作系统
• 系统源代码非常有效,系统容易适应特殊的需求
• 良好的、通用的、多用户、多任务、分时操作系统
• 树形文件系统和一定的安全机制
• 简洁的字符流文件和文件保护机制
• 具备功能强大的shell,它既是命令解释器,又是编程用高级语言,可用于扩充系统的功能
四、个人计算机操作系统(1970年代-1980年代)
1. 背景:
随着个人计算机(PC)的普及,出现了专门为个人计算机设计的操作系统。
20世纪70年代末期出现了面向个人计算机的操作系统,例如微软公司 的MS DOS操作系统,属于单用户单任务操作系统
• 1984年,苹果推出交互式图形功能的操作系统
• 1992年,微软推出交互式图形功能的Windows 3.1
• 1995年,Windows 95出现,Windows成为个人计算机主流操作系统
• 1991年,Linus公布Linux操作系统,继承UNIX全部优点,开放源码,Linux极其健壮
2. 特点:
单用户、单任务操作系统。
提供简单的文件管理和设备管理功能。
3. 典型系统:
MS-DOS:微软开发的单用户、单任务操作系统。
Apple DOS:苹果公司为Apple II计算机开发的操作系统。
五、现代操作系统(1980年代至今)
1. 背景:
计算机硬件性能大幅提升,出现了多用户、多任务操作系统。
2. 特点:
支持多用户、多任务并发执行。
提供图形用户界面(GUI)和丰富的应用程序接口(API)。
支持网络通信和分布式计算。
3. 典型系统:
Windows:微软开发的多用户、多任务操作系统,广泛应用于个人计算机和服务器。
Linux:开源的类UNIX操作系统,广泛应用于服务器、嵌入式系统和超级计算机。
macOS:苹果公司为Macintosh计算机开发的操作系统,结合了UNIX的稳定性和图形界面的易用性。
Android:基于Linux内核的移动操作系统,广泛应用于智能手机和平板电脑。
iOS:苹果公司为iPhone和iPad开发的移动操作系统。
六、操作系统的发展趋势
宏观应用与微观应用
大型系统:分布式操作系统、机群操作系统
微型系统:嵌入式操作系统
微内核架构:
将操作系统的核心功能最小化,其他功能以服务形式运行在用户空间。
提高系统的灵活性和安全性。
嵌入式操作系统:
针对嵌入式设备设计的操作系统,资源占用少,实时性强。
典型系统:嵌入式Linux、RTOS。
虚拟化技术:
通过虚拟化技术在一台物理机上运行多个虚拟机,提高资源利用率。
典型应用:云计算平台(如AWS、Azure)。
分布式操作系统:
管理多台计算机的资源,提供统一的访问接口。
典型应用:分布式文件系统(如HDFS)、分布式计算框架(如Hadoop)。
实时操作系统:
提供确定性的响应时间,适用于实时应用(如工业控制、自动驾驶)。
典型系统:VxWorks、FreeRTOS。
第四节 操作系统分类
一、按工作方式和应用环境分类(最核心的分类)
1、批处理操作系统(Batch Processing OS)
时代:早期计算机(20世纪50-60年代)。
设计思想
简单批处理系统在操作系统发展早期出现,被称为早期批处理系统,或监控程序。在监控程 序启动前,操作员有选择地把若干作业合并成一批作业,将这批作业安装在输入设备上。然后启 动监控程序,监控程序将自动控制这批作业的执行,作业的运行以及作业之间的衔接都由监控程 序自动控制,有效地提高了作业运行的效率。
作业控制说明书
在简单批处理系统中,作业的运行步骤是由作业控制说明书传递给监控程序。作业控制说明书是由作业控制语言编写的一段程序,通常存放在被处理作业前面。在运行过程中,监控程序读 入并解释作业控制说明书中的语句,以控制各个作业步的执行。
SPOOLing技术
为了提高硬件资源的利用率,批处理系统发展为更加高级的多道批处理系统,关键技术就是 多道程序运行、假脱机 (SPOOLing) 技术等。
假脱机技术,全称是“同时的外部设备联机操作” ,借助硬件通道技术,实现了输入输出操作和处理器动作的自动并行处理。通道是指专门用来控制输入输出的硬件设备,可以看作是专门 的I/O处理机。通道基本上是自主控制外设的,可以与CPU并行工作。假脱机技术为实现多道批处 理系统中的多道程序设计思想提供了重要的基础。
工作方式:
用户将一批作业(程序、数据、指令)通过磁带、卡片等提交给操作员。
收到一定数量的用户作业后,组成一批作业,输入到计算机,在系统中形成一个连续的、 自动转接的作业流。
操作员将这批作业成批地输入计算机。
操作系统自动按顺序处理每个作业,中间无需用户干预。
处理完成后,统一输出结果。
特点:
多道:内存中同时存放多道作业,CPU轮番处理,提高了CPU利用率。
成批:作业批量处理,减少了人工操作时间。
用户将作业(Job)提交给系统,系统按顺序自动执行。
成批处理、系统资源利用率高、作业吞吐率高、作业流程自动化较高、作业吞吐量大
无交互性:用户一旦提交作业,就无法再与作业交互。
用户不能直接与计算机交互,不适合调试程序
目标:提高CPU利用率和吞吐量。
适用于需要长时间运行的任务,如科学计算、数据处理。
典型系统:
IBM OS/360。
2、分时操作系统(Time-Sharing OS)
时代:20世纪60年代后,解决了批处理系统无法交互的问题。
分时操作系统出现在批处理操作系统之后,弥补批处理方式不能向用户提供交互式快速服 务的缺点。
工作方式:
将CPU的运行时间划分为极短的时间片(如几十毫秒)。
系统通过时间片轮转的方式为每个用户分配CPU时间。
原则是:分时优先,批处理在后。称为前台和后台
“前台”响应需频繁交互的作业,如大量终端的处理要求;
“后 台”则处理处理对时间性要求不强的作业
用户通过终端交互式地向系统提出命令请求,系统接受用户的命令之后,采用时间片轮转方式处理服务请求,并通过交互方式在终端上向用户显示结果。用户根据系统送回的处理结果发出下一道交互命令。
特点:
交互性:
交互性指用户根据系统响应的结果提出下一个请求,用户直接干预操作每一步的进行
多路性:
多路性指有多个用户在同时使用一台计算机
独立性(独占性)
由于时间片很短,用户感觉不到延迟,似乎独占了整个计算机。
及时性
及时性指系统能够对用户提出的请求及时给予响应
应用场景:
适用于需要高交互性的场景,如软件开发、教育。
典型系统:
UNIX 是典型的分时操作系统。Linux也是其衍生。
3、实时操作系统(Real-Time OS, RTOS)
工作方式:
能够在严格限定的时间内对外部事件做出响应并处理。
控制实时设备和实时任务协调一致工作
特点:
高可靠性:要求系统绝对可靠。
及时性:响应时间必须在截止时间内完成。
可预测性:系统对任务的处理时间是可知和可预测的。
分类:
①硬实时:
必须在绝对严格的规定时间内完成响应。超时即失败,可能造成灾难性后果。
例如:导弹控制系统、飞行自动驾驶系统、工业机器人控制。
②软实时:
对事件响应和处理时间有一定要求,不满足要求会影响服务质量,但不会引发严重后果
能够接受偶尔的超时,主要目标是保证任务按优先级顺序完成。
例如:数字电视、机顶盒、实时信息查询系统。
实时系统为实现硬实时或软实时的要求,需要具备以下能力:
(1) 实时时钟管理
实时任务根据时间要求可以分为两类:
• 定时任务
它依据用户的定时启动并按照严格的时间间隔重复运行
• 延时任务
它非周期地运行,允许被延后执行,但是往往有一个严格的时间界限
依据任务功能的不同,可分为主动式任务和从动式任务:
• 主动式任务依据时间间隔主动运行,多用于实时监控
• 从动式任务依赖于外部事件的发生
(2) 过载防护
实时任务的启动时间和数量具有很大的随机性,突发的大量实时任务极有可能超出系统的处理能力,从而发生过载。
实时系统在出现过载现象时,要有能力迅速分析判断并找出最重要的实 时任务,通过抛弃或者延后次要任务以保证最重要任务成功执行。
(3) 高可靠性
高可靠性是实时系统的设计目标之一,实时操作系统需要有很强的健壮性和坚固性。
应用场景:
工业控制、航空航天、自动驾驶。
典型系统:
VxWorks、FreeRTOS。
4. 个人计算机操作系统 (Personal Computer Operating System)
工作方式:为单用户提供友好的操作界面和丰富的应用支持。
特点:
图形用户界面:方便用户使用。
• 采用图形界面人机交互的工作方式,界面友好
丰富的应用生态:办公、娱乐、网络等软件繁多。
• 使用简单方便
管理计算机硬件和软件资源。
• 计算机在某一时间内为单个用户服务
例子:Microsoft Windows, macOS, Linux的各类桌面发行版(如Ubuntu, Fedora)。
5、网络操作系统(Network OS)
工作方式:基于计算机网络,在各自独立的操作系统之上,提供网络通信、资源共享和网络服务功能。
特点:
管理多台计算机之间的连接。
提供共享资源(文件、打印机)的服务。
支持网络通信和资源共享。
提供网络协议栈、文件共享、打印服务等功能。
每个计算机仍独立运行自己的操作系统。
应用场景:
企业网络、服务器管理。
典型系统:
Windows Server, Novell NetWare(经典),UNIX/Linux服务器版。
计算机网络的不同模式
集中式模式
运算处理在主计算机里发生,终端仅作为输入/输出设备使用,通过连接两台或更多主机的方式构成计算机网络
分布式模式
每台计算机都有运算处理能力,多台计算机通过网络交换数据并共享资源和服务。
在分布式模式中,网络环境中的计算机不仅能共享数据、资源及服务,还能够共享运算处理能力
6、分布式操作系统(Distributed OS)
工作方式:
管理由网络连接的多台计算机,对外表现为一个完整的、统一的系统,用户感觉不到资源分布在多台计算机上。
将大量的计算机通过网络连结在一起,获得极高的运 算能力及广泛的数据共享
把系统中的所有计算机构成一个完整的、功能更加强大的计算机系统,系统中 的计算机相互协作,共同完成一个大型计算任务,一个计算任务可分解成若干可以并行执行的 子任务,每个子任务分别在不同的计算机上执行。
特点:
统一性:一个全局的、单一的系统映像。
管理多台计算机的资源,提供统一的访问接口。
可靠性:一台机器的故障不会导致整个系统崩溃。
当一个计算机系统发生故障时,整个分布式系统仍旧能够工作。适用于高可靠的环境
高性能:任务可以分配到多台计算机上并行处理。
支持分布式计算和存储。
与网络操作系统的区别:
网络OS中,用户能明确知道资源在哪台机器上; 分布式OS对用户是透明的,用户不知道资源的位置。
机群 (cluster) 是分布式系统的一种,
一个机群通常由一群处理器密集构成,机群操作系统专门服务于这样的机群。
在机群操作系统的指挥下,可以用低成本的微型计算机和以太 网设备等产品,构造出性能相当于超级计算机运算性能的机群。
是网络操作系统的更高级形式,分布式操作系统除了保持了网络操作系统的各种功能之外,还具备如下的特征:
(1) 系统中的所有主机使用统一的操作系统
(2) 资源深度共享。
通过统一的操作系统的调度,在某台主机的一个计算任务可以迁移到另一台主机上执行
(3) 透明性。
用户不知道分布式系统运行在多少台计算机上,各个主机地理位置上的差异对 用户透明
(4) 自治性。
各个主机之间没有主从关系,一个主机的失效一般不会影响整个分布式系统
应用场景:
大规模数据处理、云计算。科研领域和大型数据中心有应用
典型系统:
Google Borg、Apache Hadoop。
但真正商业化的、纯粹的分布式OS很少见。
二、按用户数量分类
单用户操作系统(Single-User OS)
特点:
一次只允许一个用户使用系统。
应用场景:
个人计算机、嵌入式设备。
典型系统:
MS-DOS、Windows 95。
多用户操作系统(Multi-User OS)
特点:
支持多个用户同时访问系统。
应用场景:
服务器、大型计算机。
典型系统:
UNIX、Linux。
三、按任务数量分类
1. 单任务操作系统(Single-Tasking OS)
特点:
一次只能运行一个任务。
应用场景:
早期的个人计算机。
典型系统:
MS-DOS。
2. 多任务操作系统(Multi-Tasking OS)
特点:
支持多个任务并发执行。
应用场景:
现代个人计算机、服务器。
典型系统:
Windows、Linux、macOS。
四、按应用领域分类
1. 桌面操作系统(Desktop OS)
特点:
提供图形用户界面(GUI),适合个人使用。
应用场景:
个人计算机、办公环境。
典型系统:
Windows、macOS、Ubuntu。
2. 服务器操作系统(Server OS)
特点:
支持多用户、多任务,提供网络服务。
应用场景:
企业服务器、数据中心。
典型系统:
Windows Server、Linux Server。
3. 移动操作系统(Mobile OS)
特点:
专为移动设备设计,支持触控操作。
应用场景:
智能手机、平板电脑。
典型系统:
Android、iOS。
4. 嵌入式操作系统(Embedded OS)
嵌入式操作系统用于工业控制、交通管理、信息家电等嵌入式系统,设计紧凑、高效, 只保留运行在其上的特定应用程序所需要的功能。
特点:
资源占用少,实时性强,专为嵌入式设备设计。
(1) 系统内核小。由于资源有限,嵌入式操作系统的内核要比传统的操作系统小得多
(2) 专业性强。与硬件紧密结合,针对不同的任务和设备进行定制和移植,不能通用
(3) 系统精简。不需要过于复杂的功能设计和实现,降低系统成本和提高系统安全性
(4) 高实时性。能够及时响应外部事件和中断,保证任务的执行顺序和完成时间
(5) 多任务的操作系统。能够支持多任务的调度和管理,合理地分配和利用系统资源
应用场景:
智能家居、工业控制、汽车电子。
典型系统:
Embedded Linux、FreeRTOS。
五、按内核架构分类
1. 宏内核操作系统(Monolithic Kernel OS)
特点:
内核包含所有核心功能(如进程管理、内存管理、文件系统)。
优点:
性能高,模块间通信效率高。
典型系统:
Linux、UNIX。
2. 微内核操作系统(Microkernel OS)
特点:
内核只包含最基本的功能(如进程调度、内存管理),其他功能以服务形式运行在用户空间。
优点:
灵活性强,易于扩展和维护。
典型系统:
QNX、MINIX。
3. 混合内核操作系统(Hybrid Kernel OS)
特点:
结合宏内核和微内核的优点,部分功能在内核中实现,部分功能在用户空间实现。
典型系统:
Windows NT、macOS。
六、其他类型操作系统
(1) 大型机操作系统,能够处理海量的数据和事务,提供高度的安全性、可靠性和可伸缩性, 通常用于银行、政府、保险等行业
(2) 服务器操作系统,支持多个用户和多个任务,提供网络服务和资料共享。具有高效的内存管理、文件系统和安全机制,通常用于互联网、企业等领域
(3) 多处理操作系统,利用多个处理器并行执行多个任务,提高性能和吞吐量。具有复杂的调 度算法、同步机制和通信协议,通常用于科学计算、图形处理等领域
(4) 移动计算操作系统,支持移动通信、定位、传感等功能,提供用户友好的界面和应用。具 有低功耗、小内存占用和高可移植性,通常用于智能手机、平板电脑等设备
(5) 传感器节点操作系统,支持传感器数据采集、处理和传输,提供无线网络和自组织能力。具有极低的资源需求、高度的可配置性和实时性,通常用于物联网、环境监测等领域
(6) 智能卡操作系统,支持智能卡的存储、计算和安全功能,提供身份认证和支付服务。具有 高度的安全性、稳定性和兼容性,通常用于金融、交通等领域
七、总结
第五节 操作系统设计
一、操作系统设计过程的主要困难:
1、设计复杂程度高
程序长、接口信息多、动态性强、并行性强,不同部分之间可以同时操作
2、正确性难以保证
操作系统包含很多功能成份,各种外部设备的接口复杂,导致操作系统源代码的正确性较难以保证。操作系统的正确性依靠软件工程的规范来保证
3、研制周期长
一般的软件研制开发周期包括:
需求分析,用户提供软件的需求,并根据需求制作软件规格说明书
设计者根据软件规格说明书进行软件设计
实现者编写程序,调试、测试并整理各种开发文档,提交给用户使用,在应用的过程中不断 改进和提高软件的品质
二、操作系统的设计过程
操作系统的设计过程可分为三个部分:功能设计、算法设计和结构设计。
操作系统的三方面设计 是互相渗透的,不能截然分开
1、功能设计
功能设计指根据系统的设计目标和使用要求,确定所设计的操作系统应具备哪些功能,以及操作系统的类型。
2、算法设计
算法设计是根据计算机的性能和操作系统的功能,选择和设计满足系统功能的算法和策略,并分析和估算其效能。
3、结构设计
结构设计是按照系统的功能和特性要求,选择合适的结构,使用相应结构设计方法将系统 逐步地分解、抽象和综合,使操作系统结构清晰、简明、可靠、易读、易修改,而且使用方便, 适应性强。
三、操作系统设计的目标
一个高质量的操作系统应具有可靠性、高效性、易维护性、易移植性、安全性和简明性 等特征。
高效性:
提高资源利用率(如CPU、内存、I/O设备)。
优化系统性能,减少响应时间和延迟。
提高系统中各种资源的利用率
可靠性:
确保系统稳定运行,避免崩溃和数据丢失。
提供错误检测和恢复机制。
可靠性包括正确性和健壮性。正确性受并发、共享以及随之带来的不确定性影响,要求系统能动态地应付随时发生的各种内部和外部事件
安全性:
保护系统资源免受非法访问和攻击。
提供用户身份验证和权限管理。
操作系统的安全性是整个计算机系统安全性的基础,为保护用户的程序和数据提供了最基本 的安全机制。
可扩展性:
支持新硬件和新功能的添加。
便于系统的升级和维护。
可移植性指,把一个程序系统从一个计算机系统环境中移到另一个计算机系统环境中并能正常运行的特性。
易用性:
提供友好的用户界面(如GUI、CLI)。
简化用户操作,降低学习成本。
易维护性包括易读性、易扩充性、易剪裁性、易修改性等含义。
四、操作系统设计的层次结构
1、操作系统结构设计的重要性
早期操作系统:
结构简单,规模小,逻辑关系简单,只注重功能设计和效率,忽视结构设计随计算机结构复杂化,应用范围扩大,要求提高,需要较强的功能、可适应性和可靠性
2、操作系统结构研究的目标
(1) 系统模块化
将模块看做一组数据结构以及定义在其上的一组操作
(2) 模块标准化
①标准设计,模块规格划一,遵循相同模块构造准则和模块 (构件) 标准
②总结、提炼基本成份并定型化
(3) 通信规范化
模块之间接口清晰划一,联系方式统一
3、层次结构
硬件抽象层(HAL):
屏蔽硬件差异,提供统一的硬件接口。
便于操作系统在不同硬件平台上移植。
内核层:
功能
提供核心功能,如进程管理、内存管理、文件系统、设备驱动。
分类
分为宏内核、微内核和混合内核。
1. 单内核 - 大内核 / 宏内核
层次模型:
下层:直接管理硬件资源(CPU、内存、中断)。
中层:包含所有操作系统服务,如进程管理、内存管理、文件系统、设备驱动、网络协议栈等。
上层:向应用程序提供统一的系统调用接口。
关键特征:
所有OS服务都作为一个大程序运行在内核态(一个共享的地址空间)。
服务模块之间通过直接的函数调用进行通信,速度极快。
内核通常是一个大的、单一的二进制镜像文件。
优点:高性能(通信开销极小)。
缺点:
高耦合性:层次内部界限模糊,一个模块的bug可能导致整个内核崩溃。
难以扩展和维护:添加新功能需要重新编译和链接整个内核。
移植性差:内核与硬件耦合紧密。
典型代表:早期Unix,Linux(尽管Linux是模块化的,但其所有模块最终都在内核空间运行,本质仍是单内核)。
2. 微内核
为了克服单内核的缺点,微内核结构被提出,其设计如上图B所示,旨在实现权限最小化。
层次模型:
内核层(最底层):只包含最核心、最基本的功能:
进程/线程调度
低级内存管理(地址空间)
进程间通信
服务层(用户态):所有其他OS服务(如文件系统、设备驱动、网络协议栈)都作为独立的用户态进程(通常称为“服务器”)运行。
应用层:应用程序通过向这些“服务器”发送消息(通过IPC)来请求服务。
关键特征:
内核非常小。
服务之间通过消息传递进行通信。
强制使用进程间通信。
优点:
高可靠性:一个驱动或文件系统服务器崩溃,不会导致整个内核和系统崩溃,通常可以重启该服务。
高安全性和可维护性:服务在用户态运行,更容易被监控和隔离。
高灵活性和可扩展性:可以轻松地添加新的服务。
缺点:性能开销大。因为需要频繁地在用户态和内核态之间切换以完成消息传递。
典型代表:Mach(曾是Mac OS X和NeXTSTEP的基础),Minix 3,QNX(广泛应用于汽车、医疗等安全关键领域),L4,Google的Fuchsia(Zircon内核)。
3. 混合内核
层次模型:
内核层:像微内核一样,包含一个小的核心(调度、IPC、虚拟内存)。
但是,为了性能考虑,它将一些关键的、常用的服务(如文件系统缓存、部分设备驱动、网络协议栈的一部分)也移回内核态运行。
其他非关键服务仍保留在用户态。
关键特征:
架构是微内核的:设计理念上遵循消息传递和模块化。
实现是单内核的:出于性能考虑,让一些服务在内核中运行。
目标是取得性能和稳定性之间的最佳平衡。
优点:在保持较好性能的同时,获得了比纯单内核更好的稳定性和模块化。
缺点:比纯微内核复杂,设计上是一种折中。
典型代表:
Microsoft Windows NT系列(包括Windows XP, 7, 10, 11):其内核(NTOSKRNL)是典型的混合内核。关键子系统(如图形界面子系统)虽然有自己的进程,但与内核关系紧密。
macOS / iOS:其内核XNU是 Mach微内核 和 BSD单内核组件 的混合体。Mach负责最底层,BSD提供Unix API和部分服务。
系统调用接口:
为用户程序和应用程序提供访问内核功能的接口。
如文件操作、进程控制、网络通信等。
用户层:
包含用户应用程序、库函数和Shell。
用户通过Shell或图形界面与系统交互。
五、操作系统设计的主要模块
1. 进程管理:
负责进程的创建、调度、同步和通信。
设计高效的调度算法(如时间片轮转、优先级调度)。
2. 内存管理:
负责内存的分配、回收和保护。
设计虚拟内存机制,支持多任务并发执行。
3. 文件系统:
负责文件的存储、访问和保护。
设计高效的文件系统结构(如FAT、NTFS、EXT)。
4. 设备管理:
负责设备的分配、调度和控制。
设计设备驱动程序和缓冲管理机制。
5. 用户接口:
提供命令行界面(CLI)或图形用户界面(GUI)。
设计友好的用户交互方式。
六、操作系统设计的挑战
性能优化:
如何在资源有限的情况下提高系统性能。
如何优化调度算法、内存管理和文件系统。
安全性设计:
如何防止非法访问和攻击。
如何设计安全的用户身份验证和权限管理机制。
兼容性设计:
如何支持多种硬件平台和应用程序。
如何设计通用的系统调用接口。
可扩展性设计:
如何支持新硬件和新功能的添加。
如何设计模块化和分层结构,便于系统升级。
七、操作系统结构的体系结构
1、整体式结构
整体式结构,也称为单体结构或宏内核,是最早、最直接的操作系统设计方式。
在这种结构中,整个操作系统作为一个单一、大型的程序运行在内核态。
所有内核功能(如进程管理、内存管理、文件系统、设备驱动程序等)的代码都被编译成一个大的可执行文件,并且这些组件之间没有严格的隔离。
说明
首先确定操作系统的总体功能,将总功能分解为若干个子功能,实现每个子功能的程序称为 模块。
按照功能将每个大模块分解为若干个较小的模块,直至每个模块仅包含单一功能或紧密联系的小功能为止,通过接口将所有模块连接起来形成一个整体,称之为模块组合结构。
模块组合法的优点:
1) 结构紧密,接口简单直接,系统效率较高
2) 系统中的模块不是根据程序和数据本身的特性而是根据它们完成的功能来划分的,数据基本 上作为全程量使用
3) 不同模块的程序之间可以不加控制地互相调用和转移,信息的传递方式也可以根据需要随意 约定,因而可能造成模块间的循环调用
模块组合法的缺点:
1) 模块间转接随意,各模块互相牵连,独立性差,系统结构不清晰
2) 数据基本上作为全程量处理,系统内所有模块的任一程序均可对其进行存取和修改,从而造 成了各模块间有着更为隐蔽的关系,要更换一个模块或修改一个模块都比较困难
3) 模块组合结构常以大型表格为中心,为保证数据完整性,往往采用全局封中断办法,从而限 制了系统的并发性
2、层次式结构
层次式结构是对整体式结构的一种改进,它采用了一种分层模型。
操作系统被划分为一系列层次(或层级),每一层都构建在下一层提供的功能之上,并且只能调用其下一层提供的接口和服务。
底层直接与硬件交互,最高层则与用户应用程序交互。
层次式结构力求使模块间调用的无序性变为有序性。
把操作系统的所有功能模块,按功能流图的调用次序,分别将这些模块排列成若干层,各层之间的模块只能是单向依赖或单向调用关系, 结构清晰,且不构成循环
层次式结构的优点:
各模块之间的组织结构和依赖关系清晰明了。
增加了系统的可读性和可适应性,每一步都建立在可靠的基础上,只要下层的各模块设计是正确的,就为上层功能模块的设计提供了可靠基础, 从而增加了系统的可靠性
对操作系统增加或替换掉一层而不影响其他层次。
层次结构法设计的操作系统具有易于调试、易于修改、易于扩充、易于维护、易于保证正确性等优点
模块放在哪一层,共有多少层,依据功能流图和数据流图分层,原则如下:
(1) 为增加可适应性,方便移植,把与机器特点紧密相关的软件,如中断处理、输入输出管理等放在紧靠硬件的最低层。
为便于修改移植,把与硬件有关和与硬件无关的模块截然分开,把与 硬件有关的BIOS (管理输入输出设备) 放在最内层。当硬件环境改变时只需修改这一层
(2) 为便于一种操作方式转变到另一种操作方式,把共同使用的基本部分放在内层,把改变部分放在外层
(3) 为给进程提供环境和条件,系统调用的各功能,为进程提供服务,这些功能构成操作系统 内核,放在系统内层
3、微内核 (客户/服务器) 结构
微内核结构将操作系统的核心功能最小化。
内核(微内核)本身只实现最根本、最必要的服务,如底层进程管理、内存管理、进程间通信和中断处理。
其他所有操作系统服务(如文件系统、设备驱动、网络协议栈、API)都作为独立的用户态进程(通常称为“服务器”)运行。
客户/服务器结构的操作系统适于应用在网络环境下分布式处理的计算环境中,又称为微内核体系结构,特点如下:
(1) 运行在内核态的内核:
内核提供所有操作系统都具有的操作,如线程调度、虚拟存储、消息传递、设备驱动以及内核的原语操作集和中断处理等
(2) 运行在用户态的并以客户/服务器方式运行的进程层:
除内核部分外,操作系统所有的其 他部分被分成若干个相对独立的进程,每一个进程实现一组服务,称为服务进程。
这些服务进 程可以提供各种系统功能、文件系统服务以及网络服务等。
服务进程的任务是检查是否有客户机提出要求服务的请求,并在满足客户机进程的请求后将结果返回
优点:
分成若干小的自包含分支 (服务进程) ,分支运行在独立进程中,通过规范一致方式收 发消息。内核中建立最小机制,策略留给服务进程,灵活性强
(1) 可靠:分支独立自包含,某个服务器失败,不会引起其他服务器崩溃
(2) 灵活:便于新功能,接口规范,修改服务器代码不影响系统其他部分,可维护性好
(3) 适于分布式处理环境:不同服务运行在不同计算机上,具有分布式处理能力
缺点:
只能通过微内核通信,通信频繁时,效率低
4、外核结构(Exokernel)
外核是一种非常激进的设计思想。
它的核心目标是让应用程序直接、安全地访问硬件资源,从而获得极高的性能。
外核本身非常小,它不提供任何抽象(如文件、进程),而是负责多路复用它管理的硬件资源(CPU、内存、磁盘块)并在应用程序之间保护和隔离这些资源。
外核结构是一种操作系统结构。
在这种结构中,内核负责的主要工作仅仅为简单的申请操作以及释放和复用硬件资源,其由以往操作系统提供的抽象全部在用户空间中运行。
这种方式实现了应用级资源管理,即由应用程序而不是操作系统管理硬件资源
5、典型实例
1) Unix
Unix是一种多用户、多任务的操作系统,具有很强的可移植性和开放性。它采用分层结构, 内核负责管理硬件资源,提供系统调用接口给上层应用程序
UNIX:
采用分层结构和模块化设计。
提供强大的命令行界面和脚本支持。
2) Linux
Linux:
采用宏内核设计,支持模块化加载。
开源、高度可定制,广泛应用于服务器和嵌入式系统。
Linux是一种类似于Unix的操作系统,它采用了模块化的设计方法,内核负责硬件驱动、进程调度、内存管理等基本功能,而其他功能则通过模块化的方式实现
3) Windows
Windows:
采用混合内核设计,支持多用户、多任务。
提供丰富的图形用户界面和应用程序接口。
Windows是微软公司推出的一种操作系统,它采用了混合内核结构,内核负责硬件驱动、 进程调度、内存管理等基本功能,同时也提供了图形用户界面和丰富的应用程序接口
4) Android
Android是谷歌公司推出的一种基于Linux内核的移动操作系统,它采用虚拟机技术来运行应用程序,并提供了丰富的应用程序接口和开发工具
5) 鸿蒙操作系统
鸿蒙操作系统 (HarmonyOS) 是华为推出的一款面向万物互联的全场景分布式操作系统, 支持手机、平板、智能穿戴、智慧屏等多种终端设备运行,提供应用开发、设备开发的一站式 服务的平台。它采用微内核设计,仅包括了操作系统必要的功能模块 (任务管理、内存分配等)
6) OpenEuler操作系统。
OpenEuler是开放原子开源基金会 (OpenAtom Foundation) 孵化及运营的开源项目。 OpenEuler是一款面向数字基础设施的操作系统,支持服务器、云计算、边缘计算、嵌入式等应 用场景,支持多样性计算,致力于提供安全、稳定、易用的操作系统
7) 银河麒麟操作系统
银河麒麟是由天津麒麟信息技术有限公司开发和维护的一款国产操作系统。它支持以x86、x86_64、PowerPC、SPARC为代表的国际主流CPU和以飞腾为代表的国产CPU,并已经广泛应用于 国防、军工、政务、电力、航天、金融、电信、教育、大中型企业等行业或领域
macOS:
基于UNIX设计,结合了稳定性和易用性。
提供强大的图形界面和开发工具。
第六节 操作系统启动
一、引导方式
(1) BIOS引导。
BIOS是存储在BIOS芯片中的程序,当计算机启动时,BIOS会执行硬件自检并初始化硬件配置,后根据CMOS中用户指定的硬件启动顺序,读取相应设备的启动或引导记录,引导相应设备上的操作系统启动
(2) UEIF引导。
UEFI是一种新型的固件接口,采用模块化、高级语言 (主要是C语言) 构建的一个小型化系统,直接利用加载EFI驱动的方式,识别系统硬件并完成硬件初始化
二、操作系统的引导过程(BIOS)
BIOS
1.计算机开机,BIOS自检并检测第一个能够引导系统的设备,如硬盘或光驱
2.运行MBR扇区的启动程序,如GRUB引导程序
3.GRUB引导程序读取配置文件获取内核和镜像文件系统的设置以及路径位置
4.内核和镜像文件系统加载到内存
5.加载硬件驱动程序,初始化进程
UEFI
1.开机 → UEFI 固件初始化硬件(自检类似,但更简化)
2.UEFI 固件读取其 EFI 系统分区(ESP)
查找 \EFI\Boot\bootx64.efi 或根据 NVRAM 中的引导条目加载指定的 .efi 应用程序(如 grubx64.efi、systemd-bootx64.efi 或 Windows 的 bootmgfw.efi)
3.EFI 应用程序(引导管理器/加载器)执行
例如 GRUB2 的 EFI 版会读取 /EFI/ubuntu/grub.cfg(位于 ESP 或其它分区)
4.引导加载器加载内核与 initramfs 到内存
5.内核启动,接管系统,加载硬件驱动,启动 init 进程(或 systemd)
区别要点
没有 MBR 引导扇区 的概念(除非在 UEFI 的 CSM 兼容模式下)
引导程序是 EFI 可执行文件(.efi),存放在 FAT32 格式的 EFI 系统分区
引导配置保存在 NVRAM 或 ESP 中的文件中,而不是靠写入磁盘最开始的 512 字节
三、操作系统的启动机制
BIOS启动过程:BIOS自检、系统引导、启动内核、初始化系统
1.计算机开机,BIOS程序将存储设备的引导记录 (Boot Record) 载入内存,执行引导记录中的引导程序 (Boot)
2.引导程序将存储设备中的操作系统内核载入内存,进入内核入口点开始执行
3.内核完成系统初始化,允许用户进行交互
UEFI启动过程:UEFI 固件直接从 GPT 磁盘上的一个特殊 FAT32 分区(ESP)中,找到并运行一个 .efi 格式的引导程序文件,再由该文件去加载操作系统内核,从而启动整个系统。
1. 预启动阶段 - UEFI 固件初始化
计算机开机,UEFI 固件首先执行。
进行快速的硬件自检(POST)和硬件初始化。
关键区别:UEFI 固件可以直接读取 GPT 分区表和 FAT32 文件系统(因为它内置了文件系统驱动)。
2. 引导加载程序执行 - 从文件启动
UEFI 固件会查找 EFI 系统分区(ESP)。这是一个通常格式化为 FAT32 的分区,其中存放着各种 .efi 格式的引导程序。
固件根据其内部 NVRAM 中存储的引导条目(Boot Entry),找到对应的 .efi 应用程序(例如 \EFI\Microsoft\Boot\bootmgfw.efi 用于 Windows,或 \EFI\ubuntu\grubx64.efi 用于 Ubuntu)。
如果NVRAM中没有有效条目,则执行默认路径 \EFI\Boot\bootx64.efi。
关键区别:UEFI 直接加载并执行 .efi 文件(即引导程序),完全跳过了 MBR 扇区代码 这一步。
3. 操作系统内核加载
被 UEFI 加载的 .efi 引导程序(如 GRUB2, systemd-boot)开始执行。
引导程序读取其配置文件(这些配置文件可以位于 ESP 或其他分区)。
根据配置,引导程序将 操作系统内核(如 vmlinuz)和 初始内存磁盘文件(initramfs) 加载到内存中。
引导程序将控制权移交给内核,并跳转到内核的入口点。
4. 内核初始化与系统启动
内核解压并接管系统控制权。
内核挂载 initramfs 作为一个临时的根文件系统,并执行其中的 /init 脚本。这个脚本负责加载启动真实系统所必需的内核模块(例如磁盘控制器、文件系统驱动)。
内核挂载真正的根文件系统。
内核从根文件系统中启动第一个用户空间进程(通常是 systemd 或 init)。
systemd/init 开始初始化系统:启动各种后台服务、设置网络、最后显示登录界面,允许用户交互。
UEFI 启动 vs. 传统 BIOS 启动 核心区别
四、典型程序执行流程
一个程序的典型执行流程:
(1) 用户通过操作系统启动程序
(2) 操作系统将程序从磁盘加载到内存中
(3) 操作系统为程序分配资源,如CPU时间、内存空间和输入/输出设备
(4) 程序开始执行,由CPU按顺序执行指令
(5) 程序可能会与操作系统交互,请求服务,如读写文件或访问网络
(6) 程序执行完毕后,操作系统回收其占用的资源
习题
第一节操作系统的概念
单选
1、操作系统是对( )进行管理的软件。
A.硬件
B.软件
C.计算机资源
D.应用程序
答
C
解析
操作系统是管理计算机各种资源的软件,包括硬件、软件以及其他计算资源。具体解释如下:
A.操作系统确实负责管理计算机的硬件资源,如CPU、内存、硬盘和外设等。但是,仅仅管理硬件并不全面。
B.操作系统作为一种软件,管理和协调其他应用软件的运行。但同样,这只是操作系统管理的一部分内容
C.这是最全面的选项。计算机资源包括硬件、软件、存储、网络等多方面内容。操作系统负责整体协调和管理这些资源,确保各部分高效协同工作。
D.操作系统管理应用程序的运行环境和资源分配,但主要职责不仅限于此。团因因此,选项
2、计算机操作系统的功能是()。
A.把源代码转换成目标代码
B.提供硬件与软件之间的转换
C.提供各种中断处理程序
D.管理计算机资源并提供用户接口
答
D
3、操作系统的特征是( )共享性、随机性
A.并发性
B.多道
C.中断
D.实时
答
A
4、在计算机系统中同时存在若干个运行着的程序,从宏观上看,这些程序在同时向前推进。这体现了操作系统的哪一特征()
A.共享性
B.随机性
C.并发性
D.精确性
答
C
5、下列什么不是OS关心的主要问题
A.管理计算机裸机
B.设计用户程序与计算机硬件系统的界面
C.管理计算机系统资源
D.高级程序设计语言的编译器
答
D
6、以下选项中,不属于操作系统的任务的是()
A.控制进程运行时候的各种状态转换
B.组织和管理计算机系统中的硬件资源
C.组织和管理计算机系统中的软件资源
D.向用户提供各种服务功能
答
A
**此题有误:进程管理:包括创建、撤销、阻塞、唤醒进程,以及进程状态转换(就绪、运行、阻塞等)。
7、哪项资源不是计算机系统中共享性主要针对的资源。
A.中央处理器
B.内存储器
C.外存储器
D.通信设备
答
D
8、在下面对OS功能的概括中,正确的是
A.进程管理、存储管理、虚存管理、文件管理和设备管理
B.进程管理、存储管理、文件管理、用户接口和设备管理
C.进程管理、处理机管理、存储管理、文件管理和设备管理
D.进程管理、存储管理、文件管理、目录管理和设备管理
答
B
9、存储管理的任务是管理计算机()
A.文件资源
B.目录资源
C.设备资源
D.内存的资源
答
D
填空
1、进程管理的主要内容:进程控制、运进程同步、进程间通信、______
进程调度
2、存储管理的任务是管理计算机的_____资源。
内存
3、共享性是指操作系统程序与多个用户程序_____系统中的各种资源,这种共享性是在_____控制下实现的。
共用;操作系统
4、____是一组控制和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的程序的集合
操作系统
5、计算机系统的资源包括两大类:_____和____
硬件资源和软件资源
简答
1、简述操作系统的特性。
1、并发:
在计算机系统中同时存在多个程序,宏观上:这些程序是同时在执行的,微观上:任何时刻只有一个程序在执行,即微观上这些程序在CPU上轮流执行。
2、共享:
操作系统与多个用户的程序共同使用计算机系统中的资源。
3、虚拟性:
虚拟性是一种管理技术,该技术把物理上的一个实体变成逻辑上的多个对应物,或把物理上的多个实体变成逻辑上的一个对应物
4、异步性:
操作系统必须随时对以不可预测的次序发生的事件进行响应。
2、简述操作系统的主要功能。
1、处理机管理功能:进程控制;进程同步;进程通信;调度;
2、存储器管理功能:内存分配;内存保护;地址映射;内存扩充;
3、设备管理功能:缓冲管理;设备分配;设备处理;
4、文件管理功能:文件存储空间的管理;目录管理;文件的读写管理和保护;
5、用户接口:命令接口;程序接口;图形接口;
第二节操作系统的体系结构
单选
填空
1、linux的设计模式属于_____,windows的设计模式属于_____、______、______。
单核设计模式;微核设计模式;面向对象的设计模式;C/S模式
2、UNIX操作系统的体系结构中,其最里层的______是整个系统的基础。
硬件
3、负责解释操作系统命令的程序叫_____。Linux的这个程序叫_____。
命令解释程序;Shell
4、Windows操作系统的体系结构采用了分层的模块结构,主要层次有硬件抽象层HAL、内核、______和_______。
执行体、子系统集合(次序可以交换)
5、Linux操作系统的体系结构包括四个主要部分,即Linux内核、Linux Shell、_____和____。
文件系统(或Linux文件系统)(1分);用户应用程序(或Linux应用程序)(1分)(次序可以交换)
6、Android操作系统的体系结构分为四层,从高层到低层分别是应用程序层、____层、系统运行库层和____层。
应用框架(1分);Linux内核(1分)
简答
第三节操作系统的发展
单选
1、所谓( )是指将一个以上的作业放到主存,这些作业共享计算机资源,且同时处于运行开始与运行结束之间。
A.多道
B.批处理
C.分时
D.实时
答
A
填空
1、串行执行作业的方式,被称为______批处理。
单道
2、______是一款主要面向移动设备、基于Linux内核的开源移动操作系统。
Android操作系统
3、操作员将作业“成批”地输入到计算机中,由监督程序识别一个作业,进行处理后再取下一个作业。这种自动定序的处理方式称为“_____”方式。
批处理(Batch Processing)
4、_____是指多个用户通过终端设备与计算机交互作用来运行自己的作业,并且共享一个计算机系统而互不干扰,就好像自己有一台计算机。
分时系统
5、当代操作系统两大发展方向分别为____和____
宏观应用、微观应用
第四节操作系统分类
单选
1、以下下()不是分时系统的特征。
A.交互性
B.同时性
C.及时性
D.独占性
答
B
解析
分时操作系统具有多路性、交互性、独占性和及时性的特点,
2、哪项不是个人操作系统的特点。
A.计算机在某一时间内为单个用户服务;
B.采用图形界面人机交互的工作方式,界面友好;
C.操作复杂,需要掌握专门的编程语言才能操作
D.使用方便,用户无须具备专门知识,也能熟练地操纵系统。
答
C
3、以下关于个人计算机操作系统的特点的叙述中,不正确的是()
A.使用方便,用户无须具备专门知识,也能熟练地操纵系统
B.采用图形界面人机交互的工作方式,界面友好
C.智能化能源管理
D.计算机在某一时间内为单个用户服务
答
C
4、哪种操作系统是基于计算机网络的、在各种计算机操作系统之上按网络体系结构协议标准设计开发的软件,它包括网络管理、通信、安全、资源共享和各种网络应用。
A.网络操作系统
B.个人操作系统
C.分时操作系统
D.实时操作系统
答
A
解析
A.专门为网络环境设计,支持多用户、资源共享、网络通信和安全管理,满足题目中提到的各项功能要求,故为正确答案。
B.主要针对单一用户设计,强调用户界面和个人计算体验,不涉及复杂的网络管理和多用户资源共享,排除。
C.其核心在于通过时间分割技术,让多个用户或任务共享计算机资源,关注的是任务调度和响应时间,不专注于网络功能,排除。
D.强调任务的即时响应和确定性,常用于需要严格时间控制的应用场景,如工业控制、航空航天等,不主要针对网络管理和资源共享,排除。
5、将大量的计算机通过网络连结在一起,可以获得极高的运算能力及广泛的数据共享。这样一种系统称作为()
A.嵌入式操作系统
B.个人计算机操作系统
C.网络操作系统
D.分布式系统
答
D
解析
A. 嵌入式操作系统 → 用于特定设备的专用系统,不满足“大量计算机联网获得高运算能力”的描述。
B. 个人计算机操作系统 → 针对单机,显然不符合。
C. 网络操作系统 → 主要提供网络通信和资源共享(如文件、打印机共享),但运算任务一般仍由本地完成,不强调将多台计算机联合成一个整体提供高计算能力。
D. 分布式系统 → 多台计算机通过网络连接,协作完成计算任务,实现高性能计算和广泛数据共享,符合描述。
6、按照用户界面的使用环境和功能特征的不同,把操作系统分为三种基本类型,即批处理操作系统、分时操作系统和()
A.实时操作系统
B.分布式操作系统
C.网络操作系统
D.嵌入式操作系统
答
A
7、分时操作系统的特点包括独占性、交互性、及时性和()
A.共享性
B.虚拟性
C.并行性
D.多路性
答
D
8、实时操作系统的主要目标是在严格时间范围内,对外部请求做出反应。因此,系统应该具有高度的
A.虚拟性
B.可靠性
C.并发性
D.交互性
答
B
9、实时系统为了能够实现硬实时或软实时的要求,除了具有多道程序系统的基本能力外,还需要具有的能力不包括舌(()
A.实时时钟管理
B.过载防护
C.高可靠性
D.高精确性
答
D
填空
1、允许多个用户交互方式使用计算机的OS称为_____;允许多个用户将作业计算机集中处理的计算机称为______;计算机系统及时处理过程控制数据并作出响应的OS称为______。
分时OS;批处理OS;实时OS
2、按照用户界面的使用环境和功能特征的不同,把操作系统分为三种:批处理系统;分时系统;_____。
实时系统
3、分时系统以______为单位,轮流为每个终端用户服务。
时间片
4、_____主要目标是:在严格时间范围内,对外部请求做出反应,系统具有高度可靠性。
实时操作系统
5、_____系统能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。
实时操作
第五节操作系统设计
单选
1、模块组合法是操作系统的哪种结构里面的方法。
A.整体式结构
B.微内核(客户/服务器)结构;
C.层次性结构
D.分层结构
答
A
解析
整体式结构中模块组合法,系统中的模块不是根据程序和数据本身的特性而是根据它们完成的功能来划分的,数据基本上作为全程量使用
2、操作系统的哪种结构将操作系统分成用于实现操作系统最基本功能的内核和提供各种服务的服务进程两个部分。
A.整体式结构
B.微内核(客户/服务器)结构;
C.模块式结构
D.层次式结构
答
B
3、将操作系统分成用于实现操作系统最基本功能的内核和提供各种服务的服务进程两个部分,这样的操作系统结构是()
A.层次式结构
B.整体式结构
C.微内核结构
D.模块化结构
答
C
4、它是操作系统结构研究的目标之一,在该目标下,模块之间的接口清晰划一,模块的联系方式统一。基于上述的描述,操作系统结构研究的这种目标是
A.系统模块化
B.模块标准化
C.通信规范化
D.系统局部化
答
B
5、按照系统的功能和特性要求,选择合适的结构,使用相应结构设计方法将系统逐步地分解、抽象和综合,使操作系统结构清晰、简明、可靠、易读、易修改,而且使用方便,适应性强的操作系统设计过程称为()
A.功能设计
B.基础设计
C.算法设计
D.结构设计
答
D
6、将操作系统分成用于实现操作系统最基本功能的内核和提供各种服务的服务进程两个部分,这样的操作系统结构是()
A.层次式结构
B.整体式结构
C.微内核结构
D.模块化结构
答
C
解析
客户/服务器结构的操作系统适于应用在网络环境下分布式处理的计算环境中,又称为微内核体系结构。
填空
1、一个操作系统的研制周期一般是在_____年左右。
5
2、操作系统启动的引导方式有______和_____
BIOS引导和UEFI引导
3、计算机开机,______并检测第一个能够引导系统的设备,如硬盘或光驱
BIOS自检
4、操作系统的启动过程:_____、______、______、_______。
BIOS自检、系统引导、启动内核、初始化系统
简答
1、简述微内核结构及其基本原理
答
微内核OS结构:
能实现OS核心功能的小型内核,并非一个完整的OS,与OS的服务进程(如文件服务器、作业服务器等)共同构成OS。
基本原理:
只有最基本的操作系统功能才能放在内核中。
不是最基本的服务和应用程序在微内核之上构造,并在用户模式下执行。
微内核通常提供最小的进程和内存管理以及通信功能。
微内核的主要功能是提供客户程序和运行在用户空间的各种服务之间进行通信的能力。
通信以消息传递形式提供,一般采用客户/服务器模式.