perangkat
lunak (software) sistem yang bertugas melakukan kontrol
dan manajemen perangkat keras serta operasi-operasi dasar dari suatu sistem
Komputer. Manajemen ini termasuk menjalakan software aplikasi seperti program-program pengolah kata, pemutar multimedia. Sistem Operasi
merupakan software pertama yang terdapat pada memori komputer pada saat
komputer dijalankan. Sedangkan software-software lainnya akan dijalankan
setelah sistem operasi berjalan terlebih dahulu. Setelah itu sistem operasi
akan melakukan pelayanan terhadap software-software tersebut. Beberapa layanan
yang biasa dikerjakan oleh sistem operasi yaitu: Manajemen Memori, Penjadwalan Task, Pengaturan user interface, Driver,
Utility Procedure, Service Procedure, Main Procedure
2. Komponen sistem komputer
perangkat keras
(hardware).Berdasarkan fungsinya, perangkat keras komputer dibagi menjadi :
1. input divice
(unit masukan)
unit yang berfungsi sebagai media untuk
memasukkan data dari luar kedalam suatu memori dan processor untuk diolah guna
menghasilkan informasi yang diperlukan. Input devices yang umumnya digunakan
personal computer (PC) adalah Keyboard, mouse, joystick, touch pad, dan lain-lain.
2. Process device (unit Pemrosesan)
peralatan
yang terdiri atas beberapa komponen hardware yang saling berhubungan dalam
bertugas menerima input data, yang selanjutnya diproses menjadi informasi
kepada brainware.
3.Output
device (unit keluaran)
alat untuk menghasilkan informasi yang
diperoleh dari hasil pemrosesan, yang dapat digolongkan menjadi empat bentuk,
yaitu tulisan (huruf, angka, simbol khusus), image (dalam bentuk grafis atau
gambar), suara dan bentuk lain yang dapat dibaca oleh mesin (machine-readable
form).
4. Backing Storage ( unit penyimpanan)
alat yang berfungsi sebagai penyimpan data dari hasil pemrosesan oleh process
device.
5. Periferal ( unit tambahan)
peralatan yang
bisa di tambahkan untuk keperluan tertentu. contohnya adalah modem untuk
koneksi ke internet, webcame untuk menampilkan gambar pengguna komputer yang
terhubung dengan pengguna lainnya di tempat yang berbeda. Alat ini tidak
berpengaruh dengan sistem komputer.
3.Fungsi Sistem Operasi
Komputer
1. Sistem Operasi sebagai Pengelola Sumber Daya (Resources Manager)
Sistem Operasi mengelola seluruh
sumber daya yang terdapat pada sistem komputer.
2. Sistem Operasi sebagai penyedia layanan atau Extended
Machine/Virtual Machine.
Sistem Operasi menyediakan
sekumpulan layanan (disebut system calls) ke pemakai sehingga memudahkan
dan menyamankan penggunaan atau pemanfaatan sumber daya system komputer.
3. Sebagai penghubung antara pengguna dangan program aplikasi.
4.
Sebagai
pengatur penggunaan perangkat keras oleh berbagai program aplikasi serta para
user.
5.
Sebagai
pengawas penggunaan perangkat keras, program aplikasi dan user (resource
allocator).
- Sebagai pengendali yang bertujuan untuk
menghindari kekeliruan (error) dan penggunaan komputer yang tidak perlu.
4.Pengelolaan proses
Sistem
operasi bertanggung jawab atas aktivitas-aktivitas yang berkaitan dengan
managemen proses seperti:
- Pembuatan dan penghapusan proses pengguna
dan sistem proses.
- Menunda atau melanjutkan proses.
- Menyediakan mekanisme untuk proses
sinkronisasi.
- Menyediakan mekanisme untuk proses
komunikasi.
- Menyediakan mekanisme untuk penanganan
deadlock.
·
Proses Pengelolaan yang mempertimbangkan hubungan
timbal balik antara kegiatan manusia dengan komputer.
suatu proses penyusunan dan pengambilan
keputusan secara rasional tentang pemanfaatan komputer secara berkelanjutan. Suatu proses kontinu dan dinamis dalam
penyusunan dan pengambilan keputusan tentang pemanfaatan komputer secara
berkesinambungan. Melakukan sebuah upaya pemeliharan secara
terjadwal atau tidak terjadwal.
5. Sinkronisasi proses
Suatu proses
yang bekerja bersama - sama dan saling berbagi data dapat mengakibatkan race
condition atau pengaksesan data secara bersama-sama. Critical section adalah
suatu segmen kode dari proses-proses itu yang yang memungkinkan terjadinya race
condition. Untuk mengatasi masalah critical section ini, suatu data yang sedang
diproses tidak boleh diganggu proses lain.
Race Condition & Critical Section.
- Arti dari Race Conditon adalah situasi
di mana beberapa proses mengakses dan memanipulasi data bersama pada saat
besamaan.
- Arti dari masalah Critical
Section adalah sebuah segmen kode di mana sebuah proses yang
mana sumber daya bersama diakses
Critical Section mempunyai beberapa kode :
- Entry Section :
kode yang digunakan untuk masuk ke dalam critical section
- Critical
Section : Kode di mana hanya ada satu proses yang
dapat dieksekusi pada satu waktu.
- Exit Section:
akhir dari critical section, mengizinkan proses lain.
- Remainder Section :
kode istirahat setelah masuk ke critical section.
Perangkat
Sinkronisasi :
Ø Instruksi
TestAndSet instruksi atomik yang dapat di gunakan untuk menangani
masalahcritical section.
Ø Semafor sebuah
variabel yang hanya dapat di akses oleh dua buah operasi standar yaitu increment
dan decrement. Dua buah jenis semafor, yaitu Binary Semaphore dan Counting
Semaphore. Semafor berfungsi untuk menangani masalah critical section, mengatur
alokasiresource dan sinkronisasi antarproses.
Ø Monitor di gunakan
untuk menangani masalah yang muncul karena pemakaian semafor. Monitor menjamin
mutual exclusion. Untuk menangani masalah sinkronisasi yang lebih rumit monitor
menyediakan condition variable.
Ø JVM
mengimplementasikan monitor, Monitor JVM bekerja dengan object locking
danmethod - method wait serta notify. Monitor JVM dapat di gunakan dengan
menggunakan keyword synchronized.
6. penjadwalan proses.
Penjadwalan
merupakan kumpulan kebijaksanaan dan mekanisme di sistem operasi yang berkaitan
dengan urutan kerja yang di lakukan sistem komputer. Penjadwalan bertugas
memutuskan :
1. Proses yang harus berjalan
2. Kapan dan selama berapa lama proses itu berjalan.
Sasaran Utama Penjadwalan Proses Optimasi kerja menurut kriteria tertentu Kriteria untuk mengukur dan optimasi kinerja
penjadwalan : [Tan-92] [MIL-92]
1. Adil (fariness)
2. Efesiensi
3. Waktu tanggap (response time)
4. Turn Arround Time
5. Throughtput
Adil (Fairness)
proses-proses
di perlukan sama yaitu mendapatkan jatah waktu pemroses yang sama dan tak ada
proses yang tidak kebagian layanan pemroses sehingga mengalami startvision.
Sasaran penjadwalan seharusnya menjamin tiap proses mendapat pelayanan dari
pemroses yang adil.
Efesiensi
Efesiensi atau
utilisasi pemroses di hitung dengan perbandingan (rasio) waktu sibuk pemroses.
Sasaran penjadwalan adalah menjaga agar pemroses tetap dalam keadaan sibuk
sehingga efesiensi mencapai maksimum. Sibuk adalah pemroses tidak menganggur,
termasuk waktu yang di habiskan untuk mengeksekusi program pemakai dan sistem
operasi.
Waktu Tanggap (Response Time)
Waktu tanggap
berbeda untuk : Sistem interaktif dan Sistem waktu nyata
Waktu tanggap pada sistem interaktif (Interaktif) di definisikan sebagai waktu
yang di habiskan dari saat karakter terakhir dari perintah di masukkan atau
transaksi sampai hasil pertama muncul di layar (terminal). Waktu tanggap ini di
sebut terminal response time.
Waktu tanggap pada sistem waktu nyata (Real Time)
Pada sistem
waktu nyata, waktu tanggap di definisikan sebagai waktu dari saat kejadian
(internal atau eksernal) sampai instruksi pertama rutin layanan yang di maksud
di eksekusi, di sebut event response time. Sasaran pendjadwalan adalah
meminimalkan waktu tanggap.
Turn Arround Time
waktu yang di habiskan dari saat program atau job mulai masuk ke system sampai
proses di selesaikan sistem. Waktu yang di maksud adalah waktu yang di habiskan
dalam sistem, di ekspresikan sebagai jumlah waktu eksekusi (waktu pelayanan
job) dan waktu menunggu, yaitu :
Turn Arround Time = waktu eksekusi + waktu tunggu
Sasaran penjadwalan adalah meminimalkan turn arround time.
Throughtput
jumlah kerja yang dapat di selesaikan dalam satu unit waktu. Cara untuk
mengekspresikan throughput adalah dengan jumlah job pemakai yang dapat di eksekusi
dalam satu unit atau interval waktu. Sasaran penjadwalan adalah memaksimalkan
jumlah job yang di proses per satu interval waktu. Lebih tinggi angka
throughput, lebih banyak kerja yang di lakukan sistem. Kriteria-kriteria
tersebut saling bergabung dan dapat pula saling bertentangan sehingga tidak di mungkinkan
optimasi semua kriteria secara simultan.
Tipe-Tipe
Penjadwalan
Terdapat tiga
tipe penjadwalan berada secara bersama-sama pada sistem operasi yang kompleks,
yaitu :
1.Penjadwal
jangka pendek (short-tem scheduller)
2.Penjadwal jangka menengah (medium-term scheduller)
3.Penjadwal jangka panjang (long-term scheduller)
Penjadwal Jangka Pendek
Penjadwal ini bertugas menjadwalkan alokasi
pemroses di antara proses-proses ready di memori utama. Sasaran utama penjadwal
ini memaksimalkan kinerja untuk memenuhi satu kumpulan kriteria yang di harapakan.
Penjadwal ini di jalankan setiap terjadi pengalihan proses untuk memilih proses
berikutnya yang harus di jalankan.
Penjadwal
Jangka Menengah
Setelah
eksekusi selama suatu waktu, proses mungkin di tunda karena membuat permintaan
layanan masukan atau keluaran atau memanggil suatu system call. Proses-proses
tertunda tidak dapat membuat suatu kemajuan selesai sampai kondisi-kondisi yang
menyebabkan tertunda di hilangkan. Agar ruang memori dapat bermanfaat, maka
proses di pindah 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 di sebut swapping. Penjadwal jangka menengah adalah menangani
proses-proses swapping. Proses-proses mempunyai kepentingan kecil saat itu
sebagai proses yang tertunda. Tetapi, begitu kondisi yang membuatnya tertunda
hilang dan proses di masukkan kembali ke memori utama dan ready. Penjadwalan
jangka menengah mengendalikan transisi dari suspended-ready (dari keadaan
suspend ke ready) proses-proses swapping.
Penjadwal Jangka Panjang
bekerja
terhadap antrian batch dan memilih batch berikutnya yang harus di eksekusi.
Batch biasanya adalah proses-proses dengan penggunaan sumber daya yang intensif
(yaitu waktu proses, memori, perangkat I/O), program-program ini berprioritas
rendah, di gunakan sebagai pengisi (agar pemroses sibuk) selama periode
aktivitas job-job interaktif rendah. Sasaran utama penjadwal jangka panjang adalah
memberi keseimbangan job-job campuran. Di kaitkan dengan state-state proses.
Strategi Pendjadwalan
Terdapat dua strategi penjadwalan, yaitu: Penjadwalan nonpreemptive (run – to –
completion) dan Penjadwalan preemptive
Penjadwalan Nonpreemptive
Begitu proses
diberi jatah waktu pemroses maka pemroses tidak dapat di ambil alih oleh proses
lain sampai proses itu selesai.
Penjadwalan Preemptive
Saat proses di beri
jatah waktu pemroses maka pemroses dapat di ambil alih proses lain sehingga
proses di sela sebelum selesai dan harus di lanjutkan menunggu jatah waktu
pemroses tiba kembali pada proses itu. Penjadwalan preemptive berguna pada
sistem di mana proses-proses yang mendapat perhatian tanggapan pemroses secara
cepat. Misalnya :
1. Pada sistem
waktu nyata, kehilangan interupsi (yaitu interupsi tidak segera dilayani) dapat
berakibat fatal.
2. Pada sistem
interaktif atau time-sharing, penjadwalan preemptive penting agar dapat
menjamin waktu tanggap yang memadai.
3. Penjadwalan preemptive bagus, tapi tidak tanpa ongkos. proses (yaitu proses
beralih ke proses lain) memerlukan overhead (karena banyak tabel yang
dikelola). Agar preemptive 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 merupakan suatu
overhead tersendiri.
Algoritma Penjadwalan
Terdapat banyak algoritma penjadwalan ,baik nonpreemptive maupun preemptive.
Algoritma-algoritma yang menerapkan strategi nonpreemptive diantaranya:
– FIFO (Frist In First Out)
– SJF (Shortest Job First)
– HRN (Highest Ratio Net)
– MFQ (Multiple Feedback Queues).
Algoritma-algoritma yang menerapkan strategi preemptive di antaranya:
– RR (Round Robin)
– SRF (Shortest remaining First)
– PS (Priority Schedulling)
– GS (Guaranteed Schedulle)
Penjadwalan Round Robin (RR)
1. Penjadwalan preemptive, buka di preempt
oleh proses lain tapi terutama oleh penjadwal berdasarkan lama waktu
berjalannya proses, di sebut preempt-by-time.
2. Penjadwalan tanpa protes.Semua Proses
di anggap penting dan di beri sejumlah waktu pemroses yang di sebut kwata
(quantum) atau time slice dimana proses itu berjalan.
Ketentuan
Ketentuan algoritma round robin adalah sebagai berikut:
1.Jika kwanta habis dan proses belum selesai maka proses menjadi runable dan
pemroses di alihkan ke poses lain.
2.Jika kwanta belum habis dan proses menunggu suatu kejadian (selesainya
operasi I/O), maka proses menjadi blocked dan pemroses di alihkan ke proses
lain.
3.Jika kwanta belum habis tapi proses telah selesai maka proses di akhiri dan
pemroses di alihkan ke proses lain.
Algoritma penjadwalan ini dapat di implementasi sebagai berikut:
1. Mengelola senarai proses ready (runnable)
seusai urutan kedatangan.
2. Ambil proses yang berada diujung
depan antrian menjadi running.
3. Bila kwanta belum habis dan proses selesai maka ambil proses diujung depan
antrian proses ready.
4. Jika kwanta habis dan proses belum selesai maka tempatkan proses running ke
ekor antrian proses ready dan ambil proses diujung depan antrian proses ready.
Masalah penjadwalan ini adalah menentukan besar kwanta, yaitu:
1. Kwanta terlalu besar menyebabkan waktu tanggap besar dan turn arround time
rendah.
2. Kwanta terlalu kecil mengakibatkan peralihan proses terlalu banyak sehingga
menurunkan efesiensi pemroses.
Harus di tetapkan kwanta waktu yang optimal berdasar kebutuhan sistem terutama
dari hasil percobaan atau data historis. Besar kwanta waktu beragam bergantung
beban sistem.
Berdasarkan kriteria penilaian penjadwalan:
1. Fairness
Penjadwalan RR adil bila dipandang dari persamaan pelayanan oleh pemroses.
2. Efesiensi
Penjadwalan RR cenderung efesien pada sistem interaktif.
3. Waktu tanggap
Penjadwalan RR memuaskan untuk sistem interaktif, tidak memakai untuk sistem
waktu nyata.
4. Turn Arround
Time
Penjadwalan RR cukup bagus.
5. Throughput
Penjadwalan RR cukup bagus.
Penggunaan:
- Cocok untuk sistem interaktif-time sharing di mana kebanyakan waktu di pergunakan
menunggu kejadian eksternal
- Tidak cocok untuk sistem real-time.
Penjadwalana FIFO
1. Penjadwalana non-preemptive
2. Penjadwalan tidak berprioritas
Ketentuan: Penjadwalan
FIFO adalah penjadwalan paling sederhana, yaitu:
1. Proses-proses di beri jatah waktu pemroses berdasarkan waktu kedatangan.
2. Begitu proses mendapat jatah waktu pemroses, proses di jalankan sampai
selesai.
Penjadwalan ini di katakan adil dalam arti resmi (dalam semantic atau arti
antrian, yaitu proses yang datangduluan, dilayani duluan juga), tapi di nyatakan
tak adil karena job-job yang perlu waktu lama membuat job-job pendek menunggu.
Job-job tak penting dapat membuat job-job penting menunggu. FIFO jarang di gunakan
secara mandiri tapi di kombinasikan dengan skema lain, misalnya : keputusan
berdasarkan prioritas proses. Untuk proses-proses berprioritas sama di putuskan
berdasarkan FIFO.
Berdasarkan kriteria
penilaian penjadwalan :
1. Fairness : Penjadwalan FIFO adil bila di pandang dari semantik antrian.
2. Efesiensi : Penjadwalan FIFO sangat efesien
3. Waktu tanggap : Penjadwalan FIFO sangat jelek, tidak cocok untuk sistem
interaktif apalagi waktu nyata.
4. Turn arround time : Penjadwalan FIFO jelek
5. Throughput : Penjadwalan FIFO jelek.
Penggunaan:
- Cocok untuk sistem batch yang sangat jarang interaksi dengan pemakai.
- Penjadwalan
ini sama sekali tak berguna untuk sistem interaktif karena tidak memberi waktu
tanggap yang bagus.
- Tidak dapat di gunakan untuk sistem waktu nyata.
Penjadwalan Berprioritas (PS)
tiap proses diberikan prioritas dan proses berprioritas tinggi running
(mendapat jatah waktu proses). Prioritas dapat di berikan secara :
– Prioritas statis
– Prioritas dinamis
Prioritas Statis
Prioritas statis berarti rioritas tak berubah
-Keunggulan : mudah
di implementasikan dan mempunyai overhead relatif kecil
-Kelemahan : Penjadwalan tak tanggap perubahan lingkungan yang mungkin
menghendaki penyesuaian prioritas.
Prioritas Dinamis
merupakan mekanisme menanggapi perubahan lingkungan sistem beroperasi. Prioritas
awal di berikan ke proses mungkin hanya berumur pendek setelah disesuaikan ke
nilai yang lebih tepat sesuai lingkungan.
Kelemahan : Implementasi mekanisme prioritas di namis lebih kompeks dan
mempunyai overhead lebih besar. Overhead ini di imbangi dengan peningkatan daya
tanggap sistem.