操作系统是否有一段时间没有自动处理垃圾回收?

问题描述 投票:1回答:1

这更多是历史问题,而不是软件问题,但我目前正在大学中与操作系统模块一起学习C语言(我没有从老师那里得到直接的答案,因此我来这里的原因),我想知道OS时代的开始是否曾经存在过,如果OS不处理行为不佳的程序,并且即使分配程序的程序已终止,它也保留了动态分配的内存保留。

c memory-management operating-system heap
1个回答
0
投票

必要是发明之母。首先,计算机不是多任务的,而是为特定目的而制造的,这就是为什么不需要垃圾收集器的原因,但是一旦引入了创建和杀死程序的功能,即本质上是多任务的,则立即需要清除内存。应该只发生两件事:

  • 一个或多个程序运行一段时间后内存溢出。
  • 只要需要新的内存,内存就会覆盖。

两者都不是明智的解决方案,并且由于那个时代的内存很小,这个问题很快被发现,因此垃圾收集器诞生了。

注意:

如果程序正在手动分配内存位置并且非常了解它们可以使用的大小,则不需要垃圾回收器,这意味着它们自己会覆盖垃圾。例如,在嵌入式系统中,我们也负担不起为收集器分配内存。我们希望自己进行适当的编程。

不过,对于OS,必须要有垃圾收集器。

© www.soinside.com 2019 - 2024. All rights reserved.