good
Top 10 List of Week 06
Alfina Megasiwi

Top 10 List of Week 06

  1. Multitasking vs Multithreading vs Multiprocessing

    Multitasking pada single core CPU : OS membagi CPU time untuk tiap program dan eksekusinya dilakukan secara bergantian (dengan cepat) sehingga terlihat seperti dijalankan bersama-sama. Multithreading pada single core CPU : misal suatu program terdiri dari beberapa part, maka eksekusi threads-nya akan dilakukan secara bergantian (dengan cepat) sehingga terlihat seperti menghasilkan dua hal dalam satu waktu. Multiprocessing : Apabila suatu komputer memiliki lebih dari satu cpu core, komputer tersebut dapat menjalankan programs & threads dalam suatu waktu secara real (bukan switching). Video ini akan membahas lebih lanjut mengenai hal-hal tersebut beserta eksperimennya.

  2. Multitasking the Android Way

    Untuk lebih memahami multitasking, kita dapat mempelajari konsepnya pada android. Ketika user meninggalkan suatu aplikasi, processnya akan tetap disimpan pada background hingga user menggunakannya aplikasi itu kembali (ditampilkan pada foreground). Namun, karena kapasitas memori terbatas, android memiliki aturan untuk menentukan process mana yang harus di-keep dan di-dropped. Web ini akan membahas kapan suatu process harus berhenti, desain dari multitasking android, dan services.

  3. How web browsers use Processes and Threads

    Implementasi dari process dan threads dapat kita jumpai pada web browsers. Chrome dan Firefox dalam hal ini memiliki multiprocess architecture yang tiap process-nya multithreaded. Pada Chrome, 10 tab = 10 process sedangkan pada Firefox, 4 tab pertama menggunakan 4 process dan tab selanjutnya menggunakan threads. Web ini akan membahas mengenai cara Chrome dan Firefox menggunakan processes dan threads serta comparisonnya (beserta ilustrasi).

  4. Parent, Child, Fork, Wait, Orphan, and Zombies Explained

    Basic process management dilakukan dengan sejumlah pemanggilan sistem yakni fork(), exec(), exit(), dan wait(). Process yang meng-invoke fork dinamakan parent dan hasilnya disebut child. Parent dan child dieksekusi pada program yang sama namun pada process yang berbeda. Web ini akan membahas lebih lanjut mengenai fork(), parent, child, orphan process (process yang parentnya terminated), wait (blocks caller hingga child process terminates), dan zombies process berikut ilustrasinya serta example programnya.

  5. Communicating between processes (using pipes)

    Pipe adalah media komunikasi antara dua atau lebih related/interrelated processes. Komunikasi ini dapat terjadi dalam satu process atau antara parent dan child processes. Komunikasi ini juga dapat dilakukan pada multi-level sebagai contoh komunikasi antara parent, child, dan grandchild. Komunikasi dapat terjadi apabila suatu process melakukan write ke pipe dan process lain melakukan read di pipe. Web ini akan membahas mengenai pipe dan two-way communication menggunakan pipe serta step-step pembuatan program dan algoritmanya.

  6. Major issues with Multi-threaded Programs

    Berikut adalah masalah-masalah yang terjadi pada multithreaded program : meningkatkan kompleksitas, complication yang disebabkan oleh concurrency (sulit untuk menghandle concurrency pada multithreaded processes), sulit untuk mengidentifikasi error, sulit melakukan testing, hasil yang unpredictable (sebab bagian-bagian pada program dijalankan secara bersamaan). Web ini akan membahas lebih lanjut mengenai problem-problem apa saja yang sering terjadi pada multithreaded programs.

  7. Concurrency, Parallelism, Async, and Sync - Related?

    Concurrency berarti menjalankan beberapa task secara bersamaan namun tidak harus secara bersama-sama. Dalam single core environment, concurrency dapat terjadi melalui proses yang dinamakan context-switching, sedangkan pada multi-core environment, concurrency dapat terjadi dengan parallelism. Parallelism berarti dua atau lebih task dikerjakan secara bersama-sama. Web ini akan membahas secara lanjut mengenai concurrency dan parallelism, synchronous dan asynchronous pada single & multithreaded environment serta hubungannya dengan concurrency dan parallelism disertai dengan ilustrasinya.

  8. Multithreading Models and Hyperthreading

    Multithreading models ialah tipe-tipe relationships di antara kernel threads dan user threads. Terdapat tiga cara untuk membuat relationships ini yaitu many-to-one (maps many user-level threads to one kernel threads), one-to-one (maps each user thread to kernel thread), dan many-to-many (multiplexes many user-level threads to a smaller or equal number of kernel threads). SMT (Hyperthreading) : memungkinkan processor untuk mengeksekusi dua threads secara bersamaan. Video ini akan membahas secara lengkap mengenai model-model tersebut dan apa itu hyperthreading.

  9. Fork-Join Concept

    Join call akan meng-combine dua concurrent process menjadi satu. Join call akan dipanggil oleh parent dan juga child process. Child akan memanggil join() setelah process selesai dieksekusi dan parent akan menunggu hingga child melakukan join (sebab join() menginformasikan pada parent bahwa operasi child telah selesai). Terdapat dua kemungkinan join : Child melakukan join terlebih dahulu, lalu parent akan melakukan join tanpa menunggu proses apapun atau parent melakukan join terlebih dahulu lalu menunggu child melakukan join dan lanjut setelahnya. Web ini akan menjelaskan konsep mengenai fork join dan contoh implementasi berikut dengan ilustrasinya.

  10. What is implicit threading in programming?

    Dengan adanya perkembangan dari multicore processing, aplikasi yang mengandung ratusan hingga ribuan threads mulai bermunculan. Hal ini membuat programmers kesulitan dalam mendesain aplikasi tersebut (kesulitan yang dimaksud berkaitan dengan program correctness). Salah satu cara mengatasinya ialah dengan melakukan transfer creation dan management threading dari application developers ke compilers dan runtime libraries. Hal ini disebut sebagai implicit threading. Web ini membahas mengenai apa itu implicit threading dan fungsinya, thread pools, serta benefit dari thread pools.


© 2021-2021 --- Alfina Megasiwi --- File Revision: 28/05/2021 (1).