Sabtu, 04 April 2015

KONSEP DASAR PENJADWALAN PROSES

Penjadwalan adalah fungsi dasar dari sistem operasi.
Penjadwalan CPU adalah pemilihan proses dari Ready Queue untuk dapat dieksekusi.
Penjadwalan CPU didasarkan pada sistem operasi yang menggunakan prinsip Multiprogramming.

Penjadwalan bertugas untuk :

1. Proses yang harus berjalan.
2. Kapan dan selama berapa lama proses itu berjalan.

Kita mengenal istilah multiprograming, yang bertujuan untuk memaksimalkan penggunaan CPU dengan cara mengatur alokasi waktu yang digunakan oleh CPU, sehingga proses berjalan sepanjang waktu dan memperkecil waktu idle. Akibatnya sistem operasi dapat membuat komputer lebih produktif. Oleh karena itu perlu adanya penjadwalan proses-proses yang ada pada sistem.

Penjadwalan CPU secara garis besar dibagi menjadi 2 yaitu :
1. Penjadwalan Preemptive
    Penjadwalan Preemptive mempunyai arti kemampuan sistem operasi untuk memberhentikan               sementara proses yang sedang berjalan untuk memberi ruang kepada proses yang prioritasnya lebih     tinggi. Penjadwalan ini bisa saja termasuk penjadwalan proses atau M/K.                                               Penjadwalan Preemptive memungkinkan sistem untuk lebih bisa menjamin bahwa setiap proses         mendapat sebuah slice waktu operasi. Dan juga membuat sistem lebih cepat merespon                         terhadap event dari luar (contohnya seperti ada data yang masuk) yang membutuhkan reaksi cepat       dari satu atau beberapa proses. Membuat penjadwalan yang Preemptive mempunyai keuntungan         yaitu sistem lebih responsif daripada sistem yang memakai penjadwalan Non Preemptive.

    Penjadwalan CPU mungkin akan dijalankan ketika proses dalam keadaan:
    1.  Berubah dari running ke waiting state.
    2.  Berubah dari running ke ready state.
    3.  Berubah dari waiting ke ready state.
    4.  Dihentikan
Penjadwalan nomor 1 dan 4 bersifat Non Preemptive sedangkan lainnya Preemptive. Penjadwalan       yang biasa digunakan sistem operasi dewasa ini biasanya bersifat Preemptive.

    Dalam waktu-waktu tertentu, proses dapat dikelompokkan ke dalam dua kategori: 
    1. Proses yang memiliki Burst M/K yang sangat lama disebut I/O Bound.
    2. Proses yang memiliki Burst CPU yang sangat lama disebut CPU Bound

Terkadang juga suatu sistem mengalami kondisi yang disebut busywait, yaitu saat dimana sistem menunggu request input(seperti disk,keyboard, atau jaringan). Saat busywait tersebut, proses tidak melakukan sesuatu yang produktif, tetapi tetap memakan resource dari CPU. Dengan penjadwalan Preemptive, hal tersebut dapat dihindari.
Dengan kata lain, penjadwalan Preemptive melibatkan mekanisme interupsi yang menyela proses     yang sedang berjalan dan memaksa sistem untuk menentukan proses mana yang akan dieksekusi     selanjutnya.
Beberapa contoh sistem operasi yang menerapkan penjadwalan Preemptive yaitu :
Linux 2.6,Windows 95, Windows XP, Linux, Unix, AmigaOS, MacOS X, dan Windows NT.

Lama waktu suatu proses diizinkan untuk dieksekusi dalam penjadwalan Preemptive disebut time slice/quantum. Penjadwalan berjalan setiap satu satuan time slice untuk memilih proses mana yang akan berjalan selanjutnya. Bila time slice terlalu pendek maka penjadwal akan memakan terlalu banyak waktu proses, tetapi bila time slice terlau lama maka memungkinkan proses untuk tidak dapat merespon terhadap event dari luar secepat yang diharapkan.

2. Penjadwalan Non Preemptive
   Penjadwalan Non Preemptive ialah salah satu jenis penjadwalan dimana sistem operasi tidak pernah    melakukan context switch dari proses yang sedang berjalan ke proses yang lain. Dengan kata lain,      proses yang sedang berjalan tidak bisa di- interupt.

   Penjadwalan Non Preemptive terjadi ketika proses hanya:
   1.  Berjalan dari running state sampai waiting state.
   2. Dihentikan.

Ini berarti CPU menjaga proses sampai proses itu pindah ke waiting state ataupun dihentikan (proses tidak diganggu). Metode ini digunakan oleh Microsoft Windows 3.1 dan Macintosh. Ini adalah metode yang dapat digunakan untuk platforms hardware tertentu, karena tidak memerlukan perangkat keras khusus (misalnya timer yang digunakan untuk menginterupt pada metode penjadwalan Preemptive).


KRITERIA PENJADWALAN 

Algoritma penjadwalan CPU yang berbeda akan memiliki perbedaan properti,sehingga untuk memiliki algoritma ini harus di pertimbangkan duluh properti-properti algoritma tersebut.

1. CPU utilization: Diharapkan agar CPU selalu dalam keadaan sibuk

2. Throughput: Throughput adalah banyaknya proses yang selesai di kerjakan dalam satu satuan waktu

3. Turnaround time: Banyaknya waktu yang di perlukan untuk mengeskusi proses,dari mulai menunggu untuk memerintah tempat di memori utama,menunggu di ready queue,eksekusi oleh CPU,dan mengerjakan I/O samapi semua proses-proses tersebut diselesaikan.

4. Waiting time: Waktu yang di perlukan oleh suatu proses untuk menunggu di ready queue

5. Response time: Waktu yang di butuhkan oleh suatu proses dari minta di layani hingga ada respont pertama yang menanggapi permintaan tersebut

6.Fairness Suatu algoritma harus memperhatikan pengawasan nilai prioritas dari suatu proses (menghindari terjadinya starvation CPU time).

7.Efisiensi. Rendahnya overhead dalam context switching, penghitungan prioritas dan sebagainya menentukan apakah suatu algoritma efisien atau tidak.

Sebaiknya ketika kita akan membuat algoritma penjadwalan yang dilakukan adalah memaksimalkan CPU utilization dan throughput, dan meminimalkanturnaround time, waiting time, dan response time.


ALGORITMA PENJADWALAN

Penjadwalan CPU menyangkut penentuan proses-proses yang ada dalam ready queue yang akan
dialokasikan pada CPU. Terdapat beberapa algoritma penjadwalan CPU seperti dijelaskan pada
sub bab di bawah ini.

First Come First Server (FCFS)
Pertama datang, pertama dilayani (First In, First Out atau FIFO) tidak peduli apakah Burst timenya panjang atau pendek, sebuah proses yang sedang dikerjakan, diselesaikan dulu barulah proses berikutnya dilayani.

Penjadwalan FCFS merupakan penjadwalan:
•  Penjadwalan non-preemptive (run-to-completion)
•  Penjadwalan tidak berprioritas

Ketentuan dari penjadwalan FCFS adalah:
•  Proses-proses dberi jatah waktu pemroses, diurut dengan waktu kedatangannya.
•  Begitu proses mendapat jatah waktu pemroses, proses dijalankan sampai proses tersebut selesai,

walaupun ada proses lain yang datang, proses tersebut berada dalam antrian sistem atau disebut dengan ready queue Pada dasarnya algoritma penjadwalan ini cukup adil dalam hal bahasa, karena proses yang datang lebih dulu dikerjakan terlebih dahulu, pada secara konsep dari sistem operasi, penjadwalan model ini tidak adil karena proses-proses yang membutuhkan waktu yang lama, membuat proses-proses yang memiliki waktu proses yang lebih pendek menunggu sampai proses tersebut selesai, sedangkan proses-proses yang tidak penting membuat proses penting menunggu.
Penjadwalan FCFS cocok digunakan untuk sistem batch yang sangat jarang melakukan interaksi dengan user secara langsung, tapi tidak cocok digunakan untuk sistem interaktif karena tidak memberi waktu tanggap yang bagus, dan begitu juga dengan sistem waktu nyata.

Contoh dari penjadwalan FCFS adalah:
Pada saat posisi P1 masuk pada waktu 0, maka P1 dijalankan sebanyak 12, dan P2 masuk pada saat 2, P3 pada saat 3, P4 pada saat 5 dan P5 pada waktu 9. Pada posisi 12 P1 selesai dikerjakan, dan P2 akan dieksekusi karena P2 lebih dulu berasa didalam Ready Queue(RQ) karena pada contoh di atas menggunakan algoritma FCFS (First Come First Server) dan begitulah seterusnya sampai semua proses selesai dikerjakan.setelah semua proses dikerjakan maka dihitung waktu tunggu setiap proses maka akan ditemukan jumlah waktu tunggu rata-rata dari setiap proses, seperti contoh di bawah ini:

Jadi waktu tunggu setiap proses adalah :
P1 = 0 = 0
P2 = 12-2 =10
P3 = 20-3  = 17
P4 = 25-5  = 20
P5 = 27-9  = 18
-------------------
Jumlah      = 65

Rata-rata waktu tunggu untuk setiap proses adalah : Avg 65/5 = 13 satuan waktu.
Jika urutan proses pada contoh di atas di balikkan misal: P5, P4, P3, P2, P1 dengan waktu kedatangan dan burst tetap sama, maka akan terdapat waktu ganggur CPU ( idle time) antara waktu 1 dan 2 sehingga panjangnya waktu yang dibutuhkan untuk menyelesaikan lima proses tersebut menjadi 29 atau bertambah satu dari waktu yang dibutuhkan sebelumnya.


Shortest Job First Scheduler (SJF)
Pada penjadwalan SJF, Proses yang memiliki CPU burst yang akan pertama kali dilayani terlebih dahulu. Penjadwalan SJF terdapat dua skema, yaitu :
1. Non preemptive yaitu bila CPU diberikan pada proses, maka tidak bisa ditunda sampai CPU burst selesai.
2.  2. Preemptive yaitu jika proses baru datang dengan panjang CPU burst lebih pendek dari sisa waktu proses yang saat itu sedang dieksekusi, proses ini akan ditunda dan akan diganti dengan proses yang baru. Skema ini biasa disebut juga dengan Shortest-Remaining-Time-First (SRTF).

SJF -  Non preemptive
Proses
Arrival Time (AT)
Bursh Time (BT)
P1
0
12
P2
2
8
P3
3
5
P4
5
2
P5
9









Pada SJF - Non preemptive mirip dengan FCFS(), tetapi  Jika AT (Arrival Time) sama, maka dipilih proses yang BT (Burst time) lebih pendek untuk diproses dulu, atau dengan kata lain penjadwalan ini lebih dahulu menjadwalkan proses dengan waktu terpendek sampai selesai.







Jumat, 27 Maret 2015

Perbedaan 32 bit dan 64 bit



     Ternyata masih banyak orang yang belum mengerti apakah itu perbedaan OS 32 bit dan 64 bit, dan tanpa pikir panjang lagi mereka pun langsung membelinya. Tetapi beberapa dari mereka ada yang mengalami masalah ketika mereka hendak menginstallnya karena OS tersebut tidak bisa diinstall pada komputer mereka, Mengapa?

     Untuk memahami hal tersebut pada postingan saya kali ini, saya akan membahas apa  perbedaan dari sistem 32 bit dan 64 bit. Perbedaannya yaitu : 
  1. Jika kita sering bekerja dengan ukuran file yang besar-besar dan memakan memori yang banyak seperti Video Editing dan Gambar,tentu saja 64 bit akan menjadi pilihan yang terbaik karena akan memberikan kinerja yang lebih baik dibandingkan dengan 32 bit.
  2. Jika untuk kebutuhan biasa atau sehari-hari seperti Browsing,Mengetik dan bermain Game yang ringan,  tentu 32 bit pilihan yang tepat.
  3. 64 bit telah mensupport memori sampai 16 milliar GB, sedangkan 32 bit hanya 4 GB untuk performa maksimum.
  4. Segi keamanan 64 bit lebih aman dibandingkan 32 bit, karena driver 64 bit harus benar-benar tersertifikasi  oleh vendor si pembuat Hardware. Jadi, sangat sulit     untuk disusupi oleh program yang jahat.
  5. Pada komputer 32 bit melakukan pekerjaan relative ringan sedangkan 64 bit akan menjadi relative berat ketika melakukan pekerjaan di komputer. 64 bit dapat menjalankan aplikasi dengan arsitektur 32 bit dan juga 
  6. 64 bit sedangkan 32 bit hanya dapat menjalankan aplikasi dengan arsitektur 32 bit saja.
  7. Tetapi kemampuan procesor 64 bit bisa dibilang tidak bisa dinikmati secara langsung karena sebagian besar aplikasi mobile kebanyakan masih dibuat dengan arsitektur 32 bit sehingga kemampuan 64 bit tidak dapat terpakai semuanya walaupun sekarang beberapa aplikasi sudah ada yang memakai 32 bit sekaligus tetapi masih belum banyak yang mengeluarkan aplikasi yang seperti itu.

   Berikut beberapa informasi singkat yang dapat saya uraikan mengenai perbedaan 32 bit dan 64 bit. Semoga informasi yang saya sampaikan dapat bermanfaat bagi kalian yang membacanya agar dapat memahaminya sehingga kalian dapat memilih tipe OS yang tepat untuk kalian gunakan dan sesuai dengan kebutuhan.Terima Kasih :)