操作系统基本概念

2025年1月7日 | 阅读13分钟

什么是操作系统(OS)?

操作系统(OS)是一种连接计算机硬件和软件应用程序的软件程序。它管理和协调计算机的硬件资源,并提供应用程序可以高效运行的服务和环境。它是计算机系统的基石,让用户能够以通俗易懂的方式与他们的设备和程序进行交互。

操作系统的关键功能

  • 资源管理:操作系统最主要的功能是管理硬件资源,如 CPU(中央处理器)、内存、磁盘存储和其他外围设备。它确保这些资源能够被适当地分配给计算机的众多进程和应用程序。
  • 进程管理:操作系统(OS)允许许多进程(程序或程序的一部分)在计算机上并发运行。它负责调度作业,在它们之间进行切换,并确保每个进程都能公平地获得 CPU 时间。
  • 内存管理:操作系统负责维护计算机内存,特别是 RAM(随机存取存储器)。它们根据需要为程序分配内存,并在不再需要时确保内存被释放。
  • 文件管理:操作系统拥有一个文件系统,负责在 SSD 和硬盘等存储设备上对文件进行分类和管理。文件系统允许用户和程序创建、修改、读取、写入、删除文件,并将文件组织到文件夹和目录中。
  • 设备管理:操作系统通常与网络适配器、键盘、鼠标和打印机等硬件组件进行通信。操作系统还附带解释器和设备驱动程序,以促进操作系统与硬件之间的通信。
  • 安全性:操作系统提供各种安全功能,以保护您的计算机和数据免受未经授权的访问和恶意软件的侵害。例如,防火墙、加密、用户身份验证和访问控制。

操作系统基本概念

内核

操作系统中一个基本且关键的部分是内核。它是一个在后台运行的特权软件组件。这意味着它对机器的硬件资源拥有完全的控制权。内核的主要职责是控制和保护这些硬件资源,同时为程序执行提供一个安全有效的环境。

内核的职责

  • 内存管理:内核负责管理机器上的 RAM。内核为活动进程分配内存,并确保它们具有独立的访问权限。当进程不再需要内存时,内核会回收内存区域。
  • 进程管理:内核促进进程的执行。它将进程调度到 CPU 上运行,并频繁地在它们之间切换,使它们看起来像是同时运行的。进程结构、上下文切换数据、进程间通信和同步等都由内核处理。
  • 设备管理:硬件设备的管理是另一个重要的内核组件。内核包含硬件设备驱动程序,这些驱动程序将硬件设备连接到操作系统的其他部分。驱动程序使操作系统和应用程序能够有效地与硬件设备进行交互。
  • 处理中断:中断是由硬件设备发送的信号,请求 CPU 立即处理它们。当中断发生时,内核会停止当前正在执行的进程,响应中断请求,然后恢复进程。
  • 系统调用:内核提供系统调用和接口,使用户级应用程序能够访问内核提供的服务。应用程序可以通过系统调用与文件操作、网络连接和内存管理等内核级任务进行通信。
  • 安全与保护:内核包含安全和保护组件,可防止未经授权访问关键资源和程序互操作。此外,它还保护敏感系统资源免受未经授权的访问,并维护用户权限。

进程管理

在操作系统中协调和执行一个或多个进程的现象称为进程管理。进程是由代码、数据和执行环境组成的、独立的执行程序。由于每个进程都在独立的虚拟环境中运行,与其他进程隔离,因此消除了内存和资源的共享。

  • 进程启动:每次运行程序时都会启动一个新的进程。然后,操作系统会为新进程分配必要的资源,包括内存和文件描述符,以确保其顺利执行。此时,该过程已准备好进行 CPU 执行。
  • 进程调度:进程调度是一种管理进程的技术,它使操作系统能够管理有多少进程同时在中央处理单元(CPU)上活动。进程调度的主要目标是使每个进程都能公平地获得 CPU 时间来完成,并且没有任何进程会经历饥饿(长时间等待)才能获得 CPU 访问权。因此,操作系统根据优先级和中断等特定标准,在进程之间切换 CPU 控制权。
  • 进程执行:操作系统管理 CPU 进程的功能。它为每个进程分配时间片,或称为“时间量子”,以便它可以在特定时间内运行,然后被另一个进程替换。这被称为抢占式多任务处理或分时。
  • 进程终止:当进程崩溃或遇到错误时,操作系统会释放与该进程相关的任何内存或文件描述符。

进程控制块

进程控制块(PCB),有时也称为任务控制块(TCB),是某些操作系统中用于存储和维护关键进程信息的数据结构。它充当特定进程相关数据的中央存储库,使操作系统能够更好地管理和控制进程执行。

进程控制块是与进程相关的数据和信息的集合。虽然具体细节因操作系统而异,但典型的 PCB 包含以下组件:进程 ID、进程状态、程序计数器、CPU 寄存器、优先级以及与特定进程相关的其他详细信息。

上下文切换

上下文切换是指保存一个进程的当前状态并恢复另一个进程状态以实现多任务处理的技术。当操作系统将 CPU 从一个进程切换到另一个进程时,就会发生这种情况。上下文切换在现代操作系统中经常用于模拟并发执行,同时有效地在多个进程之间分配 CPU。

内存管理

内存管理是操作系统的一项关键功能,负责协调和优化计算机的内存资源。内存管理的主要目标是有效地为进程分配内存,确保进程隔离以防止干扰,并最大限度地利用可用内存以最大化系统性能。

  • 内存分区:操作系统将物理内存划分为固定大小或可变大小的分区。单个进程被分配到这些分区中。早期操作系统使用静态分区,而现代系统通常使用动态分区来最大化内存利用率。
  • 地址空间:每个系统进程都有自己的虚拟地址空间;这是一个它可以访问的内存地址范围。操作系统将虚拟地址空间映射到物理内存,以防止程序干扰彼此的内存。
  • 地址翻译:当进程访问其虚拟地址空间时,操作系统使用分页或分段等技术将虚拟内存地址转换为物理地址。这种翻译为每个进程创造了充足的连续内存空间的假象。
  • 内存分配:操作系统在进程建立并需要内存资源来执行时为其分配内存。它必须有效地管理可用内存,以最小化碎片并维持活动进程的适当分布。
  • 内存去分配:当进程退出或不再需要特定内存区域时,操作系统会去分配内存,为其他进程腾出空间。内存去分配可防止内存泄漏并最大化内存利用率。
  • 虚拟内存管理:虚拟内存是一种管理方法,它结合了物理内存和磁盘空间,以增加可用内存量,超出 RAM 的限制。这使得系统能够比仅使用物理内存时运行更多的进程。
  • 页面替换算法:在虚拟内存系统中,使用页面替换算法(如最近最少使用(LRU)或最佳页面替换)来确定要在 RAM 和磁盘之间交换哪些内存页面,以最大程度地减少页面错误(当请求的页面不在 RAM 中时)的数量。
  • 内存保护:内存管理是保护内存位置以防止未经授权访问关键数据或代码的过程。操作系统为不同的进程分配不同的访问级别和权限,并强制执行内存保护措施。

内存管理单元 (MMU)

内存管理单元(MMU)是一个硬件组件,它与操作系统配合以完成虚拟到物理地址的转换。MMU 将进程使用的虚拟地址映射到实际的 RAM 位置。它还负责内存安全,确保进程只能访问分配给它们的内存区域。

碎片化

当可用内存被分割成小的、不连续的块时,就很难找到足够大的连续块来满足内存分配需求。内部碎片发生在分配的内存略大于所需时,留下空间;而外部碎片指的是遍布地址空间的空闲内存间隙。

文件系统

操作系统使用文件系统来组织、存储和检索存储设备(如硬盘、固态硬盘和可移动媒体)中的数据。它提供了一个组织文件和目录(文件夹)的分层框架,以及一个供用户和应用程序与存储数据交互的单一接口。

  • 文件:文件是数据分组,代表文档、程序或其他信息。文件系统提供了创建、读取、写入和删除不同大小文件的手段。
  • 目录(文件夹):目录通常被称为文件夹,它在特定位置收集特定文件。有了目录的这一功能,用户就可以轻松地以分层方式组织文件;从而避免了遍历整个内存来查找特定文件的麻烦。
  • 元数据:在 OS 文件管理的概念中,元数据可以定义为关于数据的数据。元数据通常包含文件名、大小、创建日期、用户权限以及其他访问和时间戳等信息。总的来说,这些可以称为文件的属性。
  • 文件分配方法:操作系统使用各种文件分配策略来为文件分配内存,以减少访问时间和提高随机访问性能。遵循的各种文件分配策略包括连续分配和链接分配。
  • 挂载:挂载将一个存储设备及其文件系统连接到操作系统。当存储设备被挂载时,其文件系统就变得可用,用户就可以访问其文件。

文件系统安全

文件系统使用访问控制技术来防止对文件和目录的未经授权访问。为用户和组分配特定的权限,如读、写和执行,以确定谁可以访问和编辑特定文件。

文件系统维护

文件管理的主要目标是有效地利用内存并提高性能。采用各种清理技术,例如碎片整理,以优化使用的内存并确保内存得到有效分配。

日志记录

日志记录是最近引入文件系统的一种机制,它类似于数据库管理系统中的日志记录概念。当发生任何修改时,它负责保存数据,以便在发生意外情况(如关机和服务器崩溃)时,文件能够恢复到一致状态,并且可以避免数据丢失。

操作系统中的输入/输出(I/O)管理

I/O 管理是操作系统的一个组成部分,它协调计算机与其外围设备之间的通信。外围设备包括键盘和鼠标等输入设备,屏幕和打印机等输出设备,以及硬盘和 USB 闪存驱动器等存储设备。I/O 管理可确保数据在 CPU、内存和外围设备之间高效传输。

  • 设备驱动程序充当操作系统和硬件设备之间的中介。它们是软件组件。它们提供了一个标准接口,操作系统可以通过该接口与各种硬件部分进行通信。设备驱动程序执行每个设备特有的任务,将高级 OS 命令转换为低级硬件指令。
  • I/O 调度:典型的 I/O 过程涉及等待 CPU 和外围设备之间的数据传输。操作系统的 I/O 调度程序处理这些请求,以最大限度地利用系统资源并减少 I/O 瓶颈。
  • I/O 缓冲是一种提高 I/O 性能的技术。操作系统在读写操作期间临时使用缓冲区来存储数据。结果是直接访问 I/O 设备的次数减少,这可以显著提高数据传输速度。
  • 同时外围设备在线操作(Spooling)是此过程的简称。它是一种从多个用户或进程控制 I/O 操作的方法。操作系统将数据假脱机到临时磁盘或内存存储,而不是立即将其发送到设备,从而使设备能够以受控方式处理数据。
  • 直接内存访问 (DMA):DMA 是一种硬件功能,允许某些硬件(包括磁盘控制器)直接在内存和外围设备之间传输数据,而无需 CPU 的干预。它使 CPU 从管理数据传输中解放出来,从而加快了 I/O 过程。

I/O 同步

在多进程环境中,需要 I/O 同步来防止多个进程同时访问同一 I/O 设备时发生冲突。操作系统包含同步技术(如锁和信号量),以提供对共享 I/O 资源的有序访问。

输入/输出(I/O)管理是操作系统的一个重要组成部分,它允许计算机的 CPU、内存和外围设备之间进行高效通信。操作系统通过控制设备驱动程序、调度 I/O 任务、缓冲数据和处理中断,确保 I/O 操作的可靠性和无缝性。I/O 管理对整体系统性能至关重要,因为它会影响从外部设备读取或写入数据的速度,而这会影响用户体验和运行应用程序的效率。

用户通过用户界面(UI)与操作系统及其功能进行交互。它将用户与底层系统连接起来,使用户能够以简单自然的方式执行命令、访问应用程序并完成各种任务。

操作系统在确保所有用户(包括残障人士)都能访问它们方面付出了巨大的努力。由于可访问的 UI 设计,视力、听力、运动障碍以及其他困难的人也可以轻松有效地使用系统。

中断和系统调用

在操作系统中,中断可以定义为一种高优先级进程,需要 CPU 立即关注,这些中断可能来自硬件组件或软件。因此,当中断发生时,CPU 会立即将其执行或控制切换到特定中断,而不管中断发生前它正在执行的进程。

中断类型

  • 硬件中断:键盘输入、鼠标事件、磁盘 I/O 完成和其他网络连接等硬件设备可能导致硬件中断,从而需要 CPU 立即关注该特定进程。
  • 软件中断:正在执行的程序(进程)通常会产生中断,这些中断请求资源以确保其顺利执行。通常,系统调用会触发这些软件中断。

中断处理过程

当中断发生时,中断处理方法通常包括以下步骤:

  • 中断请求:由硬件或软件生成中断请求(IRQ)信号,指示需要 CPU 注意。
  • 中断确认:CPU 识别中断请求,并将当前执行状态(包括程序计数器和寄存器值)保存在堆栈上。
  • 处理程序执行:CPU 将控制权转移到关联的中断处理程序,这是一个负责处理特定中断类型的简短代码片段。
  • 中断服务例程 (ISR):中断处理程序运行中断服务例程 (ISR),该例程执行适当的中断处理任务。对于硬件中断,它可能包括从设备读取数据或确认其完成。ISR 处理软件中断所需的请求服务。
  • 中断返回:ISR 完成其任务后,CPU 从堆栈恢复保存的执行状态,并恢复被中断的程序或进程。

系统调用

系统调用是一种方法,它使用户级进程能够向操作系统内核请求服务。当用户级进程需要访问特权资源或功能时,它无法直接执行特权指令。相反,它发出系统调用,将控制权从用户模式转移到内核模式,允许操作系统代表进程执行请求的服务。

各种系统调用

  • 文件操作:这些操作主要用于打开、读取、写入和关闭所需的文件。
  • 进程控制:用于创建、终止和管理进程。
  • 内存管理:用于分配和去分配内存。
  • 输入/输出:用于从 I/O 设备读取或写入。

系统调用和中断是操作系统的功能。系统调用控制异步硬件或软件事件,而中断为用户程序提供了对用户无权访问的操作系统功能的访问。系统调用和中断促进了用户级应用程序与操作系统内核之间的有效通信,确保了多项功能的无缝执行以及操作系统的整体稳定性和安全性。

操作系统中的多用户概念

由于多用户功能,多个用户可以同时访问和与操作系统进行交互。操作系统确保用户会话彼此隔离,每个用户都有自己的用户帐户,从而提供私密且安全的计算环境。

  • 资源共享对于企业来说具有成本效益,因为用户可以共享物理资源、软件程序和数据。
  • 安全性:通过限制对敏感信息、用户帐户的未经授权访问,用户帐户和会话隔离可以增强安全性。

多任务处理概念

操作系统执行或授予 CPU 访问权给多个活动或进程并发的能力称为多任务处理,也称为多处理或并发执行。CPU 在各种任务之间快速切换,产生并行执行的表象,并使用户能够同时使用多个程序。

  • “多任务处理”一词,也称为“多处理”或“并发执行”,指的是操作系统同时执行多个任务或进程的能力或特性。CPU 在任务之间快速切换,产生并行执行的表象,并允许用户同时运行多个程序。

多任务处理技术

  • 抢占式多任务处理:抢占式多任务处理允许操作系统调度任务并暂停正在进行的活动,以便更高优先级的任务或进程首先获得 CPU 时间。它保证了快速的系统响应和合理的 CPU 使用。
  • 协作式多任务处理:当协作式多任务处理的参与者完成一个任务或决定释放 CPU 时,他们会主动将控制权交给操作系统。操作系统使用进程。