Sistem Operasi
Manajemen Proses
PROSES
Process: Sebuah program dalam eksekusi dari sebuah sistem operasi termasuk nilainya dari sistem program pusat , pendaftaran, dan variabel.
Unit terkecil
yang secara individu memiliki sumber daya-sumber daya dan dijadwalkan oleh
Sistem Operasi (SO)
Program adalah bersifat pasif kesatuan dalam disk (executable file), proses itu juga sebuah kesatuan yang aktif. (executable file loaded into memory)
Proses itu membutuhkan sebuah sumber untuk selesai menyelesaikan tugas seperti CPU time, memori, file, dan I/O device.
HAL HAL YANG BERKAITAN PROSES
Multiprogramming (Multitasking)
Multiprocessing
Distributed Processing
Multiprogramming
Multiprogramming adalah manajemen banyak proses di
satu pemroses.
Pada multiprogramming, pemakai memandang terdapat banyak
proses dijalankan bersamaan pada satu saat.
Proses yang dijalankan pada sistem multiprogramming bersifat
:
Saling tidak bergantung
Artinya proses tidak saling mempengaruhi satu sama lain.
Satu program pada satu saat
>Multiprogramming, adalah konsep dimana sebuah
program dapat terus berjalan sampai ia melakukan operasi yang membutuhkan waktu
untuk menunggu respon dari luar.
>Pseudoparallelism, adalah konsep eksekusi proses
yang dilakukan seolah-oleh berjalan secara paralel.
>Multiprocessing, adalah sebuah konsep pemrosesan
yang dilakukan secara serentak. Hal ini juga dapat merujuk pada sebuah sistem
yang didukung dan bekerja oleh lebih dari satu processor.
>Distributed Processing, adalah konsep yang mengerjakan semua proses pengolahan data secara bersamaan antara komputer pusat dengan beberapa sub-komputer melalui jaringan komunikasi.
Dalam
multiprogramming sistem melakukan interleave (saling melanjutkan)
Sehingga
seolah-olah proses beroperasi secara bersamaan.
Pemroses
mengeksekusi satu proses tiap saat dan secara cepat beralih ke proses lain
secara bergiliran
Karena
dilakukan dengan sangat cepat sehingga menimbulkan efek pseudoparallelism pada pemakai
Contoh
: MS Windows 98/NT/XP, OS/2, MAC System 7
Multiprogramming (1)
•
Kelemahan pada Sistem Batch Sederhana, yaitu
penggunaan utilitas processor yang seringkali dalam keadaan idle, pada saat
menunggu mekanisme dari I/O.
•
Ide : pada saat processor menunggu mekanisme
dari I/O, processor dapat melakukan eksekusi instruksi yang lain.
Multiprogramming (2)
Multiprogramming (3)
Multiprogramming (4)
Multiprogramming (5)
Multiprocessing
Multiprocessing adalah manajemen banyak proses pada
komputer multiprocessor (banyak pemroses).
Awalnya hanya terdapat pada komputer besar mainframe dan
minikomputer.
Dimaksudkan untuk peningkatan kinerja dan memberikan
kemampuan fault tolerant.
Contoh : Windows NT, UNIX, Linux.
DISTRIBUTED
PROCESSING
Manajemen banyak proses yang dieksekusi di
banyak sistem komputer yang tersebar (terdistribusi).
Contoh : MACH,
AMOEBA
PEMROSES
Kebutuhan utama
pengendalian proses oleh SO dapat dinyatakan dengan mengacu ke proses yaitu
Saling
melanjutkan (interleave)
Mengikuti
kebijaksanaan tertentu
Mendukung
komunikasi antar proses dan penciptaan proses
INTERLEAVE
Dikatakan interleave
(bersambung/ melanjutkan) maksudnya pemroses mengeksekusi satu proses
setiap saat dan secara cepat beralih ke proses lainnya secara bergiliran.
SO harus interleave
(saling melanjutkan) eksekusi proses-proses agar memaksimumkan penggunaan
pemroses sambil masih memberi waktu tanggap yang memadai
MENGIKUTI
KEBIJAKAN TERTENTU
SO harus
mengalokasikan sumber daya ke proses-proses mengikuti kebijaksanaan yang
ditentukan (misal suatu aplikasi memiliki prioritas lebih tinggi) sambil
menghindari deadlock
MENDUKUNG
KOMUNIKASI ANTAR PROSES & PENCIPTAAN PROSES
SO harus
mendukung komunikasi antar proses dan penciptaan proses oleh pemakai sehingga
membantu menstrukturkan aplikasi.
Jadi pada sistem
dengan banyak proses aktif, proses-proses pada satu saat berada dalam
beragam tahap eksekusinya.
Proses mengalami beragam
state selama siklus hidupnya sebelum berakhir dan keluar dari
sistem.
SO harus
mengetahui state masing-masing proses dan merekam semua perubahan yang
terjadi secara dinamis.
Informasi ini
untuk penjadwalan dan memutuskan alokasi sumber daya
STATUS PROSES
Ketika proses bekerja, maka proses tersebut merubah state
(keadaan statis/ asal). Status dari sebuah proses didefinisikan dalam bagian
oleh aktivitas yang ada dari proses tersebut. Tiap proses mungkin adalah satu
dari keadaan berikut ini:
- New:
Proses sedang dikerjakan/ dibuat.
- Running:
Instruksi sedang dikerjakan.
- Waiting:
Proses sedang menunggu sejumlah kejadian untuk terjadi (seperti sebuah
penyelesaian I/O atau penerimaan sebuah tanda/ signal).
- Ready:
Proses sedang menunggu untuk ditugaskan pada sebuah prosesor.
- Terminated:
Proses telah selsesai melaksanakan tugasnya/ mengeksekusi.
Istilah-istilah tersebut adalah arbitrer/ berdasar opini,
istilah tersebut bervariasi disepanjang sistem operasi. Keadaan yang mereka
gambarkan ditemukan pada seluruh sistem. Namun, sistem operasi tertentu juga
lebih baik menggambarkan keadaan/ status proses. Adalah penting untuk menyadari
bahwa hanya satu proses dapat berjalan pada prosesor mana pun pada waktu kapan
pun. Namun, banyak proses yang dapat ready atau waiting.
Diagram State Proses
KETERANGAN GAMBAR
Proses baru
diciptakan berada pada state ready
Proses dari running
menjadi blocked karena
sumberdaya yang diminta belum tersedia atau meminta layanan perangkat masukan/
keluaran (I/O) sehingga menunggu kejadian yang muncul. Proses ini dikenal
dengan event wait.
Proses dari running
jadi ready karena penjadwal memutuskan eksekusi proses lain oleh
karena jatah waktu telah habis (timeout).
Proses dari blocked
jadi ready karena sumber daya yang diminta tersedia atau layanan I/O
selesai/ terpenuhi. Proses ini dikenal event occur
Proses dari ready
jadi running karena penjadwal memutuskan untuk mengeksekusi proses
tersebut.
Process Control Block (PCB)
Berfungsi untuk menyimpan informasi mengenai proses.
Informasi di PCB dikelompokan menjadi tiga kelompok, yaitu :
- Informasi
identifikasi proses
Berkaitan dengan identifikasi proses yang unik, Identifikasi proses yang menciptakan
identifikasi pemakai
- Informasi
status proses
Berisi nilai dari register-register pemroses
- Informasi
kendali proses.
Berisi informasi yang diperlukan sistem operasi untuk
mengendalikan dan koordinasi beragam proses aktif
INFORMASI
IDENTIFIKASI PROSES
Berkaitan dengan
identitas proses yang unik
Dengan identifier
ini proses dikaitkan ke tabel-tabel lain
Identifiernya
adalah numerik yang meliputi
Identifier proses
Identifier proses
yang menciptakan
Identifier
pemakai
INFORMASI STATUS
PROSES
Informasi ini
esensinya terdiri dari register-register pemroses.
Saat proses
berstatus running, informasi-informasi ini berada di register-register.
Ketika proses
diinterupsi semua informasi register harus disimpan agar dapat dikembalikan
saat proses dieksekusi kembali
Jumlah dan ragam
register bergantung pada arsitektur komputernya
INFORMASI STATUS
PROSES
Informasi ini
esensinya terdiri dari register-register pemroses.
Saat proses
berstatus running informasi-informasi ini berada di register-register.
Saat proses
diinterupsi semua informasi register harus disimpan agar dapat dikembalikan
saat proses dieksekusi kembali
Jumlah dan ragam
register yang terlibat bergantung pada arsitektur komputer
INFORMASI KENDALI
PROSES
Adalah
informasi-informasi lain yang diperlukan SO untuk mengendalikan dan koordinasi
beragam proses aktif
OPERASI-OPERASI
PADA PROSES
SO dalam mengelola
proses dapat melakukan operasi-operasi terhadap proses.
Operasi-operasi
terhadap proses a.l. :
Penciptaan proses
(create process)
Penghancuran/terminasi
proses (destroy a process)
Penundaan proses
(suspend a process)
Pelanjutan
kembali proses (resume process)
Pengubahan
prioritas proses
Memblok proses
Membangunkan
proses
Menjadwalkan
proses
Memungkinkan
proses berkomunikasi dengan proses lain
PENCIPTAAN PROSES
Penciptaan proses
melibatkan banyak aktivitas, yaitu
Menamai (memberi
identitas) proses
Menyisipkan
proses pada senarai proses atau tabel proses
Menentukan
prioritas awal proses
Menciptakan PCB
Mengalokasikan
sumberdaya awal bagi proses
Ketika proses
baru ditambahkan, SO membangun struktur data untuk mengelola dan alokasi ruang
alamat proses itu. Aksi ini berkaitan dengan proses baru.
PENCIPTAAN PROSES
Kejadian yang
dapat menyebabkan penciptaan proses a.l. :
Pada lingkungan batch,
sebagai tanggapan atas pemberian suatu kerja (job)
Pada lingkungan
interaktif, ketika pemakai baru berusaha logon
Sebagai tanggapan
suatu aplikasi, seperti permintaan pencetakan file, SO dapat menciptakan proses
yang akan mengelola pencetakan itu
Proses
menciptakan proses lain (proses anak)
Proses yang
menciptakan child process disebut proses induk (parent process)
Child process dapat menciptakan proses baru.
Proses-proses
dapat membentuk pohon hirarki proses
TABEL ALASAN CREATE
PROCESS
PENGHANCURAN
PROSES
Melibatkan
pembebasan proses dari sistem, yaitu
Sumber
daya-sumber daya yang dipakai dikembalikan
Proses dihancurkan
dari senarai atau tabel sistem
PCB dihapus
(ruang memori PCB dikembalikan ke pool bebas)
Penghancuran
lebih rumit bila proses telah menciptakan proses-proses lain. Terdapat dua
pendekatan, yaitu
Pada beberapa
sistem, proses-proses turunan dihancurkan saat proses-proses induk dihancurkan
secara otomatis
Beberapa sistem
lain menganggap proses anak independen terhadap proses induk sehingga proses
anak tidak secara otomatis dihancurkan saat proses induk dihancurkan
TABEL ALASAN TERMINATE
PROCESS
TABEL ALASAN TERMINATE
PROCESS (lanjut)
TABEL ALASAN TERMINATE
PROCESS (lanjut)
3. Penundaan / Suspension
Penundaan (suspension) sering dilakukan sistem
untuk memindahkan proses-proses tertentu ke hardisk guna mereduksi beban sistem
saat situasi beban puncak.
Proses yang ditunda (suspended process) tidak
berlanjut sampai proses lain memerintahkan untuk berlanjut (resume).
4. Pelanjutan Kembali Proses
Operasi suspend dan resume penting sebab :
Jika sistem berkinerja buruk dan berpeluang gagal maka
proses yang kurang penting dapat di suspend agar kinerja meningkat.
Setelah beban sistem menurun proses-proses suspend dapat
diresume agar dapat melanjutkan tugasnya.
Contoh : pada proses pencetakan.
Diagram State Proses Lanjut
lanjut
Pada sistem monoprocessor, proses Running
dapat mensuspend dirinya sendiri.
Pada sistem multiprocessor, proses Running
dapat disuspend proses Running lain di pemroses yang berbeda,
sedangkan proses Ready hanya dapat disuspend oleh proses lain
yang Running.
Pada proses Blocked terdapat transisi menjadi SuspendedBlocked
karena agar sumber daya yang digunakan pada proses Blocked dapat
digunakan proses lain.
lanjut
Tabel Informasi Manajemen Memori
Berfungsi untuk menjaga keutuhan memori utama dan memori
sekunder.
Informasi yang dimuat pada tabel ini :
Alokasi memori utama yang digunakan proses
Alokasi memori sekunder yang digunakan proses (bila
menggunakan manajemen memori swapping)
Atribut segmen memori utama dan sekunder
Informasi-informasi lain yang digunakan untuk pengelolaan
memori
lanjut
Tabel Informasi I/O
Digunakan untuk mengelola perangkat I/O.
Pada saat tertentu perangkat I/O digunakan proses tertentu
Sehingga proses I/O tsb perlu dijaga agar proses lain tidak
memakainya.
Sistem operasi perlu mengetahui status operasi I/O dan
lokasi memori utama yang digunakan untuk transfer data.
lanjut
Tabel Informasi Sistem File
Berisi informasi mengenai:
Ekstensi file
Lokasi pada memori sekunder
Atribut-atribut file lainya.
Tabel Proses
Mengelola informasi proses pada SO.
Lokasi tabel proses di memori
Berisi status dan atribut-atribut proses yang lain.
Struktur tabel kendali pada SO
5. Pengubahan/Pengalihan Proses
Pada suatu saat proses Running diinterupsi dan sistem
operasi memberi proses lain state Running sehingga kendali
dialihkan ke proses tersebut.
Dalam hal tersebut muncul beberapa masalah
Apa kejadian yang memicu pengalihan proses?
Perbedaan antara process switching dan context
switching.
Apa yang harus dilakukan sistem operasi terhadap beragam
struktur data yang dibawah kendalinya dalam pengalihan proses?
Kejadian penyebab pengalihan proses
Interupsi System
Trap
Supervisor Call
lanjut
Interupsi System
Kejadian eksternal dan tidak bergantung proses yang sedang Running
Selesainya opeasi I/O
Tipe – tipe interupsi antaralain
Interupsi clock
Interupsi I/O/ (I/O interrupt)
Page/memory fault
lanjut
Trap
Interupsi karena terjadi kesalahan atau kondisi pengecualian
yang dihasilkan proses Running.
Usaha ilegal dalam mengakses file.
Saat terjadi trap, mungkin terjadi pengalihan proses atau
mungkin juga me resume terhadap proses.
lanjut
Supervisor Call
Yaitu panggilan meminta atau mengaktifkan bagian sistem
operasi
Contoh : proses Running meminta layanan I/O seperti
membuka file, panggilan tsb menyebabkan transfer ke rutin bagian sistem operasi
Pengalihan Proses VS Pengalihan Konteks
Banyak buku sistem operasi menyamakan antara pengalihan
proses dan pengalihan konteks.
Yang membedakan pengalihan konteks terjadi tanpa
pengalihan state proses yang sedang Running, sedangkan
pengalihan proses pasti melibatkan pengalihan konteks.
Pengalihan proses terjadi jika proses yang Running
beralih menjadi state lain (ready, blocked, dan
sebagainya).
Langkah pengalihan proses
Simpan konteks pemroses, termasuk register PC dan register
lain
Perbaiki PCB proses yang Running.
Pindahkan PCB proses ke senarai yang cocok
Pilih satu proses lain untuk dieksekusi
Perbaharui PCB proses yang dipilih
Perbaharui struktur data memori
Kembalikan konteks pemroses dengan konteks simpanan yang
menjelaskan konteks proses terakhir saat dialihkan dari state Running.
[Stalling-95]
Kedudukan Sistem Operasi
Sistem operasi juga perangkat lunak, yaitu program yang
perlu dieksekusi pemroses.
Kedudukan sistem operasi dibanding proses lain
Sebagai kernel tersendiri yang berbeda dengan proses lain
kernel adalah suatu perangkat lunak yang menjadi
bagian utama dari sebuah sistem operasi.
Fungsi sistem operasi dieksekusi dalam proses pemakai
Sistem opeasi juga sebagai kumpulan proses (process-based
operating system).
lanjut
Kernel sebagai Nonproses
Kernel sistem operasi berada diluar proses
Kernel disimpan dalam memori tersendiri
lanjut
Dieksekusi dalam proses pemakai
Sebagai alternatif lain eksekusi sistem operasi.
Berdasarkan pandangan bahwa sistem operasi sebagai kumpulan rutin
yang dipanggil pemakai untuk melakukan beragam fungsi.
lanjut
Sistem operasi sebagai kumpulan proses
Fungsi kernel utama diorganisaikan sebagai proses yang
terpisah
Mikrokernel
Mikrokernel adalah inti sistem operasi yang menyediakan
landasan perluasan sistem operasi
Saat ini mendapat banyak perhatian
Landasan pendekatanya adalah hanya fungsi-fungsi inti yang
secara mutlak harus berada pada kernel, layanan yang kurang esensi dibangun
diatas mikrokernel tsb.
Fungsi mikrokernel sebagai mediator pertukaran pesan,
memvalidasi, melewatkan pesan antar komponen, dan memberi hak pengaksesan
perangkat keras.