Secara informal, proses adalah program dalam eksekusi. Suatu proses
adalah lebih dari kode program, dimana kadang kala dikenal sebagai bagian
tulisan. Proses juga termasuk aktivitas yang sedang terjadi, sebagaimana
digambarkan oleh nilai pada program counter dan isi dari daftar prosesor/
processor’s register. Suatu proses umumnya juga termasuk process stack, yang
berisikan data temporer (seperti parameter metoda, address yang kembali, dan
variabel lokal) dan sebuah data section, yang berisikan variabel global. suatu
program adalah satu entitas pasif, seperti isi dari sebuah berkas yang disimpan
didalam disket, sebagaimana sebuah proses dalam suatu entitas aktif, dengan
sebuah program counter yang mengkhususkan pada instruksi selanjutnya untuk
dijalankan dan seperangkat sumber daya/ resource yang berkenaan dengannya.Walau dua proses dapat dihubungkan
dengan program yang sama, program tersebut dianggap dua urutan eksekusi yang
berbeda. Sebagai contoh, beberapa pengguna dapat menjalankan copy yang berbeda
pada mail program, atau pengguna yang sama dapat meminta banyak copy dari
program editor. Tiap-tiap proses ini adakah proses yang berbeda dan walau
bagian tulisan-text adalah sama, data section bervariasi. Juga adalah umum
untuk memiliki proses yang menghasilkan banyak proses begitu ia bekerja.Setiap proses dalam sebuah sistem
operasi mendapatkan sebuah PCB (Process Control Block) yang memuat informasi
tentang proses tersebut, yaitu: sebuah tanda pengenal proses (Process ID) yang
unik dan menjadi nomor identitas, status proses, prioritas eksekusi proses dan
informasi lokasi proses dalam memori. Prioritas proses merupakan suatu nilai
atau besaran yang menunjukkan seberapa sering proses harus dijalankan oleh
prosesor. Proses yang memiliki prioritas lebih tinggi, akan dijalankan lebih
sering atau dieksekusi lebih dulu dibandingkan dengan proses yang berprioritas
lebih rendah. Suatu sistem operasi dapat saja menentukan semua proses dengan
prioritas yang sama, sehingga setiap proses memiliki kesempatan yang sama.
Suatu sistem operasi dapat juga merubah nilai prioritas proses tertentu, agar
proses tersebut akan dapat memiliki kesempatan lebih besar pada eksekusi
berikutnya (misalnya: pada proses yang sudah sangat terlalu lama menunggu
eksekusi, sistem operasi menaikkan nilai prioritasnya).
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).
Mekanisme
proses untuk komunikasi dan sinkronisasi aksi
·
Sistem Pesan – komunikasi proses satu dengan
yang lain dapat dilakukan tanpa perlu pembagian data.
·
IPC menyediakan dua operasi :
o
send(message) – pesan berukuran pasti atau
variabel
o
receive(message)
o
Jika P dan Q melakukan komunikasi, maka
keduanya memerlukan :
§
Membangun jalur komunikasi diantara keduanya
§
Melakukan pertukaran pesan melaui
send/receive
o
Implementasi jalur komunikasi
§
physical (shared memory, hardware bus)
§
logical (logical properties)
Create
and Destroyed Process
·
Pembuatan Proses
(Create)
Penciptaan proses terjadi karena
terdapat batch baru. SO dengan kendali batch job, setelah menciptakan proses
baru, kemudian melanjutkan membaca job selanjutnya.
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 sumber daya awal bagi proses.
·
Penghancuran
Proses (Destroyed)
Penghancuran proses terjadi karena :
·
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,
seprti 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.
Penghancuran lebih rumit bila proses
telah menciptakan proses-proses lain. Terdapat dua pendekatan, yaitu :
·
Pada beberapa sistem, proses-proses turunan
dihancurkan saat proses induk dihancurkan secara otomatis.
·
Beberapa sistem lain menganggap proses anak independen
terhadap proses induk Proses anak tidak secara otomatis dihancurkan saat proses
induk dihancurkan.
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 memori bebas).
Threads
Sebagai contoh, jika sebuah proses
menjalankan sebuah program Word Processor, ada sebuah thread tunggal dari
instruksi-instruksi yang sedang dilaksanakan.
Kontrol thread tunggal ini hanya
memungkinkan proses untuk menjalankan satu tugas pada satu waktu. Banyak sistem
operasi modern telah memiliki konsep yang dikembangkan agar memungkinkan sebuah
proses untuk memiliki eksekusi multithreads, agar dapat dapat secara terus
menerus mengetik dalam karakter dan menjalankan pengecek ejaan didalam proses
yang sama. Maka sistem operasi
tersebut memungkinkan proses untuk menjalankan lebih dari satu tugas pada satu
waktu.
1.
2. Keadaan Proses
1) Running, yaitu suatu kondisi pemroses sedang
mengeksekusi instruksi. Benar-benar menggunakan CPU pada saat itu (sedang
mengeksekusi instruksi proses itu).
2) Ready, yaitu suatu kondisi proses siap dieksekusi,
akan tetapi pemroses belum siap atau sibuk.
3) Blocked, yaitu suatu proses menunggu kejadian untuk
melengkapi tugasnya. Bentuk kegiatan menunggu proses yaitu : selesainya kerja
dari perangkat I/Otersedianya memori yang cukup.
Transisi Status
1)
Proses di blok untuk melayani input karena sumber daya yang diminta belum
tersedia / meminta layanan I/O sehingga menunggu kejadian muncul.
2)
Penjadwalan mengambil proses lain.
3)
Penjadwalan mengambil proses ini (baru).
4)
Input telah tersedia.
Implementasi Proses :
·
Untuk
mengimplementasikan model proses, sistem operasi menggunakan suatu tabel /
array yang disebut tabel proses dengan 1 entry per-proses.
·
Setiap entry berisi
tentang : status proses, program counter, stack pointer, alokasi memori, status
file, informasi schedulling / penjadwalan informasi, dll dari status kerja ke
status siap.
1.
3. Penjadwalan Proses
Kriteria
untuk mengukur dan optimasi kinerja penjadwalan :
a)
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.
b)
Efisiensi (eficiency)
Efisiensi
atau utilisasi pemroses dihitung dengan perbandingan (rasio) waktu
sibuk
pemroses.
c)
Waktu tanggap (response time)
Waktu
tanggap berbeda untuk :
1)
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.
2)
Sistem waktu nyata
Didefinisikan
sebagai waktu dari saat kejadian (internal atau eksternal) sampai instruksi
pertama rutin layanan yang dimaksud dieksekusi, disebut event response time.
d)
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.
e)
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
Algoritma Penjadwalan
Berikut
jenis-jenis algoritma berdasarkan penjadwalan :
1.
Nonpre-emptive, menggunakan konsep :
1.
FIFO (First In First
Out) atau FCFS (First Come First Serve)
2.
SJF (Shortest Job
First)
3.
HRN (Highest Ratio
Next)
4.
MFQ (Multiple Feedback
Queues)
5.
Pre-emptive,
menggunakan konsep :
1.
RR (Round Robin)
2.
SRF (Shortest
Remaining First)
3.
PS (Priority
Schedulling)
4.
GS (Guaranteed
Schedulling)
Algoritma Pre-emptive
1.
A. Round Robin (RR)
Merupakan
:
·
Penjadwalan yang
paling tua, sederhana, adil,banyak digunakan algoritmanya dan mudah
diimplementasikan.
·
Penjadwalan ini bukan
dipreempt oleh proses lain tetapi oleh penjadwal berdasarkan lama waktu
berjalannya proses (preempt by time).
·
Penjadwalan tanpa
prioritas.
·
Berasumsi bahwa semua
proses memiliki kepentingan yang sama, sehingga tidak ada prioritas
tertentu.
Semua
proses dianggap penting sehingga diberi sejumlah waktu oleh pemroses yang
disebut kwanta (quantum) atau time slice dimana proses itu berjalan. Jika
proses masih running sampai akhir quantum, maka CPU akan mempreempt proses itu
dan memberikannya ke proses lain.
Algoritma
yang digunakan :
1)
Jika kwanta habis dan proses belum selesai, maka proses menjadi runnable dan pemroses
dialihkan ke proses lain.
2)
Jika kwanta belum habis dan proses menunggu suatu kejadian (selesainya operasi
I/O), maka proses menjadi blocked dan pemroses dialihkan ke proses lain.
3)
Jika kwanta belum habis tetapi proses telah selesai, maka proses diakhiri dan
pemroses dialihkan ke proses lain.
Diimplementasikan
dengan :
1)
Mengelola senarai proses ready (runnable) sesuai urutan kedatangan.
2)
Ambil proses yang berada di ujung depan antrian menjadi running.
3)
Bila kwanta belum habis dan proses selesai, maka ambil proses di ujung depan
antrian proses ready.
4)
Jika kwanta habis dan proses belum selesai, maka tempatkan proses running ke
ekor antrian proses ready dan ambil proses di ujung depan antrian proses ready.
Masalah
yang timbul adalah menentukan besar kwanta, yaitu :
·
Kwanta terlalu besar
menyebabkan waktu tanggap besar dan turn arround time rendah.
·
Kwanta terlalu kecil
menyebabkan peralihan proses terlalu banyak sehingga menurunkan efisiensi
proses.
Penjadwalan
ini :
·
Baik untuk sistem
interactive-time sharing dimana kebanyakan waktu dipergunakan menunggu kejadian
eksternal.
Contoh
: text editor, kebanyakan waktu program adalah untuk menunggu keyboard,
sehingga dapat dijalankan proses-proses lain.
·
Tidak cocok untuk sistem
waktu nyata apalagi hard-real-time applications.
1.
B. Priority Schedulling (PS)
Adalah
tiap proses diberi prioritas dan proses yang berprioritas tertinggi mendapat
jatah waktu lebih dulu (running). Berasumsi bahwa masing-masing proses
memiliki prioritas tertentu, sehingga akan dilaksanakan berdasar prioritas yang
dimilikinya. Ilustrasi yang dapat memperjelas prioritas tersebut adalah dalam
komputer militer, dimana proses dari jendral berprioritas 100, proses dari
kolonel 90, mayor berprioritas 80, kapten berprioritas 70, letnan berprioritas
60 dan seterusnya. Dalam UNIX perintah untuk mengubah prioritas menggunakan
perintah nice.
Pemberian
prioritas diberikan secara :
1.
Statis (static
priorities)
Berarti
prioritas tidak berubah.
Keunggulan
:
·
Mudah
diimplementasikan.
·
Mempunyai overhead
relatif kecil.
Kelemahan
:
·
Tidak tanggap terhadap
perubahan lingkungan yang mungkin menghendaki penyesuaian prioritas.
1.
Dinamis (dynamic
priorities)
Merupakan
mekanisme untuk menanggapi perubahan lingkungan sistem beroperasi.
Prioritas awal yang diberikan ke proses mungkin hanya berumur pendek setelah
disesuaikan ke nilai yang lebih tepat sesuai lingkungan.
Kelemahan
:
·
Implementasi mekanisme
prioritas dinamis lebih kompleks dan mempunyai overhead lebih besar.
Overhead in diimbangi dengan peningkatan daya tanggap
sistem.
Dalam
algoritma berprioritas dinamis dituntun oleh keputusan untuk memenuhi
kebijaksanaan tertentu yang menjadi tujuan. Layanan yang bagus adalah menset
prioritas dengan nilai 1/f, dimana f adalah ration kwanta terakhir yang
digunakan proses.
Contoh
:
·
Proses yang
menggunakan 2 msec kwanta 100 ms, maka prioritasnya50.
·
Proses yang berjalan
selama 50 ms sebelum blocked berprioritas 2.
·
Proses yang
menggunakan seluruh kwanta berprioritas 1.
1.
C. Multiple Feedback Queues (MFQ)
Merupakan
:
·
Penjadwalan
berprioritas dinamis.
Penjadwalan
ini untuk mencegah (mengurangi) banyaknya swapping dengan proses-proses yang
sangat banyak menggunakan pemroses (karena menyelesaikan tugasnya memakan waktu
lama) diberi jatah waktu (jumlah kwanta) lebih banyak dalam satu waktu.
Penjadwalan ini juga menghendaki kelas-kelas prioritas bagi proses-proses yang
ada. Kelas tertinggi berjalan selama satu kwanta, kelas berikutnya berjalan
selama dua kwanta, kelas berikutnya berjalan empat kwanta, dan seterusnya.
Ketentuan
yang berlaku adalah sebagai berikut :
·
Jalankan proses pada
kelas tertinggi.
·
Jika proses
menggunakan seluruh kwanta yang dialokasikan, maka diturunkan kelas
prioritasnya.
·
Proses yang masuk
untuk pertama kali ke sistem langsung diberi kelas tertinggi.
Mekanisme
ini mencegah proses yang perlu berjalan lama swapping berkali-kali dan mencegah
proses-proses interaktif yang singkat harus menunggu lama.
1.
D. Shortest Remaining First (SRF)
Merupakan
:
·
Penjadwalan
berprioritas dinamis.
·
Adalah preemptive
untuk timesharing.
·
Melengkapi SJF.
Pada
SRF, proses dengan sisa waktu jalan diestimasi terendah dijalankan, termasuk
proses-proses yang baru tiba.
·
Pada SJF, begitu
proses dieksekusi, proses dijalankan sampai selesai.
·
Pada SRF, proses yang
sedang berjalan (running) dapat diambil alih proses baru dengan sisa waktu
jalan yang diestimasi lebih rendah.
Kelemahan
:
·
Mempunyai overhead
lebih besar dibanding SJF. SRF perlu penyimpanan waktu layanan yang telah
dihabiskan job dan kadang-kadang harus menangani peralihan.
·
Tibanya proses-proses
kecil akan segera dijalankan.
·
Job-job lebih lama
berarti dengan lama dan variasi waktu tunggu lebih lama dibanding
pada SJF.
SRF
perlu menyimpan waktu layanan yang telah dihabiskan , menambah overhead.
Secara teoritis, SRF memberi waktu tunggu minimum tetapi karena overhead
peralihan, maka pada situasi tertentu SFJ bisa memberi kinerja lebih baik
dibanding SRF.
1.
E. Guaranteed Scheduloing (GS)
Penjadwalan
ini memberikan janji yang realistis (memberi daya pemroses yang sama) untuk
membuat dan menyesuaikan performance adalah jika ada N pemakai, sehingga setiap
proses (pemakai) akan mendapatkan 1/N dari daya pemroses CPU. Untuk
mewujudkannya, sistem harus selalu menyimpan informasi tentang jumlah waktu CPU
untuk semua proses sejak login dan juga berapa lama pemakai sedang login.
Kemudian jumlah waktu CPU, yaitu waktu mulai login dibagi dengan n, sehingga
lebih mudah menghitung rasio waktu CPU. Karena jumlah waktu pemroses tiap
pemakai dapat diketahui, maka dapat dihitung rasio antara waktu pemroses yang
sesungguhnya harus diperoleh, yaitu 1/N waktu pemroses seluruhnya dan waktu
pemroses yang telah diperuntukkan proses itu.
Rasio
0,5 berarti sebuah proses hanya punya 0,5 dari apa yang waktu CPU miliki dan
rasio 2,0 berarti sebuah proses hanya punya 2,0 dari apa yang waktu CPU
miliki. Algoritma akan menjalankan proses dengan rasio paling rendah hingga
naik ketingkat lebih tinggi diatas pesaing terdekatnya. Ide sederhana ini dapat
diimplementasikan ke sistem real-time dan memiliki penjadwalan
berprioritas dinamis.
Algoritma Non Pre-emptive
1.
A. First In First Out (FIFO)
Merupakan
:
·
Penjadwalan tidak
berprioritas.
FIFO
adalah penjadwalan paling sederhana, yaitu :
·
Proses-proses diberi
jatah waktu pemroses berdasarkan waktu kedatangan.
·
Pada saat proses
mendapat jatah waktu pemroses, proses dijalankan sampai selesai.
Penjadwalan
ini :
·
Baik untuk sistem
batch yang sangat jarang berinteraksi dengan pemakai.
Contoh
: aplikasi analisis numerik, maupun pembuatan tabel.
·
Sangat tidak baik
(tidak berguna) untuk sistem interaktif, karena tidak memberi waktu tanggap
yang baik.
·
Tidak dapat digunakan
untuk sistem waktu nyata (real-time applications).
1.
B. Shortest Job First (SJF)
Penjadwalan
ini mengasumsikan waktu jalan proses sampai selesai diketahui sebelumnya.
Mekanismenya adalah menjadwalkan proses dengan waktu jalan terpendek lebih dulu
sampai selesai, sehingga memberikan efisiensi yang tinggi dan turn around time
rendah dan penjadwalannya tak berprioritas.
Masalah
yang muncul adalah :
·
Tidak mengetahui
ukuran job saat job masuk.
Untuk
mengetahui ukuran job adalah dengan membuat estimasi berdasarkan
kelakukan sebelumnya.
·
Proses yang tidak
datang bersamaan, sehingga penetapannya harus dinamis.
Penjadwalan
ini jarang digunakan, karena merupakan kajian teoritis untuk pembandingan
turn around time.
1.
C. Highest Ratio Next (HRN)
Merupakan
:
·
Penjadwalan
berprioritas dinamis.
·
Penjadwalan untuk
mengoreksi kelemahan SJF.
·
Adalah strategi
penjadwalan dengan prioritas proses tidak hanya merupakan fungsi waktu layanan
tetapi juga jumlah waktu tunggu proses. Begitu proses mendapat jatah pemroses,
proses berjalan sampai selesai.
Prioritas
dinamis HRN dihitung berdasarkan rumus :
Prioritas
= (waktu tunggu + waktu layanan ) / waktu layanan
Karena
waktu layanan muncul sebagai pembagi, maka job lebih pendek berprioritas lebih
baik, karena waktu tunggu sebagai pembilang maka proses yang telah menunggu
lebih lama juga mempunyai kesempatan lebih bagus.
Disebut
HRN, karena waktu tunggu ditambah waktu layanan adalah waktu tanggap, yang
berarti waktu tanggap tertinggi yang harus dilayani.
Interupsi
Kerja
prosesor pada suatu proses terhenti oleh pensaklaran konteks (perubahan kegiatan prosesor dari proses ke
proses yang terjadi diantara proses sistem / proses aplikasi).
2 cara interupsi pada processor :
1.
1. Interupsi langsung
Berasal
dari luar prosesor (peripheral / alat mengirim sinyal kepada prosesor untuk
meminta pelayanan)
1.
2. Interupsi Tanya / Polling
Berasal
dari prosesor (prosesor secara bergiliran mengecek apakah ada peripheral yang
memerlukan pelayanan atau tidak)
·
Interupsi dapat
di-enable dan disable tergantung pada levelnya.
·
Pembangkit interupsi
dapat berasal dari :
o Program, di dalam program telah dirancang pada bagian
tertentu akan terjadi pensaklaran konteks, yang menimbulkan interupsi,
contohnya pada saat penggunaan alat / prosesor secara bergantian.
o Prosesor, prosesor sendiri dapat membangkitkan
interupsi, yang biasa mengolah logika dan aritmatika. Jika melampoi ukuran
tampung register di dalam prosesor, maka terjadi kekeliruan yang akan
menginterupsi kerjanya sendiri dan menyerahkan kendali prosesor pada sistem
operasi. Misalnya pembagian dengan bilangan nol.
o Satuan kendali, tugas untuk melaksanakan interupsi terletak
pada satuan kendali, sehingga satuan kendali dapat membangkitkan interupsi.
Misalnya kekeliruan instruksi
o Kunci waktu / clock, menggunakan interupsi berkala. Misalnya pada
program looping yang tak terhingga, diinterupsi pada setiap selang waktu 60
detik.
o Peripheral I/O, I/O jika akan bekerja memberitahukan pada
prosesor dengan interupsi prosesor dan juga ketika pekerjaan selesai atau pada
saat terjadi kekeliruan paritas.
o Memori, karena terjadi kekeliruan, misalnya ketika
prosesor ingin mencapai alamat memori yang terletak di luar bentangan alamat
memori yang ada.
Sumber daya lain, misal dibangkitkan oleh operator sistem
komputer yang mengerti cara interupsi.
î Interupsi
vector : Berisi alamat
prosedur service interupsi
î Penerimaan
interupsi dan interupsi berganda : ada kalanya interupsi ditolak oleh prosesor atau interupsi
yang datang tidak hanya satu sehingga diperlukan prioritas.
Tindak lanjut interupsi :
1.
1. Penata interupsi / interrupt handler
Jika
terjadi interupsi, maka kendali prosesor diserahkan ke bagian penata interupsi
pada sistem operasi, maka penata interupsi inilah yang melaksanakan interupsi.
1.
Instruksi yang sedang
diolah oleh prosesor dibiarkan sampai selesai program.
2.
Penata interupsi
merekam semua informasi proses ke dalam blok kendali proses.
3.
Penata interupsi
mengidentifikasi jenis dan asal interupsi.
4.
Penata interupsi
mengambil tindakan sesuai dengan yang dimaksud interupsi.
5.
Penata interupsi
mempersiapkan segala sesuatu untuk pelanjutan proses yang diinterupsi.
6.
2. Penata keliru / error handler
yaitu
interupsi karena kekeliruan pada pengolahan proses dan bagian pada sistem
operasi yang menata kegiatan akibat kekeliruan adalah penata keliru.
1.
Pemulihan,
komputer telah dilengkapi dengan sandi penemuan dan pemulihan kekeliruan,
contohnya telah dilengkapi dengan sandi Hamming sehingga ketika menemukan
kekeliruan sandi akan mengoreksi kekeliruan itu, proses pulih ke bentuk semula
sebelum terjadi kekeliruan.
2.
Pengulangan,
mengatur agar proses yang membangkitkan interupsi keliru dikerjakan ulang, jika
kekeliruan dapat diatasi maka proses akan berlangsung seperti biasa, jika tidak
teratasi maka interupsi akan menempuh tindak lanjut keluar dari proses.
3.
Keluar dari proses, penata keliru menyiapkan tampilan berita keliru dari monitor,
setelah itu prosesor keluar dari proses, ini adalah tindakan terakhir jika
tidak dapat menolong proses yang keliru tersebut.
Langkah-langkah
yang dilakukan sistem operasi pada saat terjadi interupsi :
1.
hardware memasukkan
program counter, dl.l..memasukkan ke dalam stack pencacah program
1.
Hardware memuatkan
(load) program counter baru dari vector interrupsi
2.
Prosedur bahasa
rakitan menyimpan isi register
3.
Prosedur bahasa
rakitan men-set stack yang baru
4.
Prosedur C menandai
proses servis siap (ready)
5.
Scheduler /
penjadwalan menentukan proses mana yang akan jalan berikutnya
6.
Prosedur C kembali ke
modus bahasa rakitan
7.
Prosedur bahasa
rakitan memulai proses yang sedang dilaksanakan
1.Tugas dari manajemen proses adalah
membuat proses-proses yang berjalan tidak saling menganggu bahkan dapat saling
bekerja sama.
2.Proses adalah program yang sedang
dieksekusi, yang berarti bahwa program tersebut sedang dijadwal untuk
menggunakan prosesor.
3.Job-job yang
sedang oleh prosesor secara teknis disebut dengan proses.
4.Suatu proses atau program yang
sedang dieksekusi akan membutuhkan sumber daya yang lain seperti memori, berkas
dan peranti lainnya untuk menyelesaikan tugasnya.
Tugas-tugas komponen manajemen
proses antara lain:
1.—Membuat dan menghentikan proses
—2.Menunda dan melanjutkan kembali
proses
—3.Menyediakan mekanisme
penjadwalan, komunikasi, sinkronisasi dan penanganandeadlock bagi
proses-proses yang berjalan secara bersamaan.
No comments:
Post a Comment