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


Sistem Operasi1


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

Soal :
1.      Sebutkan SO yang pernah anda pakai, jelaskan kelebihan dan kekurangannya.
2.      Fungsi MBR
Jawab :
1.      SO yang perna saya pakai adalah :
-          Windows Royal
-          Windows XP
-          Windows 7
·         Kelebihan Windows.
-          Pengguna bisa menjalankan lebih dari satu aplikasi pada saat yang bersamaan
-          Pengguna bisa membuka lebih dari satu file dalam waktu yang bersamaan
-          Pengguna bisa sharing dari data aplikasi yang lain dengan mudah.
-          Terdapat banyak aplikasi yang kompatibel dengan windows.
-          And user artinya orang yang awam tentang komputer bias menjalankannya.
-          Banyak didukung oleh vendor hardware dan software.
-          Digunakan oleh mayoritas pengguna komputer di dunia.
·         Kekurangan Windows.
-          System file yang agak kacau, Contohnya: apabila menginstall suatu aplikasi, system file DLL akan diletakkan di C:\Windows\System\ sementara aplikasi itu sendiri terletak ditempat lain. Ini akan menyusahkan saat menguninstall aplikasi tersebut, dan sewaktu pengintegrasian DLL (Dynamic Link Libraries)
-          Menyebabkan ketergantungan penggunaan produk Microsoft.
-          Space hardisk yang dibutuhkan besar.
-          Sistem security yang lemah dan mudah dijebol oleh para hackers.
-          Membutuhkan memori fisik besar.
-          Membutuhkan kecepatan prosesor yang tinggi.
-          Harga licensi yang mahal.
-          Membutuhkan perawatan yang terus menerus dan prosedur yang sesuai dengan panduan yang ada saat menggunakannya.
2.      Fungsi MBR : untuk menyimpan informasi tentang SO dan kemudian akan dibaca oleh BIOS

Minggu, 15 Mei 2011

Program Memasang Data 1 dan 2

#include <iostream.h>

int main()
{
int a[100], b[100];
int i,j,k,l;
    cout<<"Memasangkan data"<<endl;

   cout<<"Inputkan Banyaknya Data 1=";
   cin>>k;
   for(i=0; i<k; i++)
   {
   cout<<"data Inputan adalah =";
   cin>>a[i];
   }

   cout<<"\nInputkankan Banyaknya Data 2=";
   cin>>l;
   for(j=0; j<l; j++)
   {
   cout<<"data Inputan adalah =";
   cin>>b[j];
   }

       for(i=0; i<k; i++)
      {
      for(j=0; j<l; j++)
          {
         cout<<"\nData Setelah Dipasangkan adalah =";
          cout<<a[i]<<","<<b[j]<<endl;
          }
      }
    return 0;
 }

Program Menentukan Bilangan Matriks atau Tidak

#include <iostream>
#include <conio.h>



int main(){
    int baris, kolom, matriks[10][10];

    cout<<"Masukkan  baris : ";
    cin>>baris;

    cout<<"Masukkan  kolom : ";
    cin>>kolom;
    cout<<endl;

    for(int i=0; i<baris; i++){
            for(int j=0; j<kolom; j++){
            cout<<"Masukkan baris "<<i+1<<" kolom "<<j+1<<" : ";
            cin>>matriks[i][j];
            }
    }
    cout<<endl;
   
    for(int i=0; i<baris; i++){
            for(int j=0; j<kolom; j++){
            cout<<matriks[i][j]<<" ";
            }
            cout<<endl;
    }
    cout<<endl;
   
    if(baris==kolom){
    cout<<"Matriks simetri";
    }else{
    cout<<"Bukan matriks simetri";
    }
   
    getch();
    return 0;  
}

Jumat, 13 Mei 2011

Mendelete Elemen Array

#include<stdio.h>
#include<iostream.h>
#include<conio.h>

    void main()
{     clrscr();
     int arr[5]={1,2,3,4,5}, pos,i;
      cout<<"enter postion to delete num. from: ";
  cin>>pos;
               for(int i=pos; i<=4;i++)
    { arr[i-1]=arr[i];
     arr[i-1]=0;  }
 cout<<arr;
 getch();
 }



Selamat mencoba..

Shorting Number Dengan Metode Quick Sort (Membagi Array Kesub Array)

#include<iostream.h>
#include<conio.h>
int a[10],l,u,i,j;
void quick(int *,int,int);
void main()
{
clrscr();
cout <<"enter 10 elements";
for(i=0;i<10;i++)
cin >> a[i];
l=0;
u=9;
quick(a,l,u);
cout <<"sorted elements";
for(i=0;i<10;i++)
cout << a[i] << " ";
getch();
}

void quick(int a[],int l,int u)
{
   int p,temp;
   if(l<u)
   {
   p=a[l];
   i=l;
   j=u;
    while(i<j)
   {
      while(a[i] <= p && i<j )
     i++;
      while(a[j]>p && i<=j )
       j--;
      if(i<=j)
      {
      temp=a[i];
      a[i]=a[j];
      a[j]=temp;}
  }
  temp=a[j];
  a[j]=a[l];
  a[l]=temp;
  cout <<"\n";
  for(i=0;i<10;i++)
  cout <<a[i]<<" ";
  quick(a,l,j-1);
  quick(a,j+1,u);
 }
}


selamat mencoba...
seukse selalu ^_^