返回首页

操作系统核心原理

进程管理 内存管理 文件系统 死锁 调度算法

操作系统核心功能

操作系统是计算机硬件和应用程序之间的桥梁,主要功能包括:

  • 进程管理:进程创建、调度、同步和通信
  • 内存管理:内存分配、虚拟内存、页面置换
  • 文件系统:文件存储、目录管理、权限控制
  • 设备管理:设备驱动、I/O调度
  • 安全管理:用户认证、访问控制

进程与线程

进程概念:

进程是程序的一次执行,拥有独立的内存空间和系统资源。

线程概念:

线程是进程内的执行单元,共享进程的内存空间和资源。

进程与线程对比:

特性 进程 线程
资源开销 大(独立内存空间) 小(共享内存空间)
通信方式 进程间通信(IPC) 共享内存
创建销毁
独立性 独立,崩溃不影响其他进程 依赖进程,线程崩溃可能导致进程崩溃

进程调度算法

  • 先来先服务(FCFS):按到达顺序执行
  • 短作业优先(SJF):执行时间短的进程优先
  • 优先级调度:按优先级执行
  • 轮转调度(RR):每个进程分配时间片轮流执行
  • 多级反馈队列:结合多种调度策略

内存管理

虚拟内存:

虚拟内存使程序可以使用比物理内存更大的地址空间。

页面置换算法:

  • 最优置换(OPT):淘汰未来最长时间不被访问的页面
  • 先进先出(FIFO):淘汰最早进入内存的页面
  • 最近最久未使用(LRU):淘汰最近最久未使用的页面
  • 时钟算法(Clock):近似LRU,性能较好

内存分配策略:

// C语言中的动态内存分配
#include <stdlib.h>

int main() {
    // 分配内存
    int *arr = (int*)malloc(10 * sizeof(int));

    if (arr == NULL) {
        // 处理分配失败
        return 1;
    }

    // 使用内存
    for (int i = 0; i < 10; i++) {
        arr[i] = i * i;
    }

    // 释放内存
    free(arr);

    return 0;
}

死锁与处理

死锁是指多个进程因竞争资源而相互等待的现象。

死锁产生的四个必要条件:

  1. 互斥条件:资源只能被一个进程占用
  2. 占有并等待:进程已占有资源,同时请求新资源
  3. 不可剥夺:资源不能被强制剥夺
  4. 循环等待:进程间形成资源请求的循环链

死锁处理方法:

  • 预防:破坏死锁产生的必要条件
  • 避免:银行家算法,确保系统处于安全状态
  • 检测与恢复:定期检测死锁,发现后采取措施恢复
  • 忽略:鸵鸟策略,假设死锁不会发生