操作系统 内存交换
交换是一种内存管理方案,在其中,任何进程都可以临时从主内存交换到辅助内存,以便将主内存用于其他进程。它用于改善主存利用率。在辅助内存中,存储交换出的进程的位置被称为交换空间。
操作系统中的交换的目的是访问硬盘中的数据并将其加载到RAM中,以便应用程序可以使用它。需要记住的是,只有当数据不在RAM中时才会使用交换。
尽管交换的过程会影响系统的性能,但它有助于运行更大和多个进程。这就是为什么交换也称为内存压缩的原因。
交换的概念分为两个更多的概念:交换进和交换出。
- 交换出是一种将进程从RAM中移除并添加到硬盘的方法。
- 交换进是一种将程序从硬盘中移除并放回主存或RAM的方法。
示例: 假设用户进程的大小为2048KB,并且是标准硬盘,其中交换具有数据传输速率为1Mbps。现在我们将计算从主内存传输到辅助内存需要多长时间。
User process size is 2048Kb
Data transfer rate is 1Mbps = 1024 kbps
Time = process size / transfer rate
= 2048 / 1024
= 2 seconds
= 2000 milliseconds
Now taking swap-in and swap-out time, the process will take 4000 milliseconds.
交换的优势
- 它帮助CPU在单个主存储器中管理多个进程。
- 它帮助创建和使用虚拟内存。
- 交换允许CPU同时执行多个任务。因此,进程在执行之前不必等待太长时间。
- 它提高了主存储器的利用率。
交换的劣势
- 如果计算机系统断电,用户可能会丢失与大量交换活动相关的所有信息。
- 如果交换算法不好,综合方法可以增加缺页错误的数量并降低整体处理性能。
注意:
- 在单任务操作系统中,只有一个进程占用用户程序的内存区域,并且在进程完成之前一直驻留在内存中。
- 在多任务操作系统中,当所有活动进程无法在主存储器中协调时,就会出现一种情况,此时需要将一个进程从主存储器中交换出去,以便其他进程可以进入。