Pada gambar dibawah ini menunjukkan tahapan pengalihan proses P0 ke P1 dan kembali ke P0. Tahapan pengalihan proses meliputi langkah-langkah berikut :

  1. Sistem operasi menyimpan (backup) konteks prosesor, yaitu isi seluruh register prosesor, prosesor yang sedang running (P0) ke PCB proses tersebut (PCB0)
  2. Sistem operasi kemudian memperbarui isi PCB proses tersebut (PCB0), termasuk mengubah status eksekusinya ke status blocked ataupun ready.
  3. Selanjutnya, PCB (PCB0) dipindahkan ke antrian yang sesuai, yaitu antrian ready jika status proses beralih ke status ready ataupun ke salah satu antrian I/O jika proses beralih ke status blocked.
  4. Setelah itu , sistem operasi melakukan dispatch ke proses lainnya P1, dengan mempebarui PCB proses baru (P1), termasuk mengubah status eksekusinya menjadi running.
  5. Kemudian sistem operasi memperbarui isi struktur data manajemen memori yang berkaitan dengan proses baru (P1)
  6. Terkahir, sistem operasi akan menyalin (restore) konteks prosesor yang tersimpan di PCB proses baru (PCB1) ke prosesor dan mulai mengeksekusi kode instruksi proses P1.

Jika jatah eksekusi proses P1 telah habis dan tidak ada proses lain dalam sistem selain P0 maka prosesor akan dialihkan kembali ke P0 mengikuti langkah-langkah diatas. Langkah yang paling penting adalah penyimpanan konteks prosesor P1 ke PCB1 dan menyalinkan kembali (restore) konteks prosesor P0, yang tersimpan di PCB0, ke prosesor. Mekanisme backup dan restore konteks prosesor memungkinkan suatu proses dapat melanjutkan eksekusinya dari titik terkhir sebelum terjadi interupsi ataupun blocking.

Proses Pengalihan Sistem Operasi
Proses Pengalihan Sistem Operasi

Pengalihan Konteks Eksekusi (Context Switching)

Terjadinya interupsi tidak selalu memicu terjadinya pengalihan eksekusi proses (process switching). sebagai contoh adalah ketika suatu proses sedang berjalan dan menunggu inputan dari keyboard. Ketika pengguna memasukkan data lewat keyboard maka akan terjadi interupsi yang mengakibatkan pengalihan konteks eksekusi, yaitu dari proses ke rutin penanganan interupsi (interrupt handler) keyboard. Setelah rutin interupsi selesai dijalankan maka eksekusi dialihkan kembali ke proses bersangkutan. Selama terjadinya pengalihan konteks eksekusi ini, status eksekusi proses tidak berubah.

Pengalihan konteks eksekusi (bukan pengalihan eksekusi proses) melakukan penyimpanan konteks prosesor ke stack, buka ke PCB. Setelah itu eksekusi berpindah ke rutin interupsi dan setelah selesai, register prosesor diperbaharui kembali dengan konteks prosesor yang dibaca dari stack, dan eksekusi proses yang terhenti dilanjutkan kembali. Pengalihan konteks eksekusi (context switching) melibatkan tahapan yang lebih pendek dibandingkan pengalihan eksekusi proses (process switching). Itu sebabnya pengalihan eksekusi antar rutin sistem operasi umumnya memakai mekanisme context switching, bukan process switching.