【问题标题】:Was there a time when OS did not automatically handle garbage collection?有没有操作系统没有自动处理垃圾收集的时候?
【发布时间】:2020-04-28 19:09:32
【问题描述】:

这更像是一个历史问题而不是软件问题,但我目前正在大学学习 C 语言以及操作系统模块(我没有得到讲师的直接回答,因此我来这里) ,我想知道在操作系统时代的开始是否有过一段时间,如果操作系统没有处理表现不佳的程序并保留动态分配的内存,即使分配它们的程序已经终止。

【问题讨论】:

  • 是的,它在例如嵌入式系统的操作系统上仍然很常见。

标签: c memory-management operating-system heap-memory


【解决方案1】:

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

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

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

注意:

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

如果是操作系统,垃圾收集器是必须的。

【讨论】:

  • 非常感谢您的快速答复。这是一个很好的起点,可以进一步研究垃圾收集的理解,如果不是全部的话!
猜你喜欢
  • 2014-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-18
  • 2011-10-12
相关资源
最近更新 更多