计算机中 什么是同步执行和异步执行?

1

当您同步执行某项任务时,您将等待它完成,然后再转到另一项任务。当您异步执行某项任务时,您可以在它完成之前转移到另一个任务。

也就是说,在计算机的上下文中,这转化为在另一个“线程”上执行一个进程或任务。线程是作为工作单元存在的一系列命令(代码块)。操作系统可以管理多个线程,并在切换到另一个线程之前为线程分配一块(“片”)处理器时间,以使它能够完成一些工作。在其核心(请原谅双关语),一个处理器可以简单地执行一个命令,它没有一次做两件事的概念。操作系统通过将时间片分配给不同的线程来模拟这种情况。

现在,如果在混合中引入多个核/处理器,那么事情实际上可以同时发生。操作系统可以将时间分配给第一个处理器上的一个线程,然后将相同的时间块分配给不同处理器上的另一个线程。所有这些都是关于允许操作系统管理您的任务的完成,而您可以继续您的代码和做其他事情。

2

同步/异步与多线程无关。

同步,或同步意思是“连接”,或“依赖”在某种程度上。换句话说,两个同步任务必须彼此了解,一个任务必须以依赖于另一个任务的方式执行,例如等到另一个任务完成后才开始。

异步意味着它们是完全独立的,无论是在初始化还是在执行中,两者都不能以任何方式考虑另一个。

同步(一个线程)1 thread ->   |<---A---->||<----B---------->||<------C----->|

同步(多线程):



thread A -> |<---A---->|   

                        \  

thread B ------------>   ->|<----B---------->|   

                                              \   

thread C ---------------------------------->   ->|<------C----->| 

异步(一个线程):



         A-Start ------------------------------------------ A-End   

           | B-Start -----------------------------------------|--- B-End   

           |    |      C-Start ------------------- C-End      |      |   

           |    |       |                           |         |      |

           V    V       V                           V         V      V      

1 thread->|<-A-|<--B---|<-C-|-A-|-C-|--A--|-B-|--C-->|---A---->|--B-->| 

异步(多线程):



 thread A ->     |<---A---->|

 thread B ----->     |<----B---------->| 

 thread C --------->     |<------C--------->|

任务A、B、C的起点和终点<, >人物。

用竖直条表示的CPU时间片|

从技术上讲,同步/异步的概念真的与线程无关。虽然在一般情况下,发现异步任务运行在同一个线程上是不寻常的,但它是可能的(参见下面的示例),而且它是共同查找两个或多个任务同步执行的步骤分开线.。不,同步/异步的概念独树一帜是否可以在其他(第一个)任务完成之前启动第二个或后续任务,或者是否必须等待。仅此而已。在哪些线程(或多个线程)、进程、CPU,或者确切地说,任务是在什么硬件上执行的任务是无关的。事实上,为了说明这一点,我编辑了图形以显示这一点。

异步示例。在解决许多工程问题时,软件被设计成将整个问题分成多个单独的任务,然后异步执行。反演矩阵或有限元分析问题是一个很好的例子。在计算中,列表排序就是一个例子。例如,快速排序例程将列表分成两个列表,并通过递归调用自己对每个列表进行排序。在上述两个示例中,这两个任务可以(而且经常是)异步执行。它们不需要放在单独的线程上。即使是只有一个CPU的机器,也只能编码一个执行线程,以便在第一个任务完成之前启动第二个任务的处理。唯一的标准是一个任务的结果不需要作为另一个任务的输入。。只要任务的开始时间和结束时间重叠(只有当两个任务的输出都不需要作为另一个任务的输入时才有可能),无论使用多少线程,它们都是异步执行的。

同步示例。任何由多个任务组成的进程,其中的任务必须按顺序执行,但必须在另一台机器上执行(获取和/或更新数据,从金融服务获取股票报价等)。如果它位于一个单独的机器上,那么它就位于一个单独的线程上,无论是同步线程还是异步线程。

3

简单类比解释
同步执行

我的老板是个大忙人。他让我写代码。我告诉他:好吧。我开始了,他像秃鹰一样看着我,站在我身后,从我的肩膀上下来。我说:“伙计,WTF:为什么你不去做点什么,而我做完这件事呢?”

他说:“不,我.在这里等着直到你完成。“这是同步的。

异步执行

老板告诉我去做,而不是在那里等我的工作,老板去做其他的工作。当我完成我的工作后,我只需向我的老板汇报并说:“我受够了!”这是异步执行。

(听我的建议:永远不要和你身后的老板一起工作。)

参考文章:异步执行与同步执行,这到底意味着什么?

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
第一章os引论 1. 设计现代OS的主要目标是什么? 方便性,有效性,可扩充性和开放性. 2. OS的作用可表现为哪几个方面? a. OS作为用户与计算机硬件系统之间的接口; b. OS作为计算机系统资源的管理者; c. OS作为扩充机器. 3. 试说明推动多道批处理系统形成和发展的主要动力是什么? 不断提高计算机资源利用率和系统吞吐量的需要; 4. 何谓脱机I/O和联机I/O? a. 脱机输入输出方式(Off-Line I/O)是为了解决人机矛盾及CPU和I/O设备之间速度不匹配而提出的. 它减少了CPU的空闲等待时间,提高了I/O速度.具体内容是将用户程序和数据在一台外围机的控制 下,预先从低速输入设备输入到磁带上,当CPU需要这些程序和数据时,在直接从磁带机高速输入 到内存,从而大大加快了程序的输入过程,减少了CPU等待输入的时间,这就是脱机输入技术;当 程序运行完毕或告一段落,CPU需要输出时,无需直接把计算结果送至低速输出设备,而是高速把 结果输出到磁带上,然后在外围机的控制下,把磁带上的计算结果由相应的输出设备输出,这就是 脱机输出技术. b. 若这种输入输出操作在主机控制下进行则称之为联机输入输出方式. 5. 试说明推动分时系统形成和发展的主要动力是什么? 用户的需要.即对用户来说,更好的满足了人-机交互,共享主机以及便于用户上机的需求. 6. 试说明实时任务的类型和实时系统的类型. a. 实时任务的类型按任务执行时是否呈现周期性来划分,分为周期性实时任务和非周期性实时任务; ---根据对截止时间的要求来划分,分为硬实时任务和软实时任务; b. 通常把要求进行实时控制的系统统称为实时控制系统,把要求对信息进行实时处理的系统成为实时 信息处理系统. 7. 实现多道程序应解决哪些问题? a. 处理机管理问题; b. 内存管理问题; c. I/O设备管理问题; d. 文件管理问题; e. 作业管理问题. 8. 试比较单道与多道批处理系统的特点及优缺点. a. 单道批处理系统是最早出现的一种OS,它具有自动性,顺序性和单道性的特点; ---多道批处理系统则具有调度性,无序性和多道性的特点; b. 单道批处理系统是在解决人机矛盾及CPU和I/O设备之间速度不匹配的矛盾形成的,旨在提高系统 资源利用率和系统吞吐量,但是仍然不能很好的利用系统资源; ---多道批处理系统是对单道批处理系统的改进,其主要优点是资源利用率高,系统吞吐量大;缺点是 平均周转时间长,无交互能力. 9. 实现分时系统的关键问题是什么?应如何解决? a. 关键问题:及时接收,及时处理; b. 对于及时接收,只需在系统设置一多路卡,多路卡作用是使主机能同时接收用户从各个终端上输 入的数据; ---对于及时处理,应使所有的用户作业都直接进入内存,在不长的时间内,能使每个作业都运行 一次. 10 为什么要引入实时操作系统? 更好地满足实时控制领域和实时信息处理领域的需要. 11 OS具有哪几大特征?它的最基本特征是什么? a. 并发(Concurrence),共享(Sharing),虚拟(Virtual),异步性(Asynchronism). b. 其最基本特征是并发和共享. 12 内存管理有哪些主要功能?它们的主要任务是什么? a. 主要功能: 内存分配,内存保护,地址映射和内存扩充等. b. 内存分配的主要任务是为每道程序分配内存空间,提高存储器利用率,以减少不可用的内存空间, 允许正在运行的程序申请附加的内存空间,以适应程序和数据动态增长的需要. ---内存保护的主要任务是确保每道用户程序都在自己的内存空间运行,互不干扰. ---地址映射的主要任务是将地址空间的逻辑地址转换为内存空间与之对应的物理地址. ---内存扩充的主要任务是借助虚拟存储技术,从逻辑上去扩充内存容量. 13 处理机管理具有哪些功能?它们的主要任务是什么? a. 进程控制,进程同步,进程通信和调度. b. 进程控制的主要任务是为作业创建进程,撤销已结束的进程,以及控制进程在运行过程的状态 转换. ---进程同步的主要任务是对诸进程的运行进行调节. ---进程通信的任务是实现在相互合作进程之间的信息交换. ---调度分为作业调度和进程调度.作业调度的基本任务是从后备队列按照一定的算法,选择出若干个 作业,为它们分配必要的资源;而进程调度的任务是从进程的就绪队列,按照一定的算法选出一新 进程,把处理机分配给它,并为它设置运行现场,是进程投入运行.
一、 设计目标 设计目的: 设计一个含有36条指令的MIPS单周期处理器,并能将指令准确的执行并烧写到试验箱上来验证 设计初衷 1、理解MIPS指令结构,理解MIPS指令集常用指令的功能和编码,学会对这些指令进行归纳分类。 2、了解熟悉MIPS体系的处理器结构 3、熟悉并掌握单周期处理器CPU的原理和设计 4、进一步加强Verilog语言进行电路设计的能力 二、实验设备 1、装有xilinx ISE的计算机一台 2、LS-CPU-EXB-002教学系统实验箱一台 三、实验任务 1.、学习 MIPS 指令集,深入理解常用指令的功能和编码,并进行归纳确定处理器各部件的控制码,比如使用何种 ALU 运算,是否写寄存器堆等。 2、单周期 CPU 是指一条指令的所有操作在一个时钟周期内执行完。设计所有寄存器和存储器都是异步同步写的,即读出数据不需要时钟控制,但写入数据需时钟控制。 故单周期 CPU 的运作即:在一个时钟周期内,根据 PC 值从指令 ROM 读出相应的指令,将指令译码后从寄存器堆读出需要的操作数,送往 ALU 模块,ALU 模块运算得到结果。 如果是 store 指令,则 ALU 运算结果为数据存储的地址,就向数据 RAM 发出写请求,在下一个时钟上升沿真正写入到数据存储器。 如果是 load 指令,则 ALU 运算结果为数据存储的地址,根据该值从数据存 RAM 读出数据,送往寄存器堆根据目的寄存器发出写请求,在下一个时钟上升沿真正写入到寄存器堆。 如果非 load/store 操作,若有写寄存器堆的操作,则直接将 ALU 运算结果送往寄存器堆根据目的寄存器发出写请求,在下一个时钟上升沿真正写入到寄存器堆。 如果是分支跳转指令,则是需要将结果写入到 pc 寄存器的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dontla

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值