# 引论

# 操作系统是什么?

操作系统是计算机系统中的核心软件之一,它是位于硬件和应用程序之间的一层软件,负责管理和控制计算机的硬件资源,并为应用程序提供一个运行环境。操作系统充当计算机系统的管理者,协调各种硬件和软件资源的分配和调度,以使计算机能够高效、可靠地运行。

# 为什么要操作系统?

操作系统的存在是为了解决计算机资源管理和用户程序执行的复杂性。它提供了一种抽象层,使应用程序开发人员不必直接与底层硬件进行交互,从而简化了应用程序的开发和维护。此外,操作系统还负责处理多任务管理、内存管理、文件系统管理、用户接口等,为用户和应用程序提供了一个友好且高效的计算环境。

# 操作系统的特征是什么?

操作系统具有以下几个主要特征:

  1. 并发(Concurrency): 能够同时处理多个任务或程序,使多个程序可以在同一台计算机上交替执行。

    (并发:同一时间段 并行:同一时刻)

  2. 共享(Sharing): 多个用户和应用程序可以同时访问计算机的资源,如内存、处理器、文件等。

    操作系统的最基本特征:并发与共享

  3. 虚拟(Virtualization): 操作系统可以为每个应用程序提供一种虚拟的环境,使其感觉自己独占了计算机资源。

  4. 异步(asynchronous): 异步特性指的是操作系统允许某些任务在进行的过程中,不必等待前一个任务的完成,而可以继续执行其他任务。(存在不确定性)

    ✔️操作系统的基本特征:并发、共享、虚拟、异步

  5. 抽象(Abstraction): 操作系统通过抽象化硬件和软件资源,为应用程序提供一个更简单、一致的编程接口。

  6. 持久性(Persistence): 数据和程序可以被存储在持久性存储设备中,并在计算机关闭后保留下来。

  7. 处理器管理(Processor Management): 分配和管理处理器的时间片,以便多个任务可以轮流执行。

  8. 内存管理(Memory Management): 管理计算机的内存资源,包括分配、释放、虚拟内存等。

  9. 文件系统管理(File System Management): 管理文件的存储、组织、检索和保护。

  10. 设备管理(Device Management): 管理输入输出设备,使应用程序能够与设备进行交互。

# 实时操作系统和分时操作系统?

实时操作系统(Real-time Operating System,RTOS)和分时操作系统(Time-sharing Operating System)是两种不同类型的操作系统,用于满足不同应用场景下的需求。

# 实时操作系统(RTOS):

实时操作系统是专门设计用于处理实时任务的操作系统。实时任务是具有严格时间要求的任务,可以分为硬实时和软实时任务。硬实时任务要求任务必须在严格的时间限制内完成,否则会导致系统错误。软实时任务也有时间要求,但对于这类任务,如果错过了截止日期,系统不会崩溃,但会影响任务的结果的实用性。

RTOS 致力于确保任务能够按照特定的时间要求得到执行。它通常采用优先级调度策略,确保高优先级的实时任务能够在预定的时间内得到执行。

# 分时操作系统(Time-sharing Operating System):

分时操作系统旨在支持多用户的共享计算机系统。它允许多个用户通过终端或其他用户界面同时访问系统,每个用户似乎都在独占地使用计算机资源。分时操作系统通过分配时间片(时间片轮转)来在多个任务之间切换,每个任务在时间片结束前都能得到一段时间的执行。

分时操作系统的目标是实现多任务的并发执行,使用户能够在几乎同时使用计算机资源,这样可以提高资源利用率和用户体验。

分时操作系统特征:多路性、独立性、及时性、交互性。详细解释:P10

# 单道批处理系统和多道批处理系统?

单道批处理系统(Single Batch Processing System)和多道批处理系统(Multi-Batch Processing System)是两种不同的操作系统工作方式,用于管理和执行计算机中的多个任务。

# 单道批处理系统:

单道批处理系统是早期计算机操作系统的一种。在这种系统中,计算机只能处理一道程序,也就是一个任务,每次只有一个任务在运行。当一个任务执行完成后,才能加载并执行下一个任务。这种系统对于用户和程序员来说,操作不够灵活,因为他们必须等待当前任务执行完成才能继续工作。

💔单道批处理系统的缺点:系统中的的资源得不到充分利用!

✍️注意注意!!!单道批处理系统无并发,不能称之为 OS!!!

# 多道批处理系统:

多道批处理系统是在单道批处理系统的基础上发展而来的。这种系统允许计算机在内存中同时加载和管理多个任务,而不需要等待前一个任务的完成。多道批处理系统将内存分割成多个区域,每个区域可以加载一个任务的代码和数据。操作系统会在任务之间进行切换,以实现多个任务的并发执行。这种方式提高了计算机的资源利用率和效率。

# OS 的类型?

  1. 多道批处理系统(Multi-programming Batch System): 多道批处理系统是一种操作系统,允许多个任务(作业)在内存中同时存在,但每个任务的执行是按照一定的调度策略轮流进行的。它旨在提高计算机的资源利用率,通过在任务之间切换以避免 CPU 空闲。每个任务通常独立运行,不需要用户干预。这种系统适用于大量任务需要批量处理,例如批量数据处理任务。
  2. 分时系统(Time-sharing System): 分时系统允许多个用户通过终端或用户界面同时访问计算机,每个用户似乎都在独占地使用计算机资源。系统通过快速的任务切换(时间片轮转)实现用户之间的并发执行,每个用户能够迅速交互并使用计算机。分时系统适用于多用户、交互式的环境,如图形用户界面和终端。
  3. 实时系统(Real-time System): 实时系统是专门设计用于处理实时任务的操作系统。实时任务具有严格的时间要求,可以分为硬实时和软实时。硬实时任务要求任务必须在严格的时间限制内完成,否则会导致系统错误。软实时任务也有时间要求,但错过截止日期不会导致系统错误。实时系统旨在确保任务能够按照特定的时间要求得到执行,适用于需要在严格时间约束下运行的应用,如飞行控制系统和医疗设备。

# 操作系统能干什么?

操作系统的主要任务包括:

  • 管理计算机的硬件资源,如处理器、内存、硬盘、网络接口等。
  • 提供多任务管理,使多个应用程序可以同时运行。
  • 提供虚拟化,将物理资源抽象为多个虚拟资源,提供更好的资源利用率。
  • 管理文件系统,让用户能够创建、存储、组织和检索文件。
  • 处理输入输出,使用户和应用程序能够与外部设备进行交互。
  • 提供用户界面,让用户能够与计算机进行交互,如命令行界面或图形用户界面。

# 操作系统有哪些?

常见的操作系统包括:

  • Windows:微软开发的操作系统系列,如 Windows 10、Windows 11 等。
  • macOS:苹果公司开发的操作系统,用于 Mac 电脑。
  • Linux:一种开源的 Unix-like 操作系统,有许多不同的发行版,如 Ubuntu、Fedora、Debian 等。
  • Unix:一种经典的多用户多任务操作系统,影响了许多其他操作系统的设计。
  • Android:基于 Linux 内核的移动设备操作系统,由谷歌开发。
  • iOS:苹果公司用于 iPhone 和 iPad 等移动设备的操作系统。
  • OpenHarmony:分布式操作系统,由华为公司开发。

# 操作系统的新发展?

操作系统领域一直在不断发展演进。一些新的趋势和发展包括:

  • 云操作系统: 针对云计算环境的操作系统,如 Google 的 Chrome OS 和微软的 Azure Sphere。
  • 嵌入式操作系统: 用于嵌入式系统,如物联网设备和嵌入式控制器的操作系统,如 FreeRTOS 和 Zephyr。
  • 容器化和微服务: 使用容器技术(如 Docker)和微服务架构的操作系统,以支持更高效的应用程序部署和管理。
  • 实时操作系统(RTOS): 针对实时应用程序的操作系统,要求任务能够在严格的时间限制内得到执行。
  • 量子操作系统: 随着量子计算的发展,涉及管理量子资源和运行量子算法的操作系统正在探索中。

这些都只是操作系统领域的一部分发展趋势,操作系统将继续适应新的硬件和应用场景,以满足不断变化的需求。

# 简单总结!

操作系统的定义可归纳为:操作系统是控制和管理计算机系统内各种硬件和软件资源、合理组织计算机工作流程的系统软件 (或程序集合),是用户与计算机之间的接口。

操作系统是什么?是核心系统软件
操作系统管什么?控制和管理系统内各资源
操作系统有何用?扩充硬件功能,方便用户使用

# 练习

  1. 一个作业第一次执行时用了 5 分钟,而第二次执行时用了 6 分钟,这说明了操作系统的 特点。

    • 并发
    • 共享
    • 虚拟
    • 异步
    解释
    • 异步存在时间不确定性
  2. 操作系统的最基本的两个特征是资源共享和

    • 多道程序设计
    • 程序的并发执行
    • 中断
    • 程序顺序执行
  3. 单道批处理系统的主要缺点是

    • CPU 利用率不高
    • 失去了交互性
    • 不具备并行性
    • 以上都不是
解释
  • 实际上 ABC 都是他的缺点,但是 CPU / 资源利用率不高是他的主要缺点
  1. 采用多道程序设计的系统中,系统中的程序道数越多,系统的效率越高。

  2. 通常将 CPU 模式分为内核态 (核心态) 和用户态,这样做的目的是为了提高运行速度。

  3. 操作系统内核能使用特权指令。

解析
  1. 程序道数多多会导致每个程序分得的内存不够,很多程序所需的数据和代码要临时从磁盘调入内存系统会频繁的进行 I/O,使得系统效率下降!
  2. 是为了提高安全性 ==(双重工作模式 P20)==
  3. 确实对

# 进程

# 进程的几个基本状态

  1. 就绪状态(Ready): 进程已获得除处理器外的所需资源,等待分配处理器资源;只要分配了处理器进程就可执行。就绪进程可以按多个优先级来划分队列。例如,当一个进程由于时间片用完而进入就绪状态时,排入低优先级队列;当进程由 I/O 操作完成而进入就绪状态时,排入高优先级队列.
  2. 运行状态 (Running): 进程占用处理器资源;处于此状态的进程的数目小于等于处理器的数目。在没有其他进程可以执行时 (如所有进程都在阻塞状态), 通常会自动执行系统的空闲进程.
  3. 阻塞状态 (Blocked): 由于进程等待某种条件(如 I/O 操作或进程同步), 在条件满足之前无法继续执行。该事件发生前即使把处理机分配给该进程,也无法运行.

osStateTransition.jpg

# 名词解释

挂起: 从内存挂至外存

时间片: 程序执行的一段时间

阻塞: 发生 I/O 或者其他事件进入阻塞状态

# 扩展状态(考研)

osStateTransitionExtend.jpg

# 练习

  1. 时,进程从执行状态转变为就绪状态。

    • 进程被调度程序选中
    • 时间片到
    • 等待某一事件
    • 等待的事件发生
  2. 在进程状态转换时,下列 转换是不可能发生的。

    • 就绪态 一 > 运行态
    • 运行态 一 > 就绪态
    • 运行态 一 > 阻塞态
    • 阻塞态 一 > 运行态
  3. 进程和程序的本质区别是

    • 前者是动态的,后者是静态的
    • 前者存储在内存,后者存储在外存
    • 前者在一个文件中,后者在多个文件中
    • 前者分时使用 CPU,后者独占 CPU
  4. 程序运行时独占系统资源,只有程序本身能改变系统资源状态,这是指

    • 程序顺序执行的再现性
    • 并发程序失去再现性
    • 并发程序失夫封闭性
    • 程序顺序执行时的封闭性
  5. 不同的进程必然对应不同的程序。

  6. 进程状态的转换是由操作系统完成的,对用户是透明的。

# 进程控制块(Process Control Block,PCB)

每个正在运行或等待运行的进程都有一个对应的 PCB,它包含了进程的各种属性、状态以及与其相关的控制信息。PCB 是操作系统内部用于实现进程管理的重要数据结构之一。

  1. 进程状态(Process State):表示进程的当前状态,如运行、就绪、阻塞等。操作系统根据进程状态来进行调度和管理。
  2. 程序计数器(Program Counter):指向进程当前执行的指令的地址,用于恢复进程的执行状态。
  3. 寄存器(Registers):保存进程的寄存器值,包括通用寄存器、程序状态寄存器等。
  4. 进程优先级(Process Priority):用于调度器决定哪个进程将获得 CPU 执行时间。
  5. 进程标识符(Process ID):唯一标识一个进程的数字或字符串。
  6. 进程所拥有的资源信息:如打开的文件列表、分配的内存空间等。
  7. 进程的父子关系:记录进程之间的层次结构,用于实现进程间的通信和协作。
  8. 进程的各种统计信息:如运行时间、等待时间等,用于性能分析和调优。

PCB 的存在使得操作系统可以高效地进行进程的切换、调度、挂起、恢复等操作。当操作系统需要切换到另一个进程时,它可以保存当前进程的状态信息到其对应的 PCB,然后加载新进程的状态信息,从而实现进程切换。这种切换是操作系统多任务处理的基础,使得多个进程可以在单个 CPU 上共享时间,并且实现了对系统资源的合理分配和利用。

# PCB 组织方式

PCB1.jpg

PCB2.jpg

POB3.jpg

# 练习

  1. 在 PCB 中可以直接或间接找到有关该进程的所有信息。

  2. 进程由 PCB 和其执行的程序、数据所组成

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

KarryLiu 微信支付

微信支付

KarryLiu 支付宝

支付宝