1. PENGERTIAN PROSES
Proses adalah
sebuah program yang sedang dieksekusi atau program yang sedang di jalankan atau
software yang sedang dilaksanakan termasuk sistem operasi yang disusun
menjadi sejumlah proses sequential.
Sedangkan program adalah kumpulan instruksi yang ditulis ke dalam bahasa yang dimengerti sistem operasi. Proses berisi instruksi dan data. program counter dan semua register pemroses, dan stack berisi data sementara seperti parameter rutin, alamat pengiriman dan variabel-variabel lokal.
Sedangkan program adalah kumpulan instruksi yang ditulis ke dalam bahasa yang dimengerti sistem operasi. Proses berisi instruksi dan data. program counter dan semua register pemroses, dan stack berisi data sementara seperti parameter rutin, alamat pengiriman dan variabel-variabel lokal.
Sistem operasi
mengelola semua proses di sistem dan mengalokasikan sumber daya ke
proses-proses sesuai kebijaksanaan untuk memenuhi sasaran sistem. Salah satunya
adalah program yang sedang dieksekusi yang merupakan unit kerja terkecil yang
secara individu memiliki sumber daya-sumber daya dan dijadwalkan sistem
operasi. Sistem operasi mengelola semua proses di sistem dan mengalokasikan
sumber daya ke proses-proses sesuai kebijaksanaan untuk memenuhi sasaran
sistem.
1. MULTIPROGAMMING
( MULTITASKING )
Multiprogramming adalah manajemen banyak proses pada satu pemroses. Istilah yang digunakan multiprogramming
(multitasking) bukan multiprocessing. Mulitprocessing telah
digunakan untuk konsep lain, yaitu komputer dengan banyak pemroses di satu
sistem komputer dengan masing-masing pemroses melakukan pemrosesan secara
independen. Saat ini, kebanyakan komputer pribadi, workstation adalah
sistem pemroses tunggal yang menjalankan sistem operasi multiprogramming
(multitasking) seperti MS-Windows 3.0, MS-Windows NT, OS/2 dan
Macintosh System 7.
Banyak proses
dijalankan bersamaan, masing-masing proses mendapat bagian memori dan kendali
tersendiri. Program yang dijalankan bersifat :
1.
Tidak
bergantung (Independent)
Proses terpisah
satu dari lainnya & tidak berpengaruh
2.
Satu program
pada satu saat (one program at any instant)
Pada satu waktu
hanya satu proses yang dilayani pemroses, menggunakan interleave bukan overlap
diantara program-program
Oleh karena
perpindahan dari satu proses ke proses dilakukan secara cepat bagi bagi pemakai
seolah-olah bekerja secara paralel. Hal ini dikenal dengan paralel semu (pseudoparallelism).
Multiprocessing adalah manajemen banyak proses di komputer multiprocessor (banyak pemroses di dalamnya). Dengan kata lain komputer dengan banyak pemroses di satu sistem komputer dengan masing-masing pemroses melakukan pemrosesan secara independen. Dulunya sistem ini hanya terdapat di sistem besar, mainframe dan minikomputer. Saat ini komputer workstation telah dapat dilengkapi multiprocessor. Menggunakan komputer semaksimal mungkin dengan beberapa CPU sehingga beberapa program bisa dijalankan secara bersama-sama, masing-masing dengan menggunakan prosesornya sendiri-sendiri. Sistem operasi yang mendukung multiprocessing yaitu : Microsoft Windows NT, UNIX, Linux.
3.
3. DISTRIBUTED PROCESSING / COMPUTING
Distributed
Processing adalah manajemen banyak proses yang
dieksekusi di banyak sistem komputer yang tersebar (terdistribusi). Trend masa
datang adalah menuju komputasi tersebar (distributed computing). Banyak
riset dan pengembangan sistem operasi tersebar di antaranya AMOEBA, MACH,
dan sebagainya.
4.
4. PEMROSES
Kebutuhan utama
pengendalian proses oleh Sistem Operasi dapat dinyatakan dengan mengacu ke
proses yaitu :
1.
Saling
melanjutkan (Interleave).
Dikatakan interleave
(bersambung/ melanjutkan) maksudnya pemroses mengeksekusi satu proses
setiap saat dan secara cepat beralih ke proses lainnya secara bergiliran.
Sistem Operasi harus interleave (saling melanjutkan) eksekusi
proses-proses agar memaksimumkan penggunaan pemroses sambil masih memberi waktu
tanggap yang memadai.
2.
Mengikuti
kebijaksanaan tertentu.
Sistem Operasi
harus mengalokasikan sumber daya ke proses-proses mengikuti kebijaksanaan yang
ditentukan (misal suatu aplikasi memiliki prioritas lebih tinggi) sambil menghindari
deadlock .
3.
Mendukung
komunikasi antar proses dan penciptaan proses.
Sistem Operasi
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 yaitu proses mengalami beragam state selama siklus hidupnya
sebelum berakhir dan keluar dari sistem.
Sistem Operasi
harus mengetahui state masing-masing proses dan merekam semua perubahan
yang terjadi secara dinamis. Informasi ini untuk penjadwalan dan memutus
4.
memutuskan
alokasi sumber daya.
Status proses
atau bagian keadaan proses memiliki tiga elemen. yaitu:
1.
Running
Running / kerja, benar-benar menggunakan CPU pada saat itu (sedang mengeksekusi
instruksi proses itu).
Ada tiga
kemungkinan bila sebuah proses memiliki status Running:
·
Jika program
telah selesai dieksekusi maka status dari proses tersebut akan berubah menjadi Terminated.
·
Jika waktu yang
disediakan oleh OS untuk proses tersebut sudah habis maka akan terjadi interrupt
dan proses tersebut kini berstatus Ready.
·
Jika suatu
event terjadi pada saat proses dieksekusi (seperti ada permintaan M / K) maka
proses tersebut akan menunggu event tersebut selesai dan proses
berstatus Waiting.
2.
Blocked
Blocked / terhenti,
tidak dapat berjalan sampai kegiatan eksternal terlaksana (proses menunggu
kejadian untuk melengkapi tugasnya) Bisa berupa proses menunggu : Selesainya
operasi perangkat I/O; Tersedianya memori; Tibanya pesan jawaban
3.
Ready
Ready / siap, proses
siap dikerjakan tetapi menunggu giliran dengan proses lain yang sedang
dikerjakan (bisa berjalan, sementara berhenti untuk memungkinkan proses lain
dikerjakan).
Gambar Diagram
State 3 Keadaan
Keterangan:
·
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
Dalam status proses terdapat dua status tambahan,
yaitu saat pembentukan danterminasi:
·
New adalah status yang dimiliki pada saat proses baru saja dibuat.
·
Terminated adalah status yang dimiliki pada saat proses telah selesai dieksekusi.
- PCB (Program Control Block)
Sistem Operasi
memerlukan banyak informasi mengenai proses guna pengelolaan proses. Informasi
ini ada di PCB. PCB berisikan banyak bagian dari informasi yang berhubungan
dengan sebuah proses yang spesifik, yaitu:
Gambar Diagram
PCB
Struktur
datanya menyimpan informasi lengkap mengenai proses sehingga dapat terjadi
siklus hidup proses. Informasi di PCB dikelompokkan menjadi 3, yaitu :
1.
Informasi
Identifikasi Proses
2.
Informasi
Status Pemroses
3.
Informasi
Kendsali Proses
Gambar Tabel Informasi PCB
6.
6. PROSES PEMAKAI
Proses Pemakai
mempunyai struktur berisi PCB, stack pemakai (user stack), ruang alamat
proses ekslusif dan ruang alamat yang dipakai bersama proses lain. Struktur ini
ditunjukkan pada tabel sebelumnya. Pada tabel diatas, struktur citra proses
digambarkan kontinyuu (berturutan) di satu ruang alamat. Implementasi
penempatan citra proses yang sesungguhnya bergantung skema manajemen memori yang
digunakan dan organisasi struktur kendali sistem operasi.
Gambar Diagram
Proses Pemakai
- OPERASI – OPERASI PADA PROSES
- Operasi – operasi terhadap proses
Sistem Operasi
dalam mengelola proses dapat melakukan operasi-operasi terhadap proses. Operasi-operasi
terhadap proses antara lain :
- proses (create process)
·
Penciptaan
·
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
1.
Penciptaan
Proses
Pada penciptaan
proses melibatkan banyak aktivitas, yaitu
1.
Menamai
(memberi identitas) proses
2.
Menyisipkan
proses pada senarai proses atau tabel proses
3.
Menentukan
prioritas awal proses
4.
Menciptakan PCB
5.
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.
Penyebab
penciptaan proses antara lain :
·
Pada lingkungan
batch, sebagai tanggapan atas pemberian satu kerja (job).
·
Pada lingkungan
interaktif, ketika pemakai baru berusaha log on.
·
Sebagai
tanggapan suatu aplikasi, seperti permintaan pencetakan file, sistem operasi
dapat menciptakan proses yang akan mengelola pencetakan itu.
·
Proses
menciptakan proses lain (proses anak). Proses yang menciptakan proses disebut
proses induk (parent process). Proses anak-pun kembali dapat menciptakan
proses-proses anak. Proses-proses dapat membentuk pohon hirarki proses.
1. Alasan – alasan
penciptaan proses
Alasan
penciptaan proses memiliki penyebab dan deskripsi seperti yang tercantum pada
tabel di bawah ini:
Gambar Tabel Alasan – Alasan Penciptaan Proses
2. 2. Penghancuran
Proses (destroy a process)
Penghancuran proses melibatkan pembebasan proses dari
sistem, yaitu: Sumber daya-sumber daya yang dipakai dikembalikan, Proses
dihancurkan dari senarai atau tabel system, PCB dihapus (ruang memori PCB
dikembalikan ke pool memori bebas )
Penghancuran lebih rumit bila proses telah menciptakan
proses-proses lain. Terdapat dua pendekatan. Pendekatan pertama ada beberapa
sistem, proses-proses turunan dihancurkan saat proses induk dihancurkan secara
otomatis.Pendekatan kedua beberapa sistem lain menganggap proses anak
independen terhadap proses induk Proses anak tidak secara otomatis dihancurkan
saat proses induk dihancurkan.
Dibawah ini adalah tabel alasan – alasan pengahncuran
proses.
Selesainya proses secara normal
|
Proses mengeksekusi panggilan layanan SO untuk
menandakan bahwa proses telah berjalan secara lengkap.
|
Batas waktu telah terlewati
|
Proses telah berjalan melebihi batas waktu total
yang dispesifikasikan. Terdapat banyak kemungkinan untuk tipe waktu yang
diukur, termasuk waktu total yang dijalani (“walk clock time“) jumlah
waktu yang dipakai untuk eksekusi, dan jumlah waktu sejak pemakai terakhir
kali memberi masukan (pada proses interaktif) .
|
Memori tidak tersedia
|
Proses memerlukan memori lebih banyak daripada yang
dapat disediakan oleh sistem.
|
Pelanggaran terhadap batas memori
|
Proses memcoba mengakses lokasi memori yang tidak
diijinkan untuk diakses
|
Terjadi kesalahan karena pelanggaran proteksi
|
Proses berusaha menggunakan sumber daya atau file
yang tidak diijinkan dipakainya, atau proses mencoba menggunakannya tidak
untuk peruntukannya, seperti menulis file read only
|
Terjadi kesalahan aritmatika
|
Proses mencoba perhitungan terlarang, seperti pembagian
dengan nol, atau mencoba menyimpan angka yang lebih besar daripada yang
ddapat diakomodasi oleh H/W
|
Waktu telah kadaluwarsa
|
Proses telah menunggu lebih lama daripada maksimum
yang telah ditentukan untuk terjadinya suatu kejadian spesfiik
|
Terjadi kegagalan masukan/keluaran
|
Kesalahan muncul pada masukan atau keluaran, seperti
ketidakmampuan menemukan file, kegagalan membaca atau mennulis setelah
sejumlah maksimum percobaan yang ditentukan (misalnya area rusak didapatkan
pada tape,atau operasi tidak valid seperti membaca dari line printer)
|
Intruksi yang tidak benar
|
Proses berusaha mengeksekusi instruksi yang tidak
ada (sering sebagi akibat pencabangan ke daerah data dan berusaha
mengeksekusi data tersebut)
|
Terjadi usaha memakai instruksi yang tidak diijinkan
|
Proses berusaha mengeksekusi instruksi yang disimpan
untuk SO
|
Kesalahan penggunaan data
|
Bagian data adalah tipe yang salah atau tidak
diinisialisasi
|
Diintervensi oleh SO atau operator
|
Untuk suatu alasan, operator atau sistem operasi
mengakhiri proses (misalnya terjadi deadlock)
|
Berakhirnya proses induk
|
Ketika parent berakhir. SO mungkin dirancannng
secara otomatis mengakhiri semua anak proses dari parent itu
|
Atas permintaan proses induk
|
Parent process biasanya mempunyai otoritas
mengakhiri suatu anak proses
|
Gambar Tabel Alasan – Alasan Penghancuran Proses
3. 3. Penundaan
Proses (suspend a process)
Penundaan (suspension) adalah operasi penting
dan telah diterapkan dengan beragam cara. Penundaan dapat diinisialisasi oleh
proses itu sendiri atau proses lain. Penundaan biasanya berlangsung singkat dan
sering dilakukan sistem untuk memindahkan proses-proses tertentu guna mereduksi
beban sistem selama beban puncak. Proses yang ditunda (suspended process)
tidak berlanjut sampai proses lain me-resume. Untuk jangka panjang, sumber
daya-sumber daya proses dibebaskan. Pada sistem monoprocessor, proses running
dapat men-suspend dirinya sendiri karena lak ada proses lain yang juga
running yang dapat memerintahkan suspend. Pada sistem multiprocessor,
proses running dapat di-suspend proses running lain pada pemroses berbeda.
Proses ready hanya dapat di-suspend oleh proses lain.
4. 4. Proses
Pelanjutan Kembali (resume a process)
Jika sistem berfungsi secara buruk dan mungkin gagal
maka proses-proses dapat di- suspend agar di-resume setelah masalab
diselesaikan. Pemakai yang ragu / khawatir mengenai basil proses dapat
men-suspend proses [bukan membuang (abort) proses]. Saat pemakai yakin
proses akan berfungsi secara benar maka dapat me-resume (melanjutkan kembali di
instruksi saat di-suspend) proses yang di-suspend.
Sebagai tanggapan terhadap fluktuasi jangka pendek
beban sistem, beberapa proses dapal di-suspend dan di- resume
saat beban kembali ke tingkat normal.
5.
5. Proses Blocked
Pada proses blocked terdapat transisi menjadi suspendedblocked.
Pilihan ini dirasa aneh. Apakah tidak cukup menunggu selesainya operasi
masukan/keluaran atau kejadian yang membual proses ready atau suspendedready?
Bukankah state blocked, readyblocked, suspendedblocked sama-sama tidak
mendapatjatah waktu pemroses? Kenapa dibedakan ?. Jawabannya adalah karena
penyelesaian operasi masukan/keluaran bagi proses blocked mungkin tak pernah
terjadi atau dalam waktu tak terdefinisikan sehingga lebih baik di-suspend agar
sumber daya-sumber daya yang dialokasikan untuk proses tersebut dapat digunakan
proses-proses lain.
Proses blocked di-suspend sistem atau secara
manual menjadi suspendedblocked. Bila akhirnya operasi masukan/keluaran
berakhir maka segera proses suspendedblocked mengalami transisi. Karena resume
dan suspend mempunyai prioritas tinggi maka transisi segera dilakukan. Suspend
dan resume dapat digunakan untuk menyeimbangkan beban sistem saat
mengalami lonjakan di atas normal.
Gambar Diagram State Lanjut
6. 6. Penjadwalan
Proses
Kriteria untuk mengukur dan optimasi kinerja
penjadwalan :
1.
Adil (fairness)
Adalah proses-proses yang diperlakukan sama, yaitu
mendapat jatah waktu pemroses yang sama dan tak ada proses yang tak
kebagian layanan pemroses sehingga mengalami kekurangan waktu.
2.
Efisiensi (eficiency)
Efisiensi atau utilisasi pemroses dihitung dengan
perbandingan (rasio) waktu sibuk pemroses.
3.
Waktu tanggap (response
time)
Waktu tanggap berbeda untuk :
·
Sistem
interaktif
Didefinisikan sebagai waktu yang dihabiskan dari saat
karakter terakhir dari . perintah dimasukkan atau transaksi sampai hasil
pertama muncul di layar. Waktu tanggap ini disebut terminal response
time.
time.
·
Sistem waktu
nyata
Didefinisikan sebagai waktu dari saat kejadian
(internal atau eksternal) sampai instruksi pertama rutin layanan yang dimaksud
dieksekusi, disebut event response time.
·
Turn around
time
Adalah waktu yang dihabiskan dari saat program atau
job mulai masuk ke sistem sampai proses diselesaikan sistem. Waktu yang
dimaksud adalah waktu yang dihabiskan di dalam sistem, diekspresikan sebagai
penjumlah waktu eksekusi (waktu pelayanan job) dan waktu menunggu, yaitu : Turn
arround time = waktu eksekusi + waktu menunggu.
·
Throughput
Adalah jumlah kerja yang dapat diselesaikan dalam satu
unit waktu. Cara untuk mengekspresikan throughput adalah dengan jumlah
job pemakai yang dapat dieksekusi dalam satu unit/interval waktu
7. 7. SINKRONISASI
Komunikasi
antara proses membutuhkan place by calls untuk mengirim dan menerima
data primitive. Terdapat design yang berbeda-beda dalam implementasi setiap
primitive. Pengiriman pesan mungkin dapat diblok (blocking) atau tidak
dapat dibloking (nonblocking) – juga dikenal dengan nama sinkron atau
asinkron.
- · Pengiriman yang diblok : Proses pengiriman di blok sampai pesan diterima oleh proses penerima (receiving process) atau oleh mailbox.
- · Pengiriman yang tidak diblok : Proses pengiriman pesan dan mengkalkulasi operasi.
- · Penerimaan yang diblok : Penerima mem blok sampai pesan tersedia.
- · Penerimaan yang tidak diblok : Penerima mengembalikan pesan valid atau null.
- · Blocking send, yaitu pemblokiran pengirim sampai pesan sebelumnya diterima.
- · Blocking receive, yaitu pemblokiran penerima sampai terdapat pesan yang akan dikirim.
Sedangkan untuk keadaan asinkron, yang terjadi adalah:
- · Non-blocking send, yaitu pengirim dapat terus mengirim pesan tanpa memperdulikan apakah pesan sebelumnya sampai atau tidak.
- · Non-blocking receive, yaitu penerima menerima semua pesan baik berupa pesan yang valid atau pesan yang salah (null).
8. 8. KOMUNIKASI ANTAR PROSES
(Inter
Process Communinication / IPC) :
Beberapa proses
biasanya berkomunikasi dengan proses lainnya. Contohnya pada shell pipe line.
Output dari proses pertama harus diberikan kepada proses ke dua dan seterusnya.
Pada beberapa sistem operasi, proses-proses yang bekerja bersama sering sharing
(berbagi) media penyimpanan, dimana suatu proses dapat membaca dan menulis pada
shared storage (main memory atau files).
1.
Komunikasi
Langsung
Setiap proses
yang ingin berkomunikasi harus memiliki nama yang bersifat eksplisit baik
penerimaan atau pengirim dari komunikasi tersebut. Dalam konteks ini,
pengiriman dan penerimaan pesan secara primitive dapat dijabarkan sebagai :
- · Send (P, message) – mengirim sebuah pesan ke proses P.
- · Receive (Q, message) – menerima sebuah pesan dari proses Q.
Sebuah jaringan komunikasi pada bahasan ini memiliki
beberapa sifat, yaitu :
- · Sebuah jaringan yang didirikan secara otomatis diantara setiap pasang dari proses yang ingin dikomunikasikan.Proses tersebut harus mengetahui identitas dari semua yang ingin dikomunikasikan.
- · Sebuah jaringan adalah terdiri dari penggabungan 2 proses.
- · Diantara setiap pesan dari proses terdapat tepat sebuah jaringan.
Pembahasan ini memperlihatkan sebuah cara simetris
dalam pemberian alamat. Oleh karena itu, baik keduanya yaitu pengirim dan
penerima proses harus memberi nama bagi yang lain untuk berkomunikasi, hanya
pengirim yang memberikan nama bagi penerima sedangkan penerima tidak
menyediakan nama bagi pengirim. Dalam konteks ini, pengirim dan penerima secara
sederhana dapat dijabarkan sebagai :
·
Send (P, message) – mengirim sebuah pesan kepada proses P.
·
Receive (id, message) – menerima sebuah pesan dari semua proses. Variabel
id diatur sebagai nama dari proses dengan komunikasi.
Dengan komunikasi tidak langsung, pesan akan
dikirimkan pada dan diterima dari / melalui mailbox (Kotak Surat) atau
terminal-terminal, sebuah mailbox dapat dilihat secara abstrak sebagai
sebuah objek didalam setiap pesan yang dapat ditempatkan dari proses dan dari
setipap pesan yang bias dipindahkan. Setiap kotak surat memiliki sebuah
identifikasi (identitas) yang unik, sebuah proses dapat berkomunikasi dengan
beberapa proses lain melalui sebuah nomor dari mailbox yang berbeda. Dua
proses dapat saling berkomunikasi apabila kedua proses tersebut sharing
mailbox. Pengirim dan penerima dapat dijabarkan sebagai :
- · Send (A, message) – mengirim pesan ke mailbox A.
- · Receive (A, message) – menerima pesan dari mailbox A.
Dalam masalah ini, link komunikasi mempunyai sifat
sebagai berikut :
- · Sebuah link dibangun diantara sepasang proses dimana kedua proses tersebut membagi mailbox.
- · Sebuah link mungkin dapat berasosiasi dengan lebih dari 2 proses.
- · Diantara setiap pasang proses komunikasi, mungkin terdapat link yang berbeda-beda, dimana setiap link berhubungan pada satu mailbox.
Misalkan terdapat proses P1, P2 dan P3 yang semuanya share
mailbox. Proses P1 mengirim pesan ke A, ketika P2 dan P3 masing-masing
mengeksekusi sebuah kiriman dari A. Proses mana yang akan menerima pesan yang
dikirim P1?. Jawabannya tergantung dari jalur yang kita pilih :
- · Mengijinkan sebuah link berasosiasi dengan paling banyak 2 proses.
- · Mengijinkan paling banyak 1 proses pada suatu waktu untuk mengeksekusi hasil kiriman (receive operation).
- · Mengijinkan sistem untuk memilih secara mutlak proses mana yang akan menerima pesan (apakah itu P2 atau P3 tetapi tidak keduanya, tidak akan menerima pesan). Sistem mungkin mengidentifikasi penerima kepada pengirim.
Mailbox mungkin dapat
dimiliki oleh sebuah proses atau sistem operasi. Jika mailbox dimiliki
oleh proses, maka kita mendefinisikan antara pemilik (yang hanya dapat menerima
pesan melalui mailbox) dan pengguna dari mailbox (yang hanya
dapat mengirim pesan ke mailbox). Selama setiap mailbox mempunyai
kepemilikan yang unik, maka tidak akan ada kebingungan tentang siapa yang harus
menerima pesan dari mailbox. Ketika proses yang memiliki mailbox
tersebut diterminasi, mailbox akan hilang. Semua proses yang mengirim
pesan ke mailbox ini diberi pesan bahwa mailbox tersebut tidak
lagi ada.
Dengan kata
lain, mempunyai mailbox sendiri yang independent, dan tidak melibatkan
proses yang lain. Maka sistem operasi harus memiliki mekanisme yang mengijinkan
proses untuk melakukan hal-hal dibawah ini :
- · Membuat mailbox baru.
- · Mengirim dan menerima pesan melalui mailbox.
- · Menghapus mailbox.
Proses yang membuat mailbox pertama kali secara
default akan memiliki mailbox tersebut. Untuk pertama kali,
pemilik adalah satu-satunya proses yang dapat menerima pesan melalui mailbox
ini. Bagaimanapun, kepemilikan dan hak menerima pesan mungkin dapat dialihkan
ke proses lain melalui sistem pemanggilan.
- · Pengiriman yang diblok : Proses pengiriman di blok sampai pesan diterima oleh proses penerima (receiving process) atau oleh mailbox.
- · Pengiriman yang tidak diblok : Proses pengiriman pesan dan mengkalkulasi operasi.
- · Penerimaan yang diblok : Penerima mem blok samapai pesan tersedia.
· Penerimaan yang tidak diblok : Penerima mengembalikan pesan valid atau null.
9.
9.PENGALIHAN PROSES
Kelihatannya
pengalihan proses (process switching) adalah sepele. Pada suatu saat,
proses running diinterupsi dan sistem operasi memberi proses lain state
running dan menggilir kendali ke proses itu.
Dalam hal ini
muncul beberapa masalah, yaitu:
·
Kejadiankejadian
apa yang memicu alih proses?
·
Masalah lain
adalah terdapatnya perbedaan antara alih proses (process switching) dan
alih konteks (context switching).
Apa yang harus dilakukan sistem operasi terhadap
beragam struktur data yang dibawah kendalinya dalam alih proses?
1.
Kejadiankejadian
Penyebab Pengalihan Proses
Kejadiankejadian yang menyebabkan terjadinya alih
proses adalah:
1.
Interupsi sistem.
Interupsi sistem disebabkan kejadian eksternal dan tak
bergantung proses yang saat itu sedang running.
Contoh :
Selesainya operasi masukan/keluaran.
Pada kejadian
interupsi, kendali lebih dulu ditransfer ke interrupt handler yang
melakukan penyimpanan datadata dan kemudian beralih ke rutin sistem operasi
yang berkaitan dengan tipe interupsi itu.
Tipetipe
interupsi antara lain:
- · Interupsi clock (clock interrupt).
Sistem operasi (penjadwal) menentukan apakah proses
yang sedang running telah mengeksekusi selama jatah waktunya. Jika telah
mencapai jatahnya maka proses dialihkan ke state ready dan proses lain
dijadwalkan running.
- · Interupsi masukanlkeluaran (110 interrupt).
Kejadian dimana peralatan masukan/keluaran melakukan
interupsi meminta layanan sistem operasi. Sistem operasi segera menentukan
aksiaksi masukan keluaran yang harus dilakukan.
- · Page/memory fault.
Pernroses menemui pengacuan alamat memori maya yang
tidak terdapat di memori utarna (fisik). Sistem operasi segera memerintahkan
untuk mengambil page yang terdapat alamat yang dimaksud untuk dipindah
ke memori utama.
2.
Trap.
Trap adalah interupsi karena terjadinya kesalahan atau
kondisi kekecualian (exception conditions) yang dihasilkan proses yang running,
seperti usaha illegal dalam mengakses file.
Dengan adanya
trap, sistem operasi menentukan apakah kesalahan yang dibuat merupakan
kesalahan fatal?
- · Jika fatal, proses yang saat itu running disingkirkan dan terjadi alih proses.
- · Jika kesalahan tidak fatal maka bergantung sifat kesalahan dan rancangan sistern operasi. Kemungkinan yang dilakukan adalah menjalankan prosedur pemulihan atau memperingatkan ke pemakai.
Saat terjadi trap, mungkin terjadi pengalihan proses
mungkin pula resume proses.
3.
Supervisor
call.
Supervisor call yaitu panggilan meminta atau
mengaktifkan bagian sistem operasi.
Contoh : Proses
pemakai running meminta layanan masukan keluaran seperti membuka file.
Panggilan ini menghasilkan transfer ke rutin bagian sistem operasi. Biasanya,
penggunaan system call membuat proses pemakai blocked karena
diaktifkan proses kernel (sistem, operasi).
4.
Pengalihan
Proses dan Pengalihan Konteks
Banyak buku teks sistem operasi menyamakan antara
pengalihan proses (process switching) dan pengalihan konteks (contextswitching).
Tidak terdapat istilah untuk aksi penanganan interupsi. Kita membedakan
antara istilah pengalihan proses dan pengalihan konteks.
· 5. Pengalihan
Konteks
Pengalihan konteks dapat terjadi tanpa pengalihan state
proses yang sedang running, sedang pengalihan proses pasti melibatkan
juga pengalihan konteks.
Siklus
penanganan interupsi adalah :
1. Pemroses
menyimpan konteks program saat itu yang sedang dieksekusi ke stack.
2. Pemroses
menset register PC dengan alamat awal program untuk interrupt handler.
Setelah kedua
aktivitas itu, pemroses melanjutkan menjalankan instruksiinstruksi berikutnya &
interrupt handler yang melayani interupsi. Pelaksanaan interupsi ini belum
tentu mengakibatkan pengalihan ke proses lain yaitu pengalihan PCB proses dari
senarai running ke senarai lain (blocked, ready, dan sebagainya),
dan sebaliknya. Kita menyebut pengalihan konteks adalah untuk pengalihan
sementara yang singkat, misalnya untuk mengeksekusi program interrupt
handler.
Setelah selesai
penanganan interupsi maka konteks yang terdapat pada stack dikembalikan
sehingga kembali ke konteks proses semula tanpa terjadi pengalihan ke proses
lain.
Pengalihan
proses terjadi jika proses yang running beralih menjadi state lain
(ready, blocked, dan sebagainya), kemudian sistem operasi harus membuat
perubahanperubahan berarti terhadap lingkungannya.
0 komentar:
Posting Komentar