操作系统的特征是它能够提供高效的计算机资源管理、应用程序执行环境以及用户交互平台。以下是操作系统的几个关键特征:并发共享虚拟异步

1. 并发(Concurrency)

“看起来同时在做”定义:指在同一时间段内,有多个程序在“同时”运行。

核心真相(极重要):在单核 CPU 上,任何时刻真正执行的只有一个程序。并发是“宏观上并行,微观上串行”——CPU 在多个程序间快速切换(时间片轮转,比如 10ms 切一次),由于切换速度极快,用户感觉所有程序都在跑。

举个生活例子:你一边吃饭一边看手机。事实上,你不可能同时做这两件事(除非你像章鱼一样),你只是在“嚼饭时看一眼,滑屏时停一下嘴”,在别人看来你同时在吃饭和玩手机。这就是并发

与并行的区别

  • 并发:单核,同一时间段,交替执行。

  • 并行:多核,同一时刻,真正同时执行(比如你左手吃饭、右手刷手机)。

作用:

并发的主要目的是提高系统资源的利用率,使得多个进程可以在有限的硬件资源上高效运行。操作系统通过精密的调度算法和资源管理,确保并发执行不会导致系统崩溃或效率低下。

2. 共享(Sharing)

“资源大家用,但不能乱”,共享特性指的是多个进程或用户可以共同访问和使用系统的资源,如内存、CPU、文件、设备等。操作系统负责管理资源的共享,确保资源在不同进程之间的合理分配和访问控制。

定义:指系统中的资源(内存、CPU、I/O 设备)可以被多个并发执行的程序共同使用

分类

  • 互斥共享方式:资源在同一时刻只能被一个程序占用。比如打印机——你打印时别人不能用,必须等。

  • 同时访问方式:资源允许“宏观上”被多个程序同时访问。比如你在写 Word,我同时在微信聊天,硬盘和内存就是在同时服务我们俩(实际上是通过并发机制分时共享)。

并发和共享的关系

并发是共享的前提,共享是并发的结果

  • 如果不存在并发(程序一个接一个顺序执行),资源就谈不上“共享”,只是“独占使用”。

  • 正因为有了并发,才需要操作系统来协调哪些资源、什么时候给谁用,怎么保证不冲突。

3. 虚拟(Virtualization)

 “把一个东西,变成多个来用”,虚拟允许操作系统通过虚拟化技术为用户提供一个抽象的硬件环境。通过虚拟化,操作系统可以使得多个虚拟机(VM)共享物理硬件,且每个虚拟机似乎都拥有自己的独立资源。

特点:

  • 虚拟内存:操作系统通过虚拟内存技术,使得程序可以使用比实际物理内存更大的地址空间。虚拟内存通过将硬盘空间作为扩展内存的方式来实现。
  • 虚拟机:操作系统可以通过虚拟化技术运行多个虚拟机,每个虚拟机都像一个独立的计算机。虚拟化使得硬件资源得到最大化利用。
  • 进程隔离:虚拟化技术能够隔离不同进程的内存空间,防止进程间的干扰和数据泄露。

操作系统用“虚拟”技术,把一台电脑变成了多台逻辑电脑(虚拟出多个 CPU、多块内存空间)。

4. 异步(Asynchronous)

 “你干你的,我先不等你”,在多道程序环境下,程序的执行不是“一气呵成”的,而是走走停停。因为 CPU 和 I/O 设备速度差异极大,当一个程序在等待打印或读取硬盘时,CPU 不会傻等,而是转身去执行其他程序,等 I/O 完成再回来继续。

核心表现:每个程序的执行顺序不确定、执行时间不确定、完成的时刻也不确定。比如你同时打开 5 个网页,哪个先加载完,取决于服务器响应速度和网络状况,完全随机的

生活类比:你在食堂排队打饭(程序),厨师(CPU)不是只服务一个人直到他吃完饭才做下一份,而是:给你打完菜,你在刷卡付钱(慢 I/O),厨师直接转身给下一个人打菜。等你付完钱,厨师再回头把饭递给你。整个过程是“穿插着、断断续续”完成的

异步与并发的关联

  • 并发是“多个程序同时推进”的现象;

  • 异步是“每个程序推进速度不确定、不可预测”的现象。
    正是因为有并发(CPU 在切来切去),才有了异步(程序互相影响、等待时间不确定)。

特点:

  • 异步I/O:操作系统可以发起一个I/O请求后,不需要等待该请求完成,直接返回给调用者。当I/O操作完成时,操作系统会通知程序或进程进行处理。
  • 事件驱动:操作系统通过事件驱动机制管理异步任务的执行。程序通过事件或信号来驱动异步任务的处理,而不需要同步等待任务完成。
  • 中断机制:操作系统使用硬件中断来处理外部设备的异步事件。当外部设备完成任务时,硬件会向CPU发送中断信号,通知操作系统处理。

作用:

异步操作能够大大提高系统效率,特别是在进行I/O密集型操作时。通过异步机制,操作系统允许任务和进程在等待I/O操作完成时执行其他任务,而不是被阻塞,从而提高计算机的响应速度和资源利用率。

总结

操作系统的这些特征——并发、共享、虚拟和异步——是它能够高效管理计算机资源、提高系统吞吐量和用户体验的核心能力。

  • 并发:通过时间共享和进程调度,操作系统能够让多个进程并行执行,从而提高系统资源利用率。
  • 共享:操作系统提供资源共享机制,让多个用户和进程能够高效共享硬件资源。
  • 虚拟:通过虚拟化技术,操作系统为用户提供了一个虚拟化的硬件环境,使得计算机资源得到更加灵活和高效的利用。
  • 异步:操作系统通过异步I/O和事件驱动机制,确保任务在等待I/O完成时不阻塞其他操作,从而提高系统的响应速度和资源利用率。

这些特征共同作用,使得现代操作系统能够在复杂的计算环境中高效、稳定、可靠地运行。

Logo

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

更多推荐