diff --git a/source/chapter0/4os-features.rst b/source/chapter0/4os-features.rst index 01279c64..8458d1c5 100644 --- a/source/chapter0/4os-features.rst +++ b/source/chapter0/4os-features.rst @@ -34,6 +34,12 @@ CPU 虚拟化 再来看 CPU 虚拟化。不同的应用程序可以在内存中并发运行,相同的应用程序也可有多个拷贝在内存中并发运行。而每个程序都“认为”自己完全独占了 CPU 在运行,这是 **“CPU虚拟化”**,也是一种 **“时间虚拟化”** 。操作系统给了运行的应用程序一个幻象,即操作系统把时间分成小段,每个应用程序占用其中一小段时间片运行,用完这一时间片后,操作系统会切换到另外一个应用程序,让它运行。由于时间片很短,操作系统的切换开销也很小,应用程序或使用应用程序的用户基本上是看不出的,反而感觉到多个程序各自在独立“并行”执行,从而实现了 **CPU虚拟化** 。 + +并发性 +---------------------------------- + +操作系统为了能够让 CPU 充分地忙起来,并充分利用各种资源,就需要有多种不同的应用程序在执行。这些应用程序是分时执行的,并由操作系统来完成各个应用在运行时的任务切换。并发性虽然能有效改善系统资源的利用率,但也带来了对共享资源的争夺问题,即同步互斥问题。还会带来执行时间的不确定性问题,即并发程序在执行中是走走停停,断续推进的,使得应用程序的完成时间是不确定的。并发性对操作系统的设计也带来了很多挑战,一不小心就会出现程序执行结果不确定,程序死锁等很难调试和重现的问题。 + .. _term-parallel-concurrency: .. note:: @@ -43,11 +49,6 @@ CPU 虚拟化 对于基于单 CPU 的计算机而言,各个“同时”运行的程序其实是串行分时复用一个 CPU ,任一个时刻点上只有一个程序在 CPU 上运行。 这些虚拟性的特征给应用程序的开发和执行提供了非常方便的执行环境,但也给操作系统的设计与实现提出了很多挑战。 -并发性 ----------------------------------- - -操作系统为了能够让 CPU 充分地忙起来,并充分利用各种资源,就需要有多种不同的应用程序在执行。这些应用程序是分时执行的,并由操作系统来完成各个应用在运行时的任务切换。并发性虽然能有效改善系统资源的利用率,但也带来了对共享资源的争夺问题,即同步互斥问题。还会带来执行时间的不确定性问题,即并发程序在执行中是走走停停,断续推进的,使得应用程序的完成时间是不确定的。并发性对操作系统的设计也带来了很多挑战,一不小心就会出现程序执行结果不确定,程序死锁等很难调试和重现的问题。 - 异步性 ----------------------------------