Sabtu, 24 Januari 2015

Manajemen Memori II (Paging-Segmentasi)

Paging

Definisi Paging
       Suatu metode yang memungkinkan suatu alamat memori fisik yang tersedia dapat tersusun tidak berurutan.
       Paging merupakan solusi untuk masalah fragmentasi eksternal dimana ruang alamat logika tidak berurutan yang mengijinkan sebuah proses dialokasikan pada memori fisik yang terakhir tersedia.
       Paging adalah bentuk manajemen memori yang biasa digunakan pada beberapa OS.
Konsep Paging
       Memori virtual dibagi menjadi blok-blok yang ukurannya tetap yang dinamakan page (ukurannya adalah pangkat 2, diantara 512 bytes dan 8192 bytes, tergantung arsitektur).
       Memori fisik dibagi juga menjadi blok-blok yang ukurannya tetap yang dinamakan frame.
       Lalu kita membuat suatu page table yang akan menterjemahkan memori virtual menjadi memori fisik.
           

Pages
       Alamat yang dihasilkan oleh CPU(memori logis) akan dibagi menjadi 2 yaitu nomor page (p) dan page offset(d):
       Nomor page akan menjadi indeks dari page table yang mengandung alamat dasar dari setiap alamat di memori fisik.
       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.
                                 

Keuntungan dan Kerugian Paging

Ø  Jika kita membuat ukuran dari masing-masing pages menjadi besar:
ü  Keuntungannya akses memori akan relatif lebih cepat.
ü  Kerugiannya kemungkinan terjadinya fragmentasi internal yang sangat besar.
Ø  Jika kita membuat ukuran dari masing-masing pages menjadi kecil:
ü  Kerugiannya akses memori akan relatif lebih lambat.
ü  Keuntungannya kemungkinan terjadinya fragmentasi internal akan menjadi lebih kecil.

Struktur Paging



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.
       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.

       Skema Page Table Dua Tingkat

       Page table secara Multilevel

  • Inverted Page Table
    • Satu masukan untuk setiap page dari memori.
    • Masukan terdiri dari page di alamat logis yang disimpan di lokasi memori nyata, dengan informasi tentang proses yang dimiliki oleh page tersebut.
    • Mengurangi memori yang dibutuhkan untuk menyimpan setiap tabel page, tetapi mengurangi waktu yang dibutuhkan untuk mencari tabel saat page mengalami kerusakan.
    • Menggunakan hash table untuk membatasi mencari satu atau beberapa masukan tabel page.
§   Inverted Page Table (cont.)


§  Shared Page Table
o                  Berbagi Kode
§    Dibutuhkan suatu kode read-only yang dibagi antara proses.
§        Kode yang dibagi harus berada di lokasi yang sama di alamat logis
o   Kode dan Data Privat
§  Setiap proses menyimpan kode dan datanya.
§  page untuk kode dan data tertutup bisa berada dimana saja dalam ruang di alamat logis.



Segmentasi

Konsep Segmentasi

       Salah satu cara untuk mengatur memori dengan menggunakan segmen.
       Program dibagi menjadi beberapa segmen.
       Segmen → kumpulan logical unit.

Arsitektur Segmentasi

       Alamat 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.
       Dapat diletakan di mana saja (di main memory, setelah program dimasukkan ke memori).
       Tabel Segmen → menentukan lokasi segmen.
       Saling berbagi.
       Adanya proteksi.
       Alokasi yang dinamis.

Implementasi Segmentasi



Masalah Segmentasi

       Segmen dapat membesar.
       Muncul fragmentasi luar, bila ada proses yang besar.

Perbedaan Segmentasi & Paging

       Kelebihan paging:
       Tidak ada fragmentasi luar.
       Alokasi-nya cepat.
       Kelebihan segmentasi:
       Saling berbagi.
       Proteksi.

Virtual Memory

Definisi 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.
Prinsip Virtual Memory
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.”

Keuntungan Memori Virtual

       Lalu lintas I/O menjadi rendah.
       Berkurangnya memori yang dibutuhkan.
       Meningkatnya respon.
       Bertambahnya jumlah user yang dapat dilayani.
       Memori virtual melebihi daya tampung dari memori utama yang tersedia.

Implementasi Virtual Memory

       Implementasi dari virtual memori:
       Multiprograming
       Memori virtual dapat dilakukan dengan cara:
       Demand paging
       Demand segmentation

Jumat, 23 Januari 2015

Kongkurensi & Mutual Exclusion


v  Prinsip Kongkurensi
v  Interaksi antar Proses
v  Mutual Exclusion
Definisi
ü  Merupakan sebuah kondisi dimana terdapat lebih dari satu proses berada pada saat yang sama.
ü  Proses-proses yang konkuren memiliki beberapa masalah:
o   Mutual Exclusion
o   Starvation
o   Deadlock
Prinsip Kongkurensi
Ø  Kongkurensi merupakan kegiatan yang berhubungan dengan :
ü  Alokasi waktu pemroses untuk proses-proses yang aktif.
ü  Pemakaian bersama dan persaingan untuk mendapatkan sumber daya.
ü  Komunikasi antar proses.
ü  Sinkronisasi aktivitas banyak proses
Ø  Kongkurensi dapat muncul pada konteks yang berbeda, yaitu:
ü  Untuk banyak aplikasi
ü  Untuk strukturisasi dari aplikasi
ü  Untuk strukturisasi dari satu proses
ü  Untuk strukturisasi sistem operasi
Ø  Untuk banyak aplikasi
ü  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.
Ø  Untuk strukturisasi dari aplikasi
ü  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.
Ø  Untuk strukturisasi dari 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.

Ø  Untuk strukturisasi 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.
Ø  Kecepatan eksekusi proses-proses di sistem tidak dapat diprediksi.
Ø  Kecepatan proses pada sistem dipengaruhi oleh :
ü  Aktivitas-aktivitas proses-proses lain.
ü  Cara sistem operasi menangani interupsi.
ü  Kebijaksanaan penjadwalan yang dilakukan oleh sistem operasi.
ü  Beberapa kesulitan yang muncul:
ü  Pemakaian bersama sumber daya global.
§  Bila terdapat 2 proses menggunakan variabel global yang sama serta keduanya membaca dan menulis ke variable itu,maka urutan pembacaan dan penulisan terhadap variabel itu menjadi kritis.
ü  Pengelolaan alokasi sumber daya agar optimal.
§  Apabila proses A meminta suatu kanal masukan/keluaran tertentu dan dipenuhi, kemudian terjadi proses A di-suspend sebelum menggunakan kanal tersebut.
§  Jika sistem operasi mengunci kanal (tidak memperbolehkan atau mencegah proses lain untuk menggunakannya), maka tindakan tersebut menghasilkan inefisiensi.
ü  Pencarian kesalahan pemrograman.
§  Pencarian kesalahan pada pemograman kongkuren lebih sulit dibanding pencarian kesalahan pada program-program sekuen.
Ø  Mutual Exclusion
ü  Sumber daya yang tidak dapat dipakai bersama pada saat bersamaan.
Ø  Starvation
ü  Startvation adalah keadaan dimana pemberian akses bergantian terus-menerus, dan ada suatu proses yang tidak mendapatkan gilirannya.
Ø  Deadlock
ü  Deadlock merupakan kondisi terparah karena banyak proses dapat terlibat dan semuanya tidak dapat mengakhiri prosesnya secara benar.

Ø  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

Ø Proses-proses saling tidak peduli (independen)
Ø Proses-proses saling mempedulikan secara tidak langsung
Ø Proses-proses saling peduli secara langsung
Ø Proses-proses saling tidak peduli (independen)
o   Proses-proses ini tidak dimaksudkan untuk bekerja untuk mencapai tujuan tertentu.
o   Pada multiprogramming dengan proses-proses independen, dapat berupa batch atau sesi interaktif, atau campuran keduanya.
Ø Proses-proses saling mempedulikan secara tidak langsung
o   Proses-proses tidak perlu saling mempedulikan identitas proses-proses lain, tapi sama-sama mengakses objek tertentu, seperti buffer masukan/keluaran.
o   Proses-proses itu perlu bekerja sama (cooperation) dalam memakai bersama objek tertentu.
Ø Proses-proses saling peduli secara langsung
o   Proses-proses dapat saling berkomunikasi dan dirancang bekerja sama untuk suatu aktivitas.
Ø Tabel interaksi proses

Mutual
Exclusion

Ø  Kondisi dimana terdapat sumber daya yang tidak dapat dipakai bersama pada waktu yang bersamaan (misalnya : printer, disk drive).
Ø  Kondisi demikian disebut sumber daya kritis, dan bagian program yang menggunakan sumber daya kritis disebut critical region / section.
Ø  Hanya satu program pada satu saat yang diijinkan masuk ke critical region.
Ø  Sistem operasi menyediakan layanan (system call) yang bertujuan untuk mencegah proses lain masuk ke critical section yang sedang digunakan proses tertentu.
Ø  Pemograman harus menspesifikasikan bagian-bagian critical section, sehingga system operasi akan menjaganya.
Ø  Pemaksaan atau pelanggaran mutual exclusion menimbulkan :
o   Deadlock
o   Starvation







PENJADWALAN PROSES BAGIAN II

disini saya akan menjelaskan beberapa tentang penjadwalan proses bagian ll di antaranya
1. Priority Scheduling
2. Round Robin
3. Multilevel Queue
4. Multilevel Feedback Queue



Sebulum kita lanjut kita harus tau penjadwalan proses itu apa,,, penjadwwalan proses adalah: 

A. Deskripsi Penjadwalan Proses

·                     Penjadwalan proses merupakan kumpulan kebijaksanaan dan mekanisme di sistem operasi yang berkaitan dengan urutan kerja yang dilakukan sistem komputer.
·                     Sedangkan proses merupakan unit kerja terkecil yang secara individu memiliki sumberdaya atau unit pemilikan sumberdaya.
Tugas penjadwalan diantaranya adalah sebagai berikut :

·                     Memutuskan proses yang berjalan.
·                     Memutuskan kapan dan selama berapa lama proses itu berjalan.
Sasaran utama dalam penjadwalan proses adalah :

·                     Adil (fairness)
Adil adalah proses-proses diperlukan sama yaitu mendapat jatah waktu pemrosesan yang sama dan tak ada pemroses yang tak kebagian layanan pemroses sehingga mengalami (starvation).
·                     Efisiensi
Efisiensi atau utilisasi pemroses dihitung dengan perbandingan (rasio) waktu sibuk pemroses.
·                     Waktu tanggap (response time), dibagi menjadi :
1.             Sistem Interaktif
Waktu tanggap dalam sistem interaktif didefinisikan sebagai waktu yang dihabiskan dari saat karakter terakhir dari perintah dimasukkan atau transaksi sampai hasil pertama muncul dilayar (terminal). Waktu tanggap ini disebut terminal response time
2.             Sistem Realtime
Pada sistem waktu nyata (real-time), waktu tanggap di definisikan sebagai waktu dari saat kejadian (internal atau eksternal) sampai instruksi pertama rutin layanan yang dimaksud dieksekusi, disebut event response time. Sasaran penjadwalan adalah meminimalkan waktu tanggap.
3.             Turn Arround Time
Waktu yang dihabiskan dari saat program atau job mulai masuk ke sistem sampai proses diselesaikan sistem.
4.             Throughput
Throughput adalah jumlah kerja yang dapat diselesaikan dalam satu unit waktu.
B. Tipe-tipe Penjadwalan

·                     Penjadwalan jangka pendek (short-termscheduller)
Penjadwalan ini bertugas menjadwalkan alokasi pemroses diantara proses-proses ready dimemori utama.
·                     Penjadwalan jangka menengah (medium-termscheduller)
Penjadwalan jangka menengah adalah menangani proses-proses swapping (aktivitas pemindahan proses yang tertunda dari memory utama ke memory sekunder)
·                     Penjadwalan jangka panjang (long-termscheduller)
Penjadwalan jangka panjang bekerja terhadap antrian batch (proses-proses dengan penggunaan sumberdaya yang intensif) dan memilih batch berikutnya yang harus di eksekusi.
C. Strategi Penjadwalan

·                     Penjadwalan Nonpreemptive
Begitu proses diberi jatah waktu pemroses maka pemroses tidak dapat diambil alih oleh proses lain sampai proses itu selesai.
·                     Penjadwalan Preemptive
Saat proses diberi jatah waktu pemroses maka pemroses dapat diambil alih oleh proses lain sehingga proses disela sebelum selesai dan harus dilanjutkan menunggu jatah waktu pemroses tiba kembali pada proses itu.
D. Algoritma-algoritma Penjadwalan
Algoritma-algoritma yang menerapkan strategi nonpreemptive diantaranya adalah :

·                     FIFO (First - In , First - Out)
·                     SJF (Shortest Job First)
·                     HRN (Highest Ratio Next)
·                     MFQ (Multiple Feedbak Queues)
Algoritma-algoritma yang menerapkan strategi preemptive diantaranya adalah :

·                     RR (Round-Robin)
·                     SRF (Shortest - Remaining - First) 
·                     PS (Priority Schedulling)
·                     GS (Guaranteed Schedulling)
Klasifikasi lain berdasarkan adanya prioritas di proses-proses yaitu :

  •              Algoritma penjadwalan tanpa berprioritas.
  • .            Algoritma penjadwalan berprioritas yang terdiri dari :
  •               Algoritma penjadwalan berprioritas statik.
  •              Algoritma penjadwalan berprioritas dinamis.

 Priority Scheduling

- Tiap proses diberi skala prioritas, proses yang mendapatkan prioritas tertinggi mendapat jatah waktu pemroses

- Prioritas dapat diberikan secara :
*  Prioritas statis (static priorities)
*  Prioritas dinamis (dynamic priorities)
- Jika beberapa proses memiliki prioritas yang sama akan digunakan algoritma FCFS, prioritas meliputi :
*  Waktu
*  Memori yang dibutuhkan
*  Banyaknya file yang dibuka
*  Perbandingan antara rata-rata I/O Burst dengan rata-rata CPU Burst

- Algoritma Priority Scheduling dapat bersifat Preemptive atau Non Preemptive. Jika ada  proses P1 yang datang pada saat P0 sedang berjalan à akan dilihat prioritas P1, Jika prioritas P1>P0, maka :
*  Pada Non Preemptive, Algoritma tetap akan menyelesaikan P0 sampai habis CPU burstnya dan meletakkan P1 pada posisi head queue.
*  Pada Preemptive, P0 akan dihentikan dulu dan CPU ganti dialokasikan untuk P1.

Contoh Priority Scheduling



Keunggulan priority scheduling biasanya memenuhi kebijaksanaan yang ingin mencapai maksimasi suatu kriteria diterapkan.

Round Robin

Ø  Algoritma ini menggilir proses yang ada di antrian.
Ø  Proses akan mendapat jatah sebesar time quantum.
o   Jika time quantum-nya habis atau proses sudah selesai, CPU akan dialokasikan ke proses berikutnya.
Ø  proses ini cukup adil karena tak ada proses yang diprioritaskan, semua proses dapat jatah waktu yang sama dari CPU.
Ø  Contoh 1
Sebuah CPU dengan quantum 4 mendapat beberapa proses sebagai berikut:






       Kelemahan

      Permasalahan utama adalah menentukan besarnya time quantum.
      Jika time quantum yang ditentukan terlalu kecil, maka sebagian besar proses tidak akan selesai dalam 1 time quantum.
       Hal ini tidak baik karena akan terjadi banyak switch, padahal CPU memerlukan waktu untuk beralih dari suatu proses ke proses lain (context switches time).
      Jika time quantum terlalu besar, algoritma Round Robin akan berjalan seperti algoritma First Come First Served.



Multilevel Queue

       Ide dasar dari algoritma ini adalah berdasarkan pada sistem prioritas proses.
       Prinsipnya adalah, jika setiap proses dapat dikelompokkan berdasarkan prioritasnya, maka akan didapati queue.

       Dari gambar, terlihat bahwa akan terjadi pengelompokan-pengelompokan proses-proses berdasarkan prioritasnya.

       Kemudian muncul ide untuk menganggap kelompok-kelompok tersebut sebagai sebuah antrian-antrian kecil yang merupakan bagian dari antrian keseluruhan proses, yang sering disebut dengan algoritma multilevel queue.

       Kelemahan:
       algoritma ini pun memiliki kelemahan yang sama dengan priority scheduling, yaitu suatu proses pada queue dengan prioritas rendah bisa saja tidak mendapat jatah CPU.
       Untuk mengatasinya, memodifikasi algoritma ini dengan adanya jatah waktu maksimal untuk tiap antrian,
       jika antrian memakan terlalu banyak waktu, maka prosesnya akan dihentikan dan digantikan oleh antrian dibawahnya (batas waktu untuk tiap antrian bisa berbeda tergantung pada prioritas masing-masing antrian).

 Multilevel Feedback Queue


       Algoritma ini mirip sekali dengan algoritma Multilevel Queue.
       Perbedaannya ialah algoritma ini mengizinkan proses untuk pindah antrian.
       Jika suatu proses menyita CPU terlalu lama, maka proses itu akan dipindahkan ke antrian yang lebih rendah.
       Ini menguntungkan proses interaksi, karena proses ini hanya memakai waktu CPU yang sedikit.
       Demikian pula proses yang menunggu terlalu lama. Proses ini akan dinaikkan tingkatannya.

       Biasanya prioritas tertinggi diberikan kepada proses dengan CPU burst terkecil, dengan begitu CPU akan terutilisasi penuh dan I/O dapat terus sibuk.
       Semakin rendah tingkatannya, panjang CPU burst proses juga semakin besar.
       Algoritma ini didefinisikan melalui beberapa parameter, antara lain:
      Jumlah antrian
      Algoritma penjadwalan tiap antrian
      Kapan menaikkan proses ke antrian yang lebih tinggi
      Kapan menurunkan proses ke antrian yang lebih rendah
      Antrian mana yang akan dimasuki proses yang membutuhkan