有没有一段时间 OS 没有自动处理垃圾回收?

Was there a time when OS did not automatically handle garbage collection?

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

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

  • 一个或多个程序 运行 一段时间后内存溢出。
  • 每当需要新内存时覆盖内存。

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

注:

如果程序手动分配内存位置并且很清楚它们可以使用的大小,这意味着它们会自己不断覆盖垃圾,则不需要垃圾收集器。例如,在嵌入式系统中,我们也不能为收集器分配内存。我们宁愿自己编程好。

但在 OS 的情况下,垃圾收集器是必须的。