Konkurensi, Paralelisme, Asinkron, Non-blocking, dan Konsep-Konsepnya
(black7375.tistory.com)Dimulai dari perapian istilah sederhana lalu membahasnya secara luas hingga grafis dan semikonduktor.
- Istilah
- konkurensi / paralelisme
- asinkron / non-blocking
- preemptive / non-preemptive
- Sistem operasi dan prosesor
- sistem operasi
- prosesor
- Coroutine dan fiber
- fiber
- coroutine
- Generator, Async/Await, continuation
- generator
- Async / Await
- continuation
- Promise dan Future
- I/O multiplexing
- multiplexing
- socket
- model-model I/O
- Ring buffer, model I/O terbaru, LMAX Disruptor
- ring buffer
- model I/O terbaru
- LMAX Disruptor
- Primitive sinkronisasi
- kebutuhan
- thread safety
- spinlock
- mutex
- semaphore
- STM
- GIL
- Pendekatan bahasa skrip lain dan pola Reactor/Proactor
- Ractor (Ruby)
- Node.js (pola Reactor)
- pola Proactor
- CSP dan actor
- CSP
- actor
- Green thread, goroutine, dan teknologi runtime asinkron terbaru
- green thread
- runtime CSP terbaru
- runtime actor terbaru
- Paralelisme
- SIMD dan pipelining
- OpenMP & MPI
- teknik paralel terbaru
- arsitektur lambda
- GPU
- pipeline dan shader
- monitor
- buffering
- sinkronisasi vertikal
- frame pacing dan beam racing
- compositor
- API / pustaka grafis
- Chip lainnya
- ikhtisar
- DSP
- FPGA
- TPU
- Referensi
10 komentar
Saya melihat kalimat ini diulang-ulang persis sama di banyak blog, dan jadi penasaran apa sumber aslinya.
Sebagian besar blog sibuk saling merujuk satu sama lain sehingga saya tidak bisa menebak teks aslinya, dan yang paling mendekati yang saya temukan hanya dokumen AIO milik IBM. Tapi saya merasa dokumen itu hanya membahas dalam konteks kernel I/O saja. Dan saya juga dengar bahwa cara pembedaan seperti itu sendiri masih kontroversial.
Apakah ini bisa dianggap sebagai kriteria penilaian yang kredibel?
Pertama, sinkron/asinkron tampaknya bisa dijelaskan berdasarkan konsep di sisi rangkaian.
Rangkaian sinkron menggunakan clock untuk timing, sedangkan asinkron dipicu oleh event atau input lain.
Artinya, tidak terlalu berlebihan jika API asinkron juga didefinisikan sebagai metode yang dipicu dengan cara serupa melalui callback dan sebagainya.
https://developer.mozilla.org/en-US/docs/…
Untuk API blocking/non-blocking, definisi yang tepat adalah apakah kita harus menunggu pekerjaan tersebut selesai atau tidak.
Namun, agar tidak perlu menunggu, harus ada implementasi di mana fungsi yang dipanggil memiliki kendali, jadi sepertinya itulah sebabnya penjelasan sering banyak mengarah ke sana.
https://nodejs.org/en/docs/guides/blocking-vs-non-blocking/
Awalnya saya sengaja melewatinya secara singkat, tetapi saya akan menambahkan penjelasan ini juga.
Saya setuju dengan semua yang Anda sampaikan. Namun, saya masih sulit merasa yakin tentang apakah kedua sumbu kriteria ini harus digambar pada satu bidang sebagai kuadran, apakah memang bisa digambar seperti itu, dan apakah pembedaan tersebut benar-benar tepat. Bagi saya, Blocking dan Sync terasa berbagi sekitar 90% konteks yang sama secara konseptual. Hal yang sama juga berlaku untuk Non-Blocking & Async.
Blocking-Sync dan Non-Blocking-Async memang sering digunakan bersama, tetapi ada kasus-kasus yang perlu dibedakan.
selectKarena itu, saya justru merasa lebih tepat untuk menggunakannya secara terpisah sesuai pembedaan tersebut.
Sepertinya saya kurang memahami contoh-contoh yang Anda sebutkan, jadi saya juga jadi kurang bisa benar-benar berempati dengannya.
Di artikel https://incredible-larva.tistory.com/entry/IO-Multiplexing-topabogi-bagian-1 ini, dijelaskan seperti berikut:
Saya penasaran seperti apa pendapat Anda soal ini. Sejujurnya, pada titik ini saya merasa klasifikasi 2x2 ini tidak lagi bermakna. Karena tampaknya penafsirannya berbeda-beda tergantung domain dan sudut pandang.
Wow, terima kasih atas materi yang bagus ini.
Saya membacanya dengan baik!
Scroll-nya tidak ada habisnya ya, deg-degan.
Sepertinya buku berjudul "7 Model Konkruensi" yang membahas topik serupa cukup layak dibaca setidaknya sekali.
Daftar isinya setelah dibandingkan ternyata mirip.
Sepertinya ini buku yang bagus.