Manajemen Memory Part 2

PAGING SEGMENTASI

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

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

1

 

2

  • Pages

Alamat yang dihasilkan oleh CPU (memori logis) akan dibagi menjadi 2 yaitu nomor page(p) dan page offse(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 dikirim ke unit memori.

 

  • Frames

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

3

 

 

Keuntungan dan Kerugian Paging

Jika membuat ukuran dari masing-masing pages menjadi besar:

  • Keuntungannya akses memori akan relative lebih cepat
  • Kerugiannya kemunkinan terjadinya fragmentasi internal yang sangat besar.

Jika membuat ukuran dari masing-masing pages menjadi kecil:

  • Kerugiannya akses memori akan relative lebih lambat
  • Keuntungannya kemungkinan terjadinya fragmentasi internal akan menjadi lebih kecil.

 

Struktur Paging

4

 

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.

5

 

Skema Page table dua tingkat

6

 

Page table secara Multilevel

7

 

 

 

Inverted Page Table

  • Satu masukan untuk setiap page dari memori
  • Masukkan terdiri dari page di alamat logis yang disimpan dilokasi memori nyata, dengan informasi tentang proses yang dimiliki oleh page tersebut
  • Mengurangi memori yang dibutuhkan untuk menyimpan setiap table page, tetapi mengurangi waktu yang dibutuhkan untuk mencari table saat page mengalami kerusakan.
  • Menggunakan hash table untuk membatasi mencari mencari satu atau beberapa masukan table page.

Inverted Page Table

8

 

Shared Page Table

  • Berbagi Kode
    • Dibutuhkan suatu kode read only yang dibagi antara proses
    • Kode yang dibagi harus berada dilokasi yang sama di alamat logis
  • Kode dan Data Private
    • Setiap proses menyimpan kode dan datanya.
    • Page untuk kode dan data tertutup bisa berada dimana saja dalam ruang dialamat logis.

 

Page Shared Table

9

 

 

 

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) dituliskan dengan

<nomor segmen, offset>

Pemetaan alamat logika ke alamat fisik menggunakan table 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 diletakkan dimana saja (dimain memory, setelah program dimasukkan ke memori)
  • Tabel segmen → menentukan lokasi segmen
  • Saling berbagi
  • Adanya proteksi
  • Alokasi yang dinamis

Implementasi segmentasi

 

10

 

11

 

Masalah Segmentasi

  • Segmentasi dapat membesar
  • Muncul fragmentasi luar bila ada proses yang besar

 

 

Perbedaan segmentasi dan Paging

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

 

 

 

VIRTUAL

Devinisi Virtual

Memory virtual merupakan suatu teknik yang memisahkan antara memori logis dan memori fisiknya dan juga menyembunyikan aspek-aspek fisik memori dari user.

 

Prinsip virtual memory

Konsep memori virtual yang dikemukakan Fotheringham pada tahun 1961 pada sistem komputer Atlas di Universitas Manchester, inggris:

“Kecepatan maksimum eksekusi proses 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 tamping dari memori utama yang tersedia.

 

 

Implementasi Virtual Memory

  • Virtual programming
  • Memory virual dapat dilakukan dengan cara:
    • Demand paging
    • Permintaan pemberian page
    • Permintaan pemberian page menggunakan swapping
    • Page pada permintaan pemberian page hanya di-swap ke memory jika benar diperlukan
    • Keuntungan:- Sedikit I/O yang dibutuhkan

      – Sedikit memory yang dibutuhkan

      – Response yang lebih cepat

      – Lebih banyak melayani user

    • Demang segmentation

 

Manajemen Memory Part 1

HIRARKI MEMORI

hirarki

Cache Memory adalah memory yang bertugas membantu tugas primary memory dalam memecah-mecah data yang akan diproses dan yang belum diproses, dengan tujuan mempermudah kinerja processor (karena data dibagi-bagi / dipotong-potong dulu sebelum diproses).

Biasa ada dalam processor, mother board maupun peralatan mikrokontroller lain (VGA, Hard disk, Sound, dsb).

Berukuran kecil, antara Kilo Bytes (KB) sampai dengan MB (Mega Bytes).

Main Memory adalah memory utama dari sebuah komputer, biasa berbentuk RAM (disebut juga sebagai memory dinamis).

Fungsi utamanya adalah menyimpan sementara data yang akan diproses oleh processor dan data yang telah diproses oleh processor untuk selanjutnya diteruskan ke media input/output yang lain VGA (ditampilkan), Sound (mengeluarkan suara), Hard Disk (menyimpan data/save), maupun media input/output lainnya.

Besarannya adalah MB (Mega Byte) hingga GB ( Giga Byte )

Secondary Memory adalah memory pembantu dari sebuah komputer, biasa berbentuk Harddisk / ROM (Read Only Memory), disebut juga sebagai memory statis (pasif).

Fungsi utamanya adalah menyerupai RAM tapi perbedaannya memory jenis ini bisa menyimpan data dalam waktu yang lama.

Dan juga memory jenis ini (hard disk) biasa dipakai sebagai MEMORY BANTUAN, yaitu memori tambahan untuk membantu tugas RAM.

Misalnya ada data yang harus diproses sebesar 550 MB, sementara RAM kita hanya 512 MB, dan ini pastinya memerlukan bantuan dari Hard disk sebesar 38 MB untuk membantu tugas RAM sebagai Primary memory. Hal ini biasa dilakukan oleh OS dan menyimpannya dalam sebuah file yang berjenis swap (swap file / .swp).

 

MANAJEMEN MEMORI

Manajemen memori dilakukan dengan cara membagi-bagi memori untuk mengakomodasi banyak proses dan  dilakukan untuk menjamin agar setiap proses yang ready dapat segera memanfaatkan processor time.

Beberapa fungsi lainnya:

  • Mengelola informasi memori yang dipakai & tidak dipakai.
  • Mengalokasikan memori ke proses yang memerlukan.
  • Men-dealokasikan memori dari proses yang telah selesai.
  • Mengelola swapping antara memori utama & disk.

Terdapat 5 requirement manajemen memori:

  1. Relocation

Prosesor dan sistem operasi harus dapat mentranslasikan memori referensi ke alamat fisik (physical address) yang mengalokasikan program dalam memori utama.

 

Jenis – jenis alamat data:

  • Alamat logical

Alamat suatu word relative terhadap titik referensi tertentu dan harus dilakukan translasi terhadap alamat fisik.

  • Alamat Relatif

Alamat yang menunjukkan lokasi relative terhadap alamat awal suatu program yang terdiri dari:

  • Alamat instruksi dalam pencabangan
  • Alamat instruksi call
  • Alamat data
    • Alamat fisik (mutlak/absolut)

Alamat sebenarnya dari suatu memori

 

 

  1. Protection

Suatu proses tidak boleh mengakses lokasi memori proses yang lain tanpa ijin. Lokasi program di memori tidak tentu karena alamat pada saat compile tidak dapat diketahui.penanganan proteksi memori diserahkan kepada prosesor (secara hardware), bukan bagian sistem operasi (software)

 

  1. Sharing

Harus memungkinkan suatu lokasi memori dapat diakses oleh lebih dari satu proses (secara legal). Beberapa proses yang memerlukan data yang sama, maka tidak perlu setiap proses mengcopy data dari disk ke memori, cukup sebuah copy saja.

 

  1. logical organization

Main memory dikelompokkan secara linier atau berdimensi satu yang berupa ruang alamat yang terdiri dari deretan byte atau word. Sebagian besar program dibuat dalam bentuk modul → penempatan di memori tidak linier → diperlukan pengaturan secara logic.

 

Kelebihan program dalam bentuk modul:

  • modul dapat ditulis dan di compile secara terpisah
  • setiap modul dapat diberi tingkatan proteksi berbeda-beda (readonly, execute only)
  • setiap modul dapat di share oleh beberapa proses

 

  1. physical organization

Memory dikelompokkan menjadi memori utama dan memori sekunder. Diperlikan metode yang mengatur aliran data dari memori utama ke memori sekunder dan sebaliknya. Pengaturan tersebut dilakukan oleh sistem operasi, bukan programmer.

 

Teknik manajemen memori :

  • Partisi
  • Partisi Tetap (fixed)
    • Partisi berukuran sama
    • Partisi berukuran yang berbeda-beda
  • Partisi Dinamis
  • Paging sederhana
  • Segmentasi sederhana
  • Virtual memory
  • Virual-memory paging
  • Virtual-memory segmentation

Belajar Round Robin

Round Robin merupakan salah satu penjadualan proses, dimana algoritma ini menggilir proses yang ada di antrian. Proses akan mendapatkan jatah sebesar time quantum. Jika time quantum-nya habis atau proses sudah selesai, CPU akan dialokasikan ke proses berikutnya. Pada penjadualan proses ini, tidak ada proses yang diprioritaskan, semua proses mendapatkan pembagian waktu yang sama dari CPU.

*Contoh Pertama :

Sebuah CPU dengan quantum 4 mendapat beberapa proses dengan waktu kedatangan yang bersamaan eperti berikut:

Capture

  • Langkah Pertama:

Membuat Gantt Chart

Masukkan proses yang berurutan, kemudain kurangi Burst Time dengan nilai quantum.

RR2

P1 :

Burst time – Quantum

4 – 4 = 0.

Waktu = 4

P2:

Burst time – Quantum

9 – 4 = 5.

Sisa = 5

Waktu = 4

P3:

Burst time – Quantum

6 – 4 = 2.

Sisa = 2

Waktu = 4

P4:

Burst time – Quantum

5 – 4 = 1.

Sisa = 1

Waktu antrian = 4

P5:

Burst time – Quantum

3 – 4 = (-1).

Waktu antrian = 3

Proses yang memiliki sisa, kemudian dimasukkan kembali kedalam antrian sesuai dengan urutan Prosesnya.

P2:

Sisa Burst time – Quantum

5 – 4 = 1

Sisa = 1

Waktu antrian = 4

P3:

Sisa Burst time – Quantum

2 – 4 = (-2)

Waktu antrian = 2

P4:

Sisa Burst time – Quantum

1 – 4 = (-3)

Waktu antrian = 1

P2:

Sisa Burst time – Quantum

1 – 4 = (-3)

Waktu antrian = 1

Setelah selesai menentukan waktu antrian, kemudian buat table seperti dibawah ini:

RR3

  • Langkah Kedua

Menghitung AWT (Average Waiting Time)

 RR4

AWT yang terjadi adalah:

(0 + 18 + 19 + 21 + 16)/ 5

= 74 / 5

= 14,8

  • Langkah Ketiga

Menghitung ATAT (Average Turn Arround Time)

RR5 

*Contoh Kedua:

Sebuah CPU dengan Quantum 2 mendapat proses yang kedatangannya berbeda – beda sebagai berikut:

 RR6

  • Langkah Pertama

Membuat Gantt Chart

Untuk membuat Gantt Chart pada proses yang kedatangannya berbeda, membuat antrian disesuaikan dengan waktu kedatangan Proses . Untuk pencarian waktu antrian yang dilakukan sama seperti yang sebelumnya. Hanya pengurutan dalam antrian saja yang berbeda.

RR7

  • Langkah kedua

Membuat AWT

RR8

RR9

AWT yang terjadi adalah:

(6 + 3 + 10 + 3 + 8)/5

= 30/5

= 6

  • Langkah ketiga

Membuat ATAT

RR10

Selamat mencoba..

Semoga dapat membantu dan bermanfaat, kalau ada salah kata atau kekurangan tolong berikan masukkan, karena saya pun masih belajar 😀

See ya..

Cara Men-Setting Path Java pada Windows

Halo!

Kali ini saya ingin berbagi pengetahuan tentang cara mensetting Path java pada windows. Hal ini diperlukan apabila kita ingin membuat program yang dapat berjalan di CMD.

Langsung saja. Pertama Download dulu Java JDK atau Java JDK+Netbeans. Silahkan klik Download Java JDK 8u25 & Netbeans 8.0.1  Setelah download langsung di install.

Oke, lanjut ke topic pembahasan awal yaitu cara aktifkan java di CMD pada windows.

Pada awalnya mungkin kalian mencoba mengetikkan javac pada cmd kalian dan berakhir seperti ini:

cmd1

Apabila setelah mengetikkan javac muncul tulisan seperti diatas, itu tandanya bahwa Path java belum di setting.

 

Nah, agar tugas kalian membuat program yang dijalankan pada cmd berjalan mulus (kecuali eror pada penulisan program ^^”), yuk ikutin langkah-langkah dibawah ini.

Langkah-langkahnya :

  1. Buka document, kemudian buka drive C;

Contoh:

g8

  1. Setelah itu buka Program File -> buka Java -> buka Java jdk -> buka bin

Contoh:

g9

g10

g11

g12

 

 

 

 

  1. Ketika sudah berada didalam folder bin, maka yang harus dilakukan adalah mengcopy tulisan yang ada pada address, lihat gambar:

g13

Setelah meng-klik sekali, akan muncul tulisan. Nah, setelah semua tulisan yang ada di address sudah diblock, tinggal pencet tombol Ctrl+C pada keyboard.

 

  1. Selanjunya, tutup saja apa yang kita lakukan sebelumnya tadi dengan meng-klik “OK”. Setelah itu, klik kanan pada ikon this PC / my computer yang ada pada Desktop -> pilih properties.

 

  1. Selanjutnya klik pada Advance System setting yang ada pada sisi sebelah kiri. Lihat gambar:

g2

 

  1. Setelah muncul System Properties, klik pada Environment variables, lihat gambar:

g4

 

 

  1. Selanjutnya, akan muncul gambar seperti ini:

g5

Pada System Variables, klik 2x pada tulisan Path seperti pada gambar diatas.

 

  1. Tunggu! Jangan memencet tombol apapun yang ada pada keyboard, karena keadaan tulasan yang ada pada kolom masih dalam keadaan ter-block. (Heboh)

Sekarang ketik tombol (end) pada keyboard, setelah itu tambahkan tanda titik koma ( ; ) dibagian paling akhir tulisan, contoh:

g7

Setelah memberi tanda ( ; ) di akhir tulisan, sekarang tekan tombol Ctrl+V pada keyboard / klik kanan pada mouse dan pilih paste.

Lihat gambar:

g14

Klik OK!

 

  1. Langkah terakhir adalah memeriksa apakah Path Java-nya sudah bisa berjalan pada CMD atau belum.

Selanjutnya buka CMD untuk yang kedua kalinya, kemudaian sekali lagi ketik javac dan tekan tombol enter.

g15

Apabila muncul banyak kata seperti diatas, berarti setting yang kita lakukan tadi BERHASIL! (Yeay!)          \(^0^)/

 

 

Okeh, sekian dulu info dari saya. Apabila ada yang kurang, mohon dimaklumi dan sarannya . Maklum, penulis awam..

Huahahahaaha..

 

Semoga bermanfaat! (^-^)9

See ya!