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

操作系统复习(二)

操作系统复习(二)

多道程序设计

多道程序设计是把多个程序放到内存中,它们交替运行的技术。

  • 宏观并行
  • 微观串行

内存中有程序A(需要大量计算)和程序B(需要频繁读取磁盘)。当B因等待磁盘I/O而暂停时,CPU不会空等,而是立即切换去执行A,等B的I/O完成后再回来执行B。

主要优点

资源利用率高,系统吞吐量大。

需要的硬件支持

中断系统、MMU、时钟、IO处理器或DMA。

要实现多道程序设计,仅靠软件逻辑是不够的,必须依赖于底层硬件的强力支撑。具体需要以下几大硬件机构:

  • 中断机构(必不可少):这是实现“交替运行”的物理基础。当运行中的程序发起I/O请求并完成时,或者时间片用完时,硬件中断机构会立即捕获这些事件,触发中断信号,让CPU暂停当前程序,切换到操作系统(管态) 去调度下一个程序运行。如果没有中断,CPU就无法知道I/O何时完成,也就无法实现“切换”。
  • 存储保护机构(如MMU、基址/限长寄存器):内存中同时驻留多道程序,必须防止它们互相干扰或越界访问。硬件提供基址寄存器和限长寄存器(或现代CPU的MMU内存管理单元),用于比较程序发出的内存地址是否属于它自己的合法区域。一旦程序试图访问其他程序的内存空间,硬件会立即触发“越界中断”,由操作系统强制终止该程序。
  • 通道(I/O处理器)或DMA(直接存储器访问)控制器:这是实现CPU与I/O并行的关键硬件。通道是一种专门负责输入/输出控制的独立处理器。当CPU向通道发出I/O指令后,通道全权负责数据在内存和外设之间的传输,CPU则转身去执行另一道程序。传输完成后,通道通过中断通知CPU。
  • 时钟(定时器)(视调度算法而定):如果系统采用“时间片轮转”调度(我们之前聊过),则需要一个可编程的硬件时钟。它每隔固定时间(如10ms)产生一次时钟中断,强制当前程序让出CPU,确保所有程序都能得到公平的响应,防止一道程序长期霸占CPU。

简述信号量

在记录型信号量(PV操作)中,信号量的值 S 具有明确的物理意义:

  • S > 0:表示当前可用的临界资源数量。
  • S = 0:表示临界资源正在被某个进程使用,且没有其他进程在等待。
  • S < 0:其绝对值表示当前等待该临界资源的进程数量。

进程状态相关

进程被调度程序选中:进程从就绪态转换为运行态。

进程的时间片到期:进程从运行态转换为就绪态。

进程被更高优先级的进程抢占:进程从运行态转换为就绪态。

等待某一事件:这是运行态 → 阻塞态(等待态) 的转换条件(例如请求I/O操作)

等待的事件发生:这是阻塞态(等待态) → 就绪态 的转换条件(例如I/O完成)

管程

管程(Monitor) 是一种高级的进程同步机制。可以把它理解为一个专门用来管理共享资源的“专属管家”——它把共享资源和对它的所有操作都封装在一个模块里,并强行规定:同一时刻,最多只有一个进程能进入管程内部执行。

之前说的信号量(PV操作)虽然强大,但缺点很明显:P和V操作分散在代码各处,一旦程序员写错顺序或忘记V操作,就会导致死锁。管程的诞生,就是为了解决信号量“使用时容易出错”这个痛点,把同步的复杂性交给编译器去处理。

管程的组成

一个标准的管程包含以下四个部分:

  • 共享数据结构:需要被多个进程保护的资源(如缓冲区队列、共享变量)。
  • 操作函数(过程):用于操作共享数据的入口函数。
  • 初始化代码:负责在系统启动时初始化共享数据。
  • 条件变量:用于实现复杂的等待/唤醒逻辑(如缓冲区满时暂停生产者,缓冲区空时暂停消费者)。

并发和并行

区别

  • 并发(Concurrency):指的是逻辑上的“同时”。系统有能力处理多个任务,但不一定在物理上同时执行。在单核CPU上,通过时间片轮转(我们之前聊过)让多个进程交替推进,这就是并发的典型实现。它关注的是结构(如何设计程序来处理多个任务)。

  • 并行(Parallelism):指的是物理上的“同时”。系统在同一时刻真正地在执行多个任务。这必须依赖多核CPU或多处理器的支持,每个核心在同一时刻独立运行一个任务。它关注的是执行(如何让任务跑得更快)。

http://www.jsqmd.com/news/1106427/

相关文章:

  • 告别网络孤岛:企业如何构建总部、分支、数据中心与公有云的高效互联?
  • 从生成到发布回链:AI 内容工作流进入下半场
  • 上位机开发一周快速入门:一通百通,上手速度远超传统教学
  • 解放双手!MAA明日方舟智能助手:5分钟实现游戏全自动管理
  • Python|streamlit 在 PyCharm 的启动方式
  • 告别手动整理笔记!AI 语音转写自动提取待办,解决职场拖延与信息内耗
  • 机器视觉自动曝光综述
  • 《无人直播如何稳定运营?2026年5大靠谱AI数字人直播系统省钱攻略》
  • mac远程控制电脑怎么弄 mac远程控制win的方法
  • Ubuntu 18.04 上 ROS1 Melodic 安装配置教程
  • 终极免费AI背景移除插件:OBS背景移除完整使用指南
  • 漏洞分析 | LiteLLM Proxy 预认证 SQL 注入 (CVE-2026-42208)
  • 机器学习模型生产部署:从PyTorch到K8s+Triton的工程实践
  • 光圈学院是什么?一个围绕直播电商运营和直播中控的知识平台
  • DeepSeek总结的社区 Docker 镜像:保持 Operator 开源,避免供应商注册表锁定
  • Bryntum Scheduler Pro 7.3.3 专业日程安排组件
  • 彻底解决ChatGPT幻觉问题!2026大模型虚假信息规避实战方案
  • 元学习对话系统:少样本个性化适配的工业级实践
  • 渴望被认可的具象化的庖丁解牛
  • ORB-SLAM3 关键帧相似度计算
  • 武汉农商银行13名员工手工拼接碎币,帮失智老人兑换养老金
  • okbiye 领衔|九大 AI 毕业论文写作工具横向实测,适配全学段学术创作需求
  • AI时代的HR系统选型:从“挑功能”到“挑能力底座”
  • 《2026年AI数字人直播系统深度评测:从 “伪” 到 “真” 进化》
  • 一体式步进伺服电机在油漆生产产线中的应用
  • 2026中小企业选择高性价比制氮机公司推荐
  • AI客服智能体开始参与商品推荐,企业正在重构客户决策支持方式
  • MySQL 迁移实战——如何实现真正的“零改造“平滑切换
  • 2026长春靠谱人造草坪供应商,选这家不踩坑
  • 耐压仪一开机5kV,屏幕数据直接跳飞?换过三个牌子才找到答案