操作系统的四大特征

- **并发**:宏观上在<u>一段时间</u>内能同时运行多个程序。当然,这些程序宏观上是同时发生的,但微观上是交替发生的。操作系统通过引入进程和线程,使得程序能够并发运行 > 并发和并行这两个孪生兄弟,经常会让初学者摸不着头脑。 > > 并行:并行指同一时刻能运行多个指令,指两个或多个事件在同一时刻同时发生。并行需要硬件支持,如多流水线、多核处理器或者分布式计算系统。 - **共享**:指系统中的资源可供内存中多个并发执行的进程共同使用 > 共享分为互斥共享和并发共享 > > - 互斥共享:虽然这个资源是共享的,所有进程都能够使用,但是同一个资源在某一时刻只允许一个进程访问,也称为互斥访问,需要用同步机制来实现互斥访问。互斥共享/访问的资源称为临界资源。 > - 并发共享:允许一个时间段内多个进程 “同时” 对系统中的某些资源进行访问。当然,所谓的 “同时” 往往是宏观上的,而在微观上,这些进程可能是交替地对该资源进行访问(即分时共享) - **虚拟**:虚拟是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体(前者)是实际存在的,而逻辑上对应物(后者)是用户感受到的。 > 主要有两种虚拟技术: > > - 空分复用:虚拟内存,即只把常用的程序放在内存,不常用的程序放在磁盘,必要的时候进行交换。举个例子,虽然我们的电脑实际上只有 4GB 的内存,但是却可以完美的同时运行这些远大于 4G 内存的程序,在用户看来似乎我们的电脑内存远远大于 4GB > - 时分复用:为什么单核 CPU 的电脑中也能同时(并发)运行多个程序呢?因为使用了时分复用技术,让每个进程轮流占用处理器,每次只执行一小个时间片并快速切换。这样在用户看来似乎我们的 CPU 是多核的。 - **异步**:在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的, 而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。