1.
1. Manajemen Proses
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
v
Running, yaitu suatu kondisi pemroses sedang
mengeksekusi instruksi. Benar-benar menggunakan CPU pada saat itu (sedang
mengeksekusi instruksi proses itu).
v
Ready, yaitu suatu kondisi proses siap
dieksekusi, akan tetapi pemroses belum siap atau sibuk
v
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
§
Proses di blok untuk melayani input karena
sumber daya yang diminta belum tersedia / meminta layanan I/O sehingga menunggu
kejadian muncul.
§
Penjadwalan mengambil proses lain.
§
Penjadwalan mengambil proses ini (baru).
§
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.
2. 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 berprioritasi
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.
Interupsi langsung
Berasal dari luar prosesor (peripheral / alat mengirim
sinyal kepada prosesor untuk meminta pelayanan)
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 :
§
Program, di dalam program telah dirancang pada
bagian tertentu akan terjadi pensaklaran konteks, yang menimbulkan interupsi,
contohnya pada saat penggunaan alat / prosesor secara bergantian.
§
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.
§
Satuan kendali, tugas untuk melaksanakan
interupsi terletak pada satuan kendali, sehingga satuan kendali dapat
membangkitkan interupsi. Misalnya kekeliruan instruksi
§
Kunci waktu / clock, menggunakan interupsi
berkala. Misalnya pada program looping yang tak terhingga, diinterupsi pada
setiap selang waktu 60 detik.
§
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.
§
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.
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.
§
Instruksi yang sedang diolah oleh prosesor
dibiarkan sampai selesai program.
§
Penata interupsi merekam semua informasi proses
ke dalam blok kendali proses.
§
Penata interupsi mengidentifikasi jenis dan asal
interupsi.
§
Penata interupsi mengambil tindakan sesuai
dengan yang dimaksud interupsi.
§
Penata interupsi mempersiapkan segala sesuatu
untuk pelanjutan proses yang diinterupsi.
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.
Silahkan download Disini http://www.ziddu.com/download/14206688/manjemenprosessistemoperasi.doc.html
Tidak ada komentar:
Posting Komentar