Sebuah artikel terkini mengenai evolusi threading Apple telah mencetuskan perbincangan komuniti yang tidak dijangka tentang asal usul sebenar threading komputer. Walaupun artikel tersebut memfokuskan kepada sistem Mac dari 1984 dan seterusnya, peminat teknologi dengan pantas menunjukkan bahawa konsep threading sebenarnya muncul beberapa dekad lebih awal daripada yang kebanyakan orang sedari.
Perintis Threading Sebenar
Perbincangan tersebut mendedahkan bahawa UNIVAC 1108 EXEC 8 , yang dikeluarkan pada 1966, berkemungkinan merupakan sistem pengendalian pertama yang melaksanakan apa yang kini kita panggil threads. Pelaksanaan awal ini, dipanggil activities, termasuk ciri-ciri canggih yang tidak akan muncul dalam sistem arus perdana selama bertahun-tahun. Sistem ini menyokong berbilang threads dalam ruang alamat yang sama, mempunyai operasi atomik yang disokong perkakasan, dan juga termasuk async I/O dengan callbacks - semua konsep revolusioner untuk tahun 1960-an.
Apa yang menjadikan ini amat menarik ialah bagaimana inovasi awal ini sebahagian besarnya dilupakan pada masa pembangun Unix dan Linux mula melaksanakan threading pada tahun 1980-an dan 1990-an. Jurang pengetahuan ini menyebabkan berulangnya banyak kesilapan reka bentuk yang telah diselesaikan beberapa dekad sebelumnya.
Pencapaian Utama Threading:
- 1966: UNIVAC 1108 EXEC 8 memperkenalkan "activities" (threads pertama)
- 1985: Apple Switcher membenarkan pertukaran aplikasi (koperatif)
- 1985: Commodore Amiga melaksanakan multitasking preemptive
- 1987: Apple MultiFinder membawa multitasking koperatif
- 2009: Apple memperkenalkan Grand Central Dispatch (GCD)
Salah Tanggapan Threading Moden
Perbincangan komuniti juga menyerlahkan kekeliruan biasa tentang terminologi threading. Ramai orang mencampuradukkan processes dan threads, atau tidak memahami perbezaan antara cooperative dan preemptive multitasking. Perbualan tersebut mendedahkan bahawa walaupun profesional teknikal kadangkala bergelut dengan perbezaan ini, terutamanya apabila sistem pengendalian yang berbeza menggunakan pendekatan yang berbeza-beza.
Pada masa UNIX/Linux mendapat threads, tiada siapa yang tahu bahawa ia telah dilakukan dua puluh tahun sebelumnya, dan kami terpaksa melalui sejumlah besar kesilapan reka bentuk, kebanyakannya melibatkan signals.
Perbezaan Threading vs Process:
- Threads: Berkongsi ruang memori, dijadualkan oleh OS atau aplikasi
- Processes: Mempunyai ruang memori yang berasingan, sentiasa dijadualkan oleh OS
- Activities: Istilah UNIVAC pada tahun 1966 untuk threads, termasuk operasi atomik yang disokong perkakasan
Kemasukan Lewat Apple ke Threading
Walaupun perjalanan Apple dari single-tasking kepada Grand Central Dispatch moden adalah mengagumkan, komuniti menyatakan bahawa Apple sebenarnya agak lewat dalam permainan threading. Commodore Amiga mempunyai preemptive multitasking pada pemproses tunggal pada tahun 1985, tahun yang sama Apple mengeluarkan utiliti Switcher asasnya yang hanya boleh menjalankan satu aplikasi pada satu masa.
Perbincangan mencadangkan bahawa melihat sejarah threading Apple sahaja memberikan pandangan terhad tentang bagaimana teknologi ini sebenarnya berkembang. Sistem seperti NT , VMS , atau Solaris akan menawarkan contoh yang lebih baik tentang evolusi threading, kerana mereka tidak dikekang oleh pilihan reka bentuk awal Apple .
Perbualan komuniti ini menunjukkan bagaimana walaupun artikel yang dikaji dengan baik boleh terlepas konteks sejarah yang penting. Kisah sebenar threading adalah lebih lama dan lebih kompleks daripada yang kebanyakan pembangun moden sedari, dengan inovasi dari tahun 1960-an yang masih mempengaruhi sistem hari ini.