• Tidak ada hasil yang ditemukan

Memori Linux. Anggota Kelompok : Jani RR Siregar Martin Leonard T Y Muhamad Mulki A

N/A
N/A
Protected

Academic year: 2021

Membagikan "Memori Linux. Anggota Kelompok : Jani RR Siregar Martin Leonard T Y Muhamad Mulki A"

Copied!
18
0
0

Teks penuh

(1)

Memori Linux

Anggota Kelompok 116-36:

Jani RR Siregar

1204000491

(2)

Manajemen Memori di Linux

 Manajemen memori di Linux terdiri dari 2 komponen:

1. Berkaitan dengan pengalokasian dan pembebasan halaman pada main memory

2. Berkaitan dengan penanganan memori virtual

Linux membagi memori fisik ke dalam tiga Zona berbeda,

yang mengientifikasikan region-region di main memory. Ketiga zona tersebut adalah:

1. Zona DMA

2. Zona NORMAL 3. Zona HIGHMEM

Zona

Main Memori

ZONE_DMA

< 16 MB

ZONE_NORMAL

16…896 MB

ZONE_HIGHMEM

>896 MB

(3)

• Memori manager di Linux berusaha untuk mengefisienkan ruang alamat pada memori fisik, agar kecepatan memori tidak terlampau berkurang. Maka digunakanlah dua tekhnik alokasi, yaitu alokasi halaman dan alokasi slab

 Alokasi halaman menggunakan algoritma buddy:

1. Pada saat alokasi data di memori, maka region di memori akan di-split (dibagi) menjadi dua region berukuran sama besar, hal ini akan terus berlangsung hingga didapat region (blok) yang sesuai dengan kebutuhan data

2. Pada saat pembebasan halaman, maka region yang kini bebas (kosong) akan digabung kembali dengan region

(4)
(5)

 Alokasi slab menggunakan algoritma slab:

Slab --> dibentuk dari halaman – halaman memori fisik yang berdekatan, digunakan untuk kegiatan pengalokasian memori Sebuah cache terdiri satu atau lebih slab, dan diisi oleh

beberapa objek

Objek --> bentuk instansiasi dari struktur data kernel yang

direpresentasikan oleh cache yang bersangkutan. Ketika sebuah cache dibuat maka semua objek (di dalam cache

tersebut) berstatus free, dan baru ketika terjadi sebuah request maka objek-objek yang dibutuhkan untuk memenuhi request

(6)

Gambar kerja slab

Di Linux, sebuah slab dapat berstatus: 1. Full -> semua objek di dalam slab tersebut adalah used 2. Empty -> semua objek di dalam slab tersebut adalah free 3. Partial -> ada objek yang used dan ada pula yang free

(7)

Keuntungan algoritma slab:

1. memperkecil kemungkinan terjadinya fragmentasi 2. request memory cepat terpenuhi (dengan

mendayagunakan kerja cache)

Sistem memori virtual berkaitan erat dengan sistem page

cache, karena pembacaan halaman data dari memori ke dalam page cache (oleh kernel) membutuhkan pemetaan halaman ke page cache yang dilakukan oleh sistem memori virtual

 Keuntungan sistem memori virtual pada Linux:

1. Ruang alamat yang besar

2. Pembagian memori fisik yang adil 3. Proteksi

(8)

Memori Virtual Linux

Pada dasarnya, memori virtual linux bertanggungjawab dlm:

-mengatur ruang alamat spy dpt dilihat (visible) oleh tiap proses

-membentuk halaman2x (pages) di memori virtual sesuai permintaan -mengatur alokasi/loading halaman2x tsb dari disk ke memori fisik atau sebaliknya (swapping)

Di dalam memori virtual linux mengenal 2 ruang alamat proses:

1. sebagai kumpulan region

2. sebagai kumpulan halaman2x (pages)

 Sistem memori virtual linux mengatur 2 view yg berbeda dari ruang alamat proses:

1. physical view

mendeskripsikan instruksi2x yg diterima oleh sistem memori virtual, berkaitan dgn susunan dari ruang alamat.

(9)

Memori Virtual Linux (cont.)

2. logical view

berupa page tables, dimana entri2xnya menentukan lokasi yg tepat bagi tiap page di memori virtual, apakah berada di disk atau di memori fisik.

a. Bagian(region) Memori Virtual

Karakteristik dari bagian memori virtual: 1. Backing Store

mendeskripsikan berasal dari mana halaman2x di suatu bagian dalam memori virtual. Biasanya berasal dari suatu file atau kosong/nothing (demand zero memory)

2. Reaksi Region dalam me-write

(10)

Memori Virtual Linux (cont.)

b. Lifetime of Virtual Adress Space

Kernel akan membentuk ruang alamat yang baru, dalam 2 situasi: 1. Proses menjalankan suatu program dgn system call exec()

ketika program dieksekusi, proses diberikan ruang alamat virtual yg masih kosong, kemudian routine2x akan me-load program untuk mengisi ruang alamat di memori virtual

2. Pembentukan proses baru dgn system call fork()

-membentuk salinan semua ruang alamat virtual dari proses ybs.

-kernel menyalin deskriptor proses induk vm_area_struct, membentuk page tables utk si anak, dan menyalin isi page tables induk ke page tables anak

(11)

Memori Virtual Linux (cont.)

special case => proses penyalinan melibatkan bagian memori

virtual yg private. Menggunakan Copy-on-Write jika ada proses yang ingin mengubah page yg dishare bersama.

c. Swapping dan Paging

Salah satu tugas penting dalam sistem memori virtual : swapping, dalam hal ini merelokasi page2x dari memori fisik ke disk (memori virtual), manakala memori dibutuhkan untuk keperluan lain atau page2x tsb tidak dibutuhkan lagi.

(12)

Memori Virtual Linux (cont.)

2. Paging mechanism

mengatur kembalinya page2x data ke memori fisik ketika dibutuhkan lagi.

d. Memori Virtual Kernel

Kernel menyediakan(reserves) suatu ruang alamat virtual untuk tiap proses yg bersifat konstan dan architecture-dependant. Entri2x dlm page table yg dipetakan ke ruang alamat ini berstatus protected, yakni tidak visible & tidak modifiable ketika sistem berjalan dlm user-mode.

Area memori virtual kernel ini dibagi 2:

1. Static area --> mengandung referensi page-table utk setiap physical page di memori yg tersedia, sehingga ketika menjalankan kode kernel, sehingga translasi dari alamat fisik ke alamat virtualnya lebih mudah dan simpel.

(13)

Executing and Loading User Programs

 Kernel Linux dieksekusi ketika system call exec() dipanggil

Linux menggunakan tabel fungsi untuk loading program; Setiap

fungsi mempunyai kesempatan untuk meload file ketika system call exec() dipanggil

Standar format binari Linux antara 1.0 dan 1.2 telah berubah  Kernel Linux terdahulu(1.0) menggunakan format a.out

System Linux terbaru(sejak 1.2) menggunakan format ELF  Keuntungan ELF: flexibilitas dan ekstensibilitas

(14)

Pemetaan Program ke Memori

 Binari loader tidak langsung meload binari file ke memori fisik

 Page dari binary file dipetakan ke region dari virtual memori

 Hanya ketika program mencoba mengakses page, page

(15)

ELF

memory

layout

(16)

Static dan Dynamic linking

 Banyak program membutuhkan fungsi-fungsi dari system

libraries, sehingga system libraries perlu untuk diload juga

 Static Linking => Fungsi library yang diperlukan diload

langsung ke file binari executable program

Dynamic Linking => Menggunakan Linker library

 Kerugian static linking adalah setiap program yang dibuat

harus men-copy fungsi-fungsi dari system library

Dynamic linking lebih efisien baik untuk memori fisik dan

pemakaian ruang disk, karena sistem librari hanya diload satu kali ke memori

(17)

Page 9 Use = 1 Page 19 Use = 1 Page 1 Use = 1 Page 45 Use = 1 Page 191 Use = 1 Page 556 Page 33 Page 222 Use = 0

.

.

.

Next Fra me Poin ter N - 1 0 1 2 3 8

Algoritma Clock

(18)

Page 9 Use = 1 Page 19 Use = 1 Page 1 Use = 1 Page 45 Use = 0 Page 191 Use = 0 Page 727 Use = 1 Page 13 Use = 0 Page 67 Use = 1 Page 33 Use = 1 Page 222 Use = 0

.

.

.

N - 1 0 1 2 3 4 7 8

Algoritma Clock

Gambar

Gambar kerja slab Di Linux, sebuah  slab dapat  berstatus: 1. Full -&gt; semua  objek di dalam  slab tersebut  adalah used 2

Referensi

Dokumen terkait