Rabu, 12 November 2008

Pengenalan sistem operasi

PENGENALAN SISTEM OPERASI


Pengertian Sistem Operasi
Sistem Operasi adalah kumpulan program yang bertindak sebagai
perantara/penjalin/penghubung antara pemakai, perangkat lunak dengan perangkat keras
komputer sehingga sistem komputer mudah dipakai, perangkat lunak komputer dapat
digunakan secara efiesien.
Mengapa Mempelajari Sistem Operasi
- Merupakan kajian mendasar untuk pendidikn ilmu-ilmu komputer & informatika
- Rekayasawan dan ilmuwan komputer/informatika mutlak memahami Sistem Operasi,
karena Sistem Operasi ibarat roh bagi manusia.
Komponen-Komponen Sistem Komputer
1. Hardware : CPU, memory, perangkat I/O
2. Sistem Operasi : mengontrol dan mengelola penggunaan sumber daya komputer.
3. Program aplikasi: compiler, database system, business program, games, dll.
4. User : manusia, mesin dan komputer.
Sistem Operasi
1. Dapat memeritah hardware, menangani alokasi sumber daya dan melindungi aplikasi
dari koneksi langsung ke hardware.
2. Kernel adalah “jantung”-nya Sistem Operasi. Bagian yang harus selalu beroperasi agar
sistem operasi selalu hidup.
3. Tujuan dan tugas sistem operasi adalah
- Mengelola seluruh sumber daya yang terdapat pada sistem komputer
- Menyediakan sekumpulan layanan kepada user, sehingga user lebih mudah dan
nyaman dalam menggunakan atau memanfaatkan sumber daya sistem komputer.
Pengelola Seluruh Sumber Daya Sistem Komputer
- Sumber daya fisik : keyboard, mouse, joystick, disk drive, CD ROM, hard disk, printer,
monitor, modem, ethernet card, peralatan multimedia, dll.
- Sumber daya abstrak : data dan program.
Berdasarkan Banyaknya Sumber Daya yang dikelola Sistem Operasi maka…
- Sangat sulit bagi programmer untuk membuat program pada sumber daya-sumber daya
tersebut.
- Untuk mempermudah programmer dalam memebuat program agar dimengerti oleh
seluruh lapisan sumber daya tersebut, maka dibutuhkanlah yang namanya Sistem
Operasi.
Komponen-Komponen Utama Sistem Operasi
1. Manajemen Proses
2. Manajemen Memori
3. Manajemen Input / Output
4. Manajemen Berkas
5. Protection system
6. Networking
7. Command interpreter system
Layanan-layanan yang disediakan sistem operasi
1. Program execution
2. I/O Operation
3. File/system manipulation
4. Communications
5. Error detection
6. Resource allocation
7. Accounting
8. Protection
Posisi Sistem Operasi Dalam Sistem Komputer
1. Bagi Pemakai Awam
Memandang sistem komputer sebagai aplikasi untuk menyelesaikan masalah yang
dihadapinya. Pemakaai awam dapat hanya mengetahui command language untuk memanggil
atau memuatkan program aplkasi yang dipakainya.
2. Bagi Pandangan Programmer
Untuk mengekspresikan pembuatan sebuah aplikasi dalam bahasa pemrograman.
3. Bagi Percancang Sistem Operasi
Sistem operasi bertugas mendandani perangkat keras komputer agar tampil indah, mudah
dan nyaman bagi progrmmer.
Sejarah Perkembangan Sistem Operasi
Struktur Dasar Sistem Operasi
1. Sistem Monolitik
Sistem operasi sebagai kumpulan prosedur dimana prosedur dapat dipanggil oleh
prosedur lainnya bila diperlukan.
2. Sistem Berlapis
3. Sistem dengan mesin maya
4. Sistem kumpulan proses
5. Sistem berorientasi objek
6. Sistem client server

sistem operasi

Sistem Operasi

Sistem Operasi adalah program terpenting dari program - program yang terdapat dalam sistem komputer. Pada Umumnya program hanya dieksekusi selama beberapa waktu saja (transien), tetapi sistem operasi berjalan terus menerus selama komputer masih aktif.

Sistem Operasi dapat dianggap sebagai program kontrol yang bertugas untuk menjalankan program-program lain yang ada di dalam komputer. Dalam hal ini sistem operasi berada di tengah-tengah antara program/aplikasi dan perangkat keras, dan bertindak sebagai pembagi sumber daya, seperti siklus CPU, memori, ruang penyimpanan disk, dan alat-alat input/output (I/O).

Sistem Operasi juga harus dapat menangani bila terjadi konflik penggunaan sumber daya karena banyak aplikasi yang berjalan pada komputer.

Sistem Operasi juga dapat dlihat sebagai sebuah lapisan abstrak (layer of abstraction) antara aplikasi dengan perangkat keras di mana aplikasi dijalankan.

Sistem Operasi menyediakan perangkat lunak dengan interface yang berarsitektur netral ke perangkat keras melalui sekumpulan system call. System Call ini mewujudkan sebuah mesin yang tampak secara fisik.

Multilevel Feedback Queue

Multilevel Feedback Queue

Multilevel Feedback Queue

Algoritma ini mirip sekali dengan algoritma multilevel queue. Perbedaannya ialah algoritma ini mengizinkan proses untuk pindah antrian. Jika suatu proses menyita CPU terlalu lama, maka proses itu akan dipindahkan ke antrian yang lebih rendah. Hal ini menguntungkan proses interaksi karena proses ini hanya memakai waktu CPU yang sedikit. Demikian pula dengan proses yang menunggu terlalu lama. Proses ini akan dinaikkan tingkatannya. Biasanya prioritas tertinggi diberikan kepada proses dengan CPU burst terkecil, dengan begitu CPU akan terutilisasi penuh dan M/K dapat terus sibuk. Semakin rendah tingkatannya, panjang CPU burst proses juga semakin besar.

Penjadwalan ini digunakan untuk mencegah banyaknya swapping, yaitu dengan cara proses-proses yang sangat banyak menggunakan pemroses(karena menyelesaikan tugasnya yang memakan waktu lama) di beri jatah waktu(jumlah kwanta) lebih banyak dalam satu waktu. Penjadwalan ini menghendaki kelas-kelas prioritas. Kelas tertinggi berjalan selam satu kwanta, kelas berikutnya berjalan selam dua kwanta, kelas berikutnya berjalan empat kwanta, dan seterusnya. Ketentuan-ketentuan yang berlaku adalah sebagai berikut :

ü Jalankan proses pada kelas tertinggi.

ü Jika proses menggunakan seluruh kwanta yang di alokasikan padanya maka diturunkan kelas prioritasnya.

ü Proses yang masuk untuk pertama kali ke system langsung di beri kelas tertinggi.

Mekanisme ini dapat mencegah proses yang perlu berjalan lama swapping berkali-kali dan mencegah proses-proses interkatif yang sangat singkat harus menuggu lama.

Gambar 14.7. Multilevel Feedback Queue

Multilevel Feedback Queue

Algoritma ini didefinisikan melalui beberapa parameter, antara lain:

  1. Jumlah antrian.
  2. Algoritma penjadwalan tiap antrian.
  3. Kapan menaikkan proses ke antrian yang lebih tinggi.
  4. Kapan menurunkan proses ke antrian yang lebih rendah.
  5. Antrian mana yang akan dimasuki proses yang membutuhkan.

Dengan pendefinisian seperti tadi membuat algoritma ini sering dipakai, karena algoritma ini mudah dikonfigurasi ulang supaya cocok dengan sistem. Tapi untuk mengatahui mana penjadwal terbaik, kita harus mengetahui nilai parameter tersebut.

Multilevel feedback queue adalah salah satu algoritma yang berdasar pada algoritma multilevel queue. Perbedaan mendasar yang membedakan multilevel feedback queue dengan multilevel queue biasa adalah terletak pada adanya kemungkinan suatu proses berpindah dari satu antrian ke antrian lainnya, entah dengan prioritas yang lebih rendah ataupun lebih tinggi, misalnya pada contoh berikut.

  1. Semua proses yang baru datang akan diletakkan pada queue 0 ( quantum= 8 ms).
  2. Jika suatu proses tidak dapat diselesaikan dalam 8 ms, maka proses tersebut akan dihentikan dan dipindahkan ke queue 1 ( quantum= 16 ms).
  3. Queue 1 hanya akan dikerjakan jika tidak ada lagi proses di queue 0, dan jika suatu proses di queue 1 tidak selesai dalam 16 ms, maka proses tersebut akan dipindahkan ke queue 2.
  4. Queue 2 akan dikerjakan bila queue 0 dan 1 kosong, dan akan berjalan dengan algoritma FCFS.

Disini terlihat bahwa ada kemungkinan terjadinya perpindahan proses antar queue, dalam hal ini ditentukan oleh time quantum, namun dalam prakteknya penerapan algoritma multilevel feedback queue akan diterapkan dengan mendefinisikan terlebih dahulu parameter-parameternya, yaitu:

  1. Jumlah antrian.
  2. Algoritma internal tiap queue.
  3. Aturan sebuah proses naik ke antrian yang lebih tinggi.
  4. Aturan sebuah proses turun ke antrian yang lebih rendah.
  5. Antrian yang akan dimasuki tiap proses yang baru datang.

Contoh: Terdapat tiga antrian; Q1=10 ms, FCFS Q2=40 ms, FCFS Q3=FCFS proses yang masuk, masuk ke antrian Q1. Jika dalam 10 ms tidak selesai, maka proses tersebut dipindahkan ke Q2. Jika dalam 40 ms tidak selesai, maka dipindahkan lagi ke Q3. Berdasarkan hal-hal di atas maka algoritma ini dapat digunakan secara fleksibel dan diterapkan sesuai dengan kebutuhan sistem. Pada zaman sekarang ini algoritma multilevel feedback queue adalah salah satu yang paling banyak digunakan.

Multilevel Queue

Multilevel Queue

Ide dasar dari algoritma ini berdasarkan pada sistem prioritas proses. Prinsipnya, jika setiap proses dapat dikelompokkan berdasarkan prioritasnya, maka akan didapati queue seperti pada gambar berikut:

Gambar 14.6. Multilevel Queue

Multilevel Queue

Dari gambar tersebut terlihat bahwa akan terjadi pengelompokan proses-proses berdasarkan prioritasnya. Kemudian muncul ide untuk menganggap kelompok-kelompok tersbut sebagai sebuah antrian-antrian kecil yang merupakan bagian dari antrian keseluruhan proses, yang sering disebut dengan algoritma multilevel queue.

Dalam hal ini, dapat dilihat bahwa seolah-olah algoritma dengan prioritas yang dasar adalah algoritma multilevel queue dimana setiap queue akan berjalan dengan algoritma FCFS yang memiliki banyak kelemahan. Oleh karena itu, dalam prakteknya, algoritma multilevel queue memungkinkan adanya penerapan algoritma internal dalam masing-masing sub-antriannya yang bisa memiliki algoritma internal yang berbeda untuk meningkatkan kinerjanya.

Berawal dari priority scheduling, algoritma ini pun memiliki kelemahan yang sama dengan priority scheduling, yaitu sangat mungkin bahwa suatu proses pada queue dengan prioritas rendah bisa saja tidak mendapat jatah CPU. Untuk mengatasi hal tersebut, salah satu caranya adalah dengan memodifikasi algoritma ini dengan adanya jatah waktu maksimal untuk tiap antrian, sehingga jika suatu antrian memakan terlalu banyak waktu, maka prosesnya akan dihentikan dan digantikan oleh antrian dibawahnya, dan tentu saja batas waktu untuk tiap antrian bisa saja sangat berbeda tergantung pada prioritas masing-masing antrian.

FCFS (First Come First Served)

FCFS (First Come First Served)

FCFS (First Come First Served)

Algoritma ini merupakan algoritma penjadwalan yang paling sederhana yang digunakan CPU. Dengan menggunakan algoritma ini setiap proses yang berada pada status ready dimasukkan kedalam FIFO queue atau antrian dengan prinsip first in first out, sesuai dengan waktu kedatangannya. Penjadwalan ini dikatakan adil dalam arti resmi (dalam arti antrian, yang dating duluan di layani duluan), tapi dapat dinyatakan tak adil karena job-job yang perlu waktu lama membuat job-job pendek menuggu dan job-job tak penting menyebabkan job-job penting menunggu.

Penjadwalan ini sama sekali tak berguna untuk system interakif karena tidak member waktu tanggap yang bagus. FIFO jarang digunakan tapi dapat ditempelkan pada skema lain. Misalnya, banyak algoritma memutuskan berdasarkan prioritas proses tapi untuk proses-proses berprioritas sama dapat diputuskan berdasarkan FIFO.

Contoh

Ada tiga buah proses yang datang secara bersamaan yaitu pada 0 ms, P1 memiliki burst time 24 ms, P2 memiliki burst time 3 ms, dan P3 memiliki burst time 3 ms. Hitunglah waiting time rata-rata dan turnaround time( burst time + waiting time) dari ketiga proses tersebut dengan menggunakan algoritma FCFS. Waiting time untuk P1 adalah 0 ms (P1 tidak perlu menunggu), sedangkan untuk P2 adalah sebesar 24 ms (menunggu P1 selesai), dan untuk P3 sebesar 27 ms (menunggu P1 dan P2 selesai).

Gambar 14.1. Gantt Chart Kedatangan Proses

Gantt Chart Kedatangan Proses

Urutan kedatangan adalah P1, P2 , P3; gantt chart untuk urutan ini adalah:

Waiting time rata-ratanya adalah sebesar(0+24+27)/3 = 17ms. Turnaround time untuk P1 sebesar 24 ms, sedangkan untuk P2 sebesar 27 ms (dihitung dari awal kedatangan P2 hingga selesai dieksekusi), untuk P3 sebesar 30 ms. Turnaround time rata-rata untuk ketiga proses tersebut adalah (24+27+30)/3 = 27 ms.

Kelemahan dari algoritma ini:

  1. Waiting time rata-ratanya cukup lama.
  2. Terjadinya convoy effect, yaitu proses-proses menunggu lama untuk menunggu 1 proses besar yang sedang dieksekusi oleh CPU. Algoritma ini juga menerapkan konsep non-preemptive, yaitu setiap proses yang sedang dieksekusi oleh CPU tidak dapat di-interrupt oleh proses yang lain.

Misalkan proses dibalik sehingga urutan kedatangan adalah P3, P2, P1. Waiting time adalah P1=6; P2=3; P3=0. Average waiting time: (6+3+0)/3=3.

Gambar 14.2. Gantt Chart Kedatangan Proses Sesudah Urutan Kedatangan Dibalik

Gantt Chart Kedatangan Proses Sesudah Urutan Kedatangan Dibalik

ALGORITMA BERBASIS PRIORITAS

Ide pnjadwalan ini adalah tiap proses di beri prioritas dan proses berprioritas tinggi running(mendapat jatah waktu pemroses). Untuk mencegah proses-proses berprioritas tertinggi jalan tak berhingga maka taip kali proses berjalan prioritasnya di turunkan(prioritas dinamis). Jika penurunan prioritas menyebabkan prioritas turun dibawah prioritas proses lain, maka proses berprioritas lebih tinggi running. Dengan mekanisme ini, proses-proses dapat bersaing untuk mendapatkan jatah waktu pemroses. Prioritas dapa diberikan secara :

ü Prioritas statis (static priorities)

ü Prioritas dinamis (dynamic priorities)

Prioritas statis

Prioritas statis berarti prioritas tak berubah. Mekanisme prioritas statis mudah di implementasikan dan relative mempunyai over head kecil. Mekainsme ini membuat penjadwalan tak tanggap perubahan lingkungan yang mungkin menhendaki penyesuaian prioritas.

Prioritas dinamis

Prioritas dinamis merupakan mekanisme menanggapi perubahan lingkungan system beroperasi. Prioritas awal yang di berikan ke proses mungkin hanya berumur pendek setelah di sesuaikan ke nilai yang lebih sesuai lingkungan. Mekanisme prioritas dinamis lebih kompleks untuk di implementasikan dan mempunyai over head yang lebih besar di banding mekanisme prioritas statis. Over head ini di imbangi dengan adanya peningkatan daya tanggap system.

Contoh :

Terdapat proses-proses yang sangat banyak operasi masukan atau keluaran(I/O bound) dan mengahabiskan kebanyakan waktu untuk menunggu selesainya operasi masukan atau keluaran. Proses-proses di beri prioritas sangat tinggi sehingga begit proses perlu pemroses, segera di berikan agar memulai permintaan masukkan atau keluaran berikutnya sehingga kemudian proses di blocked menunggu selsainya operasi masukkan atau keluaran. Proses berjalan pararel bersama proses-proses lainya yang benar-benar memerlukan pemroses, sementara prose situ menunggu selesainya DMA beroperasi.

Proses-proses yang sangat banyak operasi masukkan atau keluaran kalau harus menunggu lama untuk memakai pemroses(karena di beri prioritas rendah) hanya akan membebani memori karena harus menyimpan proses-proses itu di memori tanpa perlu karena tidak selesai-seleasi menunggu operasi masukkan dan menunggu jatah pemroses.

Algoritma prioritas dinamis

algoritma sederhana yang memberi layanan bagus adalah menset prioritas dengan 1/f dimana f adalah ratio kwanta terakhir yang digunakan proses. Jika proses hanya menggunakan 2 msec kwanta 100 ms maka prioritasnya 50, sementara proses yang berjalan selama 50 ms sebelum di blocked berprioritas 2. Proses yang menggunakan seluruh kwanta berprioritas 1. Dengan demikian, terjamin proses-proses mendapat layanan adil dari pemroses.

Kombinasi

Algoritma penjadwalan ini dapat di kombinasikan yaitu mengelompokkan proses-proses menjadi kelas-kelas prioritas. Penjadwalan berprioritas di terapkan antar kelas-kelas prose situ. Penjadwalan round robin atau FIFO di terpkan pada proses-proses pada satu kelas.