Nama : IRNA MARLIANA SIREGAR
Kelas : Pagi
Jurusan : Informatika
1. Manajemen Proses sistem operasi.
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.
Meskipun 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 :
- send(message) – pesan berukuran pasti atau variabel
- receive(message)
- Jika P dan Q melakukan komunikasi, maka keduanya memerlukan :
- Membangun jalur komunikasi diantara keduanya
- Melakukan pertukaran pesan melaui send/receive
- 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
Ada sebuah 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.
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.
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
Waktu dari saat kejadian (internal atau eksternal) sampai instruksi
pertama rutin layanan yang dimaksud dieksekusi, disebut event response
time.
d) Turn around time
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
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 :
- Nonpre-emptive, menggunakan konsep :
a. FIFO (First In First Out) atau FCFS (First Come First Serve)
b. SJF (Shortest Job First)
c. HRN (Highest Ratio Next)
d. MFQ (Multiple Feedback Queues)
2. Pre-emptive, menggunakan konsep :
a. RR (Round Robin)
b. SRF (Shortest Remaining First)
c. PS (Priority Schedulling)
d. GS (Guaranteed Schedulling)
Algoritma Pre-emptive
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.
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 :
- 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.
- 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.
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.
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.
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
A. First In First Out (FIFO)
Merupakan :
- Penjadwalan tidak berprioritas.
FIFO adalah penjadwalan paling sederhana yang baik untuk sistem batch
yang sangat jarang berinteraksi dengan pemakai., yaitu :
- Proses-proses diberi jatah waktu pemroses berdasarkan waktu kedatangan.
- Pada saat proses mendapat jatah waktu pemroses, proses dijalankan sampai selesai.
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).
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.
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.
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.
- 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.
- 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.
- 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 :
- hardware memasukkan program counter, dll.
memasukkan ke dalam stack pencacah program
- Hardware memuatkan (load) program counter baru dari vector interrupsi
- Prosedur bahasa rakitan menyimpan isi register
- Prosedur bahasa rakitan men-set stack yang baru
- Prosedur C menandai proses servis siap (ready)
- Scheduler / penjadwalan menentukan proses mana yang akan jalan berikutnya
- Prosedur C kembali ke modus bahasa rakitan
- Prosedur bahasa rakitan memulai proses yang sedang dilaksanakan.
2. hirarki dan status proses.
Jika kita berbicara tentang cara kerja sistem operasi, maka tidak lepas dari berbicara tentang proses yang berjalan.Dalam menjalankan tugas processing, sistem operasi penting untuk
memperhatikan apa yang menjadi prioritas untuk mengeksekusi suatu proses
dan bagaimana status proses tersebut. Dikarenakan hal tersebut, maka
kita akan melihat tentang hirarki proses dan status keadaan proses.
Pemanggilan proses oleh proses lain disebut parallel processing. Sistem operasi menyediakan apa yang dibutuhkan oleh proses.
Umumnya proses dapat diciptakan atau dihilangkan selama operasi berlangsung.
1. Create dan Destroy Proses
Secara umum, semua sistem operasi pasti harus mendukung konsep
proses, dan tentu juga harus menyediakan suatu cara untuk membuat atau create proses dan menghilangkan proses atau destroy proses.
2. Fork System Call
Fork System Call adalah sebuah mekanisme untuk membuat proses atau create yang identik dengan proses yang memanggilnya. Pada sistem operasi UNIX, parent dan child process berjalan secara parallel. Sementara itu pada sistem operasi DOS, parent dan child process berjalan secara bergantian atau sequential.
3. Process Scheduler
Process scheduler atau dikenal juga dengan penjadwalan proses adalah suatu pengaturan eksekusi proses.
Pada process scheduler, sistem operasi memiliki tiga jenis keadaan atau status proses diantaranya adalah sebagai berikut:
- Running
Running atau kerja adalah status dimana terjadi penggunaan CPU pada saat itu atau sedang mengeksekusi instruksi sebuah proses.
- Blocked
Blocked atau terhenti adalah status dimana proses tidak dapat berjalan
sampai kegiatan eksternal terlaksana atau bisa juga dikatakan proses
menunggu kejadian untuk melengkapi tugasnya.
Proses terhenti ini dapat berupa proses menunggu seperti selesainya
operasi perangkat Input Output (I/O), tersedianya memori, atau tibanya
pesan jawaban
- Ready
Ready atau siap adalah status proses siap dikerjakan atau dieksekusi,
tetapi menunggu giliran dengan proses lain yang sedang dikerjakan.
Disini bisa sedang berjalan atau sementara berhenti untuk memungkinkan
proses lain dikerjakan.
Alur Transisi atau Perubahan Proses Status
Selain keadaan proses di atas, ada juga beberapa keadaan yang terjadi
sebagai transisi atau status perubahan proses yang dilakukan sistem
operasi seperti berikut:
- Proses di blok untuk melayani input, hal ini dikarenakan sumber daya
yang diminta belum tersedia atau meminta layanan I/O sehingga menunggu
kejadian muncul.
- Penjadwalan mengambil proses lainnya
- Penjadwalan mengambil proses baru
- Input telah tersedia.