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

操作系统2(多处理器编程)

一、并发

1.操作系统是最早的并发程序之一

2.并发的基本单位:线程

共享内存的多个执行流

  • 执行流拥有独立的堆栈/寄存器
  • 共享全部的内存(指针可以互相引用)

3.实现原子性

  • lock(&lk)
  • unlock(&lk)
    • 实现临界区(critical section)之间的绝对串行化
    • 程序的其他部分依然可以并行执行

99%的并发问题都可以用一个队列解决

  • 把大任务切分成可以并行的小任务
  • worker thread 去锁保护的队列里取任务
  • 除去不可并行的部分,剩下的部分可以获得线性的加速
    • T_{n}<T_{\infty }+\frac{T_{1}}{n}


http://www.kler.cn/a/17588.html

相关文章:

  • 探索 Python HTTP 的瑞士军刀:Requests 库
  • 试编写算法将单链表就地逆置(默认是带头节 点,如果是不带头节点地逆置呢?)
  • MaxKB
  • 任何使用 Keras 进行迁移学习
  • 自由学习记录(21)
  • 执行flink sql连接clickhouse库
  • 如何使用 ChatGPT 来快速编写产品需求文档(PRD)
  • 代码随想录算法训练营(总结)|动态规划总结篇
  • 基于空间矢量脉宽调制(SVPWM)的并网逆变器研究(Simulink)
  • Java 基础进阶篇(十一)—— Arrays 与 Collections 工具类
  • 在前端开发中,何时应该使用 jQuery,何时应该使用 Vue.js
  • 定积分比较大小的常用手段。
  • 基于SpringBoot+Vue实现的酒店管理系统
  • 【关于Linux中----生产消费模型】
  • 如何使用HTML和CSS创建有方向感知的按钮
  • Mybatis入门
  • nodejs+vue+java农村信息化服务平台
  • 【郭东白架构课 模块二:创造价值】23|节点四:架构规划之统一语义
  • java多线程下
  • 数据结构(六)—— 二叉树(6)二叉搜索树
  • 【redis】spring-cache使用指南
  • 给孩子描述非对称加密算法
  • 代码随想录算法训练营第三十天 | 航班问题、二维回溯
  • HashMap底层结构和源码分析
  • 爬取景区源码
  • 【Maven笔记1】Maven介绍