Pengutipan sampah (sains komputer)

Dalam bidang sains komputer, pengutipan sampah atau GC (singkatan untuk garbage collection) ialah suatu bentuk pengurusan ingatan automatik. Ia adalah kes khas bagi pengurusan sumber, di mana sumber terhad yang diurus ialah ingatan. Pengutip sampah, atau pengutip sahaja, cuba untuk menebus sampah atau ingatan yang diisi oleh objek yang tidak lagi digunakan oleh atur cara yang berkaitan. Pengutipan sampah dicipta oleh John McCarthy sekitar 1959 untuk menyelesaikan masalah di dalam Lisp.[1][2]

Pengutipan sampah selalu digambarkan sebagai berlawanan dengan pengurusan ingatan manual, yang memerlukan pengatur cara untuk menyatakan objek yang mana mahu dinyahperuntukkan dan dikembalikan kepada sistem ingatan. Walau bagaimanapun, kebanyakan sistem menggunakan gabungan kedua-dua pendekatan, dan teknik-teknik lain seperti peruntukan tindanan dan pentabiran kawasan boleh mengatasi sebahagian daripada masalah yang berkenaan. [3]

Pengutipan sampah tidak mengurus sumber terhad selain ingatan yang digunakan oleh atucara-aturcara tipikal (misalnya soket-soket rangkaian, pengawal pangkalan data, tetingkap interaksi pengguna, serta pemerihal fail dan peranti) secara tradisional. Kaedah-kaedah yang digunakan untuk mengurus sumber sebegini, khususnya pemusnah, mungkin juga sudah cukup untuk mengurus ingatan, lantas, GC tidak diperlukan. Sesetengah sistem GC membenarkan sumber-sumber lain disekutukan dengan suatu kawasan ingatan, yang jika dikutip, mengakibatkan sumber lain berkenaan ditebus; ini dipanggil pemuktamadan. Pemuktamadan mungkin menyebabkan kerumitan yang membatasi kebolehgunaannya, contohnya kependaman di antara nyahguna dan tebus bagi khususnya sumber terhad.

Rujukan

  1. ^ "Recursive functions of symbolic expressions and their computation by machine". Portal.acm.org. Dicapai pada 2009-03-29.
  2. ^ "Recursive functions of symbolic expressions and their computation by machine, Part I". Dicapai pada 2009-05-29.
  3. ^ Ketahui bahawa terdapat kekaburan istilah, sedang teori selalunya menggunakan istilah pengutipan sampah manual dan pengutipan sampah automatik berbanding pengurusan ingatan manual dan pengutipan sampah, dan tidak membataskan pengutipan sampah hanya untuk pengurusan ingatan, tetapi mengambil kira yang sebarang sumber logik atau fizikal boleh dikutipsampahkan.

Pautan luar

  • A Garbage Collection Course Curriculum at MSDN Academic Alliance Diarkibkan 2009-01-02 di Wayback Machine
  • Penerbitan oleh kumpulan OOPS di Universiti Texas di Austin
  • Pengutip sampah untuk C dan C++ Diarkibkan 2005-10-13 di Wayback Machine oleh Hans Boehm
  • Notes on the CLR Garbage Collector[pautan mati kekal]
  • A Glance At Garbage Collection In Object-Oriented Languages
  • On-the-fly garbage collection: an exercise in cooperation oleh Edsger W. Dijkstra dan Leslie Lamport and A.J.Martin and C.S.Scholten and E.F.M.Steffens
  • Richard Jones and Rafael Lins, Garbage Collection: Algorithms for Automatic Dynamic Memory Management, Wiley and Sons (1996), ISBN 0-471-94148-4
  • Richard Jones' Garbage Collection Page
  • A Real-Time Garbage Collector Based on the Lifetimes of Objects oleh H. Lieberman and C. Hewitt, MIT Artificial Intelligence Laboratory