Kamis, 26 April 2012

Sistem Operasi2

1Saya menulis Blog ini hanya karna ingin mendokumentasikan Tugas-tugas kulia saya, yaitu Sistem Operasi. Mohon mav jika dalam penulisan terdapat kesalahan, mohon dimaklumi dan diminta partisipasinya untuk berbagi komentar, kritik dan saran yang membangun agar saya dapat memperbaiki pos saya berikutnya..
Makasihh :) 


.      Jelaskan Fungsi Scaduling (Penjadwalan)
Jawab:
Scaduling (penjadwalan) berfungsi menentukan kapan serta berapa lama proses tersebut boleh menggunakan processor. Penjadwalan proses merupakan basis sistem operasi multi-programming. Dengan mengalihkan pemroses diantara proses-proses yang ada, system operasi membuat system computer menjadi lebih produktif dan efisien. Sasaran multiprogramming adalah mempunyai proses yang berjalan (dieksekuasi) disetiap waktu untuk memaksimumkan utilisasi pemroses. Jika terdapat beberapa proses di sistem, satu proses berjalan sedangkan sisanya menunggu sampai pemroses bebas dan proses itu dijadwalkan untuk dijalankan.
2.      Jelaskan Algoritma FIFO dan SJF
Jawab:
a.      Algoritma FIFO (First In First Out)
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.
Penilaian penjadwalan ini berdasarkan kriteria optimasi :
Ø  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 lama.
Ø   Efisiensi, sangat efisien.
Ø  Waktu tanggap sangat jelek, tidak cocok untuk sistem interaktif apalagi untuk sistem waktu nyata.
Ø  Turn around time kurang baik.
Ø  Throughtput kurang baik. FIFO jarang digunakan secara mandiri, tetapi dikombinasikan dengan skema lain.
Ø  Baik untuk sistem batch yang sangat jarang berinteraksi dengan pemakai.
Ø   Sangat tidak baik (tidak berguna) untuk sistem interaktif, karena tidak memberi waktu tanggap yang baik.
Ø  Tidak dapat digunakan untuk sistem waktu nyata (real-time applications).
Contoh:

Ada 4 proses, yaitu P1, P2, P3, dan P4 sedang menunggu dijadwal dengan prediksi Burst Time (waktu eksekusi) 10ms, 3ms, 5ms, 4ms. Diasumsikan keempat proses masuk pada saat yang hampir bersamaan, yaitu detik ke-0. Misalkan urutan masuknya proses: P1, P2, P3 dan P4, maka Gantt Chart untuk penjadwalannya adalah:
Maka: Waiting Time untuk P1 = 0, P2 = 10, P3 = 13, P4 = 18 dan Rata-rata Waiting Time = (0 + 10 + 13 + 18)/4 = 10,25 ms.  Sementara jika urutan masuknya proses P2, P4, P3, P1 maka Gantt Chart untuk penjadwalnya adalah:

Maka Waiting timenya adalah: P1 = 12, P2 = 0, P3 = 7, P4 = 3 dan Rata-rata Waiting Timenya adalah: (12 + 0 + 7 + 3) / 4 = 5,5 ms


b.      Algoritma SJF (Shortest Job First)
Penjadwalan SJF(Shorthest Job First) adalah kasus khusus untuk algoritma penjadwalan Prioritas. Prioritas dapat diasosiasikan masing-masing proses dan CPU dialokasikan untuk proses dengan prioritas tertinggi. Pada penjadwalan SJF, proses yang memiliki CPU burst paling kecil dilayani terlebih dahulu. SJF adalah algoritma penjadwalan yang optimal dengan rata-rata waktu tunggu yang minimal.
Hal yang sulit dengan SJF algoritma adalah mengethaui waku dari proses berikutnya. Untuk penjadual long term (lama) di sistem batch, kita bisa menggunakan panjang batas waktu proses yang user sebutkan ketika dia mengirim pekerjaan. Oleh karena itu SJF sering digunakan di penjadwal long term. Walau pun SJF optimal tetapi ia tidak bisa digunakan untuk penjadual CPU short term. Tidak ada jalan untuk mengetahui panjang dari CPU burst berikutnya. Salah satu cara untuk mengimplementasikannya adalah dengan memprediksikan CPU burst berikutnya
 Terdapat dua skema :
Ø  Non preemptive, bila CPU diberikan pada proses, maka tidak bisa ditunda sampai CPU burst selesai.
Ø  Preemptive, jika proses baru datang dengan panjang CPU burst lebih pendek dari sisa waktu proses yang saat itu sedang dieksekusi, proses ini ditunda dan diganti dengan proses baru. Skema ini disebut dengan Shortest-Remaining- Time-First (SRTF).
Contoh:
v  Non Preemptive:

Misalnya terdapat empat proses dengan panjang CPU burst dalam milidetik seperti gambar di bawah  ini:




Penjadwalan proses dengan algoritma SJF (non-preemptive) dapat dilihat pada gant chart berikut :





Waktu tunggu untuk P1 adalah 0, P2 adalah 26, P3 adalah 3 dan P4 adalah 7 sehingga rata-rata waktu tunggu adalah (0 + 6 + 3 + 7)/4 = 4 milidetik. Sedangkan Penjadwalan proses dengan algoritma SRTF (preemptive) dapat dilihat pada gant chart berikut :

Waktu tunggu untuk P1 adalah 9, P2 adalah 1, P3 adalah 0 dan P4 adalah 4 sehingga rata-rata waktu tunggu adalah (9 + 1 + 0 + 4)/4 = 3 milidetik.

Meskipun algoritma ini optimal, namun pada kenyataannya sulit untuk diimplementasikan karena sulit untuk mengetahui panjang CPU burst berikutnya. Namun nilai ini dapat diprediksi. CPU burst berikutnya biasanya diprediksi sebagai suatu rata-rata eksponensial yang ditentukan dari CPU burst sebelumnya atau “Exponential Average”.
v  Preemptive:

Misalnya terdapat empat kedatangan proses seperti gambar di bawah  ini


Maka Average waiting timenya adalah




Average waiting time
: (9+1+0+2)/4=3. Jadi  kita lihat bahwa dengan premptive lebih baik hasilnya daripada non preemptive.

Sumber:
-          http://sauri-sofyan.blogspot.com/2010/04/penjadwalan-proses-pada-sebuah-sistem.html   à sabtu 17 Maret 2012 à 14:06
-          http://blog.unsri.ac.id/HNR/mrdetail/5465  à sabtu 17 Maret 2012 à 14:12
-          http://dian75.wordpress.com/2010/08/04/penjadwalan-proses/ à sabtu 17 Maret 2012 à 14:20


Tidak ada komentar:

Posting Komentar