Top 10 List of Week 06

  1. Multi-threading
    Thread adalah sebuah flow eksekusi melalui code process dengan adanya program counter yang menjaga alur eksekusi untuk instruksi selanjutnya, system registers yang menghold variables yang sedang bekerja, dan sebuah stack yang berisi history dari eksekusi. Di web ini dijelaskan mengenai perbedaan antara process dan thread yang disajikan dengan table dan membandingkan secara apple to apple. Mereka juga memberikan penjelasan dari keuntungan dari adanya Thread, tipe thread berdasarkan cara mengimplementasikannya dengan masing-masing kelebihan dan kekurangan thread tersebut. Perbedaan dari kedua tipe thread tersebut juga dijelaskan di web tersebut. Web ini menjelaskan menggunakan sebuah ilustrasi gambar juga sehingga kita lebih terbayang dalam memahaminya.

  2. Concurrency in OS
    Concurrency adalah eksekusi dari multiple instruction yang dilakukan dalam waktu yang sama dan membantu OS disaat terdapat beberapa process threads yang berjalan secara parallel. Web GFG ini penjelasannya lengkap dan jelas namun singkat. Mereka juga menyertakan seperti principles dari Concurrency, masalah pada Concurrency, Kelebihan, Kekurangan dan macam-macam isu dari Concurrency.

  3. Processes in Operating System
    Process dapat kita artikan sebagai sebuah eksekusi program. Sebagai contoh, ketika kita membuat program dan run program tersebut maka itu akan menjadi sebuah process yang menjalankan seluruh tasks yang ada di program tersebut. Ketika sebuah program sudah diload ke memory, maka itu akan menjadi process dan dibagi menjadi 4 sections yaitu stack, heap, text, dan data. Ketika process sedang berjalan, kita dapat melewati beberapa state-state berbeda seperti start, ready, running, waiting, dan terminated or exit. Setiap process pasti di maintain oleh OS menggunakan struktur data yaitu Process Control Block (PCB), tiap informasi yang disimpan di PCB digunakan untuk manjaga alur process. Semua yang saya mention sebelumnya dijelaskan lebih lanjut di link tersebut secara singkat sekali dan mereka juga menyertakan gambaran dari semua yang telah saya sebutkan.

  4. I/O Scheduling
    OS mengelola I/O untuk meningkatkan reliability dan performance dari suatu system. Sebuah computer system berisi CPUs dan lebih dari 1 device controller yang terhubung ke bus channel yang disebut sebagai device driver. Device driver menyediakan interface ke I/O untuk bisa berkomunikasi dan menyediakan access ke shared memory. Scheduling digunakan untuk mengefisiensikan penggunaan computer resource dan menghindari dari deadlock dan membantu untuk melayani semua process yang sedang mengantri. Scheduling memiliki beberapa algoritma yang masing-masing memiliki kelebihannya masing-masing. Untuk penjelasan lebih lanjut ada di web tersebut dan mereka menyediakan pembahasan mengenai materi-materi terkait scheduling I/O menggunakan hyperlink.

  5. Multiprocessing vs Multithreading
    Multiprocessing system memiliki lebih dari 2 processor untuk meningkatkan kecepatan computing sedangkan multithreading adalah sebuah teknik eksekusi program yang memungkinkan suatu process punya multiple code segments seperti thread. Di web ini dijelaskan secara lengkap yaitu karakteristik masing-masing, tabel perbedaan antara keduanya berdasarkan parameter tertentu sehingga bisa dibilang apple to apple perbandingannya dan masing-masing kelebihan dan kekurangan dari keduanya.

  6. Interprocess communication
    IPC adalah sebuah mekanisme dari dua atau lebih process komunikasi satu sama lain menggunakan message passing mechanism tanpa menggunakan shared addressed space. Maknanya adalah bagaimana 2 process berkomunikasi satu sama lain. Penjelasannya sangat bagus menurut saya dan menurut saya penjelasannya lengkap.

  7. Concurrency Vs Parallelism
    Link tersebut menjelaskan mengenai Concurrency dan Parallelism secara singkat dengan menyertakan sedikit dari gambarannya. Mereka juga menyediakan perbedaan dari keduanya dalam bentuk table secara apple to apple.

  8. Threading Issues in OS
    Terdapat beberapa isu yang perlu dipertimbangkan dalam multithreading yaitu seperti system calls, thread cancellation, signal handling, thread pool, dan thread specific data. Dari semua web yang saya cari kurang lebih isi nya sama namun menurut saya web ini lebih informatif dan lengkap dalam menyampaikannya

  9. Independent and Cooperating Processes
    Setelah saya mencari mengenai Independent dan Cooperating Process, menurut saya web ini lumayan menarik untuk dibaca. Walaupun terkesan simple web nya, namun menurut saya web ini menjelaskan secara jelas dan informatif. Mereka juga menjelaskannya dengan menyertakan sebuah contoh agar kita lebih terbayang.

  10. Fork
    Setelah mengerjakan Quiz W06, saya jadi lebih penasaran terhadap apa itu fork() dan kegunaannya untuk apa. Menurut saya web ini lengkap, dia menjelaskan keterhubungannya terhadap process dan menjelaskannya dengan contoh-contoh dan menyertakan gambar-gambar juga yang membantu kita agar lebih terbayang.