os211

Operating Systems 2021 - 1

Home | Week1 | Week2 | Week3 | Week4 | Week5 | Week6 | Week7 | Week8 | Week9 | Week10 | Key | Rank | Log

Top 10 List of Week 06

1. Process Scheduling

Untuk memaksimalkan penggunaan CPU, perlu cara untuk menentukan process mana yang dijalankan dari beberapa process yang ada dalam status ready. Dalam melakukannya terdapat schedulers yang terbagi menjadi long term, medium term, dan short term scheduler sebagaimana disampaikan di page ini.

2. Background and Foreground Process

Konsep proses muncul pada sistem operasi modern yang merujuk pada bagian program yang sedang dijalankan. Page ini menjelaskan mengenai foreground dan background process pada Linux. Pengertian foreground dan background process mungkin dapat sedikit berbeda, misalnya dengan definisi pada hierarchy of process pada Android seperti di buku referensi Silberschatz.

3. Fork vs Thread

Fork adalah pembuatan process baru yang menyalin process lama sedangkan thread adalah light-weight process. Threads dalam suatu process memiliki data yang sama. Thread dibuat untuk menghemat waktu dan resource ketika hal yang dilakukan beberapa process sama sehingga mengurangi overhead dibandingkan ketika harus membuat process baru sebagaimana dibahas di buku referensi Silberschatz. Blog ini berisi poin-poin penting mengenai perbedaan keduanya.

4. fork, exec, wait, exit

Keempat system call ini berkaitan dengan materi minggu ini mengenai process dan threading. Blog ini membahas masing-masing system call dan ada juga sedikit contoh codenya.

5. Fork Bomb

Sedikit intermezzo, fork bomb, sebuah program yang melakukan fork tak berhingga kali sehingga membuat sistem kehabisan memori.

6. Factorial Calculation by Forking

Contoh dari penggunaan Linux fork dalam program C untuk melakukan kalkulasi faktorial sederhana.

7. Orphan vs Zombie But It’s Not A Game Title

Dalam mengoperasikan process terdapat istilah zombie dan orphan process. Zombie process adalah ketika child process telah dihentikan namun parent process-nya belum memanggil system call wait(). Dengan begitu, setiap child process pada dasarnya menjadi zombie untuk sesaat. Jika zombie process adalah ketika parent belum memanggil wait(), orphan process adalah ketika parent tidak memanggil wait() sehingga child process tertinggal.

8. Concurrency vs Parallelism

Keduanya merupakan konsep yang mungkin sering tertukar satu sama lain karena keterkaitannya, namun keduanya berbeda. Concurrency adalah melakukan banyak hal secara simultan (overlapping) dan terdapat pembagian task menjadi beberapa subtask sedangkan parallelism adalah menjalankan banyak hal dalam rentang waktu yang sama.

9. Inter Process Communication

Interprocess communication (IPC) adalah mekanisme pertukaran data pada process yang tidak independen. Beberapa mekanisme IPC terangkum dalam blog ini.

10. Multithreading Models

Multithreading models menggambarkan hubungan antara user threads dengan kernel threads berdasarkan banyaknya thread yang terbagi menjadi model many-to-one, one-to-one, many-to-many, dan two-level model (many-to-many dengan variasi sebuah user thread terkait sebuah kernel thread). Blog ini menjelaskan model-model tersebut.

Repo

Here is the Github Repo