Sejarah Threading Mengungkap Inovasi Terlupakan Era 1960an yang Mendahului Sistem Modern

Tim Komunitas BigGo
Sejarah Threading Mengungkap Inovasi Terlupakan Era 1960an yang Mendahului Sistem Modern

Sebuah artikel terbaru tentang evolusi threading Apple telah memicu diskusi komunitas yang tak terduga mengenai asal-usul sebenarnya dari threading komputer. Meskipun artikel tersebut berfokus pada sistem Mac dari tahun 1984 ke atas, para penggemar teknologi dengan cepat menunjukkan bahwa konsep threading sebenarnya muncul beberapa dekade lebih awal dari yang kebanyakan orang sadari.

Pelopor Threading Sesungguhnya

Diskusi tersebut mengungkapkan bahwa UNIVAC 1108 EXEC 8, yang dirilis pada tahun 1966, kemungkinan merupakan sistem operasi pertama yang mengimplementasikan apa yang sekarang kita sebut threads. Implementasi awal ini, yang disebut activities, mencakup fitur-fitur canggih yang tidak akan muncul dalam sistem mainstream selama bertahun-tahun. Sistem tersebut mendukung multiple threads dalam address space yang sama, memiliki operasi atomik yang didukung hardware, dan bahkan menyertakan async I/O dengan callbacks - semua konsep revolusioner untuk era 1960an.

Yang membuat hal ini sangat menarik adalah bagaimana inovasi-inovasi awal ini sebagian besar terlupakan pada saat pengembang Unix dan Linux mulai mengimplementasikan threading di tahun 1980an dan 1990an. Kesenjangan pengetahuan ini menyebabkan pengulangan banyak kesalahan desain yang sebenarnya sudah dipecahkan beberapa dekade sebelumnya.

Tonggak Sejarah Threading Utama:

  • 1966: UNIVAC 1108 EXEC 8 memperkenalkan "activities" (thread pertama)
  • 1985: Apple Switcher memungkinkan perpindahan aplikasi (kooperatif)
  • 1985: Commodore Amiga mengimplementasikan multitasking preemptif
  • 1987: Apple MultiFinder menghadirkan multitasking kooperatif
  • 2009: Apple memperkenalkan Grand Central Dispatch (GCD)

Kesalahpahaman Threading Modern

Diskusi komunitas juga menyoroti kebingungan umum tentang terminologi threading. Banyak orang mencampuradukkan processes dan threads, atau tidak memahami perbedaan antara cooperative dan preemptive multitasking. Percakapan tersebut mengungkapkan bahwa bahkan profesional teknis terkadang kesulitan dengan perbedaan-perbedaan ini, terutama ketika sistem operasi yang berbeda menggunakan pendekatan yang bervariasi.

Pada saat UNIX/Linux mendapatkan threads, tidak ada yang tahu bahwa hal itu telah dilakukan dua puluh tahun sebelumnya, dan kami harus melalui sejumlah besar kesalahan desain, sebagian besar melibatkan signals.

Perbedaan Threading vs Process:

  • Threads: Berbagi ruang memori, dijadwalkan oleh OS atau aplikasi
  • Processes: Memiliki ruang memori yang terpisah, selalu dijadwalkan oleh OS
  • Activities: Istilah UNIVAC tahun 1966 untuk threads, termasuk operasi atomik yang didukung hardware

Masuknya Apple yang Terlambat ke Threading

Meskipun perjalanan Apple dari single-tasking ke Grand Central Dispatch modern sangat mengesankan, komunitas mencatat bahwa Apple sebenarnya cukup terlambat dalam permainan threading. Commodore Amiga sudah memiliki preemptive multitasking pada single processor pada tahun 1985, tahun yang sama ketika Apple merilis utilitas Switcher dasar yang hanya bisa menjalankan satu aplikasi pada satu waktu.

Diskusi tersebut menunjukkan bahwa melihat sejarah threading Apple saja memberikan pandangan terbatas tentang bagaimana teknologi-teknologi ini sebenarnya berkembang. Sistem seperti NT, VMS, atau Solaris akan menawarkan contoh yang lebih baik dari evolusi threading, karena mereka tidak dibatasi oleh pilihan desain awal Apple.

Percakapan komunitas ini menunjukkan bagaimana bahkan artikel yang diteliti dengan baik dapat melewatkan konteks sejarah yang penting. Kisah sebenarnya dari threading jauh lebih tua dan kompleks daripada yang disadari kebanyakan pengembang modern, dengan inovasi dari tahun 1960an yang masih mempengaruhi sistem saat ini.

Referensi: A brief history of threads and threading