现代操作系统 - 进程与线程

1. 内核模式与用户模式(双模式运行)

为保护系统稳定,硬件通常提供两种运行模式:

  • 内核模式:可执行所有指令,完全访问硬件资源。
  • 用户模式:指令集受限,硬件访问必须通过操作系统接口。

绝大多数计算机采用此“双模式”架构,以隔离应用程序对关键系统资源的直接操作,保障整体安全性与稳定性。

操作系统通过向应用程序员提供一套清晰的抽象资源(替代复杂的物理硬件),统一管理底层设备。抽象化正是驾驭复杂性的核心手段


2. 进程

进程是对“正在运行的程序”的抽象。即使系统仅有一个CPU,操作系统也能通过进程机制支持并发执行,实现“单CPU虚拟多CPU”的效果。

2.1 进程模型

在该模型中,所有可运行软件(有时包含操作系统自身)被组织为若干顺序执行的进程。每个进程是程序的一次执行实例,拥有独立的程序计数器、寄存器集合及变量当前值。

图2-1 展示了内存中四个并发程序的多道程序设计布局:

2.2 进程创建

进程的创建通常由以下四类事件触发:

  1. 系统初始化
  2. 运行中的进程调用 fork/exec 等系统调用
  3. 用户显式请求创建新进程
  4. 批处理作业启动

在 UNIX 和 Windows 中,子进程创建后即拥有独立地址空间:

  • UNIX:子进程初始地址空间为父进程副本,但二者完全隔离,无共享可写内存。
  • Windows:从创建起即分配全新、独立的地址空间。

2.3 进程终止

进程终止的主要原因包括:

  1. 任务正常完成(如编译器执行完毕后主动退出)
  2. 致命错误(如算术溢出、除零等)
  3. 程序缺陷导致崩溃(如非法内存访问)
  4. 被其他进程通过系统调用强制终止

2.4 进程状态及其转换

进程在其生命周期中经历多种状态,状态间存在四种主要转换路径,如下图所示:

This chapter requires login to view full content. You are viewing a preview.

Login to View Full Content

Course Curriculum

3

框架与 I/O:Spring、Netty 与 Web 容器

理解 Spring Boot 自动装配、AOP 与事务原理,掌握 Netty Reactor 模型及 Tomcat 连接处理机制,构建高内聚、易扩展的应用服务层。
4

高性能中间件:消息、缓存与存储

熟练运用 MySQL 索引/事务、Redis 缓存策略、Kafka/RocketMQ 消息可靠性,以及 ZooKeeper 分布式协调,搭建稳定、解耦的分布式数据底座。
6

云原生:容器化、可观测性与工程效能

通过 Docker/K8s 实现弹性部署,集成 Metrics/Logs/Traces 构建可观测体系,推动 DevOps 与自动化,让架构在云上持续交付与进化。