当前位置: 首页 > java >正文

【0.2 漫画操作系统原理】

🖥️ 漫画操作系统原理

🎯 学习目标:深入理解操作系统核心原理,为Java并发编程和性能优化打下坚实基础


🎪 第一章:操作系统初识篇

🤔 什么是操作系统?

想象一下,你是一个大型图书馆的馆长…

📚 没有操作系统 vs 有操作系统没有操作系统:
读者1 → 直接找书架 ← 读者2↘     ↙发生冲突!有操作系统:
读者1 → 图书管理系统 → 有序分配 → 书架1
读者2 → 图书管理系统 → 有序分配 → 书架2
读者3 → 图书管理系统 → 排队等待 → 书架?操作系统的核心职责:
• 资源管理:CPU、内存、磁盘、网络
• 进程调度:决定哪个程序先运行
• 内存管理:为程序分配和回收内存
• 文件管理:统一的文件存储接口
• 设备管理:统一的硬件访问接口

🎭 操作系统特性:

  • 并发性:同时处理多个任务
  • 共享性:多个程序共享系统资源
  • 虚拟性:为每个程序提供独立的虚拟空间
  • 异步性:程序执行顺序不可预知

🏗️ 操作系统架构

🏗️ 操作系统分层架构:┌─────────────────────────────────────┐
│           用户应用程序               │ ← 用户态
├─────────────────────────────────────┤
│           系统调用接口               │ ← 内核态边界
├─────────────────────────────────────┤
│  进程管理 │ 内存管理 │ 文件管理     │
├─────────────────────────────────────┤ ← 内核态
│  设备管理 │ 网络管理 │ 安全管理     │
├─────────────────────────────────────┤
│            硬件抽象层               │
└─────────────────────────────────────┘硬件层

🔄 第二章:进程与线程管理

👥 进程基础概念

🎭 进程生命周期:创建 → 就绪 → 运行 → 阻塞 → 终止↑      ↓      ↓      ↑└──────┴──────┴──────┘进程状态转换:
• 创建→就绪:进程创建完成,等待CPU
• 就绪→运行:获得CPU时间片
• 运行→阻塞:等待I/O或其他资源
• 阻塞→就绪:所需资源到位
• 运行→就绪:时间片用完
• 运行→终止:进程执行完毕进程控制块(PCB):
┌─────────────────┐
│ 进程ID(PID)     │
│ 进程状态        │
│ CPU寄存器       │
│ 内存管理信息    │
│ 文件描述符      │
│ 调度信息        │
└─────────────────┘

🧵 线程深度解析

🧵 进程 vs 线程对比:进程(重量级):
┌─────────────────┐
│ 进程A           │
│ ┌─────┐ ┌─────┐ │
│ │线程1│ │线程2│ │
│ └─────┘ └─────┘ │
│ 独立内存空间    │
└─────────────────┘线程(轻量级):
• 共享进程内存空间
• 拥有独立的栈和寄存器
• 创建开销小,切换快
• 通信简单但需要同步线程实现模型:
1. 用户级线程:内核不感知,效率高但无法利用多核
2. 内核级线程:内核管理,可利用多核但开销大
3. 混合模型:结合两者优势

🔄 进程调度算法

🔄 CPU调度算法详解:1. 先来先服务(FCFS):进程: A(24) → B(3) → C(3)时间: 0────24──27─30平均等待时间: (0+24+27)/3 = 172. 最短作业优先(SJF):进程: B(3) → C(3) → A(24)时间: 0─3──6────30平均等待时间: (0+3+6)/3 = 33. 时间片轮转(RR):时间片=4,进程队列: A(24),B(3),C(3)A(4) → B(3) → C(3) → A(4) → A(4) → A(4) → A(4) → A(4)4. 优先级调度:┌─────────────────┐│ 优先级队列      ││ 高 ┌─────┐     ││ ↑  │进程A│     ││ │  └─────┘     ││ │  ┌─────┐     ││ │  │进程B│     ││ │  └─────┘     ││ 低 ┌─────┐     ││    │进程C│     ││    └─────┘     │└─────────────────┘

🔒 进程同步与通信

🔒 进程同步机制:1. 互斥锁(Mutex):```javasynchronized(lock) {// 临界区代码共享资源访问}
  1. 信号量(Semaphore):

    Semaphore semaphore = new Semaphore(3); // 允许3个线程
    semaphore.acquire(); // P操作,获取资源
    try {// 使用资源
    } finally {semaphore.release(); // V操作,释放资源
    }
    
  2. 条件变量(Condition):

    ReentrantLock lock = new ReentrantLock();
    Condition condition = lock
http://www.xdnf.cn/news/14126.html

相关文章:

  • 展开说说Android之Glide详解_源码解析
  • 通达信腾龙凤舞幅图指标公式
  • 前端异步编程基础
  • 经典蓝牙 vs BLE:10 大核心差异深度对比(附高频考点 + 大厂真题)
  • Kafka源码P1-消息ProducerRecord
  • LeetCode 第74题:搜索二维矩阵
  • jQuery.ajax() 方法核心参数详解
  • 从代码学习深度学习 - 子词嵌入 PyTorch版
  • C#最佳实践:为何要统一命名
  • 青少年编程与数学 01-011 系统软件简介 20 编译系统
  • awesome-llm-apps 项目带你探索语言模型的无限可能
  • 自恢复式保险丝如何实现自恢复?
  • 基于Python的TCP应用案例,包含**服务器端**和**客户端**的完整代码
  • frida-android-mod-menu 使用教程
  • LeetCode面试经典150题—旋转数组—LeetCode189
  • c++总结-05-模板与泛型编程
  • 创客匠人视角:知识IP变现的主流模式与创新路径
  • 第十一篇:动态规划(DP)(上)
  • 【算法】基于中位数和MAD鲁棒平均值计算算法
  • 计算机网络-自顶向下—第四章网络层重点复习笔记
  • 薛定谔的猫思想实验如何推演到量子计算
  • Android-Mod-Menu 使用教程
  • Android xml的Preference设置visibility=“gone“ 无效分析解决
  • 【项目实训#08】HarmonyOS知识图谱前端可视化实现
  • 数据结构 学习 栈 2025年6月14日 11点09分
  • IDEA—配置MySQL的驱动程序,引入jar包没有配置不成功问题解决
  • 知识点|MTV模式(Model-template-view)
  • Snipaste:一款简单强大的跨平台截图工具
  • 多线程中SimpleDateFormat为何不安全?如何解决?
  • Python Day50