• Tidak ada hasil yang ditemukan

VIII. Manajemen Memory - VIII. Manajemen Memory

N/A
N/A
Protected

Academic year: 2019

Membagikan "VIII. Manajemen Memory - VIII. Manajemen Memory"

Copied!
28
0
0

Teks penuh

(1)

TEKNIK KOMPUTER - UNIKOM Jalan 1

VIII. Manajemen Memory

• Pada uniprograming, main memory dibagi menjadi dua yaitu untuk sistem operasi (resident monitor, kernel) dan program yang dieksekusi sedangkan dalam

multiprograming, main memory yang digunakan user

dibagi-bagi untuk beberapa proses. Tugas pembagian ini yang disebut manajemen memori

• Fungsi manajemen memori

- Mengelola informasi memori yang dipakai dan tidak dipakai

(2)

VIII.1. Fixed Memory

• Main Memory dibagi menjadi sejumlah partisi tetap dan pada partisi tersebut ditempatkan proses-proses

• Berdasarkan ukurannya dapat dibedakan menjadi partisi

Klasifikasi

Manajemen Memori

Nyata (Main memory)

Sistem Khusus untuk pemakai tunggal

Sistem multiprograming

Partisi tetap

Partisi dinamis

Alokasi absolut Relokasi

Paging murni Segmentasi murni

Kombinasi paging dan segmentasi Maya

(3)

3

Operating system

512 k

512 k

512 k

512 k

512 k

512 k

512 k

512 k

(a) Equal size partition

Operating system

512 k 128 k 256 k

320 k

576 k

768 k

1 M

(b) Unequal size partition

(4)

Kesulitan partisi tetap dengan ukuran yang

sama

• Bila program ukurannya lebih besar dibanding partisi yang tersedia maka tidak dapat dimuatkan.

Pemrogram harus mempersiapkan overlay sehingga hanya bagian program yang benar-benar dieksekusi yang dimasukkan ke main memory

• Untuk program yang sangat kecil dibanding ukuran partisi akan terjadi ketidakefisien yang disebut

(5)

TEKNIK KOMPUTER - UNIKOM Jalan 5

Placement Algorithm

• Untuk partisi tetap dengan ukuran yang sama,

penempatan proses di main memory dilakukan dengan trivial, selama ada partisi yang tersedia proses dapat di load ke partisi tersebut.Bila sudah penuh digunakan swapping.

• Untuk partisi tetap dengan ukuran berbeda dua cara penempatan proses kedalam partisi :

1. Satu antrian proses untuk tiap partisi

2. Satu antrian proses untuk seluruh partisi

(6)

Operating system

512 k 128 k 256 k 320 k

576 k

768 k

1 M 512 k

New Process

(b) Single process queque

Operating system

512 k 128 k 256 k 320 k

576 k

768 k

1 M 512 k

New Process

(7)

TEKNIK KOMPUTER - UNIKOM Jalan 7

Masalah di dalam partisi tetap

• Relokasi

Penempatan proses sesuai alamat fisik yang bisa berubah tergantung penempatannya dalam partisi • Proteksi

(8)

Partisi Dinamik

• Partisi yang digunakan memiliki panjang dan jumlah yang bervariasi

• Saat suatu proses dibawa ke main memory, proses

tersebut dialokasikan dengan ukuran memori yang tepat sama dengan yang diperlukan

(9)

TEKNIK KOMPUTER - UNIKOM Jalan 9

Process space Operating

System 128 k

896 k

(a)

Process space Operating

System 128 k

(b) Process 1

576 k 320 k

Process space Operating

System 128 k

(c) Process 1

352 k 320 k

Process 2 224 k

Operating

System 128 k

(d) Process 1

288 k 320 k

Process 2 224 k

Process 3

64 k

Operating

System 128 k

(e) Process 1

288 k 320 k

224 k

Process 3

64 k

Operating

System 128 k

(f) Process 1

288 k 320 k 128 k

Process 3

64 k Process 4

96 k

Operating

System 128 k

(g)

288 k 320 k 128 k

Process 3

64 k Process 4

96 k

Operating

System 128 k

(h) Process 2

288 k 224 k 128 k

Process 3

64 k Process 4

(10)

• (a) mula-mula memori kosong hanya ada sistem operasi • (b, c, d) proses 1, 2, 3 diload ke main memory

Pada (d) terdapat “hole” di akhir memori yang tidak cukup untuk proses 4

• (e) Karena belum ada proses yang ready, proses 2 diswap sehingga cukup untuk proses 4

• (f) Proses 4 berukuran lebih kecil dari proses 2 sehingga terbentuk hole lain

• (g) Kemudian proses 2 menjadi ready, karena ukuran memori tersedia belum cukup maka proses 1 yang

diswap

(11)

TEKNIK KOMPUTER - UNIKOM Jalan 11

• Partisi dinamik ini menghasilkan beberapa lubang (hole) di memori yang semakin lama memori akan semakin ter-fragment dan penggunaan memori

berkurang. Fenomena ini disebut Fragmentasi Eksternal

• Teknik untuk mengatasi Fragmentasi Eksternal dengan Compaction (pemadatan). Dari waktu ke waktu sistem operasi menggeser proses-proses sehingga menjadi

berdampingan (contiguous) dan free memory dijadikan satu blok. Misal dari gambar (h) akan diperoleh free

memory 256 k sebagai hasil dari compaction

• Kesulitan dari compaction adalah prosedurnya menyita waktu prosesor dan diperlukan kemampuan relokasi

(12)

RELOCATION

• Penempatan suatu proses yang telah diswap kembali ke

main memory. Pada partisi tetap suatu proses yang diswap balik (swap in) akan menempati partisi yang sama seperti sebelum diswap. Ini merupakan contoh relokasi sederhana. Saat pertama diload, seluruh acuan memori relatif dalam bentuk code akan digantikn alamat main memory absolut yang ditentukan oleh base address dari proses yang diload • Sedangkan pada single-process queue untuk unequal-size partition dan partisi dinamik suatu proses bisa menempati partisi yang berbeda pada saat diswap balik ke main

(13)

TEKNIK KOMPUTER - UNIKOM Jalan 13

Untuk itu dibedakan beberapa jenis alamat • Logical Address :

Acuan pada suatu lokasi memory yang tergantung

pengerjaan data ke memory, penerjemahan ke alamat fisik harus dilakukan terlebih dahulu sebelum memori diakses

• Relative Address :

Contoh khusus dari logical address, alamat dinyatakan sebagai suatu lokasi yang relatif pada titik yang

diketahui, biasanya awal dari program • Physical Address/Absolute Address :

(14)

Penerjemahan ke alamat fisik di main memory

Base Register

Adder Relative Address

Comparator Bound Register

Process Control Block

Program

Absolute address

Data Interrupt to

(15)

TEKNIK KOMPUTER - UNIKOM Jalan 15

• Saat suatu proses ditugaskan menjadi status running, base register diisi alamat awal proses di main memory. Juga terdapat sebuah bound

register yang menunjukkan lokasi akhir dari program, nilai akhir ini harus diatur saat program diload atau process image diswap masuk (ke main memory)

• Pada saat proses dieksekusi, alamat relatif dilibatkan. Alamat relatif terdiri dari isi instruction register (IR), alamat instruksi yang terjadi di dalam cabang dan instruksi pemanggilan, dan alamat data yang terjadi saat instruksi load dan store

• Tiap-tiap alamat relatif mengalami 2 langkah manipulasi oleh prosesor :

1. Nilai di dalam base register ditambahkan pada relative address untuk menghasilkan absolute address

2. Hasilnya dibandingkan dengan nilai di dalam bound register. Jika alamatnya di dalam range nilai ini maka instruksi

(16)

Placement Algorithm

• Diperlukan algoritma penempatan untuk menutup

lubang yaitu pada saat load atau swap proses ke main memory terdapat beberapa blok memori bebas yang ukurannya cukup maka sistem operasi akan

memutuskan yang mana yang akan dialokasikan

• Terdapat 3 algoritma penempatan : best-fit, first-fit dan next-fit

- Best-fit memilih blok memori yang ukurannya sangat dekat dengan ukuran proses yang dibawa - First-fit mulai dengan menscan memori dari awal dan memilih blok memori yang pertama ditemui yang memiliki ukuran yang cukup besar

(17)

Berikut ini contoh ketiga algoritma. Pada gambar ini blok terakhir yang digunakan adalah blok 22 kb yang kemudian dipartisi 14 kb. Akan dialokasikan 16 kb

8 k

12 k 22 k

18 k Block terakhir yang

dialokasi

8 k

6 k

14 k

8 k

12 k

2 k

8 k

6 k

14 k First-fit

Best-fit

Next-fit

(18)

• Algoritma yang terbaik adalah First-fit meskipun akan

menghasilkan memori bebas berukuran kecil diawal memori. Yang kedua adalah Next-fit dan yang paling buruk adalah algoritma Best-fit karena akan menghasilkan memori bebas berukuran kecil yang banyak sehingga compaction harus lebih sering dilakukan

Replacement Algorithm

• Pada sistem multiprogramming menggunakan partisi

dinamik terdapat suatu waktu saat seluruh proses di main memory dalam status block dan meski telah dilakukan

compaction masih kekurangan memori untuk penambahan proses baru

• Maka ada proses yang diswap dari main memory untuk

(19)

TEKNIK KOMPUTER - UNIKOM Jalan 19

Simple Paging

• Main memory dipartisi menjadi potongan memory berukuran relatif kecil dan setiap proses juga dibagi menjadi potongan kecil berukuran sama dengan

potongan memory yang disebut page.

• Page ini dapat ditempatkan pada potongan main memory yang disebut frame.

(20)

0

Number Main memory

(a) 15 page menempati frame yang kosong

(21)

TEKNIK KOMPUTER - UNIKOM Jalan 21

• Sistem Operasi menyediakan page table untuk setiap proses, page table ini berisi lokasi frame untuk tiap page dari

proses. Di dalam program setiap logical address berisi nomor page dan offset

• Menggunakan logical address (page number, offset) dan page table, prosesor akan menentukan physical address (frame number, offset)

• Pages table untuk contoh di atas

0

Process A Page Table

---Process B Page Table

7

Process C Page Table

5

Process D Page Table

0 4

13 14

(22)

• Untuk memudahkan ukuran page dan ukuran frame ditentukan sebagai kelipatan 2. Sehingga relative address menjadi sama dengan logical address.

Contoh : digunakan pengalamatan 16 bit dan ukuran page 1 k = 1024 byte.

Relative address 1502 yang dalam bentuk biner : 000001 0111011110

Dengan ukuran page 1 k diperlukan offset 10 bit sehingga 6 bit sisa untuk nomor page. Sehingga program maksimum dapat terdiri dari 26 = 64 page

(23)

23

• Relative Address 1502 sesuai dengan offset = 478 dan page = 1

000001 0111011110

(a) partitioning User

Process 2700 byte

Relative Address

000001 0111011110

(b) Paging (page size = 1 k) Page 0

Page# = 1, Offset = 478 Logical Address

Page 2

Page 1 478

Internal fragmentation

000001 0111011110 1502

1

(24)

Langkah-langkah menterjemahkan alamat untuk alamat n + m bit

1. Ekstrak page number dari n bit paling kiri

pada logical address

2. Gunakan page number untuk mencari frame

number (k) di page table

3. Physical Address awal = k x 2

m

(25)

TEKNIK KOMPUTER - UNIKOM Jalan 25

Simple segmentation

• Program dan datanya dibagi menjadi beberapa segmentasi. Ukuran tiap segmentasi tidak perlu sama. Logical Address yang menggunakan

segmentasi terdiri dari segment number dan offset.

0001 001 011110000

Segment 0 750 byte

Logical Address

752

(26)

Langkah menerjemahkan alamat n+m bit

1. Ekstrak segment number dari n bit paling kiri pada logical address

2. Gunakan segment number ini untuk mencari awal physical address dari segmentasi pada segment table

3. Bandingkan offset (m bit paling kanan) dengan panjang segment. Jika offset lebih besar dari panjang segment berarti alamat tidak absah (valid)

(27)

27

16 bit logical address

0000010111011110

6 bit page

number 10 bitoffset

000101 000110 011001 0

1 2

000110 0111011110 A. PAGING

(28)

16 bit logical address 4 bit

segment number

12 bit offset

001011101110 0000010000000000 0

1

0010001100010000 0001001011110000

011110011110 0010000000100000 Process Segment Table

Length Base

+ B. SEGMENTATION

Referensi

Dokumen terkait

 MAR – Memory Address Register, untuk menampung alamat data / instr uksi pada memori utama yang akan diambil / yang akan diletakkan.. Array Proce s

Setelah diketahui base address nya, maka dapat ditentukan alamat register-register yang akan digunakan untuk komunikasi port serial ini, register-register yang digunakan

Program Counter ( PC ) atau Control Counter / instruction counter adalah register yang digunakan untuk menyimpan alamat ( address ) lokasi dari main memory yang

Disebut juga control counter atau instruction counter yaitu register yang digunakan untuk menyimpan alamat (address) lokasi dari main memory yang berisi instruksi

Disebut juga control counter atau instruction counter yaitu register yang digunakan untuk menyimpan alamat (address) lokasi dari main memory yang berisi instruksi yang

register yang digunakan untuk menyimpan alamat address lokasi dari main memory yang berisi instruksi yang sedang di proses - Register yang berhubungan dengan data yang sedang di proses