Administrator
Published on 2025-07-03 / 2 Visits
0
0

【架构设计基础】计算机与网络基础-操作系统基础知识

操作系统是计算机的大脑和调度中心,理解它是每个程序员和系统工程师进阶的必经之路。本文系统梳理了操作系统的类型、进程与线程管理、并发控制及死锁问题,帮助你掌握扎实基础。


一、操作系统概述

操作系统(Operating System,简称OS)是计算机硬件和应用程序之间的桥梁,负责管理硬件资源并为应用程序提供运行环境。

核心作用:

  • 资源管理:统筹调度CPU、内存、存储设备和外设

  • 程序执行环境:提供系统调用,保证程序运行安全

  • 抽象硬件:隐藏硬件复杂性,统一接口调用


二、操作系统的类型

类型

简要说明

典型场景

批处理操作系统

按批处理作业,顺序执行,无交互

早期大型主机

分时操作系统

多用户共享CPU,时间片轮转

Unix/Linux 多用户环境

实时操作系统(RTOS)

对响应时间严格要求,必须准时响应

工控、医疗、航天领域

网络操作系统(NOS)

支持网络资源共享管理

Windows Server、Novell

分布式操作系统

多台机器协同管理,呈现单一系统

Amoeba、Google Borg


三、单操作系统的特征与限制

  • 特征:一台机器只运行一个操作系统实例,统一管理硬件资源和用户任务。

  • 限制:扩展性和容错性有限,难以支持现代大规模分布式和云计算需求。


四、进程与程序

对比项

程序

进程

定义

存储的代码和数据

程序的动态执行实例

是否执行

不执行

正在运行,拥有资源

资源占用

占用内存、寄存器、文件句柄等

数量

单个程序可对应多个进程

进程是系统资源调度的基本单位


五、进程的状态及状态模型

1. 三态模型

操作系统经典的进程状态模型包含:

状态

含义

就绪态(Ready)

进程已准备好,等待CPU调度

运行态(Running)

进程正在CPU上执行

等待态(Blocked/Waiting)

进程等待某事件(I/O、资源等)

状态转换示意

      +------------+      调度      +------------+
      |   就绪态   | -------------> |   运行态   |
      +------------+                +------------+
           ^                              |
           | 时间片用完或中断              | 请求I/O或等待资源
           |                              v
      +------------+ <------------- +------------+
      |  等待态    |    事件完成     |   运行态   |
      +------------+                +------------+

2. 五态模型(细化进程状态)

为了更细致地管理进程,现代操作系统引入了“活动”与“静止”的状态划分,常用的五态模型包括:

状态

含义

允许(New)

进程刚被创建,尚未进入就绪状态

活动就绪(Ready Active)

进程已在内存中,处于就绪状态,等待CPU调度

活动阻塞(Blocked Active)

进程已在内存中,因等待事件(I/O等)阻塞,暂不能运行

静止就绪(Ready Suspended)

进程被换出内存,处于就绪状态,等待调入内存后可运行

静止阻塞(Blocked Suspended)

进程被换出内存,处于阻塞状态,等待事件完成并调入内存才能运行


五态模型状态转换及原因

        允许(New)
            ↓ 创建完成
   活动就绪(Ready Active) <----> 运行(Running)
           ↑                      ↓
      激活(唤醒)             时间片用完/等待事件
           ↓                      ↓
  静止就绪(Ready Suspended) ←→ 活动阻塞(Blocked Active)
           ↑                      ↓
       激活(调入内存)          挂起(换出内存)
           ↓                      ↓
 静止阻塞(Blocked Suspended) ←→ 终止(Terminated)
  • 允许 → 活动就绪:进程初始化完成,准备运行。

  • 活动就绪 ↔ 运行:CPU调度使进程运行;时间片用完或被抢占返回就绪。

  • 运行 → 活动阻塞:等待I/O或资源,进入阻塞状态。

  • 活动阻塞 → 活动就绪:等待事件完成,重新就绪。

  • 活动就绪/阻塞 → 静止就绪/阻塞:系统因内存不足等因素将进程换出内存,挂起进程。

  • 静止就绪/阻塞 → 活动就绪/阻塞:进程被调入内存,重新激活。

  • 静止阻塞 → 终止:进程执行完毕或被强制终止,释放资源。


六、线程

线程定义

线程是进程中可独立调度执行的最小单位,多个线程共享同一进程的地址空间和资源。

线程与进程对比

特性

进程

线程

地址空间

独立

共享进程内存

资源开销

较大

较小

上下文切换成本

较高

较低

并发性

进程级别并发

线程级别并发,提升性能

线程优势与风险

  • 优势:提升CPU利用率,减少调度开销

  • 风险:共享内存导致数据竞争,需要同步控制


七、并发控制:信号量与PV操作

信号量简介

信号量是操作系统提供的同步机制,用于管理对共享资源的互斥访问。

PV操作

  • P(等待)操作:试图申请资源,若资源不足则阻塞。

  • V(释放)操作:释放资源,唤醒等待进程。

伪代码示例:

P(S):
  while (S <= 0) wait;
  S = S - 1;

V(S):
  S = S + 1;

八、死锁

什么是死锁?

多个进程或线程相互等待对方持有的资源,导致所有进程无法继续执行的僵局。

死锁四个必要条件

  1. 互斥条件

  2. 占有且等待

  3. 不可抢占

  4. 循环等待

死锁示例

进程A持有资源R1,等待R2;
进程B持有资源R2,等待R1;
双方相互等待,形成死锁。

死锁解决策略

策略

说明

预防

破坏必要条件,避免死锁发生

避免

通过算法动态分配资源防止不安全状态

检测

系统检测死锁并采取措施

解除

强制回收资源或杀死进程解除死锁

实践建议

  • 避免锁嵌套

  • 统一锁顺序

  • 设置锁超时


九、学习路线建议

模块

内容重点

操作系统基础

类型、组成与功能

进程与线程

模型、状态、调度算法

内存管理

虚拟内存、分页

文件系统

结构、调度与索引

并发控制

信号量、互斥、死锁

系统接口

系统调用与API



Comment