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

【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

相关文章:

  • 从0开始学习R语言--Day23--稳健回归
  • volka烹饪常用英语
  • Salesforce 推出Marketing Cloud Next营销云
  • Docker 部署 PostgreSQL 指南
  • 0x-5-ORA-03113-ORA-01081-记一次删归档改spfile-开实例
  • Vue3中v-bind指令用法详解
  • 论文略读: CITYANCHOR: CITY-SCALE 3D VISUAL GROUNDING WITH MULTI-MODALITY LLMS
  • 渲染进阶内容——机械动力的渲染(1)
  • 小程序跳转链接实战:https://wxaurl.cn/、weixin://dl/business/ 跳转与明文 URL Scheme 生成指南
  • MaxCompute的Logview分析详解
  • K8S 专栏 —— Pod 篇
  • 人工智能学习20-Pandas-自定义的函数
  • 单片机电路设计
  • 剖析电商搜索要点并基于Es+Redis模拟电商搜索行为
  • 滚珠螺杆的预紧间隙如何调整?
  • python基础举例
  • 地理数据库 gdb mdb sde 名称的由来
  • gpt3大模型蒸馏后效果会变差么
  • MySQL从库复制延迟的监测
  • 如何在 ArcGIS 中使用 Microsoft Excel 文件_20250614
  • 外贸网站推广教程/cpu优化软件
  • 重庆网站制作的网站/seo是什么职位缩写
  • 中国做乱的小说网站/营销方案100个软文
  • 网站建设销售兼职合同/创意营销新点子
  • 郑州加盟做网站/青岛网站建设公司排名
  • 中国做外贸网站有哪些/百度一下 你就知道首页