os211


Top 10 List of Week 08

  1. What is CPU Scheduling?
    CPU scheduling is a process which allows one process to use the CPU while the execution of another process is on hold(in waiting state) due to unavailability of any resource like I/O etc, thereby making full use of CPU. The aim of CPU scheduling is to make the system efficient, fast and fair.

  2. Why do we need Scheduling?
    suatu typical process melibatkan baik I/O time maupun CPU time. Dalam sistem uni programming seperti MS-DOS, waktu yang dihabiskan untuk menunggu I/O terbuang percuma dan CPU kosong selama waktu tersebut. Dalam sistem multi programming, satu proses dapat menggunakan CPU sementara proses lainnya menunggu I/O. Ini hanya dapat dilakukan dengan process scheduling.

  3. Why do we need Scheduling?
    Scheduling Algorithms dapat dievaluasi berdasarkan lima kriteria, yaitu:
    • CPU Usage
    • Throughput
    • Turnaround Time
    • Waiting Time
    • Response Time
  4. CPU Scheduling: Dispatcher
    Dispatcher adalah modul yang memberikan kontrol CPU ke proses yang dipilih oleh short-term scheduler. Fungsi ini meliputi:
    • Switching Context
    • Switching to user mode
    • Jump ke lokasi yang tepat di program pengguna untuk restart program dari tempat dimana ia berada terakhir kali. Dispatcher harus bisa secepat mungkin, mengingat bahwa dispatcher dipanggil setiap peralihan proses. Waktu yang dibutuhkan oleh petugas operator untuk menghentikan dan memulai proses lain dikenal sebagai Dispatch Latency.
  5. First-come, First-served
    Layaknya mengantri pada restoran, pada Scheduling, terdapat algoritma yang bernama First-come, First-serve dimana algoritma ini merupakan algoritma paling sederhana, tetapi algoritma ini dapat menyebabkan short processes menunggu proses yang sangat lama.

  6. Preemptive Scheduling vs Non-preemptive Scheduling
    Preemptive Scheduling digunakan ketika suatu proses beralih dari running state ke ready state atau dari waiting state ke ready state. Sedangkan Non-preemptive Scheduling digunakan ketika suatu proses berhenti atau proses beralih dari running state ke waiting state. Disini dijelaskan juga perbedaan yang lebih spesifik dari keduanya.

  7. Symmetric vs Asymmetric Multiprocessing
    Symmetric multiprocessing adalah penggunaan dua atau lebih self-scheduling processors yang berbagi ruang memori yang sama. Setiap prosesor memiliki akses I/O dan perangkat memori. Symmetric Multiprocessing menerapkan banyak CPU untuk menyelesaikan tasks secara paralel dan lebih cepat. Sedang Asymmetric Multiprocessing adalah penggunaan dua atau lebih processor yang ditangani oleh one master processor. Semua CPU saling berhubungan, tetapi tidak self-scheduling. Asymmetric Multiprocessing digunakan untuk schedule specific task ke CPU beradasarkan prioritas dan importance of task.

  8. Earliest-Deadline-First Scheduling
    Earliest-Deadline-First (EDF) Scheduling menetapkan prioritas secara dinamis sesuai dengan deadline. Semakin cepat deadline, semakin tinggi prioritasnya, begitupula sebaliknya. Dalam aturan EDF, ketika suatu proses dapat dijalankan, maka ia harus mengumumkan deadline requirements kepada system. Prioritas mungkin harus disesuaikan untuk mencerminkan tenggat waktu dari proses yang baru berjalan. Perhatikan bagaimana hal ini berbeda dari rate-monotonic scheduling, dimana priorities telah fix.

  9. Load Balancing
    Load balancing didefinisikan sebagai suatu method distribusi yang efisien dari suatu jaringan atau lalu lintas aplikasi disebuah ladang server. Setiap load balancer berada di antara perangkat klien dan server backend, menerima dan kemudian mendistribusikan permintaan masuk ke server yang tersedia yang mampu memenuhinya. Load balancing pada multicore systems melakukan equalize loads diantara CPU cores, meskipun migrasi thread antar core untuk menyeimbangkan beban dapat membuat konten cache tidak valid dan oleh karena itu dapat meningkatkan memory access times.

  10. Scheduling in Real-Time Systems
    Sebuah real-time scheduling system terdiri dari scheduler, jam, dan elemen perangkat keras pemrosesan. Dalam sistem real-time, proses atau tasks memiliki schedulability; tasks diterima oleh real-time system dan diselesaikan sebagaimana ditentukan oleh task deadline tergantung pada karakteristik scheduling algorithm.