A. 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.
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.
Hal – hal yang berkaitan dengan proses yaitu :
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 :
A.
Tidak bergantung (Independent)
-
Proses terpisah satu dari lainnya & tidak
berpengaruh
B.
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).
2.
MULTIPROCESSING
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.
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.
B. 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 memutuskan alokasi sumber daya.
C. DIAGRAM STATE DASAR
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:
a.
Jika program telah selesai dieksekusi maka
status dari proses tersebut akan berubah menjadi Terminated.
b.
Jika waktu yang disediakan oleh OS untuk proses
tersebut sudah habis maka akan terjadi interrupt dan proses tersebut kini
berstatus Ready.
c.
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).
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:
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
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.
OPERASI –
OPERASI PADA PROSES
Sistem Operasi dalam mengelola
proses dapat melakukan operasi-operasi terhadap proses. Operasi-operasi
terhadap proses antara lain :
1.
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
Pada 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.
Penyebab penciptaan proses antara lain :
1.
Pada lingkungan batch, sebagai tanggapan atas
pemberian satu kerja (job).
2.
Pada lingkungan interaktif, ketika pemakai baru
berusaha log on.
3.
Sebagai tanggapan suatu aplikasi, seperti
permintaan pencetakan file, sistem operasi dapat menciptakan proses yang akan
mengelola pencetakan itu.
4.
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.
A. Alasan – alasan penciptaan proses
B. 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.
Alasan Penghancuran proses
Dibawah ini adalah tabel alasan – alasan penghancuran
proses.
C. 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.
D. 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.
E. 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.
F. 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 :
o
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.
o
Sistem waktu nyata
Didefinisikan sebagai waktu dari
saat kejadian (internal atau eksternal) sampai instruksi pertama rutin layanan
yang dimaksud dieksekusi, disebut event response time.
o
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.
o
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
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.
1.
Pengiriman yang diblok : Proses pengiriman di
blok sampai pesan diterima oleh proses penerima (receiving process) atau oleh
mailbox.
2.
Pengiriman yang tidak diblok : Proses pengiriman
pesan dan mengkalkulasi operasi.
3.
Penerimaan yang diblok : Penerima mem blok
sampai pesan tersedia.
4.
Penerimaan yang tidak diblok : Penerima
mengembalikan pesan valid atau null.
Ketika dalam keadaan sinkron, terjadi dua kejadian:
1.
Blocking send, yaitu pemblokiran pengirim sampai
pesan sebelumnya diterima.
2.
Blocking receive, yaitu pemblokiran penerima
sampai terdapat pesan yang akan dikirim.
Sedangkan untuk keadaan asinkron, yang terjadi adalah:
1.
Non-blocking send, yaitu pengirim dapat terus
mengirim pesan tanpa memperdulikan apakah pesan sebelumnya sampai atau tidak.
2.
Non-blocking receive, yaitu penerima menerima
semua pesan baik berupa pesan yang valid atau pesan yang salah (null).
KOMUNIKASI
ANTAR P
(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.
2.
Komunikasi Tidak Langsung
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.
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:
a.
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:
o
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.
o
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.
o
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.
b.
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.
o
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).
c.
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.
o
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.
Sumber:
https://loveninx.wordpress.com/2010/12/30/makalah-manajemen-proses/
https://loveninx.wordpress.com/2010/12/30/makalah-manajemen-proses/
Terimakasih info nya kakak ♡
BalasHapus