ShoutBox


ShoutMix chat widget

7.07.2008

VISUAL BASIC

Modul 1
Menggunakan Option Button dan Frame


Buat Form seperti di bawah ini yang terdiri dari 4 frame yang diberinama pada properties caption: Style, Color, Underine dan Strike. 4 Option untuk Style, 4 option untuk Color, 2 option untuk strike dan 2 option untuk underline.



Lalu tulis Source code nya

Private Sub Option1_Click()
Label1.FontBold = False
Label1.FontItalic = False
End Sub

Private Sub Option10_Click()
Label1.ForeColor = vbYellow
End Sub

Private Sub Option11_Click()
Label1.FontStrikethru = True
End Sub

Private Sub Option12_Click()
Label1.FontStrikethru = False
End Sub

Private Sub Option2_Click()
Label1.FontItalic = True
End Sub

Private Sub Option3_Click()
Label1.FontBold = True
End Sub

Private Sub Option4_Click()
Label1.FontBold = True
Label1.FontItalic = True
End Sub

Private Sub Option5_Click()
Label1.FontUnderline = True
End Sub

Private Sub Option6_Click()
Label1.FontUnderline = False
End Sub

Private Sub Option7_Click()
Label1.ForeColor = vbRed
End Sub

Private Sub Option8_Click()
Label1.ForeColor = vbBlue
End Sub

Private Sub Option9_Click()
Label1.ForeColor = vbGreen
End Sub

Lalu jalankan dengan menekan > pada toolbar atau tekan F5

SISTEM OPERASI

BAB 4
Penjadwalan Proses



4.1. Pengertian dan sasaran penjadwalan proses


Penjadwalan proses merupakan kumpulan kebijaksanaan dan mekanisme di sistem
operasi yang berkaitan dengan urutan kerja yang dilakukan sistem komputer.

Adapun penjadwalan bertugas memutuskan :
a. Proses yang harus berjalan
b. Kapan dan selama berapa lama proses itu berjalan

Kriteria untuk mengukur dan optimasi kinerje 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 :
c.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.
c.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.

Kriteria-kriteria tersebut saling bergantung dan dapat pula saling
bertentangan sehingga tidak dimungkinkan optimasi semua kriteria secara
simultan.
Contoh : untuk memberi waktu tanggap kecil memerlukan penjadwalan yang
sering beralih ke antara proses-proses itu. Cara ini meningkatkan
overhead sistem dan mengurangi throughput.
Oleh karena itu dalam menentukan kebijaksanaan perancangan penjadwalan
sebaiknya melibatkan kompromi diantara kebutuhan-kebutuhan yang saling
bertentangan. Kompromi ini bergantung sifat dan penggunaan sistem komputer.

Sasaran penjadwalan berdasarkan kriteria-kriteria optimasi tersebut :
a. Menjamin tiap proses mendapat pelayanan dari pemroses yang adil.
b. Menjaga agar pemroses tetap dalam keadaan sibuk sehingga efisiensi
mencapai maksimum. Pengertian sibuk adalah pemroses tidak menganggur,
termasuk waktu yang dihabiskan untuk mengeksekusi program pemakai dan
sistem operasi.
c. Meminimalkan waktu tanggap.
d. Meminimalkan turn arround time.
e. Memaksimalkan jumlah job yang diproses persatu interval waktu.
Lebih besar angka throughput, lebih banyak kerja yang dilakukan sistem.

4.2 Tipe penjadwalan


Terdapat 3 tipe penjadwal berada secara bersama-sama pada sistem operasi
yang kompleks, yaitu:
1. Penjadwal jangka pendek (short term scheduller)
Bertugas menjadwalkan alokasi pemroses di antara proses-proses ready di
memori utama. Penjadwalan dijalankan setiap terjadi pengalihan proses
untuk memilih proses berikutnya yang harus dijalankan.
2. Penjadwal jangka menengah (medium term scheduller)
Setelah eksekusi selama suatu waktu, proses mungkin menunda sebuah
eksekusi karena membuat permintaan layanan masukan/keluaran atau memanggil
suatu system call. Proses-proses tertunda tidak dapat membuat suatu
kemajuan menuju selesai sampai kondisi-kondisi yang menyebabkan tertunda
dihilangkan. Agar ruang memori dapat bermanfaat, maka proses dipindah
dari memori utama ke memori sekunder agar tersedia ruang untuk proses-
proses lain. Kapasitas memori utama terbatas untuk sejumlah proses aktif.
Aktivitas pemindahan proses yang tertunda dari memori utama ke memori
sekunder disebut swapping. Proses-proses mempunyai kepentingan kecil saat
itu sebagai proses yang tertunda. Tetapi, begitu kondisi yang membuatnya
tertunda hilang dan proses dimasukkan kembali ke memori utama dan ready.
3. Penjadwal jangka panjang (long term scheduller)
Penjadwal ini bekerja terhadap antrian batch dan memilih batch berikutnya
yang harus dieksekusi. Batch biasanya adalah proses-proses dengan
penggunaan sumber daya yang intensif (yaitu waktu pemroses, memori,
perangkat masukan/keluaran), program-program ini berprioritas rendah,
digunakan sebagai pengisi (agar pemroses sibuk) selama periode aktivitas
job-job interaktif rendah.

+----------+
:Suspended :
Program +----: Blocked :<---------------------+
jangka : : Queue : :
menengah ========>: +----------+ Program :
: +=== jangka :
: : pendek :
+----------+ : +----------+ : +=======+ :
: Batch : +--->: Ready : V : :---+
------>: Queue :---------->: Queue :--------->: CPU :----->
: : ^ +----->: : : :---+
+----------+ : : +--->+----------+ +=======+ :
: : : :
Program : : : :
jangka =====+ : : +----------+ :
panjang : : :Suspended : :
: +----: Ready :<---------------------+
Program-program : Queue :
interaktif +----------+

Gambar 4.1 : Tipe-tipe penjadwalan

Sasaran penjadwalan berdasarkan tipe-tipe penjadwalan :
a. Memaksimumkan kinerja untuk memenuhi satu kumpulan kriteria yang
diharapkan.
b. Mengendalikan transisi dari suspended to ready (keadaan suspend ke ready)
dari proses-proses swapping.
c. Memberi keseimbangan job-job campuran.

Penjadwalan jangka panjang
+========================================================================+
: Penjadwalan jangka menengah :
: +==================================================================+ :
: : Penjadwalan jangka pendek : :
: : +============================================================+ : :
: : : : : :
: : : Timeout : : :
: : : ++---------------------------++ : : :
: : : :: :: : : :
: : : \/ :: : : :
: : : Submit +----------+ Dispatch +-----------+ Completion: : :
: : :------->: Ready :--------------->: Running :---------->: : :
: : : +----------+ +-----------+ : : :
: : : /\ :: /\ /\ : : :
: : : :: :: :: :: : : :
: : : :: :: :: Event :: Event : : :
: : : :: :: :: occur :: wait : : :
: : : :: :: :: +------------+ : : :
: : : :: :: ::-----------------: Blocked : : : :
: : : :: :: +------------+ : : :
: : : :: :: /\ :: : : :
: : : :: :: :: :: : : :
: : : :: \/ I/O compeletion :: \/ : : :
: : : +-----------+ atau +------------+ : : :
: : : : Suspended :<------------->: Suspended : : : :
: : : : ready : event : blocked : : : :
: : : +-----------+ completion +------------+ : : :
: : : : : :
: : +============================================================+ : :
: +==================================================================+ :
+========================================================================+
Gambar 4.2 : Tipe-tipe penjadwalan dikaitkan dengan diagram state

4.3 Strategi penjadwalan


Terdapat dua strategi penjadwalan, yaitu :
1. Penjadwalan nonpreemptive (run to completion)
Proses diberi jatah waktu oleh pemroses, maka pemroses tidak dapat diambil
alih oleh proses lain sampai proses itu selesai.
2. Penjadwalan preemptive
Proses diberi jatah waktu oleh pemroses, maka pemroses dapat diambil alih
proses lain, sehingga proses disela sebelum selesai dan harus dilanjutkan
menunggu jatah waktu pemroses tiba kembali pada proses itu. Berguna pada
sistem dimana proses-proses yang mendapat perhatian/tanggapan pemroses
secara cepat, misalnya :
a. Pada sistem realtime, kehilangan interupsi (tidak layani segera) dapat
berakibat fatal.
b. Pada sistem interaktif, agar dapat menjamin waktu tanggap yang memadai.
Penjadwalan secara preemptive baik tetapi harus dibayar mahal. Peralihan
proses memerlukan overhead (banyak tabel yang dikelola). Supaya efektif,
banyak proses harus berada di memori utama sehingga proses-proses tersebut
dapat segera running begitu diperlukan. Menyimpan banyak proses tak
running benar-benar di memori utama merupakan suatu overhead tersendiri.

4.4 Algoritma-algoritma Penjadwalan


Berikut jenis-jenis algoritma berdasarkan penjadwalan :

1. Nonpreemptive, 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. Preemptive, menggunakan konsep :
a. RR (Round Robin)
b. SRF (Shortest Remaining First)
c. PS (Priority Schedulling)
d. GS (Guaranteed Schedulling)

Klasifikasi lain selain berdasarkan dapat/tidaknya suatu proses diambil
secara paksa adalah klasifikasi berdasarkan adanya prioritas di proses-
proses, yaitu :
1. Algoritma penjadwalan tanpa berprioritas.
2. Algoritma penjadwalan berprioritas, terdiri dari :
a. Berprioritas statik
b. Berprioritas dinamis

4.5 Algoritma Preemptive


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.
Penjadwal membutuhkannya dengan memelihara daftar proses dari runnable.
Ketika quantum habis untuk satu proses tertentu, maka proses tersebut akan
diletakkan diakhir daftar (list), seperti nampak dalam gambar berikut ini :

Proses Proses Proses
saat berikutnya saat
ini | ini
| | |
V V V
+---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+
: B :--: F :--: D :--: G :--: A : : B :--: F :--: D :--: G :--: A :
+---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+

Gambar 4.1(a) : Daftar proses runnable.
4.1(b) : Daftar proses runnable sesudah proses b habis quantumnya.

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.
Switching dari satu proses ke proses lain membutuhkan kepastian waktu yang
digunakan untuk administrasi, menyimpan, memanggil nilai-nilai register,
pemetaan memori, memperbaiki tabel proses dan senarai dan sebagainya.
Mungkin proses switch ini atau konteks switch membutuhkan waktu 5 msec
disamping waktu pemroses yang dibutuhkan untuk menjalankan proses tertentu.
Dengan permasalahan tersebut tentunya harus ditetapkan kwanta waktu yang
optimal berdasarkan kebutuhan sistem dari hasil percobaan atau data historis.
Besar kwanta waktu beragam bergantung beban sistem. Apabila nilai quantum
terlalu singkat akan menyebabkan terlalu banyak switch antar proses dan
efisiensi CPU akan buruk, sebaliknya bila nilai quantum terlalu lama akan
menyebabkan respon CPU akan lambat sehingga proses yang singkat akan menunggu
lama. Sebuah quantum sebesar 100 msec merupakan nilai yang dapat diterima.

Penilaian penjadwalan ini berdasarkan kriteria optimasi :
· Adil
Adil bila dipandang dari persamaan pelayanan oleh pemroses.
· Efisiensi
Cenderung efisien pada sistem interaktif.
· Waktu tanggap
Memuaskan untuk sistem interaktif, tidak memadai untuk sistem waktu nyata.
· Turn around time
Cukup baik.
· Throughtput
Cukup baik.

Penjadwalan ini :
a. 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.
b. 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 :
a. 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.
b. 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.
Contoh penjadwalan berprioritas :
Proses-proses yang sangat banyak operasi masukan/keluaran menghabiskan
kebanyakan waktu menunggu selesainya operasinya masukan/keluaran.
Proses-proses ini diberi prioritas sangat tinggi sehingga begitu proses
memerlukan pemroses segera diberikan, proses akan segera memulai
permintaan masukan/keluaran berikutnya sehingga menyebabkan proses blocked
menunggu selesainya operasi masukan/keluaran. Dengan demikian pemroses
dapat dipergunakan proses-proses lain. Proses-proses I/O berjalan paralel
bersama proses-proses lain yang benar-benar memerlukan pemroses, sementara
proses-proses I/O itu menunggu selesainya operasi DMA.
Proses-proses yang sangat banyak operasi I/O-nya, kalau harus menunggu
lama untuk memakai pemroses (karena prioritas rendah) hanya akan membebani
memori, karena harus disimpan tanpa perlu proses-proses itu dimemori
karena tidak selesai-selesai menunggu operasi masukan dan menunggu jatah
pemroses.

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.
Kebijaksanaan yang diterapkan adalah jaminan proses-proses mendapat layanan
adil dari pemroses dalam arti jumlah waktu pemroses yang sama.
Keunggulannya penjadwalan berpriorita adalah memenuhi kebijaksanaan yang
ingin mencapai maksimasi suatu kriteria diterapkan.
Algoritma ini dapat dikombinasikan, yaitu dengan mengelompokkan proses-proses
menjadi kelas-kelas prioritas. Penjadwalan berprioritas diterapkan antar
kelas-kelas proses itu.
Algoritma penjadwal akan menjalankan : proses runnable untuk prioritas 4
lebih dulu secara round robin, apabila kelas 4 semua sudah diproses,
selanjutnya akan menjalankan proses runnable untuk prioritas 3 secara round
robin, apabila kelas 3 semua sudah diproses (habis), selanjutnya akan
menjalankan proses runnable untuk prioritas 2 secara round robin, dan
seterusnya, seperti dalam gambar berikut :


Queues header Runnable processes
|=======================================|
+------------+ +---+ +---+ +---+
: Priority 4 :------: :----: :----: : (Highest priority)
: : +---+ +---+ +---+
+------------+ +---+ +---+ +---+ +---+ +---+
: Priority 3 :------: :----: :----: :----: :----: :
: : +---+ +---+ +---+ +---+ +---+
+------------+ +---+
: Priority 2 :------: :
: : +---+
+------------+
: Priority 1 : (Lowest priority)
: :
+------------+

Gambar : Skedul algoritma denga empat klas prioritas

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.

4.6 Algoritma Nonpreemptive


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.

Penilian penjadwalan ini berdasarkan kriteria optimasi :
· Adil
Adil dalam arti resmi (proses yang datang duluan akan dilayani lebih dulu),
tapi dinyatakan tidak adil karena job-job yang perlu waktu lama membuat
job-job pendek menunggu. Job-job yang tidak penting dapat membuat job-job
penting menunggu lam.
· Efisiensi
Sangat efisien.
· Waktu tanggap
Sangat jelek, tidak cocok untuk sistem interaktif apalagi untuk sistem
waktu nyata.
· Turn around time
Jelek.
· Throughtput
Jelek.

FIFO jarang digunakan secara mandiri, tetapi dikombinasikan dengan skema
lain, misalnya :
· Keputusan berdasarkan prioritas proses. Untuk proses-pross berprioritas
sama diputuskan berdasarkan FIFO.

Penjadwalan ini :
a. Baik untuk sistem batch yang sangat jarang berinteraksi dengan pemakai.
Contoh : aplikasi analisis numerik, maupun pembuatan tabel.
b. Sangat tidak baik (tidak berguna) untuk sistem interaktif, karena tidak
memberi waktu tanggap yang baik.
c. 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.

Contoh :
Terdapat empat proses (job) yaitu A,B,C,D dengan waktu jalannya masing-masing
adalah 8,4,4 dan 4 menit. Apabila proses-proses tersebut dijalankan, maka
turn around time untuk A adalah 8 menit, untuk B adalah 12, untuk C adalah
16 dan untuk D adalah 20. Untuk menghitung rata-rata turn around time seluruh
proses adalah dengan menggunakan rumus :

( 4a + 3b + 2c + 1d ) / 4

Dengan menggunakan rumus, maka dapat dihitung turn around time-nya sebagai
berikut (belum memperhatikan shortest job first, lihat gambar a) :

= ( 4a + 3b + 2c + 1d ) / 4
= ( 4x8 + 3x4 + 2x4 + 1x4 ) / 4
= ( 32 + 12 + 8 + 4 ) / 4
= 56 / 4
= 14 menit

Apabila keempat proses tersebut menggunakan penjadwalan shortest job fisrt
(lihat gambar b), maka turn around time untuk B adalah 4, untuk C adalah 8,
untuk D adalah 12 dan untuk A adalah 20, sehingga rata-rata turn around
timenya adalah sebagai berikut :

= ( 4a + 3b + 2c + 1d ) / 4
= ( 4x4 + 3x4 + 2x4 + 1x8 ) / 4
= ( 16 + 12 + 8 + 8 ) / 4
= 44 / 4
= 11 menit


Tidak memperhatikan SJF Memperhatikan SJF

Posisi : a b c d a b c d
Priority : 4 3 2 1 4 3 2 1
Job : A B C D B C D A

+-----------------+ +-----------------+
: 8 : 4 : 4 : 4 : : 4 : 4 : 4 : 8 :
+-----------------+ +-----------------+
(a) (b)

Jelas bahwa a memberikan nilai kontribusi yang besar, kemudian b, c dan d.
Karena SJF selalu memperhatikan rata-rata waktu respon terkecil, maka sangat
baik untuk proses interaktif. Umumnya proses interaktif memiliki pola, yaitu
menunggu perintah, menjalankan perintah, menunggu perintah dan menjalankan
perintah, begitu seterusnya.

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.

4.7 Variasi yang diterapkan pada sistem waktu nyata (real time)


Karena sistem waktu nyata sering mempunyai deadline absolut, maka penjadwalan
dapat berdasarkan deadline. Proses yang dijalankan adalah yang mempunyai
deadline terdekat. Proses yang lebih dalam bahaya kehilangan deadline
dijalankan lebih dahulu. Proses yang harus berakhir 10 detik lagi mendapat
prioritas di atas proses yang harus berakhir 10 menit lagi.
Penjadwalan in disebut Earliest Deadline First (EDF).

4.8 Schedulling mechanism VS schedulling policy


Ada perbedaan antara schedulling mechanism dengan schedulling policy.
Skedul algoritma adalah dengan pemakaian nilai-nilai dalam parameter, dimana
nilai-nilai parameter tersebut dapat diisi (set/change) oleh sebuah proses.
Kernel menggunakan algoritma schedulling priority dengan menyediakan sebuah
system call dimana sebuah proses dapat diset dan diubah prioritasnya.
Metode ini dapat membantu proses induk (parent process) sehingga dapat
mengontrol skedul anak prosesnya (child process). Disini mekanismenya adalah
dalam kernel dan policy adalah penetapan nilai (set) oleh proses pemakai.

SISTEM OPERASI

BAB 3
Proses



3.1. Pengertian proses (task/job)


Proses berisi instruksi, data, program counter, register pemroses, stack
data, alamat pengiriman dan variabel pendukung lainnya.
Terdapat beberapa definisi mengenai proses, antara lain :
a. Merupakan konsep pokok dalam sistem operasi, sehingga masalah manajemen
proses adalah masalah utama dalam perancangan sistem operasi.
b. Proses adalah program yang sedang dieksekusi.
c. Proses adalah unit kerja terkecil yang secara individu memiliki sumber
daya dan dijadwalkan oleh sistem operasi.
Peran sistem operasi dalam kegiatan proses adalah mengelola semua proses di
sistem dan mengalokasikan sumber daya ke proses tersebut.
Banyak proses yang dijalankan bersamaan, dimana setiap proses mendapat
bagian memori dan kendali sendiri-sendiri (peran SO), sehingga setiap proses
(program) memiliki prinsip :
a. Independent, artinya program-program tersebut berdiri sendiri, terpisah
dan saling tidak bergantung.
b. One program at any instant, artinya hanya terdapat satu proses yang
dilayani pemroses pada satu saat.
Dalam multiprogramming, teknik penanganan proses adalah dengan mengeksekusi
satu proses dan secara cepat beralih ke proses lainnya (bergiliran),sehingga
menimbulkan efek paralel semu (pseudoparallelism).

Gambar (a) : Multiprogramming dengan 4 proses (program/job)
(b) : Model konseptual dari 4 proses independent, sequential proses
(c) : Hanya 1 proses yang aktif pada suatu saat


3.2. Pengendalian proses


Dalam pengendalian antar proses, sistem operasi menggunakan metode :
a. Saling melanjutkan (interleave)
Sistem operasi harus dapat kembali melanjutkan proses setelah melayani
proses lain.
b. Kebijaksaan tertentu
Sistem operasi harus mengalokasikan sumber daya ke proses berdasar
prioritasnya.
c. Komunikasi antar proses dan penciptaan proses
Sistem operasi harus mendukung komunikasi dan penciptaan antar proses
(menstrukturkan aplikasi).
Pada sistem dengan banyak proses aktif, proses-proses pada satu saat berada
dalam beragam tahap eksekusinya. Proses mengalami beragam state (ready,
running, blocked) selama siklus hidupnya sebelum berakhir dan keluar dari
sistem. Sistem operasi harus dapat mengetahui state masing-masing proses dan
merekam semua perubahan yang terjadi secara dinamis. Informasi tersebut
digunakan untuk kegiatan penjadwalan dan memutuskan alokasi sumber daya.

3.3 Status (state) proses


Sebuah proses akan mengalami serangkaian state diskrit. Beragam kejadian
dapat menyebabkan perubahan state proses. Tiga state tersebut adalah sebagai
berikut :
Tabel 3.1 : Tiga state dasar proses

Hubungan ketiga state dasar digambarkan dalam diagram berikut :

Gambar 3.1 Diagram tiga state dasar proses

Penjelasan diagram :
1. Proses yang baru diciptakan akan mempunyai state ready.
2. Proses berstate running menjadi blocked, karena sumbar daya yang diminta
belum tersedia atau meminta layanan perangkat masukan/keluaran, sehingga
menunggu kejadian muncul. Proses menunggu kejadian alokasi sumber daya
atau selesainya layanan perangkat masukan/keluaran (event wait).
3. Proses berstate running menjadi ready, karena penjadwal memutuskan
eksekusi proses lain karena jatah waktu untuk proses tersebut telah habis
(time out).
4. Proses berstate blocked menjadi ready saat sumber daya yang diminta/
diperlukan telah tersedia atau layanan perangkat masukan/keluaran selesai
(event occurs).
5. Proses berstate ready menjadi running, karena penjadwal memutuskan
penggunaan pemroses utnuk proses itu karena proses yang saat itu running
berubah statenya (menjadi ready ata blocked) atau telah menyelesaikan
sehingga disingkirkan dari sistem. Proses menjadi mendapatkan jatah
pemroses.

3.4 Diagram state lanjut


Penundaan (suspend) adalah operasi penting dan telah diterapkan dengan
beragam cara. Penundaan biasanya berlangsung singkat. Penundaan sering
dilakukan sistem untuk memindahkan proses-proses tertentu guna meredukdi
beban sistem selama beban puncak.
Proses yang ditunda (suspended blocked) tidak berlanjut sampai proses lain
meresume. Untuk jangka panjang, sumber daya-sumber daya proses dibebaskan
(dilucuti). Keputusan membebaskan sumber daya-sumber daya bergantung sifat
masing-masing sumber daya. Memori utama seharusnya segera dibebaskan begitu
proses tertunda agar dapat dimanfaatkan proses lain. Resuming (pengaktifan
kembali) proses, yaitu menjalankan proses dari titik (instruksi) dimana
proses ditunda.
Operasi suspend dan resume penting, sebab :
a. Jika sistem berfungsi secara buruk dan mungkin gagal maka proses-proses
dapat disuspend agar diresume setelah masalah diselesaikan.
Contoh :
Pada proses pencetakan, bila tiba-tiba kerta habis maka proses disuspend.
Setelah kertas dimasukkan kembali, proses pun dapat diresume.
b. Pemakai yang ragu/khawatir mengenai hasil prose dapat mensuspend proses
(bukan membuang (abort) proses). Saat pemakai yakin proses akan berfungsi
secara benar maka dapat me-resume (melanjutkan kembali di instruksi saat
disuspend) proses yang disuspend.
c. Sebagai tanggapan terhadap fluktuasi jangka pendek beban sistem, beberapa
proses dapat disuspend dan diresume saat beban kembali ke tingkat normal.

Gambar berikut menunjukkan modifikasi diagram state dengan memasukkan
kejadian suspend dan resume.

Gambar 3.2 : Diagram lima state proses

Dua state baru dimasukkan sehingga membentuk diagram 5 state, yaitu :
1. Suspended ready
2. Suspended blocked
Penundaan dapat diinisialisasi oleh proses itu sendiri atau proses lain.
a. Pada sistem monoprocessor, proses running dapat mensuspend dirinya
sendiri karena tak ada proses lain yang juga running yang dapat
memerintahkan suspend.
b. Pada sistem multiprocessor, proses running dapat disuspend proses running
lain pada pemroses berbeda. Proses ready hanya dapat di suspend oleh
proses lain.
Pada proses blocked terdapat transisi menjadi suspended blocked. Pilihan in
dirasa aneh. Apakah tidak cukup menunggu selesainya operasi masukan/keluaran
atau kejadian yang membuat proses ready atau suspended ready ?. Bukankah
state blockedm readyblockedm suspended blocked sama-sama tidak mendapat
jatah waktu pemroses ?. Kenapa dibedakan ?.
Alasannya, karena penyelesaian operasi masukan/keluaran bagi proses blocked
mungkin tak pernah terjadi atau dalam waktu tak terdefinisikan sehingga
lebih baik disuspend agar sumber daya-sumber daya yang dialokasikan untuk
proses tersebut dapat digunakan proses-proses lain. Untuk kondisi ini, lebih
baik sumber daya-sumber daya yang dipegang proses yang berkondisi seperti
ini dipakai proses-proses lain.
Proses blocked disuspend sistem atau secara manual menjadi suspended blocked.
Bila akhirnya operasi masukan/keluaran berakhir maka segera proses suspended
blocked 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.

3.5. Program Control Block (PCB)


Struktur data PCB menyimpan informasi lengkap mengenai proses sehingga dapat
terjadi siklus hidup proses. Sistem operasi memerlukan banyak informasi
mengenai proses guna pengelolaan proses. Informasi ini berada di PCB.
Sistem berbeda akan mengorganisasikan secara berbeda.
Informasi dalam PCB :
1. Informasi identifikasi proses
Informasi ini berkaitan dengan identitas proses yang berkaitan dengan
tabel lainnya.
Informasi tersebut meliputi :
a. Identifier proses
b. Identifier proses yang menciptakan
c. Identifier pemakai
2. Informasi status pemroses
Informasi tentang isi register-register pemroses. Saat proses berstatus
running, informasi tersebut berada diregister-register. Ketika proses
diinterupsi, semua informasi register harus disimpan agar dapat
dikembalikan saat proses dieksekusi kembali. Jumlah dan jenis register
yang terlibat tergantung arsitektur komputer.
Informasi status terdiri dari :
a. Register-register yang terlihat pemakai
Adalah register-register yang dapat ditunjuk instruksi bahasa assembly
untuk diproses pemroses.
b. Register-register kendali dan status
Adalah register-register yang digunakan untuk mengendalikan operasi
pemroses.
c. Pointer stack
Tiap proses mempunyai satu atau lebih stack, yang digunakan untuk
parameter atau alamat prosedur pemanggil dan system call. Pointer
stack menunjukkan posisi paling atas dari stack.
3. Informasi kendali proses
Adalah informasi lain yang diperlukan sistem operasi untuk mengendalikan
dan koordinasi beragam proses aktif.
Informasi kendali terdiri dari :
a. Informasi penjadwalan dan status
Informasi-informasi yang digunakan untuk menjalankan fungsi penjadwalan,
antara lain :
a.1 Status proses
Mendefinisikan keadaan/status proses (running, ready, blocked)
a.2 Prioritas
Menjelaskan prioritas proses.
a.3 Informasi berkaitan dengan penjadwalan
Berkaitan dengan informasi penjadwalan, seperti lama menunggu,
lama proses terakhir dieksekusi.
a.4 Kejadian
Identitas kejadian yang ditunggu proses.
b. Penstrukturan data
Satu proses dapat dikaitkan dengan proses lain dalam satu antrian atau
ring, atau struktur lainnya. PCB harus memiliki pointer untuk mendukung
struktur ini.
c. Komuikasi antar proses
Beragam flag, sinyal dan pesan dapat diasosiasikan dengan komunikasi
antara dua proses yang terpisah.
d. Manajemen memori
Bagian yang berisi pointer ke tabel segmen atau page yang menyatakan
memori maya (virtual memori) proses.
e. Kepemilikan dan utilisasi sumber daya
Sumber daya yang dikendalikan proses harus diberi tanda, misalnya :
e.1 Berkas yang dibuka
e.2 Pemakain pemroses
e.3 Pemakaian sumber daya lainnya
Informasi ini diperlukan oleh penjadwal.
Struktur citra proses digambarkan berurutan di satu ruang alamat.
Implementasi penempatan citra proses yang sesungguhnya bergantung skema
manajemen memori yang digunakan dan organisasi struktur kendali sistem
operasi.

Gambar 3.3 : Proses pemakai

3.6. Operasi-operasi pada proses


Sistem operasi dalam mengelola proses dapat melakukan operasi-operasi
terhadap proses.
Operasi tersebut adalah :
a. Penciptaan proses
b. Penghancuran/terminasi proses
c. Penundaan proses
d. Pelanjutan kembali proses
e. Pengubahan prioritas proses
f. Memblok proses
g. Membangunkan proses
h. Menjadwalkan proses
i. Memungkinkan proses berkomunikasi dengan proses lain

3.7 Penciptaan proses


Melibatkan banyak aktivitas, yaitu :
a. Memberi identitas proses
b. Menyisipkan proses pada senarai atau tabel proses
c. Menentukan prioritas awal proses
d. Menciptakan PCB
e. Mengalokasikan sumber daya awal bagi proses
Ketika proses baru ditambahkan, sistem operasi membangun struktur data untuk
mengelola dan mengalokasikan ruang alamat proses.
Kejadian yang dapat menyebabkan penciptaan proses :
a. Pada lingkungan batch, sebagai tanggapan atas pemberian satu kerja (job)
Sistem operasi dengan kendali batch job, setelah menciptakan proses baru,
kemudian melanjutkan membaca job berikutnya.
b. Pada lingkungan interaktif, ketika pemakai baru berusaha logon.
c. Sebagai tanggapan suatu aplikasi, seperti permintaan pencetakan file,
sistem operasi dapat menciptakan proses yang akan mengelola pencetakan itu.
Sistem operasi menciptakan proses untuk memenuhi satu fungsi pada program
pemakai, tanpa mengharuskan pemakai menunggu.
d. Proses penciptaan proses lain (proses anak).
Untuk mencapai modularitas atau mengeksploitasi kongkurensi, program
pemakai memerintahkan pembuatan sejumlah proses.
Proses dapat menciptakan proses baru yaitu anak proses (child process),
sedangkan proses yang menciptakannya disebut proses induk (parent process).
Proses anakpun kembali dapat menciptakan proses-proses anak lainnya.
Proses-proses dapat membentuk pohon hirarki proses.

3.8 Tahap-tahap penciptaan proses


Penciptaan proses dapat disebabkan beragam sebab. Penciptaan proses meliputi
beberapa tahap :
1. Beri satu identifier unik ke proses baru. Isian baru ditambahkan ke tabel
proses utama yang berisi satu isian perproses.
2. Alokasikan ruang untuk proses.
3. PCB harus diinisialisasi.
4. Kaitan-kaitan antar tabel dan senarai yang cocok dibuat.
5. Bila diperlukan struktur data lain maka segera dibuat struktur data itu.

3.9. Penghancuran proses


Penghancuran proses melibatkan pembebasan proses dari sistem, yaitu :
a. Sumber daya-sumber daya yang dipakai dikembalikan.
b. Proses dihancurkan dari senarai atau tabel sistem.
c. PCB dihapus (ruang memori PCB dikembalikan ke pool memori bebas).
Penghancuran lebih rumit bila proses telah menciptakan proses-proses lain.
Terdapat dua pendekatan, yaitu :
a. Pada beberapa sistem, proses-proses turunan dihancurkan saat proses induk
dihancurkan secara otomatis.
b. Beberapa sistem lain menganggap proses anak independen terhadap proses
induk, sehingga proses anak tidak secara otomatis dihancurkan saat proses
induk dihancurkan.

Tabel 3.2 : Alasan-alasan penghancuran proses

3.10. 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 :
1. Kejadian-kejadian apa yang memicu alih proses ?
2. Masalah lain adalah terdapatnya perbedaan antara alih proses (process
switching) dan alih konteks (context switching).
3. Apa yang harus dilakukan sistem operasi terhadap beragam struktur data
yang dibawah kendalinya dalam alih proses ?

3.11. Kejadian-kejadian penyebab pengalihan proses


Kejadian-kejadian yang menyebabkan terjadinya alih proses adalah :
1. 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 data-data dan kemudian beralih ke
rutin sistem operasi yang berkaitan dengan tipe interupsi itu.
Tipe-tipeinterupsi antara lain :
a. 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.
b. Interupsi masukan/keluaran
Kejadian dimana peralatan masukan/keluaran melakukan interupsi meminta
layanan sistem operasi. Sistem operasi segera menentukan aksi-aksi
masukan/keluaran yang harus dilakukan.
c. Page/memory fault
Pemroses menemui pengacuan alamat memori maya yang tidak terdapat di
memori utama (fisik). Sistem operasi segera memerintahkan untuk
mengambil page yang terdapat alamat yang dimaksud untuk dipindah ke
memori utama.
2. Trap
Adalah interupsi karena terjadinya kesalahan atau kondisi kekecualian
(exception conditions) yang dihasilkan proses yang running, seperti usaha
illegal dalam mengakses file.
Dengan trap, sistem operasi menentukan apakah kesalahan yang dibuat
merupakan kesalahan fatal ?
a. Jika fatal, proses yang saat itu running disingkirkan dan terjadi alih
proses.
b. Jika kesalahan tidak fatal maka bergantung sifat kesalahan dan
rancangan sistem operasi.
Kemungkinan yang dilakukan adalah menjalankan prosedur pemulihan atau
memperingkatkan ke pemakai. Saat terjadi trap, mungkin terjadi pengalihan
proses mungkin pula resume proses.
3. 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).

3.12. Pengalihan konteks


Pengalihan konteks dapat terjadi tanpa pengalihan state process 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 interuppet
handler.
Setelah kedua aktivitas itu, pemroses melanjutkan menjalankan instruksi-
instruksi berikutnya di interuppt handler yang melayani interrupt.
Pelaksanaan interupsi ini belum tentu mengakibatkan pengalihan ke proses
lain (yaitu pengalihan PCB proses dari senarai running ke senarai lain
(blocked, ready), dan sebaliknya. Kita menyebut pengalihan konteks adalah
untuk pengalihan sementara yang singkat, misalnya untuk mengeksekusi program
interrupt handler.
Setelah penanganan interupsi selesa 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), kemudian sistem operasi harus
membuat perubahan-perubahan berarti terhadap lingkungannya. Rincian-rincian
dalam pelaksanaan pengalihan proses dibahas setelah ini.

3.13. Pengalihan proses


Pengalihan proses terjadi jika proses yang running beralih menjadi state
lain (ready, blocked) kemudian sistem operasi membuat perubahan-perubahan
berarti terhadap lingkungan.
Langkah-langkah yang terlibat dalam pengalihan proses sebagai berikut :
1. Simpan konteks pemroses, termasuk register PC dan register-register lain.
2. Perbarui PCB proses yang running. Pelaksanaan termasuk mengubah state
proses menjadi salah satu state (ready, blocked, suspendedready).
Field-field yang relevan juga diperbarui misalnya alasan meninggalkan
state running dan informasi akunting.
3. Pindahkan PCB proses ke senarai yang cocok (ready, blocked).
4. Pilih satu proses lain untuk dieksekusi sesuai dengan teknik penjadwalan.
5. Perbarui PCB proses yang dipilih termasuk perubahan state menjadi running.
6. Perbarui struktur-struktur data manajemen memori. Pekerjaan ini sesuai
dengan pengelolaan translasi alamat.
7. Kembalikan konteks pemroses dengan konteks simpanan yang memberitahu
konteks proses terakhir saat dialihkan dari state running. Pengembalian
konteks ini dilakukan dengan memuatkan nilai-nilai register PC dan
register-register lain dengan nilai konteks yang tersimpan.
Pengalihan proses melibatkan pengalihan konteks dan perubahan state,
memerlukan usaha lebih besar daripada pengalihan konteks.

3.14. Tabel-tabel proses


Tiap proses mempunyai state yang perlu diperhatikan sistem operasi yang
dicatat dalam beragam tabel atau senarai yang saling berhubungan, yaitu :
a. Tabel informasi manajemen memori
Untuk menjaga keutuhan memori utama dan memori sekunder yang menyimpan
informasi tentang :
a.1 Alokasi memori utama yang dipakai proses.
a.2 Alokasi memori sekunder yang dipakai proses (menggunakan manajemen
memori dengan swapping).
a.3 Atribut segmen memori utama dan sekunder.
a.4 Informasi-informasi lain yang digunakan untuk pengelolaan memori.
b. Tabel informasi manajemen masukan/keluaran
Untuk mengelola perangkat masukan/keluaran, dimana perangkat tersebut
digunakan proses tertenty, sehingga perlu dijaga agar proses lain tidak
memakainya. Sistem operasi perlu mengetahui status operasi masukan/
keluaran dan lokasi memori utama yang digunakan untuk transfer data.
c. Tabel informasi sistem file
Berisi informasi mengenai ekstensi file, lokasi pada memori sekunder,
status saat itu dan menyimpan atribut-atribut file lainnya.
d. Tabel proses
Untuk mengelola informasi proses di sistem operasi, lokasinya di memori,
status dan atribut proses lainnya.
Proses ditempatkan di memori utama di lokasi tertentu, proses mempunyai satu
ruang alamat tersendiri. Ruang alamat yang digunakan proses disebut citra
proses (process image), karena selain seluruh kode biner program, proses
ditambahi atribut-atribut lain yang berkaitan penempatannya pada suatu lokasi
memori dan status eksekusi pada saat itu.

Tabel 3.3 : Elemen-elemen citra proses

Struktur umum tabel-tabel kendali ditunjukkan pada gambar berikut :

Gambar 3.4 : Struktur tabel-tabel kendali pada sistem operasi

3.15. PCB dan senarai proses


PCB berisi informasi mengenai proses yang diperlukan sistem operasi.
PCB dibaca dan /atau dimodifikasi rutin sistem operasi seperti penjadwalan,
alokasi sumber daya, pemrosesan interupsi, monitoring dan analisis kinerja.
Kumpulan PCB mendefinisikan state sistem operasi.
Untuk menyatakan senarai proses di sistem operasi dibuat senarai PCB.

Gambar 3.5: Senarai PCB

Diagram memperlihatkan hanya satu PCB berada di senarai running. PCB ini
menyatakan proses yang saat itu sedang dieksekusi pemroses sehingga hanya
satu proses yang running. Tentu saja ini tidak berlaku untuk multiprocessing
yang dapat mengeksekusi lebih dari satu proses sekaligus.
Prose-proses ready digambarkan dengan PCB proses-proses di senarai ready.
Proses-proses menunggu dijadwalkan untuk dieksekusi pemroses. Proses yang
dijadwalkan dieksekusi (yaitu mengalami transisi dari state ready menjadi
running) maka PCBnya dipindah dari senarai ready ke senarai running.
Proses running (PCB-nya berada di senarai running) dipindah sesuai state
yang dialami proses itu, sebagai berikut :
a. Bila proses berakhir (selesai) maka dijalankan operasi terminasi sehingga
PCB-nya tak ada lagi.
b. Bila proses diblocked karena menunggu alokasi sumber daya maka PCBnya
dipindah ke senarai blocked.
c. Bila proses dijadwalkan habis jatah waktu eksekusinya maka PCBnya
dipindahkan ke senarai ready.
Proses yang sedang blocked berpindah menjadi ready bila sumber daya yang
ditunggu telah teralokasi untuknya. Untuk itu PCBnya dipindahkan ke senarai
ready.

3.16. Pengaksesan informasi di PCB


Rutin-rutin sistem operasi perlu mengakses informasi di PCB. Tiap proses
dilengkapi ID unik yang digunakan sebagai indeks (penunjuk) ke tabel untuk
mengambil PCB.
Kesulitan bukan pada mekanisme pengaksesan, tetapi masalah proteksi terhadap
PCB. Dua masalah utama proteksi terhadap PCB, yaitu :
1. Bug (kesalahan pemrograman) pada rutin tunggal, misalnya interrupt handler
dapat merusak PCB sehingga dapat berakibat menghancurkan kemampuan sistem
mengelola proses-proses yang diasosiasikan dengan PCB.
2. Perubahan rancangan struktur dan semantiks PCB dapat berdampak ke sejumlah
modul sistem operasi yang memakai PCB.
Kedua masalah tersebut memberi gagasan agar semua rutin sistem operasi
melewati satu rutin khusus, yaitu rutin penanganan PCB dalam mengakses PCB.
Tugas rutin adalah memproteksi PCB dan menjadi perantara pembacaan dan
penulisan PCB.
a. Masalah pertama dapat dicegah karena rutin penanganan PCB akan selalu
menjaga agar PCB tidak rusak.
b. Masalah kedua jelas langusng teratasi karena antarmuka terhadap rutin-
rutin lain masih tetap dipertahankan walau rincian-rincian PCB diubah.
Rutin-rutin sistem operasi yang memakai antarmuka tidak perlu diubah.
Teknik ini menghendaki didefinisikan antarmuka rutin penanganan PCB dan
rutin-rutin lain dengan baik. Kelemahan teknik ini adalah adanya overhead
kinerja karena harus memanggil rutin penanganan PCB. Pengaksesan langsung
terhadap PCB tentu lebih cepat daripada harus memanggil rutin penanganan PCB.

3.17. Kedudukan sistem operasi


Sistem operasi pada dasarnya adalah sepert perangkat lunak lain, yaitu
program yang perlu dieksekusi pemroses.
Kedudukan sistem operasi dibanding proses-proses lain, adalah :
a. Sistem operasi sebagai kernel tersendiri yang berbeda dengan proses-proses
lain (kernel sebagai non-proses).
b. Fungsi-fungsi sistem operasi dieksekusi dalam proses pemakai.
c. Sistem operasi juga sebagai kumpulan proses (process based operating
systems).

3.18. Kernel sebagai non proses


Kernel sistem operasi adalah di luar proses, digambarkan pada gambar berikut :

Gambar 3.6 : Eksekusi kernel sebagai non-proses

Ketika proses running diinterupsi atau memanggila system call, maka konteks
pemroses proses ini disimpan dan kendali dilewatkan ke kernel. Sistem operasi
mempunyai daerah memori dan stack sendiri untuk pemanggilan prosedur.
Sistem operasi melakukan fungsi yang diinginkan dan mengembalikan konteks
proses yang diinterupsi. Eksekusi proses pemakai yang diinterupsi dilanjutkan.
Alternatif lain, sistem operasi menyimpan lingkungan proses, melakukan
penjadwalan dan menjadwalkan proses lain.
Konsep proses hanya diterapkan untuk program-program pemakai. Kode sistem
operasi dieksekusi sebagai satu entitas terpisah, beroperasi pada mode
kernel. Proses adalah non-kernel, sedang sistem operasi adala kernel yang
bukan proses.

3.19. Dieksekusi dalam proses pemakai


Alternatif lain dieksekusi sistem operasi adalah mengeksekusi sistem operasi
di konteks proses pemakai. Pendekatan ini didasarkan terutama pada pandangan
bahwa sistem operasi sebagai kumpulan rutin yang dipanggil pemakai untuk
melakukan beragam fungsi dan dieksekusi dalam lingkungan proses pemakai.
Pendekatan in idigambarkan pada gambar berikut :

Gambar 3.7 : Eksekusi dalam proses pemakai

Pada seluruh waktu, sistem operasi mengelola N citra proses. Tiap citra
tidak hanya mempunyai daerah untuk proses tapi juga daerah program, data
dan stack untuk kernel. Terdapat juga ruang alamat yang dipakai bersama
semua proses. Ketika diinterupsi, trap atau supervisor call terjadi,pemroses
ditempatkan ke mode kernel dan kendali dilewatkan ke sistem operasi. Konteks
pemroses disimpan dan alih konteks ke rutin sistem operasi. Eksekusi
dilanjutkan dalam proses pemakai saat itu, tidak dilakukan alih proses,
hanya alih konteks di proses yang sama. Jika sistem operasi telah
menyelesaikan tugas, menentukan apakah proses berlanjut, maka alih konteks
meresume program yang diinterupsi dalam proses itu juga. Keunggulan
pendekatan ini adalah program pemakai yang diinterupsi untuk memperoleh
rutin sistem operasi dan diresume tidak mengalami overhead peralihan dua
proses. Jika sistem operasi menentukan bahwa alih proses terjadi bukan
kembali ke proses semula yang dieksekusi, maka kendali dilewatkan ke rutin
alih proses. Rutin ini boleh dijalankan pada proses boleh juga tidak,
bergantung rancangan sistem. Pada keadaan ini, proses saat itu menjadi
state non-running dan proses lain menjadi running.

3.20. Sistem operasi sebagai kumpulan proses


Pendekatan ini mengimplementasikan sistem operasi sebagai kumpulan proses.
Pendekatan ini digambarkan pada gambar berikut :

Gambar 3.8: Eksekusi sistem operasi sebagai proses

Variannya adalah perangkat lunak bagian kernel dieksekusi dalam mode kernel.
Fungsi-fungsi kernel utama diorganisasi sebagai proses-proses terpisah. Terdapat kode kecil pengalihan proses yang dieksekusi di luar proses.
Pendekatan ini mempunyai beberapa keunggulan, yaitu :
a. Perancangan modular dapat diterapkan ke perancangan sistem operasi. Sistem operasi menjadi modul-modul dengan interface yang bersih dan minimal antar modul-modul itu.
b. Fungsi-fungsi sistem operasi tak kritis secara bagus dapat diimplementasikan sebagai proses-proses terpisah.
c. Mudah diterapkan pada lingkungan multiprocessor atau multicomputer dimana beberapa layanan sistem operasi ditaruh di pemroses-pemroses tertentu. Teknik ini akan meningkatkan kinerja.

3.21. Mikrokernel


Saat ini, mikrokernel mendapat banyak perhatian. Mikrokernel adalah inti
sistem operasi yang menyebabkan landasan perluasan sistem operasi.
Pendekatan mikrokernel dipopularkan sistem operasi MACH. Secara teoritis,
pendekatan mikrokernel menyediakan derajat fleksibilitas dan modularitas
tinggi. Sistem operasi yang memakai pendekatan mikrokernel adalah MS Windows
NT. Landasan pendekatan mikrokernel adalah hanya fungsi-fungsi sistem
operasi inti yang secara mutlak esensi yang harus berada di kernel.
Layanan-layanan dan aplikasi-aplikasi yang kurang esensi dibangin diatas
mikrokernel itu. Meskipun pembagian antara yang perlu dan tidak perlu ada
di mikrokernel beragam. Terdapat ciri yang sama yaitu banyak lauanan yang
secara tradisional merupakan bagian sistem operasi menjadi subsistem
eksternal. Subsistem in berinteraksi dengan kernel dan subsistem-subsistem
lain. Layanan-layanan itu antara lain sistem file, sistem windowing dan
layanan-layanan keamanan. Komponen-komponen sistem operasi di luar
mikrokernel saling berinteraksi melalui pesan yang dilewatkan melalui
mikrokernel. Fungsi mikrokernel adalh sebagai mediator pertukaran pesan.
Mikrokernel memvalidasi pesan, melewatkan pesan antara komponen-komponen
dan memberi hak pengaksesan perangkat keras. Struktur ini ideal untuk
lingkungan pemrosesan terdistribusi karena mikrokernel dapat melewatkan
pesan baik secara lokal atau jarak jauh tanpa perubahan komponen-komponen
sistem operasi yang lain.

BAB 3
Proses



3.1. Pengertian proses (task/job)


Proses berisi instruksi, data, program counter, register pemroses, stack
data, alamat pengiriman dan variabel pendukung lainnya.
Terdapat beberapa definisi mengenai proses, antara lain :
a. Merupakan konsep pokok dalam sistem operasi, sehingga masalah manajemen
proses adalah masalah utama dalam perancangan sistem operasi.
b. Proses adalah program yang sedang dieksekusi.
c. Proses adalah unit kerja terkecil yang secara individu memiliki sumber
daya dan dijadwalkan oleh sistem operasi.
Peran sistem operasi dalam kegiatan proses adalah mengelola semua proses di
sistem dan mengalokasikan sumber daya ke proses tersebut.
Banyak proses yang dijalankan bersamaan, dimana setiap proses mendapat
bagian memori dan kendali sendiri-sendiri (peran SO), sehingga setiap proses
(program) memiliki prinsip :
a. Independent, artinya program-program tersebut berdiri sendiri, terpisah
dan saling tidak bergantung.
b. One program at any instant, artinya hanya terdapat satu proses yang
dilayani pemroses pada satu saat.
Dalam multiprogramming, teknik penanganan proses adalah dengan mengeksekusi
satu proses dan secara cepat beralih ke proses lainnya (bergiliran),sehingga
menimbulkan efek paralel semu (pseudoparallelism).

Gambar (a) : Multiprogramming dengan 4 proses (program/job)
(b) : Model konseptual dari 4 proses independent, sequential proses
(c) : Hanya 1 proses yang aktif pada suatu saat


3.2. Pengendalian proses


Dalam pengendalian antar proses, sistem operasi menggunakan metode :
a. Saling melanjutkan (interleave)
Sistem operasi harus dapat kembali melanjutkan proses setelah melayani
proses lain.
b. Kebijaksaan tertentu
Sistem operasi harus mengalokasikan sumber daya ke proses berdasar
prioritasnya.
c. Komunikasi antar proses dan penciptaan proses
Sistem operasi harus mendukung komunikasi dan penciptaan antar proses
(menstrukturkan aplikasi).
Pada sistem dengan banyak proses aktif, proses-proses pada satu saat berada
dalam beragam tahap eksekusinya. Proses mengalami beragam state (ready,
running, blocked) selama siklus hidupnya sebelum berakhir dan keluar dari
sistem. Sistem operasi harus dapat mengetahui state masing-masing proses dan
merekam semua perubahan yang terjadi secara dinamis. Informasi tersebut
digunakan untuk kegiatan penjadwalan dan memutuskan alokasi sumber daya.

3.3 Status (state) proses


Sebuah proses akan mengalami serangkaian state diskrit. Beragam kejadian
dapat menyebabkan perubahan state proses. Tiga state tersebut adalah sebagai
berikut :
Tabel 3.1 : Tiga state dasar proses

Hubungan ketiga state dasar digambarkan dalam diagram berikut :

Gambar 3.1 Diagram tiga state dasar proses

Penjelasan diagram :
1. Proses yang baru diciptakan akan mempunyai state ready.
2. Proses berstate running menjadi blocked, karena sumbar daya yang diminta
belum tersedia atau meminta layanan perangkat masukan/keluaran, sehingga
menunggu kejadian muncul. Proses menunggu kejadian alokasi sumber daya
atau selesainya layanan perangkat masukan/keluaran (event wait).
3. Proses berstate running menjadi ready, karena penjadwal memutuskan
eksekusi proses lain karena jatah waktu untuk proses tersebut telah habis
(time out).
4. Proses berstate blocked menjadi ready saat sumber daya yang diminta/
diperlukan telah tersedia atau layanan perangkat masukan/keluaran selesai
(event occurs).
5. Proses berstate ready menjadi running, karena penjadwal memutuskan
penggunaan pemroses utnuk proses itu karena proses yang saat itu running
berubah statenya (menjadi ready ata blocked) atau telah menyelesaikan
sehingga disingkirkan dari sistem. Proses menjadi mendapatkan jatah
pemroses.

3.4 Diagram state lanjut


Penundaan (suspend) adalah operasi penting dan telah diterapkan dengan
beragam cara. Penundaan biasanya berlangsung singkat. Penundaan sering
dilakukan sistem untuk memindahkan proses-proses tertentu guna meredukdi
beban sistem selama beban puncak.
Proses yang ditunda (suspended blocked) tidak berlanjut sampai proses lain
meresume. Untuk jangka panjang, sumber daya-sumber daya proses dibebaskan
(dilucuti). Keputusan membebaskan sumber daya-sumber daya bergantung sifat
masing-masing sumber daya. Memori utama seharusnya segera dibebaskan begitu
proses tertunda agar dapat dimanfaatkan proses lain. Resuming (pengaktifan
kembali) proses, yaitu menjalankan proses dari titik (instruksi) dimana
proses ditunda.
Operasi suspend dan resume penting, sebab :
a. Jika sistem berfungsi secara buruk dan mungkin gagal maka proses-proses
dapat disuspend agar diresume setelah masalah diselesaikan.
Contoh :
Pada proses pencetakan, bila tiba-tiba kerta habis maka proses disuspend.
Setelah kertas dimasukkan kembali, proses pun dapat diresume.
b. Pemakai yang ragu/khawatir mengenai hasil prose dapat mensuspend proses
(bukan membuang (abort) proses). Saat pemakai yakin proses akan berfungsi
secara benar maka dapat me-resume (melanjutkan kembali di instruksi saat
disuspend) proses yang disuspend.
c. Sebagai tanggapan terhadap fluktuasi jangka pendek beban sistem, beberapa
proses dapat disuspend dan diresume saat beban kembali ke tingkat normal.

Gambar berikut menunjukkan modifikasi diagram state dengan memasukkan
kejadian suspend dan resume.

Gambar 3.2 : Diagram lima state proses

Dua state baru dimasukkan sehingga membentuk diagram 5 state, yaitu :
1. Suspended ready
2. Suspended blocked
Penundaan dapat diinisialisasi oleh proses itu sendiri atau proses lain.
a. Pada sistem monoprocessor, proses running dapat mensuspend dirinya
sendiri karena tak ada proses lain yang juga running yang dapat
memerintahkan suspend.
b. Pada sistem multiprocessor, proses running dapat disuspend proses running
lain pada pemroses berbeda. Proses ready hanya dapat di suspend oleh
proses lain.
Pada proses blocked terdapat transisi menjadi suspended blocked. Pilihan in
dirasa aneh. Apakah tidak cukup menunggu selesainya operasi masukan/keluaran
atau kejadian yang membuat proses ready atau suspended ready ?. Bukankah
state blockedm readyblockedm suspended blocked sama-sama tidak mendapat
jatah waktu pemroses ?. Kenapa dibedakan ?.
Alasannya, karena penyelesaian operasi masukan/keluaran bagi proses blocked
mungkin tak pernah terjadi atau dalam waktu tak terdefinisikan sehingga
lebih baik disuspend agar sumber daya-sumber daya yang dialokasikan untuk
proses tersebut dapat digunakan proses-proses lain. Untuk kondisi ini, lebih
baik sumber daya-sumber daya yang dipegang proses yang berkondisi seperti
ini dipakai proses-proses lain.
Proses blocked disuspend sistem atau secara manual menjadi suspended blocked.
Bila akhirnya operasi masukan/keluaran berakhir maka segera proses suspended
blocked 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.

3.5. Program Control Block (PCB)


Struktur data PCB menyimpan informasi lengkap mengenai proses sehingga dapat
terjadi siklus hidup proses. Sistem operasi memerlukan banyak informasi
mengenai proses guna pengelolaan proses. Informasi ini berada di PCB.
Sistem berbeda akan mengorganisasikan secara berbeda.
Informasi dalam PCB :
1. Informasi identifikasi proses
Informasi ini berkaitan dengan identitas proses yang berkaitan dengan
tabel lainnya.
Informasi tersebut meliputi :
a. Identifier proses
b. Identifier proses yang menciptakan
c. Identifier pemakai
2. Informasi status pemroses
Informasi tentang isi register-register pemroses. Saat proses berstatus
running, informasi tersebut berada diregister-register. Ketika proses
diinterupsi, semua informasi register harus disimpan agar dapat
dikembalikan saat proses dieksekusi kembali. Jumlah dan jenis register
yang terlibat tergantung arsitektur komputer.
Informasi status terdiri dari :
a. Register-register yang terlihat pemakai
Adalah register-register yang dapat ditunjuk instruksi bahasa assembly
untuk diproses pemroses.
b. Register-register kendali dan status
Adalah register-register yang digunakan untuk mengendalikan operasi
pemroses.
c. Pointer stack
Tiap proses mempunyai satu atau lebih stack, yang digunakan untuk
parameter atau alamat prosedur pemanggil dan system call. Pointer
stack menunjukkan posisi paling atas dari stack.
3. Informasi kendali proses
Adalah informasi lain yang diperlukan sistem operasi untuk mengendalikan
dan koordinasi beragam proses aktif.
Informasi kendali terdiri dari :
a. Informasi penjadwalan dan status
Informasi-informasi yang digunakan untuk menjalankan fungsi penjadwalan,
antara lain :
a.1 Status proses
Mendefinisikan keadaan/status proses (running, ready, blocked)
a.2 Prioritas
Menjelaskan prioritas proses.
a.3 Informasi berkaitan dengan penjadwalan
Berkaitan dengan informasi penjadwalan, seperti lama menunggu,
lama proses terakhir dieksekusi.
a.4 Kejadian
Identitas kejadian yang ditunggu proses.
b. Penstrukturan data
Satu proses dapat dikaitkan dengan proses lain dalam satu antrian atau
ring, atau struktur lainnya. PCB harus memiliki pointer untuk mendukung
struktur ini.
c. Komuikasi antar proses
Beragam flag, sinyal dan pesan dapat diasosiasikan dengan komunikasi
antara dua proses yang terpisah.
d. Manajemen memori
Bagian yang berisi pointer ke tabel segmen atau page yang menyatakan
memori maya (virtual memori) proses.
e. Kepemilikan dan utilisasi sumber daya
Sumber daya yang dikendalikan proses harus diberi tanda, misalnya :
e.1 Berkas yang dibuka
e.2 Pemakain pemroses
e.3 Pemakaian sumber daya lainnya
Informasi ini diperlukan oleh penjadwal.
Struktur citra proses digambarkan berurutan di satu ruang alamat.
Implementasi penempatan citra proses yang sesungguhnya bergantung skema
manajemen memori yang digunakan dan organisasi struktur kendali sistem
operasi.

Gambar 3.3 : Proses pemakai

3.6. Operasi-operasi pada proses


Sistem operasi dalam mengelola proses dapat melakukan operasi-operasi
terhadap proses.
Operasi tersebut adalah :
a. Penciptaan proses
b. Penghancuran/terminasi proses
c. Penundaan proses
d. Pelanjutan kembali proses
e. Pengubahan prioritas proses
f. Memblok proses
g. Membangunkan proses
h. Menjadwalkan proses
i. Memungkinkan proses berkomunikasi dengan proses lain

3.7 Penciptaan proses


Melibatkan banyak aktivitas, yaitu :
a. Memberi identitas proses
b. Menyisipkan proses pada senarai atau tabel proses
c. Menentukan prioritas awal proses
d. Menciptakan PCB
e. Mengalokasikan sumber daya awal bagi proses
Ketika proses baru ditambahkan, sistem operasi membangun struktur data untuk
mengelola dan mengalokasikan ruang alamat proses.
Kejadian yang dapat menyebabkan penciptaan proses :
a. Pada lingkungan batch, sebagai tanggapan atas pemberian satu kerja (job)
Sistem operasi dengan kendali batch job, setelah menciptakan proses baru,
kemudian melanjutkan membaca job berikutnya.
b. Pada lingkungan interaktif, ketika pemakai baru berusaha logon.
c. Sebagai tanggapan suatu aplikasi, seperti permintaan pencetakan file,
sistem operasi dapat menciptakan proses yang akan mengelola pencetakan itu.
Sistem operasi menciptakan proses untuk memenuhi satu fungsi pada program
pemakai, tanpa mengharuskan pemakai menunggu.
d. Proses penciptaan proses lain (proses anak).
Untuk mencapai modularitas atau mengeksploitasi kongkurensi, program
pemakai memerintahkan pembuatan sejumlah proses.
Proses dapat menciptakan proses baru yaitu anak proses (child process),
sedangkan proses yang menciptakannya disebut proses induk (parent process).
Proses anakpun kembali dapat menciptakan proses-proses anak lainnya.
Proses-proses dapat membentuk pohon hirarki proses.

3.8 Tahap-tahap penciptaan proses


Penciptaan proses dapat disebabkan beragam sebab. Penciptaan proses meliputi
beberapa tahap :
1. Beri satu identifier unik ke proses baru. Isian baru ditambahkan ke tabel
proses utama yang berisi satu isian perproses.
2. Alokasikan ruang untuk proses.
3. PCB harus diinisialisasi.
4. Kaitan-kaitan antar tabel dan senarai yang cocok dibuat.
5. Bila diperlukan struktur data lain maka segera dibuat struktur data itu.

3.9. Penghancuran proses


Penghancuran proses melibatkan pembebasan proses dari sistem, yaitu :
a. Sumber daya-sumber daya yang dipakai dikembalikan.
b. Proses dihancurkan dari senarai atau tabel sistem.
c. PCB dihapus (ruang memori PCB dikembalikan ke pool memori bebas).
Penghancuran lebih rumit bila proses telah menciptakan proses-proses lain.
Terdapat dua pendekatan, yaitu :
a. Pada beberapa sistem, proses-proses turunan dihancurkan saat proses induk
dihancurkan secara otomatis.
b. Beberapa sistem lain menganggap proses anak independen terhadap proses
induk, sehingga proses anak tidak secara otomatis dihancurkan saat proses
induk dihancurkan.

Tabel 3.2 : Alasan-alasan penghancuran proses

3.10. 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 :
1. Kejadian-kejadian apa yang memicu alih proses ?
2. Masalah lain adalah terdapatnya perbedaan antara alih proses (process
switching) dan alih konteks (context switching).
3. Apa yang harus dilakukan sistem operasi terhadap beragam struktur data
yang dibawah kendalinya dalam alih proses ?

3.11. Kejadian-kejadian penyebab pengalihan proses


Kejadian-kejadian yang menyebabkan terjadinya alih proses adalah :
1. 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 data-data dan kemudian beralih ke
rutin sistem operasi yang berkaitan dengan tipe interupsi itu.
Tipe-tipeinterupsi antara lain :
a. 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.
b. Interupsi masukan/keluaran
Kejadian dimana peralatan masukan/keluaran melakukan interupsi meminta
layanan sistem operasi. Sistem operasi segera menentukan aksi-aksi
masukan/keluaran yang harus dilakukan.
c. Page/memory fault
Pemroses menemui pengacuan alamat memori maya yang tidak terdapat di
memori utama (fisik). Sistem operasi segera memerintahkan untuk
mengambil page yang terdapat alamat yang dimaksud untuk dipindah ke
memori utama.
2. Trap
Adalah interupsi karena terjadinya kesalahan atau kondisi kekecualian
(exception conditions) yang dihasilkan proses yang running, seperti usaha
illegal dalam mengakses file.
Dengan trap, sistem operasi menentukan apakah kesalahan yang dibuat
merupakan kesalahan fatal ?
a. Jika fatal, proses yang saat itu running disingkirkan dan terjadi alih
proses.
b. Jika kesalahan tidak fatal maka bergantung sifat kesalahan dan
rancangan sistem operasi.
Kemungkinan yang dilakukan adalah menjalankan prosedur pemulihan atau
memperingkatkan ke pemakai. Saat terjadi trap, mungkin terjadi pengalihan
proses mungkin pula resume proses.
3. 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).

3.12. Pengalihan konteks


Pengalihan konteks dapat terjadi tanpa pengalihan state process 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 interuppet
handler.
Setelah kedua aktivitas itu, pemroses melanjutkan menjalankan instruksi-
instruksi berikutnya di interuppt handler yang melayani interrupt.
Pelaksanaan interupsi ini belum tentu mengakibatkan pengalihan ke proses
lain (yaitu pengalihan PCB proses dari senarai running ke senarai lain
(blocked, ready), dan sebaliknya. Kita menyebut pengalihan konteks adalah
untuk pengalihan sementara yang singkat, misalnya untuk mengeksekusi program
interrupt handler.
Setelah penanganan interupsi selesa 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), kemudian sistem operasi harus
membuat perubahan-perubahan berarti terhadap lingkungannya. Rincian-rincian
dalam pelaksanaan pengalihan proses dibahas setelah ini.

3.13. Pengalihan proses


Pengalihan proses terjadi jika proses yang running beralih menjadi state
lain (ready, blocked) kemudian sistem operasi membuat perubahan-perubahan
berarti terhadap lingkungan.
Langkah-langkah yang terlibat dalam pengalihan proses sebagai berikut :
1. Simpan konteks pemroses, termasuk register PC dan register-register lain.
2. Perbarui PCB proses yang running. Pelaksanaan termasuk mengubah state
proses menjadi salah satu state (ready, blocked, suspendedready).
Field-field yang relevan juga diperbarui misalnya alasan meninggalkan
state running dan informasi akunting.
3. Pindahkan PCB proses ke senarai yang cocok (ready, blocked).
4. Pilih satu proses lain untuk dieksekusi sesuai dengan teknik penjadwalan.
5. Perbarui PCB proses yang dipilih termasuk perubahan state menjadi running.
6. Perbarui struktur-struktur data manajemen memori. Pekerjaan ini sesuai
dengan pengelolaan translasi alamat.
7. Kembalikan konteks pemroses dengan konteks simpanan yang memberitahu
konteks proses terakhir saat dialihkan dari state running. Pengembalian
konteks ini dilakukan dengan memuatkan nilai-nilai register PC dan
register-register lain dengan nilai konteks yang tersimpan.
Pengalihan proses melibatkan pengalihan konteks dan perubahan state,
memerlukan usaha lebih besar daripada pengalihan konteks.

3.14. Tabel-tabel proses


Tiap proses mempunyai state yang perlu diperhatikan sistem operasi yang
dicatat dalam beragam tabel atau senarai yang saling berhubungan, yaitu :
a. Tabel informasi manajemen memori
Untuk menjaga keutuhan memori utama dan memori sekunder yang menyimpan
informasi tentang :
a.1 Alokasi memori utama yang dipakai proses.
a.2 Alokasi memori sekunder yang dipakai proses (menggunakan manajemen
memori dengan swapping).
a.3 Atribut segmen memori utama dan sekunder.
a.4 Informasi-informasi lain yang digunakan untuk pengelolaan memori.
b. Tabel informasi manajemen masukan/keluaran
Untuk mengelola perangkat masukan/keluaran, dimana perangkat tersebut
digunakan proses tertenty, sehingga perlu dijaga agar proses lain tidak
memakainya. Sistem operasi perlu mengetahui status operasi masukan/
keluaran dan lokasi memori utama yang digunakan untuk transfer data.
c. Tabel informasi sistem file
Berisi informasi mengenai ekstensi file, lokasi pada memori sekunder,
status saat itu dan menyimpan atribut-atribut file lainnya.
d. Tabel proses
Untuk mengelola informasi proses di sistem operasi, lokasinya di memori,
status dan atribut proses lainnya.
Proses ditempatkan di memori utama di lokasi tertentu, proses mempunyai satu
ruang alamat tersendiri. Ruang alamat yang digunakan proses disebut citra
proses (process image), karena selain seluruh kode biner program, proses
ditambahi atribut-atribut lain yang berkaitan penempatannya pada suatu lokasi
memori dan status eksekusi pada saat itu.

Tabel 3.3 : Elemen-elemen citra proses

Struktur umum tabel-tabel kendali ditunjukkan pada gambar berikut :

Gambar 3.4 : Struktur tabel-tabel kendali pada sistem operasi

3.15. PCB dan senarai proses


PCB berisi informasi mengenai proses yang diperlukan sistem operasi.
PCB dibaca dan /atau dimodifikasi rutin sistem operasi seperti penjadwalan,
alokasi sumber daya, pemrosesan interupsi, monitoring dan analisis kinerja.
Kumpulan PCB mendefinisikan state sistem operasi.
Untuk menyatakan senarai proses di sistem operasi dibuat senarai PCB.

Gambar 3.5: Senarai PCB

Diagram memperlihatkan hanya satu PCB berada di senarai running. PCB ini
menyatakan proses yang saat itu sedang dieksekusi pemroses sehingga hanya
satu proses yang running. Tentu saja ini tidak berlaku untuk multiprocessing
yang dapat mengeksekusi lebih dari satu proses sekaligus.
Prose-proses ready digambarkan dengan PCB proses-proses di senarai ready.
Proses-proses menunggu dijadwalkan untuk dieksekusi pemroses. Proses yang
dijadwalkan dieksekusi (yaitu mengalami transisi dari state ready menjadi
running) maka PCBnya dipindah dari senarai ready ke senarai running.
Proses running (PCB-nya berada di senarai running) dipindah sesuai state
yang dialami proses itu, sebagai berikut :
a. Bila proses berakhir (selesai) maka dijalankan operasi terminasi sehingga
PCB-nya tak ada lagi.
b. Bila proses diblocked karena menunggu alokasi sumber daya maka PCBnya
dipindah ke senarai blocked.
c. Bila proses dijadwalkan habis jatah waktu eksekusinya maka PCBnya
dipindahkan ke senarai ready.
Proses yang sedang blocked berpindah menjadi ready bila sumber daya yang
ditunggu telah teralokasi untuknya. Untuk itu PCBnya dipindahkan ke senarai
ready.

3.16. Pengaksesan informasi di PCB


Rutin-rutin sistem operasi perlu mengakses informasi di PCB. Tiap proses
dilengkapi ID unik yang digunakan sebagai indeks (penunjuk) ke tabel untuk
mengambil PCB.
Kesulitan bukan pada mekanisme pengaksesan, tetapi masalah proteksi terhadap
PCB. Dua masalah utama proteksi terhadap PCB, yaitu :
1. Bug (kesalahan pemrograman) pada rutin tunggal, misalnya interrupt handler
dapat merusak PCB sehingga dapat berakibat menghancurkan kemampuan sistem
mengelola proses-proses yang diasosiasikan dengan PCB.
2. Perubahan rancangan struktur dan semantiks PCB dapat berdampak ke sejumlah
modul sistem operasi yang memakai PCB.
Kedua masalah tersebut memberi gagasan agar semua rutin sistem operasi
melewati satu rutin khusus, yaitu rutin penanganan PCB dalam mengakses PCB.
Tugas rutin adalah memproteksi PCB dan menjadi perantara pembacaan dan
penulisan PCB.
a. Masalah pertama dapat dicegah karena rutin penanganan PCB akan selalu
menjaga agar PCB tidak rusak.
b. Masalah kedua jelas langusng teratasi karena antarmuka terhadap rutin-
rutin lain masih tetap dipertahankan walau rincian-rincian PCB diubah.
Rutin-rutin sistem operasi yang memakai antarmuka tidak perlu diubah.
Teknik ini menghendaki didefinisikan antarmuka rutin penanganan PCB dan
rutin-rutin lain dengan baik. Kelemahan teknik ini adalah adanya overhead
kinerja karena harus memanggil rutin penanganan PCB. Pengaksesan langsung
terhadap PCB tentu lebih cepat daripada harus memanggil rutin penanganan PCB.

3.17. Kedudukan sistem operasi


Sistem operasi pada dasarnya adalah sepert perangkat lunak lain, yaitu
program yang perlu dieksekusi pemroses.
Kedudukan sistem operasi dibanding proses-proses lain, adalah :
a. Sistem operasi sebagai kernel tersendiri yang berbeda dengan proses-proses
lain (kernel sebagai non-proses).
b. Fungsi-fungsi sistem operasi dieksekusi dalam proses pemakai.
c. Sistem operasi juga sebagai kumpulan proses (process based operating
systems).

3.18. Kernel sebagai non proses


Kernel sistem operasi adalah di luar proses, digambarkan pada gambar berikut :

Gambar 3.6 : Eksekusi kernel sebagai non-proses

Ketika proses running diinterupsi atau memanggila system call, maka konteks
pemroses proses ini disimpan dan kendali dilewatkan ke kernel. Sistem operasi
mempunyai daerah memori dan stack sendiri untuk pemanggilan prosedur.
Sistem operasi melakukan fungsi yang diinginkan dan mengembalikan konteks
proses yang diinterupsi. Eksekusi proses pemakai yang diinterupsi dilanjutkan.
Alternatif lain, sistem operasi menyimpan lingkungan proses, melakukan
penjadwalan dan menjadwalkan proses lain.
Konsep proses hanya diterapkan untuk program-program pemakai. Kode sistem
operasi dieksekusi sebagai satu entitas terpisah, beroperasi pada mode
kernel. Proses adalah non-kernel, sedang sistem operasi adala kernel yang
bukan proses.

3.19. Dieksekusi dalam proses pemakai


Alternatif lain dieksekusi sistem operasi adalah mengeksekusi sistem operasi
di konteks proses pemakai. Pendekatan ini didasarkan terutama pada pandangan
bahwa sistem operasi sebagai kumpulan rutin yang dipanggil pemakai untuk
melakukan beragam fungsi dan dieksekusi dalam lingkungan proses pemakai.
Pendekatan in idigambarkan pada gambar berikut :

Gambar 3.7 : Eksekusi dalam proses pemakai

Pada seluruh waktu, sistem operasi mengelola N citra proses. Tiap citra
tidak hanya mempunyai daerah untuk proses tapi juga daerah program, data
dan stack untuk kernel. Terdapat juga ruang alamat yang dipakai bersama
semua proses. Ketika diinterupsi, trap atau supervisor call terjadi,pemroses
ditempatkan ke mode kernel dan kendali dilewatkan ke sistem operasi. Konteks
pemroses disimpan dan alih konteks ke rutin sistem operasi. Eksekusi
dilanjutkan dalam proses pemakai saat itu, tidak dilakukan alih proses,
hanya alih konteks di proses yang sama. Jika sistem operasi telah
menyelesaikan tugas, menentukan apakah proses berlanjut, maka alih konteks
meresume program yang diinterupsi dalam proses itu juga. Keunggulan
pendekatan ini adalah program pemakai yang diinterupsi untuk memperoleh
rutin sistem operasi dan diresume tidak mengalami overhead peralihan dua
proses. Jika sistem operasi menentukan bahwa alih proses terjadi bukan
kembali ke proses semula yang dieksekusi, maka kendali dilewatkan ke rutin
alih proses. Rutin ini boleh dijalankan pada proses boleh juga tidak,
bergantung rancangan sistem. Pada keadaan ini, proses saat itu menjadi
state non-running dan proses lain menjadi running.

3.20. Sistem operasi sebagai kumpulan proses


Pendekatan ini mengimplementasikan sistem operasi sebagai kumpulan proses.
Pendekatan ini digambarkan pada gambar berikut :

Gambar 3.8: Eksekusi sistem operasi sebagai proses

Variannya adalah perangkat lunak bagian kernel dieksekusi dalam mode kernel.
Fungsi-fungsi kernel utama diorganisasi sebagai proses-proses terpisah. Terdapat kode kecil pengalihan proses yang dieksekusi di luar proses.
Pendekatan ini mempunyai beberapa keunggulan, yaitu :
a. Perancangan modular dapat diterapkan ke perancangan sistem operasi. Sistem operasi menjadi modul-modul dengan interface yang bersih dan minimal antar modul-modul itu.
b. Fungsi-fungsi sistem operasi tak kritis secara bagus dapat diimplementasikan sebagai proses-proses terpisah.
c. Mudah diterapkan pada lingkungan multiprocessor atau multicomputer dimana beberapa layanan sistem operasi ditaruh di pemroses-pemroses tertentu. Teknik ini akan meningkatkan kinerja.

3.21. Mikrokernel


Saat ini, mikrokernel mendapat banyak perhatian. Mikrokernel adalah inti
sistem operasi yang menyebabkan landasan perluasan sistem operasi.
Pendekatan mikrokernel dipopularkan sistem operasi MACH. Secara teoritis,
pendekatan mikrokernel menyediakan derajat fleksibilitas dan modularitas
tinggi. Sistem operasi yang memakai pendekatan mikrokernel adalah MS Windows
NT. Landasan pendekatan mikrokernel adalah hanya fungsi-fungsi sistem
operasi inti yang secara mutlak esensi yang harus berada di kernel.
Layanan-layanan dan aplikasi-aplikasi yang kurang esensi dibangin diatas
mikrokernel itu. Meskipun pembagian antara yang perlu dan tidak perlu ada
di mikrokernel beragam. Terdapat ciri yang sama yaitu banyak lauanan yang
secara tradisional merupakan bagian sistem operasi menjadi subsistem
eksternal. Subsistem in berinteraksi dengan kernel dan subsistem-subsistem
lain. Layanan-layanan itu antara lain sistem file, sistem windowing dan
layanan-layanan keamanan. Komponen-komponen sistem operasi di luar
mikrokernel saling berinteraksi melalui pesan yang dilewatkan melalui
mikrokernel. Fungsi mikrokernel adalh sebagai mediator pertukaran pesan.
Mikrokernel memvalidasi pesan, melewatkan pesan antara komponen-komponen
dan memberi hak pengaksesan perangkat keras. Struktur ini ideal untuk
lingkungan pemrosesan terdistribusi karena mikrokernel dapat melewatkan
pesan baik secara lokal atau jarak jauh tanpa perubahan komponen-komponen
sistem operasi yang lain.

SISTEM OPERASI

BAB 2
Sistem Operasi



2.1. Pendahuluan


Tanpa perangkat lunak (software) sebuah komputer sebenarnya sekumpulan besi
yang tidak berguna. Dengan software sebuah komputer dapat digunakan untuk
menyimpan, mengolah data (memproses) dan mendapatkan kembali informasi yang
telah disimpan, menemukan kesalahan dalam program, memainkan games dan
menggunakan banyak aktivitas lainnya yang bernilai. Pada umumnya program
komputer dapat dibagi menjadi dua kategori, yaitu :
a. Program sistem (system program)
Yang berfungsi untuk mengatur operasi dari komputer itu sendiri.
b. Program aplikasi (application program)
Yang berfungsi untuk membantu menyelesaikan masalah untuk pemakainya.
Dasar yang sangat penting dari semua program sistem adalah operating system
yang mengontrol semua sumber daya komputer dan menyediakan landasan sehingga
sebuah program aplikasi dapat ditulis atau dijalankan.
Sebuah sistem komputer modern berisi satu atau lebih prosesor, banyak memori
utama (sering disebut sebagai "core memory", walaupun magnetic cores yang
sudah tidak digunakan dalam memory selama lebih satu dekade), clocks,
terminal, disk, antarmuka (interface) jaringan, dan peralatan masukan/
keluaran lainnya. Semua dalam semua, sebuah sistem yang kompleks, yaitu
untuk menulis program yang disimpan dalam track sehingga dapat digunakan
secara benar, apalagi dengan pengoptimalannya adalah sebuah pekerjaan atau
tugas yang sangat sulit. Jika setiap programmer memfokuskan tentang bagaimana
disk drive bekerja dan apa saja yang dapat dijalankan dengan benar ketika
membaca sebuah block disk, mustahil bahwa banyak program dapat ditulis
secara baik.
Beberapa tahun yang lelu telah menjadi kejelasan bahwa banyak cara atau
metode menyediakan pelindung (sheild) atau sesuatu yang dapat menyembunyikan
programmer dari kekomplekan perangkat keras. Cara yang telah berangsur-angsur
berkembang adalah dengan menentukan atau membuat sebuah lapis (layer)
perangkat lunak yang mengendalikan komponen pokok perangkat keras, mengatur
semua bagian sistem, dan menyediakan pemakai dengan antarmuak (interface)
atau virtual machine yang memudahkan memahami dan memprogram. Lapisan dari
perangkat lunak adalah operating system dan hal tersebut menjadi pokok
bahasan dalam buku ini.


Diagram atau lapis (layer) dapat dilihat sebagai berikut :

+-------------------------------------------+==+
: Banking : Airline : Adventure : : Application
: System : Reservation : Games : : Programs
+-------------------------------------------+==+
: Compilers : Editors : Command : :
: : : Interpreter : : System
+-------------------------------------------+ : Programs
: Operating System : :
+-------------------------------------------+==+
: Machine Language : :
+-------------------------------------------+ :
: Microprogramming : : Hardware
+-------------------------------------------+ :
: Physical Devices : :
+-------------------------------------------+==+

Gambar 1-2 : Sebuah sistem komputer yang terdiri dari
hardware, system programs dan application program

Pada bagian bawah dari gambar diatas adalah perangkat keras yang didalamnya
banyak terdapat alasan yang membentuk dua atau lebih lapis. Lapis yang paling
bawah (physical devices) berisi perangkat fisik, yang terdiri dari integrasi
circuit chips, kabel (wires), power supplies, cathode ray tubes (CRT) dan
perangkat lainnya. Bagaimana perangkat tersebut dibuat dan bagaimana sistem
kerjanya adalah bagian dari insinyur elektronik.
Lapis berikutnya dari software primitive yang secara langsung mengontrol
peralatan tersebut (physical devices) dan menyediakan interface (a cleaner
interface) untuk layer berikut/diatasnya. Software ini disebut microprogram
yang biasanya ditempatkan dalam read-only memory (ROM). Sebenarnya
microprogram berfungsi sebagai penerjemah, mengambil (fetching) intruksi
bahasa mesin, seperti ADD, MOVE dan JUMP serta melaksanakan proses-proses
kecil yang saling terkait. Contohnya apabila melaksanakan instruksi ADD,
microprogram harus menentukan dimana angka-angka yang ditambahkan ditempatkan
(disimpan sementara), mengambilnya, menambahkannya dan menyimpan hasilnya
disuatu tempat tertentu. Sekumpulan instruksi yang diterjemahkan microprogram
disebut machine language (bahasa mesin), yang kenyataannya bukan bagian dari
perangkat mesin semuanya, tetapi pembuat komputer selalu menjelaskannya dalam
manualnya (sejenis buku panduan perangkat kerasnya), sehingga banyak orang
mengira sebagai mesin sesungguhnya. Dalam banyak mesin microprogram
diimplementasikan dalam hardware dan sebenarnya tidak sebuah lapis yang jelas.
Bahasa mesin secara khusus memiliki antara 50 sampai 300 instruksi, yang
sebagian besar untuk memindahkan data disekeliling mesin, mengerjakan
aritmatika dan membandingkan nilai. Dalam lapis ini, perangkat masukan/
keluaran mengontrol pemuatan nilai ke dalam register khusus. Untuk contoh,
sebuah disk dapat diperintahkan membaca untuk memuat nilai dari alamat disk,
alamat memori utama, besarnya byte dan memerintahkan (READ atau WRITE) ke
dalam registernya. Dalam prakteknya, banyak parameter yang dibutuhkan, dan
status drive sesudah operasi adalah masalah yang memiliki kekomplekan masalah
yang tinggi. Terlebih banyak perangkat I/O, waktu akses adalah sebuah aturan
yang penting dalam pemograman.
Sebuah fungsi utama dari Operating System adalah menyembunyikan semua
kekomplekan atau kerumitan dan memberikan programmer sebuah kenyamanan,
kemudahan, kepraktisan dari instruksi yang digunakan untuk bekerja dengannya,
sebagai contoh, READ BLOCK FROM FILE adalah konsep atau gagasan
penyederhanaan daripada harus berpikir tentang bagaimana memindahkan head
disk secara rinci, menunggu untuk menjadi tenang (posisi istirahat).
Diatas lapis Operating System (OS) adalah untuk menempatkan software system.
Dari sini ditemukan penerjemah perintah (command interpreter/shield),
compiler, editor, dan application program independent. Adalah penting untuk
menyadari/merealisasikan bahwa program-program ini dengan pasti bukan bagian
dari SO, walaupun secara khas disediakan oleh pembuat komputer. Ini adalah
penting sekali, tetapi sebagai titik kecerdikan. OS adalah bagian dari
software yang dijalankan dalam kernel mode atau supervisor mode.
SO memproteksi dari pemakai yang menganggu pemakain hardware (diabaikan
untuk microprossors yang sebelumnya yang tidak memiliki proteksi hardware).
Compiler dan editors dijalankan dalam user mode. Jika seorang tidak suka
sebuah compiler khusus, pemakai bebas menulis miliknya jika dapat memilih,
dan tentunya tidak bebas untuk menangani interrupt disk yang merupakn bagian
dari OS dan normalnya akan memproteksi hardware terhadap usaha pemakai untuk
memodifikasinya.
Akhirnya, diatas layer system program berikutnya adalah application program.
Program ini ditulis oleh user untuk memecahkan masalah khusus, seperti proses
pengolahan data, perhitungan rekayasa atau memainkan sebuah permainan.

2.2. Fungsi dan sasaran Sistem Operasi


Secara garis besar mempunyai 2 tugas utama, yaitu sebagai :

a. Pengelola seluruh sumber daya pada sistem komputer (resource manager)
Yang dimaksud dengan sumber daya pada sistem komputer adalah semua
komponen yang memberikan fungsi (manfaat) atau dengan pengertian lain
adalah semua yang terdapat atau terhubung ke sistem komputer yang dapat
untuk memindahkan,menyimpan,dan memproses data,serta untuk mengendalikan
fungsi-fungsi tersebut.
Sumber daya pada sistem komputer, antara lain :
a.1 Sumber daya fisik, misalnya :
· Keyboard, bar-code reader, mouse, joystick, light-pen, track-ball,
touch-screen, pointing devices, floppy disk drive, harddisk, tape
drive, optical disk, CD ROM drive, CRT, LCD, printer, modem,
ethernet card, PCMCIA, RAM, cache memory, register, kamera, sound
card, radio, digitizer, scanner, plotter, dan sebagainya.
Salah satu sasaran yang harus dicapai sistem operasi adalah dapat
memanfaatkan seluruh sumber daya agar dapat digunakan secara efektif
dan efisien mungkin.
a.2 Sumber daya abstrak, terdiri dari :
a.2.1 Data, misalnya :
· Semaphore untuk pengendalian sinkronisasi proses-proses, PCB
(Process Control Block) untuk mencatat dan mengendalikan
proses, tabel segmen, tabel page, i-node, FAT, file dan
sebagainya.
a.2.2 Program
Adalah kumpulan instruksi yang dapat dijalankan oleh sistem
komputer, yang dapat berupa utilitas dan program aplikasi
pengolahan data tertentu.

b. Penyedia layanan (extended/virtual machine)
Secara spesifik berfungsi :
b.1 Memberi abstaksi mesin tingkat tinggi yang lebih sederhana dan
menyembunyikan kerumitan perangkat keras.
Sistem operasi menyediakan system call (API=Application Programming
Interface) yang berfungsi menghindarkan kompleksitas pemograman dengan
memberi sekumpulan instruksi yang mudah digunakan.
b.2 Basis untuk program lain.
Program aplikasi dijalankan di atas sistem operasi yang bertujuan
untuk memanfaatkan dan mengendalikan sumber daya sistem komputer
secara benar,efisien,dan mudah dengan meminta layanan sistem operasi.

Untuk memberikan fungsi-fungsi tersebut, sistem operasi mempunyai beberapa
subsistem, antara lain :
a. Manajemen proses
b. Manajemen memori
c. Manajemen berkas
d. Manajemen perangkat masukan/keluaran
e. Pengamanan sistem
f. Sistem komunikasi
g. Dan sebagainya

2.3. Sejarah Perkembangan Sistem Operasi


Perkembangan sistem komputer dibagi menjadi empat generasi termasuk perangkat
keras dan perangkat lunaknya (sistem operasi).

Generasi Pertama (1945-1955)
Pada generasi ini belum ada sistem operasi, sistem komputer diberi instruksi
yang harus dikerjakan secara langsung.

Generasi Kedua (1955-1965)
Job dikumpulkan dalam satu rangkaian kemudian dieksekusi secara berurutan.
Sistem komputer belum dilengkapi sistem operasi, tapi beberapa fungsi dasar
sistem operasi telah ada, misalnya FMS (Fortran Monitoring System) dan IBSYS,
keduanya merupakan bagian yang fungsinya merupakan komponen sistem operasi.

Generasi Ketiga (1965-1980)
Dikembangkan untuk melayani banyak pemakai secara online, sehingga menuntut
sistem komputer dapat digunakan secara :
a. Multiuser
Berarti komputer yang memiliki resource yang dapat digunakan oleh banyak
orang sekaligus.
b. Multiprogramming
Berarti komputer melayani banyak proses/job sekaligus pada waktu bersamaan,
yaitu dengan membagi (mempartisi) memori menjadi beberapa bagian dengan
satu bagian memori adalah satu job berbeda. Saat satu job menunggu operasi
masukan/keluaran selesai, job lain dapat menggunakan proses. Teknik ini
meningkatkan efisiensi pemroses yang juga memerlukan perangkat keras
khusus untuk mencegah satu job menganggu job lain. Karena pemakai-pemakai
berinteraksi dengan komputer, komputer harus menanggapi permintaan-
permintaan secara cepat, atau akan menyebabkan produktivitas pemakai
menurun drastis. Untuk kebutuhan itu dikembangkan timesharing.

Timesharing
Varian dari multiprogramming, dimana tiap pemakai mempunyai satu terminal
online dengan pemroses hanya memberi layanan pada pemakai yang aktif
secara bergantian secara ceoat. Para pemakai akan merasa dilayani terus-
menerus, padahal sebenarnya digilir persatuan waktu yang singkat.
Karena sumber daya yang digunakan secara bersamaan akan sering menimbulkan
bottleneck, maka dikembangkan spooling.

Spooling
Membuat peripheral seolah-olah dapat digunakan bersama-sama sekaligus,
dapat diakses secara simultan, yaitu dengan cara menyediakan beberapa
partisi memori. Saat terdapat permintaan layanan peripheral, langsung
diterima dan data disimpan lebih dulu di memori yang disediakan (berupa
antrian), kemudian dijadwalkan agar secara nyata dilayani oleh peripheral.

Generasi Keempat (1980-199x)
Sistem operasi yang dapat melayani banyak mode, yaitu mendukung batch
processing, timesharing dan (soft) real time applications. Perkembangan
dengan meningkatnya kemampuan komputer dekstop (PC) dan teknologi jaringan
(TCP/IP).

2.4. Sistem komputer dalam pandangan perancang sistem operasi


Sistem operasi bertugas :
1. Menutupi atau mendandani perangkat keras komputer agar tampil indah,
mudah dan nyaman bagi pemakai.
2. Menghindarkan rincian operasi perangkat keras dan menyediakan antarmuka
untuk pemogram dalam menggunakan sistem.
3. Bertindak sebagai mediator, mempermudah pemogram dan program aplikasi
mengakses dan menggunakan fasilitas dan sumber daya sistem komputer.
Perancang sistem operasi yang bertugas mendandani perangkat keras, dituntut
mengetahui secara mendalam dan menyeluruh perangkat yang akan didandaninya
agar sistem operasi yang dirancang benar-benar berfungsi secara benar dan
efisien.

2.5. Konsep dasar sistem operasi


Antarmuka (interface) antara sistem operasi dengan program aplikasi (user
programs) dikenal sebagai extended instruciton (perluasan instruksi).
Extended instruction dapat juga disebut sebagai panggilan sistem (system
call).
a. Process
· Merupakan konsep utama dalam semua sistem operasi
· Pada dasarnya adalah sebuah program yang dieksekusi
· Berisi executable program, program's data dan stack, program counter,
stack pointer dan register lainnya.
· Tabel proses (process table) adalah tabel yang berisi informasi tentang
semua proses yang dijalankan.
· Sebuah proses dipanggil oleh command interpreter atau shell yang membaca
perintah dari terminal.
· Child process dapat membuat satu atau lebih proses lainnya.

b. Files
· Sistem operasi mendukung konsep sebuah direktori.
· Hirarki proses dan file diorganisasi sebagai trees.
· Setiap proses memiliki direktori kerja.

c. System Call
Layanan langsung sisem operasi ke pemogram adalah system call atau API
(Application Programming Interface). System call adalah tata cara
pemanggilan di program aplikasi untuk memperoleh layanan sistem operasi.
System call berupa rutin sistem operasi untuk keperluan tertentu yang
spesifik. Bentuk system call beragam, terbanyak berupa rutin prosedure
atau fungsi.
· User programs berkomunikasi dengan sistem operasi dan meminta layanan
darinya dengan membuat system calls.
· Contoh system call READ dari bahasa C : count=read(file, buffer, nbytes)

d. The shell
· Sistem operasi adalah kode yang dilaksanakan system calls.
· Dalam UNIX command interpreter disebut shell.
· Dalam prompt UNIX, sebuah karakter tanda dollar ($),memberitahu pemakai
bahwa shell menunggu permintaan perintah.
· Jika user menuliskan : $date, memiliki arti bahwa shell membuat a child
process dan menjalankan date program sebagai child. Selama child process
dijalankan, shell menunggunya untuk dihentikan. Ketika child selesai,
shell akan menampilkan prompt kembali dan mencoba membaca masukan
perintah berikutnya.

2.6. Struktur dasar sistem operasi


a. Sistem monolitik (monolithic system)
Sistem operasi sebagai kumpulan prosedur dimana prosedur dapat saling
dipanggil oleh prosedur lain di sistem bila diperlukan. Kernel berisi
semua layanan yang disediakan sistem operasi untuk pemakai. Sistem
operasi ditulis sebagai sekumpulan prosedur (a collection of procedures),
yang dapat dipanggil setiap saat oleh pemakai saat dibutuhkan.

Kelemahan :
· Pengujian dan penghilangan kesalahan sulit karena tidak dapat dipisahkan
dan dilokalisasi.
· Sulit dalam menyediakan fasilitas pengamanan.
· Merupakan pemborosan bila setiap komputer harus menjalankan kernel
monolitik sangat besar sementara sebenarnya tidak memerlukan seluruh
layanan yang disediakan kernel.
· Tidak fleksibel.
. Kesalahan pemograman satu bagian dari kernel menyebabkan matinya seluruh
sistem.

Keunggulan :
· Layanan dapat dilakukan sangat cepat karena terdapat di satu ruang
alamat.

Evolusi :
Kebanyakan UNIX sampai saat ini berstruktur monolitik. Meskipun monolitik,
yaitu seluruh komponen/subsistem sistem operasi terdapat di satu ruang
alamat tetapi secara rancangan adalah berlapis. Rancangan adalah berlapis
yaitu secara logik satu komponen/subsistem merupakan lapisan lebih bawah
dibanding lainnya dan menyediakan layanan-layanan untuk lapisan-lapisan
lebih atas. Komponen-komponen tersebut kemudia dikompilasi dan dikaitkan
(di-link) menjadi satu ruang alamat.
Untuk mempermudah dalam pengembangan terutama pengujian dan fleksibilitas,
kebanyakan UNIX saat ini menggunakan konsep kernel loadable modules,yaitu:
· Bagian-bagian kernel terpenting berada di memori utama secara tetap.
· Bagian-bagian esensi lain berupa modul yang dapat ditambahkan ke kernel
saat diperlukan dan dicabut begitu tidak digunakan lagi di waktu jalan
(run time).

b. Sistem lapis (layered system)
Sistem operasi dibentuk secara hirarki berdasar lapisan-lapisan, dimana
lapisan-lapisan bawa memberi layanan lapisan lebih atas.Struktur berlapis
dimaksudkan untuk mengurangi kompleksitas rancangan dan implementasi
sistem operasi. Tiap lapisan mempunyai fungsional dan antarmuka masukan-
keluaran antara dua lapisan bersebelahan yang terdefinisi bagus.
Lapis-lapis dalam sistem operasi ada 6 lapis, yaitu :
· Lapis 5 - The operator
Berfungsi untuk pemakai operator.
· Lapis 4 - User programs
Berfungsi untuk aplikasi program pemakai.
· Lapis 3 - I/O management
Berfungsi untuk menyederhanakan akses I/O pada level atas.
· Lapis 2 -Operator-operatot communication
Berfungsi untuk mengatur komunikasi antar proses.
· Lapis 1 -Memory and drum management
Berfungsi untuk mengatur alokasi ruang memori atau drum magnetic.
· Lapis 0 -Processor allocation and multiprogramming
Berfungsi untuk mengatur alokasi pemroses dan switching,multiprogramming
dan pengaturan prosessor.

Lapisan n memberi layanan untuk lapisan n+1. Proses-proses di lapisan
n dapat meminta layanan lapisan n-1 untuk membangunan layanan bagi
lapisan n+1. Lapisan n dapat meminta layanan lapisan n-1. Kebalikan tidak
dapat, lapisan n tidak dapat meminta layanan n+1. Masing-masing berjalan
di ruang alamat-nya sendiri.
Kelanjutan sistem berlapis adalah sistem berstruktur cincin seperti
sistem MULTICS. Sistem MULTICS terdiri 64 lapisan cincin dimana satu
lapisan berkewenangan berbeda. Lapisan n-1 mempunyai kewenangan lebih
dibanding lapisan n. Untuk meminta layanan lapisan n-1, lapisan n
melakukan trap. Kemudian, lapisan n-1 mengambil kendali sepenuhnya untuk
melayani lapisan n.

Keunggulan :
· Memiliki semua keunggulan rancangan modular, yaitu sistem dibagi menjadi
beberapa modul dan tiap modul dirancang secara independen. Tiap lapisan
dapat dirancang, dikode dan diuji secara independen.
· Pendekatan berlapis menyederhanakan rancangan, spesifikasi dan
implementasi sistem operasi.

Kelemahan :
· Fungsi-fungsi sistem operasi harus diberikan ke tiap lapisan secara
hati-hati.

c. Virtual machines (mesin maya)
· Multiprogramming
· Time sharing systems
Awalnya struktur ini membuat seolah-olah pemakai mempunyai seluruh
komputer dengan simulasi atas pemroses yang digunakan. Sistem operasi
melakukan simulasi mesin nyata. Mesin hasil simulasi digunakan pemakai,
mesin maya merupakan tiruan seratus persen atas mesin nyata.Semua pemakai
diberi iluasi mempunyai satu mesain yang sama-sama canggih.
Pendekatan ini memberikan fleksibilitas tinggi sampai memungkinkan sistem
operasi-sistem operasi berbeda dapat dijalankan dimesin-mesin maya
berbeda. Implementasi yang efisien merupakan masalah sulit karena sistem
menjadi besar dan kompleks.
Teknik ini mulanya digunakan pada IBM S/370. VM/370 menyediakan mesin
maya untuk tiap pemakai. Bila pemakai log (masuk) sistem, VM/370
menciptakan satu mesin maya baru untuk pemakai itu.
Teknik ini berkembang menjadi operating system emulator sehingga sistem
operasi dapat menjalankan aplikasi-aplikasi untuk sistem operasi lain.
· Sistem operasi MS-Windows NT dapat menjalankan aplikasi untuk MS-DOS,
OS/2 mode teks dan aplikasi Win16. Aplikasi tersebut dijalankan sebagai
masukan bagi subsistem di MS-Windows NT yang mengemulasikan system calls
yang dipanggil aplikasi dengan Win32 API (system calls di MS-Windows NT).
· IBM mengembangkan WABI yang mengemulasikan Win32 API sehingga diharapkan
sistem operasi yang menjalankan WABI dapat menjalankan aplikasi-aplikasi
untuk MS-Windows.
· Para sukarelawan pengembang Linux telah membuat DOSEMU agar aplikasi-
aplikasi untuk MS-DOS dapat dijalankan di Linux, WINE agar aplikasi
untuk MS-Windows dapat dijalankan di Linux, iBCS agar aplikasi-aplikasi
untuk SCO-UNIX dapat dijalankan di Linux, dan sebagainya.

d. Client-server model
Sistem operasi merupakan kumpulan proses dengan proses-proses
dikategorikan sebagai server dan client, yaitu :
· Server, adalah proses yang menyediakan layanan.
· Client, adalah proses yang memerlukan/meminta layanan
Proses client yang memerlukan layanan mengirim pesan ke server dan
menanti pesan jawaban. Proses server setelah melakukan tugas yang
diminta, mengirim hasil dalam bentuk pesan jawaban ke proses client.
Server hanya menanggapi permintaan client dan tidak memulai dengan
percakapan client. Kode dapat diangkat ke level tinggi, sehingga kernel
dibuat sekecil mungkin dan semua tugas diangkat ke bagian proses pemaka.
Kernel hanya mengatur komunikasi antara client dan server. Kernel yang
ini popular dengan sebutan mikrokernel.
· Permintaan pelayanan, seperti membaca sebuah blok file, sebuah user
process (disebut client process) mengirimkan permintaan kepada sebuah
server process, yang kemudian bekerja dan memberikan jawaban balik.
· Keuntungan : kemampuan diaptasi untuk digunakan dalam distributed
system.

Masalah :
· Tidak semua tugas dapat dijalankan di tingkat pemakai (sebagai proses
pemakai).
Kesulitan ini diatasi dengan :
· Proses server kritis tetap di kernel, yaitu proses yang biasanya
berhubungan dengan perangkat keras.
· Mekanisme ke kernel seminimal mungkin,sehingga pengaksesan ruang pemakai
dapat dilakukan dengna cepat.
Untuk sistem-sistem besar dengan banyak server dikehendaki supaya client
transparan dalam meminta layanan sehingga tidak menyulitkan pemogram.

Keunggulan :
· Pengembangan dapat dilakukan secara modular.
· Kesalahan (bugs) di satu subsistem (diimplementasikan sebagai satu
proses) tidak merusak subsistem-subsistem lain, sehingga tidak
mengakibatkan satu sistem mati secara keseluruhan.
· Mudah diadaptasi untuk sistem tersebar.

Kelemahan :
· Layanan dilakukan lambat karena harus melalui pertukaran pesan.
· Pertukaran pesan dapat menjadi bottleneck.

e. Sistem berorientasi Objek
Sisten operasi merealisasikan layanan sebagai kumpulan proses disebut
sistem operasi bermodel proses. Pendekatan lain implementasi layanan
adalah sebagai objek-objek. Sistem operasu yang distrukturkan menggunakan
objek disebut sistem operasi berorientasi objek. Pendekatan ini
dimaksudkan untuk mengadopsi keunggulan teknologi berorientasi objek.
Pada sistem yang berorientasi objek, layanan diimplementasikan sebagai
kumpulan objek. Objek mengkapsulkan struktur data dan sekumpulan operasi
pada struktur data itu. Tiap objek diberi tipe yang menandadi properti
objek seperti proses, direktori, berkas, dan sebagainya. Dengan memanggil
operasi yang didefinisikan di objek, data yang dikapsulkan dapat diakses
dan dimodifikasi.
Model ini sungguh terstruktur dan memisahkan antara layanan yang
disediakan dan implementasinya. Conoh sistem operasi yang berorientasi
objek, antara lain : eden, choices, x-kernel, medusa, clouds, amoeba,
muse, dan sebagainya.
Sistem operasi MS Windows NT telah mengadopsi beberapa teknologi
berorientasi objek tetapi belum keseluruhan.

2.7. Ringkasan


Dalam bab ini telah membahas sistem operasi dari dua pandangan : resource
managers dan extended machines. Dalam pandangan resource managers, tugas
sistem operasi adalah mengatur bagian-bagian yang berbeda secara efisien
dalam sistem. Dalam pandangan extented machines, tugas sistem operasi adalah
menyediakan pemakai dengan virtual machinevirtual machine yang sesuai
digunakan daripada actual machine.
Pembahasan juga menjelaskan perkembangan komputer dan sistem operasi, dan
mengetahui saat ini termasuk generasi berapa. Empat dekade telah ditinjau,
dari vacuum tubes ke personal computer (PC). Dijelaskan pula dua konsep
sistem operasi, yaitu proses dan file. Penjabaran system calls dan memberikan
contoh sederhana (READ).
Terakhir dijelaskan perbedaan struktur sistem operasi ; sebagai monolithic
system, a hierarchy of layers, a virtual machine, dan client-server model.

 
Powered by Blogger