跳转至

操作系统层详解

概述

操作系统层位于硬件层之上,是计算机系统中最重要的系统软件。它管理计算机的硬件和软件资源,为用户和应用程序提供服务接口。

操作系统的地位

操作系统的地位

操作系统是硬件和软件之间的桥梁。

graph TB
    A[用户] --> B[应用程序]
    B --> C[操作系统]
    C --> D[硬件]
    
    style C fill:#4CAF50,stroke:#2E7D32,color:#fff

操作系统的功能

1. 处理机管理

处理机管理

管理CPU资源,合理分配CPU时间。

主要功能:

  • 进程控制: 创建、撤销、挂起、恢复进程
  • 进程同步: 协调进程执行顺序
  • 进程通信: 进程间信息交换
  • 进程调度: 分配CPU时间

关键概念:

  • 进程: 程序的一次执行过程
  • 线程: 进程中的一个执行单元
  • 进程状态: 就绪、运行、阻塞

2. 存储器管理

存储器管理

管理内存资源,为程序分配内存空间。

主要功能:

  • 内存分配与回收
  • 地址映射: 逻辑地址到物理地址
  • 内存保护: 防止进程相互干扰
  • 内存扩充: 虚拟存储技术

内存分配方式:

  • 连续分配: 单一连续、固定分区、动态分区
  • 非连续分配: 分页、分段、段页式

3. 设备管理

设备管理

管理外部设备,控制设备与CPU、内存的数据交换。

主要功能:

  • 设备分配与回收
  • 设备驱动
  • 设备独立性
  • 缓冲管理

I/O控制方式:

  • 程序查询方式
  • 中断方式
  • DMA方式
  • 通道方式

4. 文件管理

文件管理

管理文件资源,提供文件存储和访问功能。

主要功能:

  • 文件存储空间管理
  • 目录管理
  • 文件读写管理
  • 文件保护与共享

文件系统类型:

  • FAT: File Allocation Table
  • NTFS: New Technology File System
  • EXT: Extended File System
  • HFS: Hierarchical File System

操作系统的特征

操作系统特征

操作系统具有以下基本特征:

1. 并发性

并发性(Concurrency)

多个程序同时执行。

说明:

  • 宏观上: 多个程序同时执行
  • 微观上: 多个程序交替执行(单CPU)

2. 共享性

共享性(Sharing)

系统资源被多个进程共同使用。

类型:

  • 互斥共享: 资源一次只能被一个进程使用
  • 同时共享: 资源可被多个进程同时使用

3. 虚拟性

虚拟性(Virtual)

将物理实体变为多个逻辑实体。

示例:

  • 虚拟内存: 将物理内存扩充为更大的逻辑内存
  • 虚拟设备: 将一个物理设备变为多个逻辑设备

4. 异步性

异步性(Asynchronism)

进程执行速度不确定。

说明:

  • 进程执行顺序不确定
  • 进程执行速度不确定
  • 需要同步机制保证正确性

操作系统的类型

类型 特点 应用场景
批处理系统 成批处理作业 科学计算
分时系统 时间片轮转 多用户系统
实时系统 实时响应 工业控制
分布式系统 多机协同 云计算
嵌入式系统 资源受限 智能设备

系统调用

系统调用

系统调用是操作系统提供给应用程序的接口。

系统调用的类型

常见系统调用类型

1. 进程控制

  • fork(): 创建进程
  • exec(): 执行程序
  • exit(): 终止进程
  • wait(): 等待进程

2. 文件操作

  • open(): 打开文件
  • close(): 关闭文件
  • read(): 读文件
  • write(): 写文件

3. 设备管理

  • ioctl(): 设备控制
  • read(): 读设备
  • write(): 写设备

4. 内存管理

  • malloc(): 分配内存
  • free(): 释放内存
  • mmap(): 内存映射

系统调用的过程

sequenceDiagram
    participant App as 应用程序
    participant Lib as 库函数
    participant OS as 操作系统
    participant HW as 硬件
    
    App->>Lib: 调用库函数
    Lib->>OS: 系统调用(陷入内核)
    OS->>HW: 执行硬件操作
    HW-->>OS: 返回结果
    OS-->>Lib: 返回结果
    Lib-->>App: 返回结果

参考资料