操作系统的目标

2024年11月21日 | 阅读 14 分钟

在本文中,我们将讨论操作系统目标。但在讨论其目标之前,我们需要了解操作系统。

什么是操作系统?

操作系统(OS)是一种软件,它是计算机系统的基础。它是管理计算机硬件并为软件应用程序运行和相互交互提供服务的关键软件组件。没有操作系统,计算机将仅仅是一堆组件,无法执行有意义的功能。

操作系统最早出现在计算的早期,当时计算机是巨大的、房间大小的机器,用于科学和军事目的。

操作系统的演变方式是将操作系统的功能和目标作为首要关注点包含在其中。

操作系统时代之前

  • 20世纪40年代50年代初,计算机直接使用机器语言或汇编语言进行编程。由于每个程序都需要包含处理硬件的代码,因此编程变得耗时且易出错。
  • 随着计算机系统的复杂性不断提高,人们越来越清楚地认识到需要一种更高效、更用户友好的方法来管理资源和执行程序。

批处理系统

  • 批处理系统20世纪50年代末60年代初首次推出。用户可以将作业(程序)提交给计算机操作员,由操作员将它们分组并批量运行。
  • 操作系统负责协调作业执行、将作业加载到内存以及处理 I/O 操作。一个作业完成后,下一个批次就会开始。
  • IBM 的 Fortran Monitor System (FMS) 和 General Motors Operating System (GM-NAA I/O) 是早期的批处理系统。

分时系统

  • 分时操作系统20世纪60年代首次出现。分时允许多个用户同时访问计算机,操作系统在用户之间快速切换,让每个用户感觉自己拥有对系统的全部访问权限。
  • 分时系统开创了交互式计算的先河,用户通过终端与计算机进行交互。Multics (Multiplexed Information and Computing Service) 系统是首批分时操作系统之一。

大型机操作系统演进

  • 20世纪60年代70年代大型机操作系统不断改进并变得越来越复杂。在此期间,IBM 的 OS/360 是一个重要的进步,它是为各种大型机系统开发的。
  • 在此期间,操作系统引入了多任务、假脱机、虚拟内存和文件系统等功能。它们提高了资源利用率和编程效率。

微型计算机操作系统

  • 随着20世纪70年代80年代微型计算机的发展,操作系统也演变为在小型硬件平台上运行。
  • 最早广泛使用的微型计算机系统之一是Microsoft 的 MS-DOS(Microsoft Disk Operating System)。它可以运行应用程序并具有命令行界面。

图形用户界面

  • 1980 年代和 1990 年代图形用户界面 (GUI) 的引入改变了计算机的使用方式。Apple 的 Macintosh System Software 和 Microsoft 的 Windows 是流行的基于 GUI 的操作系统。
  • GUI 提供了一个简单的图形界面,使更广泛的用户能够更轻松地使用计算机。

现代操作系统

  • 近年来,Windows、macOS 和各种 Linux 版本等现代操作系统已发展出更令人惊叹的功能、增强的安全性和改进的资源管理。
  • 随着智能手机平板电脑的日益普及,Android 和 iOS 等移动操作系统也越来越重要。

操作系统的主要目标

操作系统(OS)是计算机的管理器。它负责监督众多进程,确保一切顺利进行,并提供用户友好的交互环境。

资源管理

操作系统的主要目标之一是资源管理。它包括有效分配和管理计算机系统中的硬件资源。中央处理单元 (CPU)、内存 (RAM)、存储设备(硬盘驱动器或 SSD)以及其他输入/输出 (I/O) 设备(如键盘、鼠标、打印机和网络接口)都是这些资源的示例。资源管理对于确保多个进程和应用程序能够并发运行而不发生冲突至关重要。

CPU 管理

  • 任务调度:操作系统负责将可用的CPU 时间分配给不同的应用程序或活动。它使用调度技术来决定哪些进程何时可以访问 CPU。使用轮转法、优先级排序等调度技术。
  • 上下文切换:上下文切换发生在 CPU 执行一个进程切换到另一个进程时。在大多数情况下,另一个进程将是中断。如果发生上下文切换,当前进程的状态将存储在进程控制块 (PCB) 中,以便在进程获得 CPU 访问权时恢复。上下文切换还可以有效地利用 CPU 和相关资源。
  • CPU 亲和性:根据操作系统,某些任务可能“亲和”到特定的 CPU 核心。这可以通过减少缓存抖动和上下文切换的需求来提高性能。

内存管理

  • 内存分配:操作系统 (OS) 负责为进程分配内存 (RAM),并确保它们的内存空间不重叠。它跟踪哪些内存位置可用,哪些不可用,并在需要时将内存段分配给进程。
  • 虚拟内存:虚拟内存通过使用磁盘存储作为扩展来扩展物理内存。进程可能需要比物理内存更多的内存。它涉及为进程分配和释放内存,并确保有效利用物理内存和虚拟内存。
  • 内存保护:OS 强制执行内存保护功能,以防止一个进程访问或损坏另一个进程使用的内存。这些方法将进程限制在其分配的内存位置。

存储设备管理

  • 文件系统:操作系统包含一个文件系统,该系统将数据组织在存储设备(如硬盘驱动器SSD)上,形成文件和目录。它使用户和应用程序能够有效地存储、检索和组织数据。
  • 磁盘调度:磁盘调度算法取决于具体的用例、工作负载和系统要求。一些算法优先考虑减少寻道时间,而另一些则优先考虑公平性并防止请求饿死。现代操作系统通常使用复杂的磁盘调度算法和方法来平衡这些相互冲突的目标并优化磁盘I/O 性能
  • 数据完整性:操作系统 (OS) 处理存储设备以维护数据完整性,包括用于存储介质的错误检查和纠正 (ECC) 等功能,以检测和恢复数据损坏。

设备管理

  • 设备驱动程序:设备驱动程序是允许操作系统与硬件设备(如显卡、声卡和网卡)交互的软件组件。设备驱动程序管理可确保操作系统正确识别和使用硬件设备。它还防止驱动程序和硬件资源冲突,确保设备可靠运行。
  • 资源预留:如果可能,有效的资源管理包括节约能源。当机器空闲时,现代计算机通常包含节能功能,以减少资源消耗。这不仅可以延长笔记本电池寿命,还有助于数据中心和大规模计算环境的能源效率。

操作系统资源管理对于优化计算机系统性能、维护进程公平性、防止资源冲突和保持系统稳定性至关重要。它允许在单个系统上运行多个程序,而不会产生中断或资源限制。

进程管理

操作系统的主要目的是在计算机系统中高效执行和协调多个操作或任务。进程是独立的执行单元,操作系统必须确保它们高效运行,公平共享资源,并维护系统稳定性。

进程创建与终止

  • 进程创建:当用户创建或运行新应用程序时,现有操作系统会创建相关的进程以相应地执行任务。操作系统还为新创建的进程提供内存和 CPU 等资源,以便其顺利执行。
  • 进程终止:操作系统控制进程终止,无论是用户请求的还是进程运行完毕后自动发生的。它确保所有进程资源得到有效释放。

进程调度

  • 进程调度多任务是操作系统的一项功能,它允许在单个 CPU 上同时执行多个程序。它使用调度算法来选择下一个要执行的进程。调度算法会考虑进程优先级、时间片和公平性等因素。

进程间通信 (IPC)

进程可以在执行过程中交换数据并相互通信。这是 OS 通过进程间通信提供的功能。进程可以通过管道、消息队列、套接字和共享内存等方式相互通信,这些都是最常用的技术(方式)。这样,我们就可以实现系统中的互斥

同步和死锁处理

  • 同步:信号量是同步机制,可用于强制互斥并管理多线程或多进程环境中的更复杂的同步场景。信号量是一个非负整数变量,具有“等待” (P)“发送” (V) 操作。锁,在多线程或多进程系统中通常称为互斥锁(mutex,mutual exclusion 的缩写),是用于实现互斥的常用同步技术。它们通过一次将关键部分的使用限制为一个线程或进程来防止竞态条件并维护数据完整性。
  • 死锁处理:死锁检测和处理是操作系统资源管理的重要组成部分。当进程持有其他进程为顺利执行所需资源时,就会发生死锁。系统稳定性和持续运行取决于死锁的早期识别和消除。有几种策略可用于检测死锁,例如银行家算法、等待-死亡和损伤-等待技术。

进程优先级和资源分配

  • 进程优先级:用户系统管理员可以优先处理操作系统操作。高优先级进程获得更多的 CPU 时间。
  • 资源分配:操作系统确保进程能够访问运行所需的资源,例如CPU 时间、内存I/O 设备。还采取了其他措施,以防止任何进程独占资源。

实时进程管理

  • 在实时系统中,操作系统确保关键进程满足特定的时间要求。这对于航空航天控制系统、医疗设备和机器人技术至关重要。

操作系统有效的进程管理可确保程序顺利运行、公平分配资源且不相互冲突。它实现了多任务、响应能力以及 CPU 的最高效利用,从而带来更高效、用户友好的计算机系统。

内存管理

内存管理是操作系统的一个关键目标,涉及计算机内存资源(特别是RAM(随机存取存储器))的最佳分配和利用。适当的内存管理可确保多个进程能够并发运行,并使系统高效运行。

内存分配

  • 进程内存分配:操作系统负责为正在执行的进程分配内存。每个进程使用系统内存的一部分来存储其指令和数据。操作系统会跟踪可用和已占用的内存位置,并在需要时将内存段分配给进程。
  • 地址空间:每个进程都有自己的地址空间,即它可以使用的内存地址集。操作系统会阻止进程访问其分配地址空间之外的内存位置。

虚拟内存

  • 虚拟内存概念:虚拟内存是一种内存管理技术,在许多现代操作系统中,它会产生比实际物理 RAM 更大的内存空间。借助虚拟内存,可以更有效地执行大型应用程序。
  • 当实际RAM变得稀缺时,操作系统会使用硬盘驱动器的一部分作为页面文件或交换空间。它会临时将不常用的数据和代码从 RAM 中保存起来,从而使系统能够执行比仅靠 RAM 支持的更多的进程。
  • 页表:页表用于通过将虚拟地址映射到物理地址来管理虚拟内存。这些表由操作系统维护,允许 CPU 在访问内存时将虚拟地址转换为物理地址。

内存保护

  • 内存隔离:OS 实施内存保护技术,以防止一个进程访问或损坏另一个进程使用的内存。这些方法将进程限制在其分配的内存位置。
  • 只读内存 (ROM):某些内存区域可能被标记为只读,以防止用户级操作修改关键系统数据和代码。

内存释放

  • 进程终止:当进程结束时,操作系统会释放先前分配给该进程的内存,使其可供其他进程使用。
  • 进程执行期间动态分配的内存(例如,在 C/C++ 中使用 malloc())必须由进程或 OS 释放(free)以避免内存泄漏。

碎片管理

  • 内部碎片:通过以固定大小的块或页面分配内存,操作系统力求最小化内部碎片。它减少了分配段内内存的浪费。
  • 外部碎片:随着进程分配和释放内存,可能会发生外部碎片,导致可用内存零散且效率低下。操作系统可能会使用内存压缩等技术来克服此问题。

交换

当 RAM 有限时,除了分页之外,操作系统还可以将整个进程移入和移出内存。整个进程(包括代码和数据)将从 RAM 复制到二次存储(如硬盘驱动器)。

内存管理是操作系统中资源管理的重要组成部分。它涉及为进程分配和释放内存,并确保有效利用物理内存和虚拟内存。

错误检测和处理

  • 操作系统错误检测处理功能会查找计算机系统中的错误、缺陷和意外情况,并采取必要的纠正措施以维护系统稳定性、数据完整性和用户安全。错误检测和处理技术对于识别和响应操作系统运行时可能出现的各种问题至关重要。

各种错误包括

  • 物理缺陷(错误)或计算机硬件组件(如内存模块、CPU、硬盘驱动器或外围设备)的问题是硬件问题的根本原因。硬件问题可能导致系统故障或数据损坏。
  • 软件故障(错误)是由软件程序或操作系统本身的故障、错误或逻辑缺陷引起的。它们可能导致程序崩溃、数据丢失和异常行为。
  • 用户错误:由用户操作引起的错误,例如意外删除文件、错误的配置或不当的系统使用。
  • 外部因素:由停电、硬件故障或网络中断等外部力量引起的错误。

错误检测

  • 许多现代计算机系统都包含内置诊断程序,可以在启动时检测硬件问题。这些诊断程序会对硬件组件执行测试并报告发现的任何异常。
  • 操作系统会保留日志文件,其中记录了各种系统事件,包括故障警告。系统管理员可以检查这些日志来查找问题。
  • 校验和和纠错码:校验和和纠错码用于检测和修复内存或存储设备中的数据损坏。
  • 软件调试工具:软件开发环境提供了调试工具,以帮助开发人员在开发阶段有效识别和纠正软件问题。

错误处理

  • 检测到错误时,操作系统会生成警报消息,警告用户和系统管理员有关问题的性质。通常,这些消息包含代码描述,有助于问题诊断。
  • 优雅降级:发生错误时,OS 可能会在降级模式下继续运行。例如,文件系统错误可能会让系统在错误解决之前以较低的性能继续运行。
  • 错误恢复:操作系统会尽一切努力从错误中恢复。例如,它可能会尝试修复内存或存储设备中的数据损坏。
  • 故障转移和冗余:高可用性系统中的故障管理可能包括自动故障转移到备用硬件或服务器。冗余可确保在主系统发生故障时,备份系统可以接管。
  • 用户帮助:操作系统可能包含用户帮助故障排除说明,以帮助用户解决常见问题。
  • 自动更新和修补:操作系统能够自动下载和安装更新和修补程序,以解决软件漏洞和安全问题。

设备管理

操作系统中的设备管理目标是正确管理和协调连接到计算机系统的外围设备和硬件。处理器、内存和存储设备,以及输入/输出 (I/O) 设备(如键盘、鼠标、打印机和网卡)都是这些设备的例子。实现最佳硬件资源利用和无缝的应用程序-设备交互取决于有效的设备管理。

设备分类

  • 输入设备:包括键盘、鼠标、触摸屏和条形码扫描仪。它们使用户能够将数据输入计算机系统。
  • 输出设备:用户可以通过显示器、打印机、扬声器和显示屏等输出设备获取信息或结果。
  • 存储设备:硬盘驱动器和固态硬盘等存储设备用于处理长期数据存储。
  • 通信设备:网卡调制解调器允许计算机连接到网络并与其他设备通信。
  • 其他外围设备,如网络摄像头、游戏控制器和扫描仪,提供专门的功能。

设备驱动程序管理

  • 设备驱动程序是允许操作系统与硬件设备交互的软件模块。每种类型的设备通常都需要自己的驱动程序。操作系统通过在需要时加载或卸载这些驱动程序来维护它们,从而提高了系统性能。
  • 许多现代操作系统提供即插即用 (PnP) 技术,允许在将设备连接到计算机时立即识别和设置设备。操作系统会识别设备,安装必需的驱动程序,并配置其使用。
  • 驱动程序更新:操作系统可能会定期更新设备驱动程序,以确保兼容性和安全性。此外,用户可以根据需要手动更新程序。

由于操作系统提供了这种关键的设备管理,硬件资源得以有效利用,这使用户能够添加新的或删除现有的硬件资源而不影响系统性能,并且设备易于用户配置和使用。它对于计算机系统的整体功能和用户体验至关重要。

安全和访问控制

保护计算机系统、其数据和资源免受未经授权的访问、恶意攻击和其他安全威胁是操作系统安全和访问控制功能的首要目标(目的)。它包含或实施多项协议和实践,以确保系统的机密性、可用性和完整性。

身份验证和授权

  • 用户必须通过诸如密码、PIN、生物识别(指纹或面部识别)或智能卡等技术来证明其身份,作为访问系统的第一道防线
  • 授权:身份验证后,操作系统会建立用户的访问权限或权限级别。根据用户扮演的角色或所属的组,为不同的用户授予不同的访问级别。

访问控制和用户帐户

  • 用户帐户:操作系统管理用户帐户,这些帐户由用户名、密码和用户配置文件组成。它会监控用户行为并实施安全措施。
  • 访问控制列表 (ACL):ACL 定义了用户或组在文件、目录或系统资源上允许执行的活动(读取、写入、执行等)。操作系统强制执行 ACL 来控制访问。
  • 基于角色的访问控制 (RBAC) 下,根据预定义的角色或工作职责来允许访问。通过为具有已定义权限的角色分配用户,可以简化访问控制管理。

防火墙和入侵检测

  • 防火墙通过允许或拒绝基于预定义协议的连接来过滤所有进出网络流量。它们可以保护系统免受未经授权的访问和恶意的网络活动。
  • 入侵检测系统 (IDS):IDS 工具会扫描系统和网络流量,查找可能表示安全违规的可疑行为或模式。

日志记录和审计

  • 系统事件日志记录:操作系统会跟踪系统事件,例如登录尝试、文件访问和系统更改。这些日志可用于安全和故障排除目的。
  • 审计跟踪保留用户活动和系统事件的历史记录。它们可以帮助检测安全漏洞合规性问题

网络安全

  • 网络访问用户身份验证:远程访问网络资源需要用户名和密码等凭据。
  • 虚拟专用网络 (VPN):VPN 通过加密数据并保证数据和系统安全,提供跨不可信网络的安全通信。

应急响应和恢复

  • 灾难恢复:操作系统 (OS) 可能有助于灾难恢复技术,这些技术提供在发生安全漏洞或系统故障时恢复系统功能的工具和指南。

结论

操作系统是确保计算机系统高效安全运行的关键组件。例如,文件系统管理、用户界面设计、错误检测和修复(异常情况)、设备管理、资源、进程和内存管理,以及通过访问控制进行的安全性。操作系统通过提供可靠且用户友好的环境以及管理硬件资源、存储数据并响应问题和威胁的能力来帮助用户实现这些目标。设计良好的操作系统在这些目标之间取得平衡,从而提高了计算机系统的整体实用性、可靠性安全性