Back to IF2130 Sistem Operasi

Manajemen Proses dan Konkurensi Awal

Questions/Cues

  • Apa itu multiprogramming?

  • Mengapa multiprogramming penting?

  • Apa itu timesharing/multitasking?

  • Apa itu context switch?

  • Apa itu interupsi (interrupt)?

  • Beda interupsi hardware vs software?

  • Bagaimana mekanisme interupsi?

  • Beda I/O sinkron vs asinkron?

Reference Points

  • Slides 27-35, IF2130-01-2025-OSIntro.pdf

Multiprogramming

Multiprogramming adalah teknik di mana beberapa program (jobs) disimpan di memori secara bersamaan. Tujuannya adalah untuk memaksimalkan utilitas CPU.

  • Cara Kerja: Komputer modern jauh lebih cepat dalam melakukan komputasi (oleh CPU) daripada melakukan operasi I/O (membaca dari disk atau jaringan). Dalam sistem non-multiprogramming, jika sebuah program menunggu I/O selesai, CPU akan menganggur (idle). Multiprogramming mengatasi ini dengan cara: ketika satu program harus menunggu I/O, sistem operasi akan mengalihkan CPU untuk mengerjakan program lain yang sudah siap di memori.

  • Analogi: Bayangkan seorang koki (CPU) yang harus memasak beberapa hidangan (program). Jika satu hidangan perlu dipanggang di oven selama 15 menit (operasi I/O), koki tidak akan diam menunggu. Sebaliknya, ia akan mulai memotong sayuran untuk hidangan berikutnya. Ini memastikan koki selalu produktif.

Timesharing (Multitasking)

Timesharing adalah evolusi dari multiprogramming yang dirancang untuk sistem interaktif. Tujuannya bukan hanya efisiensi, tetapi juga keadilan (fairness) dan responsivitas.

  • Cara Kerja: OS akan membagi waktu CPU menjadi potongan-potongan kecil yang disebut time slice atau quantum. CPU akan beralih di antara semua proses yang ada di memori dengan sangat cepat, memberikan setiap proses jatah waktu eksekusi.

  • Ilusi Konkurensi: Karena peralihan ini terjadi puluhan atau ratusan kali per detik, pengguna mendapatkan ilusi bahwa semua program mereka berjalan secara bersamaan (concurrently).

  • Context Switch: Proses menyimpan state (konteks) dari sebuah proses yang sedang dihentikan dan memuat state dari proses yang akan dijalankan berikutnya disebut context switch. Konteks ini meliputi informasi vital seperti nilai register CPU, program counter, dan status memori. Context switch adalah overhead karena tidak ada pekerjaan berguna yang dilakukan selama proses peralihan itu sendiri.

Interupsi (Interrupt)

Interupsi adalah sinyal yang dikirim ke CPU untuk memberitahukan adanya suatu kejadian (event) yang memerlukan perhatian segera. Ini adalah mekanisme fundamental yang memungkinkan OS mengambil alih kendali dari program yang sedang berjalan dan merespons berbagai kejadian.

  • Hardware Interrupt: Dihasilkan oleh perangkat keras. Contoh: mouse digerakkan, tombol keyboard ditekan, atau sebuah perangkat I/O telah selesai mentransfer data.

  • Software Interrupt (Trap/Exception): Dihasilkan oleh perangkat lunak. Ini terjadi ketika sebuah program menjalankan instruksi khusus yang disebut system call untuk meminta layanan dari OS (misalnya, membaca file), atau ketika terjadi error (misalnya, pembagian dengan nol atau akses memori ilegal).

Mekanisme Interupsi Bekerja

  1. Sebuah event (hardware atau software) memicu interupsi.

  2. CPU segera menghentikan eksekusi program saat ini.

  3. CPU menyimpan konteks (state) dari program yang dihentikan tersebut.

  4. CPU melompat ke kode khusus di dalam OS yang disebut Interrupt Handler atau Interrupt Service Routine.

  5. OS menjalankan handler untuk menangani event tersebut.

  6. Setelah selesai, OS akan memulihkan konteks program yang tadi dihentikan dan melanjutkannya, atau melakukan context switch ke program lain.

I/O Sinkron vs. Asinkron

Ini adalah dua mode bagaimana sebuah proses berinteraksi dengan operasi I/O.

  • I/O Sinkron (Synchronous): Setelah sebuah proses meminta operasi I/O, proses tersebut akan berhenti dan menunggu (diblokir) hingga operasi I/O tersebut selesai sepenuhnya. Kontrol baru dikembalikan ke proses setelah data siap. Ini lebih sederhana untuk diprogram.

  • I/O Asinkron (Asynchronous): Setelah meminta I/O, kontrol langsung dikembalikan ke proses tanpa harus menunggu. Proses dapat melanjutkan pekerjaannya yang lain. Ketika operasi I/O selesai, OS akan memberitahu proses tersebut (misalnya, melalui interupsi). Ini memungkinkan komputasi dan I/O berjalan tumpang tindih, sehingga meningkatkan efisiensi dan throughput sistem.

Summary

Sistem operasi modern mencapai konkurensi melalui multiprogramming, yang menjaga agar CPU tetap sibuk dengan menjalankan beberapa program di memori. Untuk interaktivitas, timesharing digunakan untuk beralih antar proses dengan cepat (melalui context switch), menciptakan ilusi eksekusi simultan. Mekanisme fundamental yang memungkinkan peralihan kontrol ini adalah interupsi—sinyal dari hardware atau software—yang memaksa CPU untuk menjalankan kode OS. Perilaku proses saat meminta layanan I/O bisa bersifat sinkron (menunggu hingga selesai) atau asinkron (melanjutkan eksekusi sambil menunggu), yang berdampak besar pada efisiensi sistem.