Tugas

Sabtu, 16 Juni 2012

Page Replacement Algoritma : FIFO (First-In-First-Out).

#include <iostream>
using namespace std;

int input[10] = {7,3,7,4,5,2,8,3,2,7}; //10 masukan
int S[4];                        //4 tempat tersedia
int Top,Cek,isi;

void push(){
      S[Top] = input[isi];
      Top++;
}
void reset(){
    Top = 0;
}

int main(){

     reset();
     for(isi=0; isi<=9; isi++){
for(Cek=0; Cek<=3; Cek++){
if(S[Cek] == input[isi]){
isi = isi + 1;
}
}
if(Top > 3){
                        reset();
                        push();
               }else{
                       push();
               }
        }
cout<<"kedudukan frame akhir : ";
for(int a=0;a<=3;a++){
cout<<"["<<S[a]<<"]"<<" ";
}
}

Tujuan akhir dari algoritma yang kami buat adalah melihat kedudukan akhir dari kasus page replacement.
Alur dari program ini adalah:
- Mengeset variabel top = 1 ,ini digunakan sebagai penunjuk untuk mengacu index array yang akan   digunakan sebagai media penyimpan.
- Ambil bilangan inputan satu-persatu dengan looping
- Cek satu persatu apakah bilangan inputan ada di dalam media penyimpanannya,
        o Jika ternyata ada maka ambil inputan selanjutnya
        o Jika tidak ada,maka akan diuji lagi
               Apakah variabel pengacu (top) sudah sampai ujung array
                       • Jika iya,maka Top di-reset ke nilai 0,dan masukan bilangan inputan (di-push).
                       • Jika tidak,bisa langsung dimasukan bilangan inputan,tanpa harus direset.

Begitulah seterusnya hingga bilangan yang akan diinput telah habis.
Algoritma diatas sebenarnya hampir sama dengan Circular Queue (Antrian Melingkar) hanya saja dalam algoritma ini hanya ada satu variabel pengacu (variabel Top) yang akan selalu berputar tanpa ada kasus queue penuh ataupun kosong,berbeda dengan  Circular Queue yang memiliki 2 varibel pengacu yaitu Front dan Rear dan memiliki kasus queue penuh dan kosong.

Hasil dari soal diatas :
Input ==> 7, 3, 7, 4, 5, 2

* 7
* 7  3
*
* 7  3  4
* 7  3  4  5
* 2  8  4  5

Tidak ada komentar:

Posting Komentar