Home
TOP 10 LIST WEEK 06
- Concurrency vs Parallelism
Concurrency adalah disaat suatu aplikasi sedang mengerjakan lebih dari satu task di waktu yang sama secara bersamaan. Sedangkan untuk Parallelism, parallelism adalah disaat sesuatu aplikasi membagi tasknya menjadi subtask yang lebih kecil yang akan diproses secara paralel.
- Process
Process adalah sebuah program yang sedang dieksekusi, dan eksekusi dari sebuah process harus memiliki progress dalam sequential fashion. Ketika program di load ke dalam memory dan menhadi process, program tersebut dapat dibagi menjadi 4 section, yaitu stack, heap, text dan data.
- User Level thread vs Kernel Level thread
User thread diimplementasi oleh user, sedangkan kernel thread diimplementasi oleh OS. User thread tidak direcognize oleh level thread, sedangkan kernel thread tidak. User thread juga lebih mudah untuk diimplementasi dibandingkan dengan kernel thread.
- Multithreading Models
Multithreading models memiliki beberapa tipe, antara lain many to many model dimana ada banyak user thread ke kernel thread dengan jumlah yang banyak atau lebih sedikit dari user thread, ada juga one to one model dimana terdapat satu map dari user level thread ke kernel level thread, lalu ada juga many to one model dimana terdapat maps many user level thread ke satu kernel level thread.
- Adventages Thread over Process
Terdapat beberapa keuntungan dari thread jika dibandingkan dengan process, antara lain adalah responsiveness, faster context switch, effective utilization of multiprocessor system, resource sharing, easier communication, dan enhanced throughput of the system.
- fork()
Fork system dipanggil untuk membuat new process, yang disebut child process. Setelah new child process terbentuk, kedua process (parent dan child) akan menjalankan intsruksi selanjutnya setelah fork() system call. Terdapat 3 value yang berbeda yang direturn fork() yaitu negative value dimana child creationnya unsuccess, zero dimana dia return ke child process yang baru dibuat, dan terakhir ada positive value dimana akan direturn ke parentnya.
- execlp()
execlp() akan menduplikasi actions dari shell dalam mencari file yang executable file jika file yang spesifik tersebut tidak memiliki slash (/) character. Search path adalah suatu path yang dispesifikasikan dalam environment sebagai path variable.
- wait()
wait() akan memblock calling process sampai salah satu child processesnya keluar atau menerima sebuah signal. Setelah child processnya sudah berakhir, parent processnya melanjutkan execution setelah wait system call instruction.
- PID
PID adalah process identifier, dimana PID didefinisikan sebagai angka yang unik yang dapat mengidentifikasi setiap process yang sedang berjalan dalam operating system seperti Linux, Unix, macOS, dan Microsoft Windows.
- Data Parallelism vs Task Parallelism
Data parallelism berarti concurrent execution dari task yang sama dalam setiap multiple computing core. Sedangkan untuk task parallelism, task parallelism berarti concurrent execution dari beberapa task yang berbeda dalam setiap multiple computing core.