Thursday, 5 February 2015

soal tambahan sistem operasi bab 5



1.  fungsi dan manajemen unit
jawab  
1 Meningkatkan kinerja atau Utilitas CPU.
2 Meningkatkan kecepatan akses CPU terhadap data dan instruksi Data dan instruksi dapat diakses dengan cepat oleh CPU.
3 Meningkatkan efisensi pemakaian memori yang terbatas.
4 Meningkatkan efisiensi transfer atau perpindahan data dari atau ke memori utama dan dari atau ke CPU.
5 Mengelola informasi yang dipakai dan tidak dipakai.
6 Mengalokasikan memori ke proses yang memerlukan.
7 Mendealokasikan memori dari proses telah selesai.
8 Mengelola swapping atau paging antara memori utama dan disk

2.      menejemen memori unit berdasarkan alokasi memori.
jawab
a. berurutan ;  Pada alokasi memori berurutan, setiap proses menempati satu blok tunggal lokasi memori yang berurutan.
Kelebihan : sederhana, tidak ada rongga memory bersebaran, proses berurutan dapat dieksekusi secara cepat.
Kekurangan : memori boros, tidak dapat disisip apabila tidak ada satu blok memori yang mencukupi.

b. tak berurutan Program/proses ditempatkan pada beberapa segmen berserakan, tidak perlu saling berdekatan atau berurutan. Biasanya digunakan untuk lokasi memori maya sebagai lokasi page-page.
Kelebihan : sistem dapat memanfaatkan memori utama secara lebih efesien, dan sistem opersi masih dapat menyisip proses bila jumlah lubang-lubang memori cukup untuk memuat proses yang akan dieksekusi.
Kekurangan : memerlukan pengendalian yang lebih rumit dan memori jadi banyak yang berserakan tidak terpakai.
3.     Jelaskan:
jawab
Swepping  Pemindahan proses dari memori utama ke disk dan sebaliknya.
 Pagging : Berpilah Suku (paging) Informasi atau pekerjaan di dalam memori dukung dipilah ke dalam sejumlah suku (page), dan memori kerja dipilah ke dalam sejumlah rangka (frame).
Partisi  Pembagian harddisk menjadi beberapa bagian yang digunakan untuk mempermudah manajemen file.
 Segmentasi Berpilah Segmen (segmentasi)  Pilahan yang ukuran segmen disesuaikan dengan isi segmen salah satu macam pemilahan gabungan suku dan segmen adalah pemilahan suku bersegmen, dimana suku dikelompokan ke dalam sejumlah segmen.
145629102013
Hubungan Chace Memory, Memori Utama dan Memori Sekunder
Chace memory memiliki kecepatan lebih tinggi sebagai memori antara yang mempercepat proses pada memory kerja, juga sebagai transit lalulintas data selama proses dengan sumberdaya lain pada memori utama.





4.     beberapa metode alokasi memori, salah satunya lengkapkan dengan study kasus.
Jawab
Studi Kasus
Kita ingin mengambil data pixel suatu gambar, kemudian kita menyimpannya ke buffer (penampung sementara) untuk diolah. Bagaimana kita mendefinisikan ukuran array bila ukuran gambar bermacam-macam?
Perlu diingat jumlah array harus didefinisikan dahulu sebelum, dipakai !
Apabila ukuran array lebih kecil dari yang kita gunakan, maka akan menyebabkan segmentation fault (banjir).
Menggunakan Array yang super besar? Bagaimana jika yang kita load ternyata ukurannya kecil? Tentu memboroskan memori.
Mengatur ukuran gambar agar fix? Tentu program kita menjadi tidak portable! Serta perlu editor gambar.
Solusi:
Kita gunakan alokasi memori dinamis! Dinamis? Ya! Karena kita dapat mengalokasikan dimana saja, berapa saja serta dapat didealokasikan kapan saja agar dapat dipakai untuk yang lain.
Apa perbedaan memori dinamis dan statis (Array)?
Memori dinamis telah djelaskan diatas, sedangkan array alokasi dan dealokasi dilakukan oleh kompiler, jumlah alokasi sudah tetap sebesar saat kita mendefinisikan Array di awal program.
Algorithma pemecahan masalah diatas:
Inisialisasi pointer
Load File Image
Dapatkan ukuran Image beserta pixelnya.
Alokasikan memori sebesar ukuran pada step 3, tunjuk pointer ke alamat memori yang dialokasikan ini.
Proses Image.
Apabila proses telah selesai dan alamat memori diatas sudah tidak dipakai, maka de-alokasikan alamat memori dari step 4. Agar bisa digunakan untuk yang lain.
Proses dealokasi penting dilakukan untuk meningkatkan performa, serta menghindari “out of memory”.
Cara mengalokasi memori salah satunya adalah menggunakan fungsi malloc seperti yang didefinisikan pada file stdlib.h:
(void *)malloc(size_of_memory_yang_dialokasikan)
Contoh program Pointer , Array dan alokasi memori dinamis.
#include
#include
int main()
{
int *X;
int *posAwal;
int i;
X = (int *)malloc(10*sizeof(int)); // alokasi memori sebesar 10 *4 byte.
// Identik dengan X[10] pada Array
posAwal = X; // simpan posisi awal X ke posAwal (agar tidak tersesat)
/* Dengan Array */
for(i=0;i<10;i++)
X[i] = i;
for(i=0;i<10;i++)
printf(“X[%d] = %d”,i,X[i]);
/* Dengan Pointer */
for(i=0;i<10;i++)
*X++ = i *10;
X = posAwal; // kembalikan posisi awal X
for(i=0;i<10;i++)
printf(“*X = %d”,*X++);
free(X); //bebaskan memori X
}
Pada program diatas, saat menggunakan pointer sebaiknya kita menyimpan posisi awal dari memori yang ditunjuk, agar tidak terjadi kasus seperti pada pembahasan POINTER dan ARRAY.

No comments:

Post a Comment