我们可以在单处理器系统上应用并行概念吗?比方说,如果我们有两个过程A& B和他们是相互独立的,他们可以同时照顾(执行),如果是这样的话?您能否按照随后的执行周期进行解释。
答案 0 :(得分:3)
如果只有一个处理器,它们就无法同时运行。如果您有多线程或多进程环境,它将对每个进程和/或线程进行时间切片。只有一个会在任何给定时间运行,并且每个context switch都有开销。
"上下文切换的确切含义"使用情况有很大差异,通常意味着"螺纹开关或过程开关"或者"仅处理切换",其中任何一个都可以称为"任务切换"。更精细的是,可以区分线程切换(在给定进程内的两个线程之间切换),进程切换(在两个进程之间切换),模式切换(域交叉:在给定线程内用户模式和内核模式之间切换),寄存器切换,堆栈帧交换机和地址空间交换机(内存映射交换机:将虚拟内存更改为物理内存映射)。上下文切换的计算成本取决于它所需要的精确程度,从轻量级用户进程的子程序调用到非常昂贵,但通常远低于保存或恢复过程映像的成本。
在一个有趣的历史记录中,在Windows开始流行之前,甚至可以为MS-DOS提供多线程库。许多来自同一时代的大型机和迷你电脑也采用了这种技术。
答案 1 :(得分:0)
具有并行性之类的概念称为单处理器的多任务处理。我们必须明白,当我们有一个核心时,这意味着无论系统中有多少个进程(任务),一次只能执行一个。
但是如果一个进程有线程,所有线程将被逐个分配给cpu,用户会觉得进程的所有线程都在运行。
答案 2 :(得分:0)
cpu将在进程之间切换。它在OS中称为上下文切换。 上下文切换有不同的方法,如: 循环,优先队列 上面的方法将决定哪个进程将使用cpu。 但是cpu一次不能被两个进程使用。 事先OS任务调度程序负责将进程分配给cpu。