23 Januari 2015

tugas: Manajemen Memory

Hirarki Memory

Cache Memory adalah memory yang bertugas  membantu primary memory dalam memecah data yang akan diproses dan yang belum diproses dengan tujuan mempermudah kinerja processor ( karena data dibagi-bagi / dipotong sebelum diproses). cache memory biasa ada dalam processor, mother board, maupun peralatan mikrokontroller lain. cache berukuran kecil anatara Kilo Bytes sampai dengan Mega Bytes.
Main Memory adalah memory utama dari sebuah komputer, biasa berbentuk RAM atau disebut juga memory dinamis.Fungsi utama dari Main Memory adalah untuk menyimpan sementara data yang akan diproses oleh processor dan data yang telah diproses oleh processor yang selanjutnya kan diteruskan ke media input/output yang lain VGA (ditampilkan), Sound (mengeluarkan suara), Hard Disk (menyimpan data), dan media output lain. Main Memory besarannya adalah Mega Bytes sampai dengan Giga Bytes.
Secondary Memory adalah memory pembantu dari sebuah komputer yang berbentuk Hardisk / ROM (Read Onlu Memory) dan disebut juga sebagai memory statis. Memory ini berfungsi menyerupai RAM tetapi memory ini bisa menyimpan data lebih lama. memory ini membantu tugas RAM. hal ini biasa dilakukan oleh OS dan menyimpannya dalam sebuah file yang berjenis swap ( swap file / .swp)

Manajemen Memory
hal ini dilakukan dengan membagi - bagi memory untuk mengakomdasi banyak proses. manajemen memory dilakukan untuk menjamin setiap proses yang ready dapat segera memanfaatkan processor time.
Terdapat 5 Requirement manajemen memory, yaitu:
1. Relocation
 Processor dan sistem operasi harus dpat mentranslasikan memory referensi ke alamat fisik yang mengalokasikan program dalam memory utama. Relocation penting karena jika suatu progam di-load ke meori, maka lokasi memori yang akan ditempati harus ditentukan. alamat absolut suatu program dapat berubah sebagai akibat dari swapping dan/atau compaction.
2. Protection
 Suatu proses tidak boleh mengakses lokasi memori yang lain tanpa izin dan lokasi program di memori tidak tentu maka alamat mutlak pada saat di compile tidak diketahui.
3. Sharing : Harus di mungkinkan suatu lokasi memori dapat diakses oleh lebih dari satu proses. Beberapa proses yang memerlukan data yang sama, maka tidak perlu setiap proses meng kopi data dari disk ke memori, cukup sebuah kopi saja.
4. Logical Organization : Main memory dikelompokan secara linear atau berdimensi satu yang berupa ruang alamat yang terdiri dari deretan byte atau work. Sebagian besar program dibentuk dalam sebuah modul maka penempatan di memori tidak linear dan diperlukan pengaturan secara lojik.
5. Physical Organization : Memory dikelompokan menjadi memori utama dan memori sekunder. diperlukan metode yang mengatur aliran data dari memori utama ke memori sekunder dan sebaliknya.


Beberapa teknik manajemen memori yang ada : 
  • Partisi (partisi tetap, partisi dinamis )
  • Paging sederhana
  • Segmentasi sederhana
  • Virtual memory (paging, segmentasi)
Partisi
Partisi Tetap
terdapat dua model dalam partisi tetap yaitu  partisi berukuran sama dan partisi berukuran tidak sama
1. partisi berukuran sama :
  • setiap proses yang ukurannya lebih kecil atau sama dengan ukuran partisi dapat menempati partisi tersebut
  • jika semua partisi telah terisi, maka sistem operasi akan melakukan swap terhadap proses yang sudah tidak aktif
  • penggunaan memori tidak efisien, misal : bila ukuran partisi adalah 8MB , maka program berukuran 2MB akan menyisakan ruang memori sebesar 6MB
2. partisi berukuran tidak sama :
  • lebih baik dari partisi berukuran sama karena : penggunaan memori lebih efisien , tidak perlu overlay
Partisi Dinamis
jumlah partisi yang tidak tetap menggunakan variabel , ukuran partisi sama dengan ukuran proses yang akan menempatinya untuk pertama kali atau sesudah pemadatan (compaction) yang tidak akan terjadi fragmentasi internal.

Algoritma yang digunakan adalah :
  1. Best fit dengan Memilih blok memori yang paling sedikit menyisakan ruang memori. Biasanya performansi secara keseluruhan adalah yang paling jelek.
  2. First fit, Pencarian blok memori kosong dimulai dari awal. Blok memori yang dipilih adalah blok memori yang pertama kali ditemukan dan ukurannya sesuai. Merupakan algoritma yang paling baik dimana merupakan paling cepat dan paling sederhana. Pencarian akan melewati sejumlah proses yang terletak pada bagian ujung awal memori sebelum menemukan blok memori yang bebas.
  3. Next fit, Pencarian blok memori kosong dimulai dari lokasi placement terakhir. Lebih jelek dibanding First-fit, karena blok memori yang ditemukan sering berada pada ujung akhir memori yang merupakan blok memori berukuran paling besar. Blok memori yang besar akan lebih cepat terpartisi menjadi blok memori yang lebih kecil.





Konsep Paging 
Pages 
Alamat yang dihasilkan oleh CPU(memori logis) akan dibagi menjadi 2 yaitu nomor page (p) dan page offset(d): 
1.Nomor page akan menjadi indeks dari page table yang mengandung alamat dasar dari setiap alamat di memori fisik.
2. Page offset akan digabung dengan alamat dasar untuk mendefinisikan alamat fisik yang akan di kirim ke unit memori.

Frames
Pada alamat memori fisis akan dibagi menjadi nomor frame (f) yang nantinya akan dicocokan pada page table.Setiap alamat yang dihasilkan oleh CPU akan dicocokan nomor page-nya pada page table lalu akan dicari frame mana yang sesuai dengan nomor page tersebut.



Perangkat Keras Paging
Dikenal dengan Unit Manajemen Memori (MMU). Jika CPU ingin mengakses memori, CPU mengirim alamat memorinya ke MMU yang akan menerjemahkannya ke alamat lain sebelum mengirim kembali ke unit memori. Alamat yang dihasilkan oleh CPU disebut alamat logis. Sedangkan Alamat yang didapat setelah melalui MMU disebut alamat fisik.


Page Table
Sebuah rangkaian array dari masukan-masukan (entries) yang mempunyai indeks berupa nomor page (p).
Setiap masukan terdiri dari flags (contohnya bit valid) dan nomor frame.Alamat fisik dibentuk dengan menggabungkan nomor frame dengan offset.

Segmentasi
Salah satu cara untuk mengatur memori dengan menggunakan segmen. Program dibagi menjadi beberapa segmenAlamat logika terdiri dari dua bagian yaitu nomor segmen (s) dan offset (d) yang dituliskan dengan
  <nomor segmen, offset>

Pemetaan alamat logika ke alamat fisik menggunakan tabel segmen (segment table), terdiri dari:
  • Segmen basis (base) berisi alamat fisik awal 
  • Segmen limit merupakan panjang segmen
Sifat Segmentasi
  • Ukuran tiap segmen tidak harus sama.
  • Dapatdiletakan di manasaja(di main memory, setelah program dimasukkankememori).TabelSegmenmenentukanlokasisegmen.
  • Salingberbagi.
  • Adanyaproteksi.
  • Alokasi yang dinamis.
Kelebihan paging:
  • Tidak ada fragmentasi luar. 
  • Alokasi-nya cepat.
Kelebihan segmentasi:
  • Saling berbagi.
  •  Proteksi. 
Virtual Memory
Memori virtual merupakan suatu teknik yang memisahkan antara memori logis dan memori fisiknya. Menyembunyikan aspek-aspek fisik memori dari user. 
  • Memori adalah lokasi alamat virtual berupa byte yang tidak terbatas. 
  • Hanya beberapa bagian dari memori virtual yang berada di memori logis.
Konsep memori virtual yang dikemukakan Fotheringham pada tahun 1961 pada sistem komputer Atlas di Universitas Manchester, Inggris:
 Kecepatan maksimum eksekusi proses di memori virtual dapat sama, tetapi tidak pernah melampaui kecepatan eksekusi proses yang sama di sistem tanpa menggunakan memori virtual.”  




tugas: Deadlock dan Starvation



Deadlock
Deadlock adalah suatu kondisi dimana proses tidak berjalan lagi atau puntidak ada komunikasi lagi antar proses. Deadlock juga dapat dikatakan sebgai kebuntuan. maksudnya, kebuntuan proses




Penyebab Deadlock
Kondisi Mutual Deadlock
-          hanya ada satu proses yang menggunakan suatu sumber daya
-          proses lain yang juga ingin menggunakannya harus menunggu hingga sumber daya tersebut dilepaskan oleh proses yang telah selesai menggunakaannya.
Kondisi hold and wait
-          suatu proses yang memiliki minimal satu buah sumber daya melakukan request lagi terhdap sumber daya. tetapi, sumber daya yang dimintanya sedang dimilki oleh proses yang lain.
Kondisi non-preemptive.
-          Sebuah sumber daya hanya dapat dilepaskan oleh proses yang memilikinya secara sukarela setelah ia selesai menggunakannya.
Kondisi circular wait.
-          Kondisi seperti rantai, yaitu sebuah proses membutuhkan sumber daya yang dipegang proses berikutnya.

Penanggulangan Deadlock
-          Mengabaikan masalah Deadlock (Algoritma Ostrich)
Untuk menghadapi Deadlock menurut algoritma ini adalah dengan berpura-pura bahwa tidak ada masalah apa pun.
-           Mendeteksi dan memperbaiki.
Setelah diketahui sistem mana saja yang terlibat maka diadakan proses untuk memperbaiki dan menjadikan sistem berjalan kembali.
-          Penghindaran yang terus menerus dan pengalokasian yang baik dengan Deadlock avoidance.
a.       Jangan memulai proses apa pun jika proses tersebut akan membawa kita pada kondisi Deadlock, sehingga tidak mungkin terjadi Deadlock karena ketika akan menuju Deadlock sudah dicegah.
b.      Jangan memberi kesempatan pada suatu proses untuk meminta sumber daya lagi jika penambahan ini akan membawa kita pada suatu keadaan Deadlock.
-          Pencegahan yang secara struktur Deadlock prevention.
Mutual Exclusion
Kondisi sumber daya yang tidak dapat dibagi (non-sharable). Jadi, pencegahan kondisi yang pertama ini sulit karena memang sifat dasar dari sumber daya yang tidak dapat dibagi.
Hold and Wait
Sistem perlu memastikan bahwa setiap kali proses meminta sumber daya, ia tidak sedang memiliki sumber daya lain. Atau bisa dengan proses meminta dan mendapatkan sumber daya yang dimilikinya sebelum melakukan eksekusi, sehingga tidak perlu menunggu
Non Preemption.
Proses akan mengulang kembali eksekusinya setelah semua sumber daya yang dibutuhkan didapatkan.

STARVATION
Starvasion adalah sebuah kondisi dimana ada satu atau lebih proses yang tidak pernah dieksekusi karena tidak pernah mendapat jatah sumber daya.
Terdapat tiga proses, yaitu P1, P2 dan P3. Ketiga proses ini memerlukan pengaksesan sumber daya R secara periodik
Skenario berikut terjadi :
-          P1 sedang diberi sumber daya R sedangkan P2 dan P3 di-blocked menunggu sumber daya R.
-          Ketika P1 keluar dari critical section, maka P2 dan P3 diijinkan mengakses R.
-          Asumsi P3 diberi hak akses, kemudian setelah selesai, hak akses kembali diberikan ke P1 yang saat itu kembali membutuhkan sumber daya R.
-          Jika pemberian hak akses bergantian terus-menerus antara P1 dan P3, maka P2 tidak pernah memperoleh pengaksesan sumber daya R.
-          Dalam kondisi ini memang tidak terjadi deadlock, hanya saja P2 mengalami starvation (tidak ada kesempatan untuk dilayani).

09 Januari 2015

tugas: Konkurensi dan Mutual Exclusion


Sistem Operasi - Konkurensi dan Mutual Exclusion


Konkurensi adalah proses-proses (lebih dari satu proses) yang terjadi pada saat bersamaan. Konkurensi merupakan landasan umum perancangan sistem operasi. Proses-proses disebut konkuren jika proses-proses berada pada saat yang sama. Pada proses-proses konkuren yang berinteraksi mempunyai beberapa masalah yang harus diselesaikan: 
  • Mutual Exclusion
  • Deadlock 
  • Startvation

Prinsip-prinsip Konkurensi
•    Alokasi waktu pemroses untuk proses-proses
•    Pemakaian bersama dan persaingan untuk mendapatkan sumber daya
•    Komunikasi antarproses
•    Sinkronisasi aktivitas banyak proses.

Konkurensi dapat muncul pada konteks berbeda, antara lain:
1.    Banyak aplikasi (multiple application).
Multiprogramming memungkinkan banyak proses sekaligus dijalankan. Proses-proses dapat berasal dari aplikasi-aplikasi berbeda. Pada sistem multiprogramming bisa terdapat banyak aplikasi sekaligus yang dijalankan di sistem komputer.
2.    Aplikasi terstruktur.
Perluasan prinsip perancangan modular dan pemrograman terstruktur adalah suatu aplikasi dapat secara efektif diimplementasikan sebagai sekumpulan proses. Dengan sekumpulan proses, maka tiap proses menyediakan satu layanan spesifik tertentu.
3.    Struktur sistem operasi.
Keunggulan strukturisasi dapat juga diterapkan ke pemrograman sistem. Beberapa sistem operasi aktual yang dipasarkan dan yang sedang dalam riset telah diimplementasikan sebagai sekumpulan proses. Sistem operasi bermodelkan client/server menggunakan pendekatan ini.
4.    Untuk Strukturisasi Satu Proses.
Saat ini untuk peningkatan kinerja maka satu proses dapat memiliki banyak thread yang independen. Thread-thread tersebut harus dapat bekerjasama untuk mencapai tujuan proses.




Kesulitan-kesulitan yang ditimbulkan konkurensi
Masalah yang dihadapi proses-proses kongkurensi pada multiprogramming dan multiprocessing serupa, yaitu: kecepatan eksekusi proses-proses di sistem tidak dapat diprediksi. Beberapa kemungkinan yang terjadi tidak dapat diprediksi seperti:
1.    Kecepatan proses pada sistem tergantung pada beberapa hal, antara lain:
a)    Aktivitas proses-proses lain
b)    Cara sistem operasi menangani interupsi
c)    Kebijaksanaan penjadwalan yang dilakukan oleh sistem
       operasi.
2.    Beberapa kesulitan yang dapat muncul, di antaranya adalah:
a)    Pemakaian bersama sumber daya global.
Jika dua proses menggunakan variabel global yang sama, serta keduanya membaca dan menulis variabel itu maka urutan terjadinya pembacaan dan penulisan terhadap variabel itu menjadi kritis.
b)    Pengelolaan alokasi sumber daya agar optimal
Jika proses A meminta suatu kanal masukan/keluaran tertentu dan dapat terjadi kemudian proses A di suspend sebelum menggunakan kanal itu. Jika sistem operasi mengunci kanal tersebut dan orang lain tidak dapat menggunakannya, maka akan terjadi inefisiensi.
c)    Pencarian kesalahan pemrograman.
Pencarian kesalahan pada pemrograman kongkuren lebih sulit dibanding pencarian kesalahan pada program-program sekuen.
3.    Proses-proses konkuren mengharuskan beberapa hal yang harus ditangani, antara lain:
a)    Sistem operasi harus mengetahui proses-proses yang aktif
b)    Sistem operasi harus mengalokasikan dan mendealokasikan beragam sumber daya untuk tiap proses aktif. Sumber daya yang harus dikelola, antara lain:
(1)    Waktu pemroses.
(2)    Memori
(3)    Berkas-berkas
(4)    Perangkat I/O
c)    Sistem operasi harus memproteksi data dan sumber daya
       fisik masing-masing proses dari gangguan proses-proses    
       lain.
d)    Hasil-hasil proses harus independen terhadap kecepatan
        relatif proses-proses lain dimana eksekusi dilakukan.

Penaganan

  • Mengetahui proses-proses yang aktif.
  • Alokasi dan dealokasi beragam sumber daya untuk tiap proses aktif.
  • Proteksi data dan sumber daya fisik masing-masing proses dari gangguan (intervensi) proses-proses lain. 
  • Hasil-hasil proses harus independen terhadap kecepatan relatif proses-proses lain dimana eksekusi dilakukan.
Interaksi Antar Proses
Pada sistem dengan banyak proses (kongkuren), terdapat 2 katagori interaksi, yaitu:
1.    Proses-proses Saling Tidak Peduli (Independen).
Proses-proses ini tidak dimaksudkan untuk bekerja untukmencapai tujuan tertentu. Pada multiprogramming dengan proses-proses independen, dapat berupa batch atau sesi interaktif, atau campuran keduanya.
2.    Proses-proses Saling Mempedulikan Secara Tidak Langsung.
Proses-proses tidak perlu saling mempedulikan identitas proses-proses lain, tapi sama-sama mengakses objek tertentu, seperti buffer masukan/keluaran. Proses-proses itu perlu bekerja sama (cooperation) dalam memakai bersama objek tertentu.

Mutual Exclusion adalah jaminan hanya satu proses yang mengakses sumber daya pada satu interval tertentu.
Terdapat sumber daya yang tak dapat dipakai bersama pada saat bersamaan (mis. printer). Sumber daya ini disebut dengan sumber daya kritis. Bagian program yang menggunakan sumber daya kritis disebut memasuki critical region/station. Hanya satu program pada satu saat yang diijinkan masuk critical region. Programmer tidak dapat bergantung pada system operasi untuk memehami dan memaksa batasan ini karena maksud program tidak dapat diketahui. Sistem hanya menyediakan layanan (system call) untuk mencegah proses masuk critical regionyang sedang dimasuki proses lain. Programmer harus menspesifikasi bagianbagian critical region sehingga system operasi akan menjaganya dengan suatu mekanisme untuk mencegah proses lain masuk critical region yang sedang dipakai proses lain.

Contoh mutual exclusion
 Misalnya ada sebuah jaringan komputer sebuah Bank, dimana server untuk penyimpanan data terpusat. Seorang nasabah dapat melakukan penyimpanan maupun penarikan dari cabang mana saja dan kapan saja termasuk pengambilan lewat ATM. Sehingga jika ingin data tepat, jika ada salah satu nasabah melakukan transaksi, record nasabah bersangkutan harus dikunci supaya record tersebut tidak dapat akses oleh orang lain. Setelah transaksi selesai, record tempat data nasabah disimpan, record baru dibuka kembali. Ini adalah salah satu contoh penjaminan bahwa satu sumber daya hanya bisa dipakai oleh satu proses.