微软用户-(编辑修改稿)内容摘要:
彼此竞争 虽设定了执行顺序,但是不能保证就按照这个顺序执行,而结果却由执行的顺序决定 是并发程序中最常见的错误(与时间有关的错误) . 数据竞争 指存储器访问冲突的情况 多个线程并发访问同一个存储单元时,至少有一个线程要改变那个单元的值,就会出现数据竞争 引发两种可能的冲突 : 读 /写冲突 写 /写冲突 多核结构与程序设计 Southeast University 东 南 大 学 29 互斥与同步 数据竞争 线程 1 线程 2 t=x x=t+1 u=x x=u+2 如果一开始 x=0,那么结束的时候 x=? 线程 1 线程 2 x+=1 x+=2 a[i]+=1 a[j]+=1 *p+=1 *q+=1 Foo(1) Foo(2) add [edi],1 add [edi],2 注意 : x+=1 编译成 t=x。 x=t+1 隐含的数据竞争 多核结构与程序设计 Southeast University 东 南 大 学 30 互斥与同步 互斥 临界区 是代码中访问(读和写)共享变量的那部分代码 多个线程访问同一个临界区的原则: • 一次最多只能一个线程停留在临界区内 • 不能让一个线程无限地停留在临界区内,否则其他线程将不能进入该临界区 互斥 线程互斥 是指对于共享资源,在各线程访问时的排它性 举例:银行的保管箱 维护人员确保互斥 进入区 退出区 临界区 多核结构与程序设计 Southeast University 东 南 大 学 31 互斥与同步 同步 线程同步 是指线程之间所具有的一种制约关系,一个线程的执行依赖另一线程的消息,当它没有得到另一个线程的消息时应该等待,直到消息到达时才被唤醒 使用同步对象来确保互斥 : 信号量、互斥量、条件变量、读 /写锁、事件和栅障。 • 一个线程获得同步对象,其他线程必须等待 • 当获得同步对象的线程完成,释放对象,将对象给等待的线程。 举例 : 图书馆 一个顾客借了一本书 其他人必须等着书被还回来 多核结构与程序设计 Southeast University 东 南 大 学 32 互斥与同步 栅障同步 如果多个线程在继续向下执行前,需要完成各自任务并达到某个新起点,则在此点设置栅障 是用来确保在栅障之前代码段做的修改在线程要越过栅障继续执行前全部完成。 线程在栅障的地方暂停 当所有的线程到达栅障的时候,所有线程被释放继续执行 举例:跑步 多核结构与程序设计 Southeast University 东 南 大 学 33 互斥与同步 死锁 当两个线程因为互相等待被对方拥有并且不会释放的资源而被阻塞的时候,会发生死锁。 产生死锁的原因主要是: 因为系统资源不足。 进程运行推进的顺序不合适。 资源分配不当等。 死锁的四个必要条件 : 互斥条件 请求与保持条件 不可剥夺条件 循环等待条件 多核结构与程序设计 Southeast University 东 南 大 学 34 互斥与同步 死锁 死锁的预防 破坏 “互斥”条件 • 在系统里取消互斥。 但一般来说“互斥”条件是无法破坏的。 破坏“请求与保持”条件 • 不允许进程在已获得某种资源的情况下,申请其他资源。 – 创建进程时,要求它申请所需的全部资源。 – 要求每个进程提出新的资源申请前,释放它所占有的资源。 破坏“不可抢占”条件 • 允许对资源实行抢夺。 破坏“循环等待”条件 • 将系统中的所有资源统一编号,进程可在任何时刻提出资源申请,但所有申请必须按照资源的编号顺序(升序)提出。 多核结构与程序设计 Southeast University 东 南 大 学 35 互斥与同步 死锁 死锁的避免 一个进程序列 {P1,…Pn}是安全的 ,如果对于其中每一个进程Pi(1=i=n),它以后尚需要的资源量不超过系统当前剩余资源量与所有进程 Pj(ji)当前占有资源量之和 • 现有 12个资源供 3个进程共享 ,进程 P1总共需要 9个资源 ,但第一次先申请 2个。 进程 P2总共需要 10个资源 .第一次申请 5个。 进程P3总共需要 4个资源 ,第一次请求 2个, 1)这样请求后,系统安全吗。 2)如果接着 P1第二次申请 1个,能给它吗。 银行家算法 • (1)当一个顾客对资金的最大需求量不超过银行家现有的资金时就可接纳该顾客。 • (2) 顾客可以分期贷款 ,但贷款的总数不能超过最大需求量。 • (3)当银行家现有的资金不能满足顾客尚需的贷款数额时 ,对顾客的贷款可推迟支付 ,但总能使顾客在有限的时间里得到贷款。 • (4) 当顾客得到所需的全部资金后 ,一定能在有限的时间里归还所有的资金 . 多核结构与程序设计 Southeast University 东 南 大 学 36 互斥与同步 饿死 当一个线程正在等一个资源而该资源被其他线程拥有,但由于某种原因这个资源永远不能被这个线程使用的时候,发生 饥饿 (但没死锁)。 如果等待是永久的,那就是 饿死。 举例 在使用小文件优先的打印系统中一个大文件请求打印。 活锁 忙等待的时候发生的饥饿 锁的粒度 锁的粒度是上锁后保护的共享数据的多少 减小锁的粒度可以提高对共享数据访问的并行性 多核结构与程序设计 Southeast University 东 南 大 学 37 互斥与同步 同步原语 信号量 信号量可以表示为一个整数,并且被两个基本原语操。微软用户-(编辑修改稿)
相关推荐
ng”恰好是一个英文单词,其义是指:狗的长牙或蛇的毒牙。 因此,他们想象的并不是一位涂了口红的少女,而是张牙舞爪、毒汁四溅的恶狗或毒蛇,这样一来,口红的销路可想而知了。 蜜蜂牌洗澡香皂被直译为 Bees看来是完全对应的英译,但英文读者却不欢迎这个译名,因为蜜蜂身上有几乎看不见的绒刺,擦在身上自然感觉不到舒服。 上海产的白翎牌钢笔,其英译为 White Feather,在英语国家无人问津。
量身高 小数表示 陆地上最大的动物是非洲象,它的高度可达 ,重可达。 最高的动物是长颈鹿,它的高度可达。 世界上最大的鸟是非洲鸵鸟,它的高度可达 ,一只鸵鸟蛋约重。 组数比赛 用 0、 9这三个数字和小数点组成小数, 看谁写得多。 0 10 20 30 40 50 60 70 80 90 1米 1分米 ( )米 米 ( ) ( ) 30厘米 ( )米 米 ( ) ( ) 55厘米 ( )米
软件基础。 哈尔滨工业大学自动化测试与控制研究所 虚拟仪器软件结构 VISA 三、 VISA规范与 VISA库 VISA (虚拟仪器软件结构 )规范: VPP规范中的。 VISA库:虚拟仪器软件结构中的标准 I/O 接口软件。 哈尔滨工业大学自动化测试与控制研究所 虚拟仪器软件结构 VISA 四、 VISA作用 为整个工业界提供统一的软件基础 所有的驱动程序都在 VISA库基础上开发
g • 安装:安装包里面有一个安装说明文档。 • 初次使用 • 正常使用 – 选区域,开始录制 – 停止录制 – 保存并生成 mp4 – 到微课堂创建微课 录制使用教程微课: 在微课堂中搜索:“ CS的录制 ”。 或按 F10 STOP 遇到了问题。 • 微课堂上的帮助 • 教程微课: 搜索 搜索课单 输入“微课” • 硬件问题: 李工: 18928030591 叶宜亮: 13703000182
• 中断优先级管理器 8259A PIC • 8259A在 PC/AT及 80386微机系统中的应用 21世纪高职高专新概念教材 第 4章 DMA控制器与定时 /计数器及SICL • DMA系统概述 • 可编程 DMA控制器 8237A • 8237A DMA可编程控制在微机系统中的应用 • 可编程计数 /定时器 8253/8254 • 多功能 I/O接口电路 82380 •
S:DI寻址 传送是字节还是字,由操作数的类型决定 20 用串传送指令实现 200个字节的数据传送: LEA SI, MEM1 LEA DI, MEM2 MOV CX, 200 CLD REP MOVSB 串传送指令 MOVS使用举例 1 存储区 MEM1 MEM2 30H 31H 30H 31H … … 200 MEM1+1 MEM2+1 SI DI CX … 199198… 21