Sistem Operasi

Dekripsi Proses dan Model Proses

1. Bagaimana proses direpresentasikan & dikendalikan oleh SO

  • Status proses (process state) yang mencirikan perilaku dari proses.
  • Struktur data yang digunakan untuk mengelola (manage) proses
  •  Cara SO menggunakan struktur data ini untuk mengendalikan eksekusi proses.Contoh: pengelolaan proses pada UNIX SVR4.

2.Syarat Sistem Operasi

 Tugas Fundamental: Manajemen Proses

 Sistem Operasi harus Mengeksekusi banyak proses secara bergantian

 Mengalokasikan sumber daya (resource) bagi proses & melindungi resource setiap proses dari proses lain,

 Membolehkan proses untuk berbagi (share) & bertukar informasi,

 Memungkinkan sinkronisasi antar proses.

3.SO Mengatur Eksekusi

  • Sumber daya dibuat tersedia untuk banyak aplikasi
  • Processor di-switch antar banyak aplikasi
  • Processor & perangkat I/O dapat digunakan secara efisien

4.Proses

  • Suatu program dalam (yang sedang di) eksekusi
  • Instance dari program yang berjalan pada suatu komputer
  • Entitas yang dapat dilewatkan ke & dieksekusi pada suatu processor
  • Suatu unit aktifitas yang dicirikan oleh eksekusi serangkaian instruksi, current state (status terkini) & himpunan instruksi sistem terkait (associated).

5.Trace dari Proses

  • Perilaku dari suatu proses diperlihatkan oleh listing deretan instruksi yang dieksekusi
  • List ini dinamakan Trace
  • Dispatcher merupakan suatu program kecil yang men-switch processor dari satu proses ke proses lainnya.

6.Eksekusi Proses

Trace: Sudut Pandang program

  • Setiap proses berjalan menuju selesai

1

Trace : Sudut Pandang Processor

2

Model Proses Dua Keadaan

  • Proses dapat berada pada salah satu dari dua status

–running

– Not-running

3

Apabila system operasi membuat sebuah proses baru maka sisitem operasi akan memasukkan proses tersebut ke system dalam keadaan not-running. Prose keluar, diketahui system operasi, dan menunggu kesempatan untuk melakukan eksekusi.

 

Dan seterusnya … proses dipindahkan oleh dispatcher dari SO ke CPU kemudian kembali ke antrian (Queue) sampai tugas tersebut selesai (lengkap).

Diagram antrian proses dengan 2-status:

Hanya digunakan sebuah antrian

di dalam antrian terdapat berbagai macam status proses (siap running terblok menunggu I/O berbagai macam status proses (siap running, ter-blok, menunggu I/O, dll)

Kelemahan:

  • Pemilihan proses selanjutnya yang akan dieksekusi tidak cukup hanya dengan algoritma FIFO
  • Dispatcher harus mencari proses yang siap running diantara proses-proses yang lain yang terblok karena sedang menunggu hasil I/O
  • Butuh algoritma yang lebih rumit

Pembuatan dan Penghentian Proses

Pembuatan Proses

  • SO membangun suatu struktur data untuk mengelola proses tersebut
  • Biasanya, semua proses dibuat oleh SO.Tetapi SO juga membolehkan proses yang sedang berjalan membuat proses lain
  • Aksi ini disubut process spawning

– Proses induk (parent) adalah original,membuat proses anak, ia juga proses

– Proses anak (child) merupakan proses baru

Penghentian Proses

  • Harus ada cara yang dapat menandakan bahwa suatu proses selesai.
  • Indikasi ini dapat berupa

– Instruksi HALT membangkitkan suatu interupsi alert untuk SO

– Aksi pengguna (seperti log off & keluar dari suatu aplikasi)

– Suatu kesalahan atau error

– Dihentikan oleh proses induk

Model Lima Keadaan

Lima keadaan di dalam diagram ini adalah :

  • Running (berjalan) : Proses yang dieksekusi.
  • Ready (siap) : Suatu proses yg disiapkan untuk melakukan eksekusi bila ada kesempatan.
  • Blocked (diblokir) : Suatu proses yg tidak dapat mengeksekusi sampai beberapa event terjadi, seperti misalnya selesainya operasi I/O.
  • New (baru) : Suatu proses yg baru dibuat tetapi belum diizinkan masuk ke pool proses-proses yg dapat dieksekusi oleh system operasi.
  • Exit (keluar) : Suatu proses yg telah di bebaskan dari pool proses-proses yg dapat dieksekusi oleh system operasi, baik karena dihentikan maupun dibatalkan dengan alasan tertentu.

4

Pada saat sebuah proses diizinkan masuk ke system, proses tersebut ditaruh di antrian Ready.Pada saat system operasi memilih proses lainnya berjalan, maka system operasime milih salah satu proses yg berada di dalam antrian Ready. Apabila tidak terdapat prioritas, pemilihan ini akan menjadi antrian FIFO yg sederhana. Pada saat proses yg sedang berjalan dihapuskan dari eksekusi, maka prose situ dihentikan atau ditempatkan di antrian Ready atau antrian Blocked, bergantung pada keadaannya.dan apabila suatu event terjadi, maka seluruh proses yg berada di dalam natrian blocked yg sedang menunggu event itu akan dipindahkan ke antrian Ready

Perpindahan Status untuk Proses 5-Status

  • Null -New:  Pembentukan proses baru
  • New-Ready:-Penambahan proses baru yang siap dieksekusi,Proses baru telah ‘diakui’ oleh sistem operasi,Proses dipindah dari harddisk ke memori
  • Ready-Running: Satu proses terpilih dieksekusi
  • Exit-Running :Proses telah selesai atau dibatalkan
  • Running-Ready: Proses yang sedang running dipaksa berhenti (preempted)–Penyebab: Waktu habis (time out ),Datang proses berprioritas lebih tinggi
  • Running-Blocked:Proses yang sedang running terpaksa berhenti .

Penyebab:

-Sedang menunggu file yang sedang diakses oleh proses lain

-Sedang menunggu proses di I/O selesai

-Butuh memori lebih besar

-Sedang menunggu data hasil eksekusi proses lain

-Sedang menunggu proses yang akan diajak berkomunikasi tetapi sedang sibuk

  • Blocked-Ready: Proses terbebas dari blocked setelah event yang ditunggu telah tersedia
  • Ready-Exit: Proses yang siap dieksekusi dipaksa keluar (terminasi)

Penyebab:

-Proses anak yang ‘dibunuh’ oleh proses induk

-Dihentikan oleh user

  • Blocked-Exit:

-Proses yang terblok diterminasi

-Penyebab sama dengan penyebab Ready-Exit

5

Proses-proses yg Ditunda

  • Processor lebih cepat daripada I/O sehingga semua proses dapat menunggu I/O

– Swap : pemindahan proses dari memory  ke disk untuk membebaskan lebih banyak memory & menugaskan processor pada lebih banyak proses

.• Status Blocked berubah menjadi Suspend ketika proses dialihkan ke disk.

Eksekusi Proses dengan Dua Antrian

Cara kerja:

  • Prosesbaru-Readyqueue
  • Jika tidak ada proses yang running-langsung dieksekusi
  • Proses yang sedang running selesai/ter-blok –Pilih satu proses diread y queue untuk dieksekusi
  • Jika selesai-keluar
  • Jika timeout-masuk ready queue
  • Jika perlu resource lain—masuk blocked queue

Kelemahan Sistem menggunakan 2 Antrian

Jika proses yang ter-blok sangat banyak dan masing masing menunggu event yang berbeda-bedaJika datang suatu event, maka OS harus menyeleksi proses yang mana yang sedang membutuhkan event yang datang

  • butuh waktu
  • butuh algoritma lebih rumit

Eksekusi Proses dengan Banyak Antrian

Cara kerja:

  • Sama seperti pada eksekusi proses dengan dua antrian
  • Bedanya untuk setiap event yang berbeda disediakan sebuah antrian tersendiri
  • Kelebihan:
  • Jika suatu event yang ditunggu telah tiba

pemilihan proses yang membutuhkan event tersebut lebih mudah dan cepat (algoritmanya lebih sederhana)

  • Pengembangan lebih lanjut:
  • Jika terdapat proses dengan prioritas berbeda ->untuk setiap prioritas disediakan ready queue masing-masing

Satu Status Suspend

6Muncul 4 keadaan:

Ready : Proses berada di dalam memory utama dan bias dieksekusi

  • Blocked : Proses berada di dalam memory utama dan sedang menunggu event.
  • Blocked/Suspend : Proses berada di dalam memory sekunder dan sedang menunggu event.
  • Ready/Suspend : Proses berada di dalam memory sekunder namun dapat dieksekusi setelah dimuatkan ke dalam memory utama.

Dua Status Suspend

7

Garis putus-putus menandakan suatu transisi namun tidak diperlukan.Transisi-transisi yg penting adalah sbb :

  • Blocked  Blocked,Suspend : Apabila tidak terdapat proses dalam keadaan siap, maka sebuah prosesyg di blokir di swap-out untuk memberi ruang proses-proses lainnya yg tidak diblokir.
  • Blocked, Suspend  Ready, Suspend : Suatu proses di dalam keadaan Blocked, suspend dipindahkan ke keadaan Ready, suspend apabila event yg ditunggunya terjadi.
  • Ready, Suspend  Ready : Apabila di dalam memory utama tidak ada proses yg siap, maka system operasi harus membawa sebuah proses ke dalam memoryutama untuk melanjutkan eksekusi.
  • ReadyReady, suspend : Sistem operasi akan lebih menyukaimenunda prosesyg diblokir daripada menunda proses yg sudah siap, karena proses yg siap dapat segera dieksekusi, sedangkan proses yg diblokir memerlukan ruang memory dantidak dapat dieksekusi

Alasan Suspensi Proses

  • Memori telah dipenuhi oleh proses atau bagian proses yang berada pada status blocked akibat sedang menunggu suatu event (I/O, memori, dll), sehingga tidak ada proses yang siap dieksekusi, maka:

–Semua proses menunggu

–Prosesor menganggur

  • Semakin lama ukuran program semakin besar, maka:

–Memori yang dibutuhkan semakin besar

–Jumlah program yang dapat dieksekusi semakin sedikit

  • Tambah memori ->mahal

–Lakukan swapping (pindahkan proses yang berada pada status blocked dari memori ke harddisk)

  • Proses berubah status dari blocked menjadi suspend
  • Memori yang kosong bertambah besar:

–Dapat dimanfaatkan oleh proses yang butuh memori lebih besar, atau

–Dapat ditambahkan proses baru ke memori atau

–Pindahkan proses lain yang ter-suspend dan siap running dari harddisk ke memori