Lesson 5 Manajemen Memori Sem I 2011

download Lesson 5 Manajemen Memori Sem I 2011

of 58

Transcript of Lesson 5 Manajemen Memori Sem I 2011

Manajemen MemoriLesson 5

1

Manajemen MemoriMembagi memori untuk mengakomodasi banyak proses Memori harus dimanage untuk memastikan suplai yang cukup bagi proses-proses yang sedang/siap dieksekusi

2

Permasalahan Manajemen Memori1. 2. 3. 4. 5. Relokasi Proteksi Sharing Organisasi Logik Organisasi Fisik

3

RelokasiUmumnya setiap programmer tidak akan tahu dimana programnya ditempatkan pada memori ketika dieksekusi Setiap program pasti mengandung memory references di dalamnya Ketika program dieksekusi, sangat mungkin ada program yang diswap dari memori ke disk lalu dikembalikan lagi ke 4 memori pada alamat yang berbeda

RelokasiSO harus dapat mentranslate/ mengkonversi memory-references yang ditemukan pada program ke dalam bentuk alamat fisik memori

5

ProteksiSetiap proses harus memiliki ruang memori yang terpisah denga proses yang lainnya Sebuah proses seharusnya tidak akan dapat merefer ke lokasi memori yang dipakai oleh proses lain tanpa izin. Proteksi akses ini dilakukan oleh HW6

ProteksiHW menyediakan dua register, yaitu base register dan limit register Base register menyimpan alamat fisik terkecil yang dilegalkan, sedangkan limit register menentukan ukuran dari jarak alamat tersebut Contoh:jika base register memegang 300040 dan limit register 120900, maka program bisa mengakses secara legal di semua alamat dari 300040 sampai 4209407

Proteksi

8

ProteksiFungsi proteksi?untuk mencegah user program dari kesengajaan memodifikasi kode/struktur data baik di sistem operasi atau user lainnya.

9

SharingMekanisme proteksi harus punya fleksibilitas yang memungkinkan beberapa proses mengakses bagian yang sama dari memori Jika ada beberapa proses yang mengeksekusi bagian program yang sama, maka akan lebih baik jika mereka mengakses bagian yang sama daripada masing2 proses mengalokasikan copy program tersebut pada ruang memorinya Pengendalian hak akses ini merupakan bagian dari manajemen memori10

Organisasi LogikMain memory tersusun atas ruang-ruang beralamat 1 dimensi, yang berisi rangkaian bytes. Sementara program umumnya dibuat dalam bentuk modul-modul Pengorganisasian struktur logika di dalam main memory agar dapat mensupport modul-modul program termasuk bagian dari manajemen memori Salah satu teknik yang dipakai adalah Segmentasi 11

Organisasi Logik MemoriKeuntungan pengorganisasian memori yang mensupport program module:1. Modul program dapat ditulis dan dicompile secara independen dengan modul yang lain 2. Dapat diterapkan proteksi bertingkat, misalnya: read-only, execute-only, dll 3. Dapat dibuat mekanisme sharing modul antar proses

12

Organisasi Fisik MemoriMemori komputer dibagi menjadi 2 level memori:Main Memory Secondary Memory

Main memory sangat mungkin tidak cukup untuk menyimpan semua program dan data yang sedang/siap dieksekusi, sehingga muncul konsep swapping Pengorganisasian arus informasi atau perpindahan informasi antara MM dengan SM merupakan bagian dari manajemen memori 13

Partisi MemoriPekerjaan mendasar dari manajemen memori adalah memastikan semua proses yang akan dieksekusi ada di main memory Hal tersebut melibatkan partisi memory Pada perkembangannya akan melibatkan Virtual Memory Beberapa jenis partisi memory:1. Fixed Partitioning 2. Dynamic Partitioning 3. Buddy System14

Fixed PartitioningMemori dipartisi ke dalam beberapa bagian dengan ukuran yang sudah ditentukan. Ada 2 macam:1. Equal-size partitions 2. Unequal-size partitions

15

Fixed Partitioning

16

Equal-size partitionsSetiap proses yang berukuran lebih kecil/sama dengan ukuran partisi dapat diload ke partisi mana pun. Jika seluruh partisi telah terisi penuh oleh proses yang sebagiannya berstate blocked/suspended, maka ketika ada proses baru berstate ready harus diload ke MM, prosesor akan melakukan swapping sebagian proses tersebut dengan proses yang belum diload ke main memory.17

Equal-size partitionsKekurangan:1. Proses yang akan diload bisa jadi berukuran lebih besar dari ukuran partisi, sehingga harus dilakukan overlaying program 2. Utilisasi memory sangat tidak efisien karena program sekecil apa pun akan dialokasikan ke satu partisi, sehingga ada space partisi yang tidak terpakai.

Adanya space internal partisi yang terbuang dikarenakan ukuran program/data lebih kecil dari ukuran partisi disebut internal fragmentation18

Unequal-size partitionsLebih fleksibel dari equal-size partitions, tapi tetap tidak efisien karena masih tetap menimbulkan hole di dalam partisi memori.

19

Dynamic PartitioningPartisi bervariasi, dilakukan berdasarkan kebutuhan program Memori dialokasikan tepat sesuai dengan yang dibutuhkan oleh program

20

21

Dynamic PartitioningAwalnya berjalan baik, tapi semakin lama akan terbentuk semakin banyak hole kecil pada memory yang menyebabkan utilisasi memory semakin menurun. Meningkatnya hole pada memory di luar partisi disebut external fragmentation Teknik untuk mengatasi external fragmentation adalah compaction.

22

CompactionSO melakukan shifting terus meneru terhadap proses2 yang sudah menempati main memory sehingga proses2 menjadi berderetan dan hole2 yang ada berkumpul menjadi satu block

23

CompactionSO menshift Proses 2, 3, dan 4 Proses2, 3, 4 menjadi berderetan Hole2 bergabung menjadi blok memori 16 M yang free

24

CompactionMasalah:1. Prosedurnya menghabiskan waktu khususnya waktu prosesor 2. Membutuhkan relokasi dinamik, agar proses/program dapat dipindahkan dari satu bagian memory ke bagian yang lain tanpa menyebabkan invalidasi referensi memeori pada program tersebut

Karena compaction sulit dilakukan, maka solusi yang lain adalah SO mengoptimalkan Placement Algorithm25

Placement AlgorithmAlgoritma untuk mengatur penempatan proses ketika diload ke main memory Tujuannya untuk meminimalisir hole dan menghindari compaction Ketika ada sebuah proses yang akan diload/diswap ke main memory dan ada beberapa blok memory yang free, maka SO harus dapat menentukan pada blok mana proses tersebut harus ditempatkan. 26

Placement Algorithm1. First-Fit Menscan memory dari awal, dan menempatkan proses pada blok memory berukuran sesuai/cukup yang pertama kali ditemukan

2. Best- Fit Memilih blok memory yang ukurannya paling mendekati ukuran yang dibutuhkan proses

3. Next-Fit Menscan memory mulai dari lokasi penempatan proses terakhir yang sebelumnya, dan menempatkan proses pada blok memory berikutnya yang sesuai27

ContohMisalkan terdapat memori yang telah berisi blok-blok proses (di slide berikutnya). Akan dilakukan alokasi untuk sebuah proses berukuran 16MB

28

29

Placement AlgorithmTercepat/terbaik : First-Fit Terburuk : Best-Fit Best-Fit menyebabkan compaction harus lebih sering dilakukan Next-Fit menyebabkan bagian akhir memory lebih cepat terfragmentasi menjadi hole2 kecil.30

Buddy SystemSalah satu cara partisi memory yang mengkompromikan antara fixedpartitioning dengan dynamic-partitioning Pada buddy system, blok memory yang dialokasikan untuk sebuah proses selalu memenuhi ukuran kelipatan pangkat 2 ( , 64 M, 128, 256, 512, ..)

31

Buddy SystemSebuah proses akan ditempatkan pada blok memory yang berukuran kelipatan pangkat 2 yang mendekati ukuran proses. Blok memory tersebut disebut buddy Misal:Proses berukuran 100 kB akan ditempatkan di blok berukuran 128 kB Proses berukuran 300 kB akan ditempatkan pada blok berukuran 512 kB.32

Buddy SystemMemory akan displit/dibagi 2 sampai diperoleh blok memory yang sesuai dengan ukuran proses yang akan dialokasikan Placement-Algorithm yang digunakan mengkombinasikan First-Fit dan Best-Fit

33

ContohMisalkan terdapat blok memori berukuran 1 MB yang belum terisi. Terdapat urutan request dan release memori sebagai berikut:1. 2. 3. 4. 5. 6. 7. Proses A, request 100 KB Proses B, request 240 KB Proses C, request 64 KB Proses D, request 256 KB Release B, A Proses E, request 75 KB Release C, E, D

34

Contoh Buddy System

35

Representasi Tree Buddy Sistem(setelah proses B direlease)

36

Buddy System

37

RelokasiPenempatan proses pada alamat memori yang berbeda dengan alamat sebelumnya Relokasi dapat terjadi ketika:1. Proses diswap lalu diload kembali, baik pada fixed partitioning atau pun pada dynamic partitioning 2. Proses dishift saat dilakukan compaction38

PengalamatanAlamat LogikaAlamat referensi yang mengacu pada lokasi tertentu pada main memory

Alamat RelatifAlamat lokasi relatif terhadap poin tertentu

Alamat FisikAlamat lokasi sebenarnya pada main memory

39

PagingFrame : blok memori pada main memory Page : blok data pada secondary memory yang berukuran fix Segment : blok data pada secondary memory yang berukuran tidak fix (bersifat variabel) Memory terbagi/terpartisi menjadi frame-frame Proses dapat terbagi menjadi beberapa blok data/instruksi atau dalam bentuk page-page40

Contoh PagingMisalkan ada Proses A, Proses B, dan Proses C yang masing-masing terdiri atas 4, 3, dan 4 pages. Sementara Main Memory terbagi menjadi 15 frames, yang setiap framenya diberi nomor mulai dari 0-14 Proses A, B, dan C diload ke Main Memory (1 page menempati 1 frame)41

Contoh Paging-Lanj.

42

Contoh Paging-Lanj.Jika kemudian Proses B di-suspend sehingga diswap keluar dari Main Memory, maka Main Memory menjadi:

43

Contoh Paging-Lanj.Jika proses yang diswap dengan Proses B adalah Proses D (5 pages), maka:

44

Contoh Paging-Lanj.Maka dapat dibuat Page Table sebagai berikut:

Nomor page mulai dari 045

PagingSetiap page memiliki ukuran (page size), diasumsikan kelipatan pangkat 2 Setiap instruksi/data pada proses/program memiliki alamat relatif dan alamat logika Alamat Relatif menunjukan lokasi instruksi relatif terhadap awal proses/program Alamat Logika diekspresikan dalam nomor page dan nomor offset46

Contoh PengalamatanMisalkan alamat dinyatakan dalam 16 bit, Ukuran page adalah 1 KB(1024 bytes), yang berarti ada 1024 nomor offset (1 lokasi offset 1 bytes) Berarti lokasi offset dinyatakan dalam 10 bit. Karena alamat dalam 16 bit, maka 6 bit menyatakan nomor page, 10 bit menyatakan nomor offset47

Contoh Pengalamatan-Lanj.Jika sebuah instruksi pada sebuah proses memiliki alamat relatif 1502, berarti:Lokasi instruksi adalah pada baris 1502 relatif dari baris awal proses Dalam bentuk bit, 1502 = 0000010111011110 Artinya lokasi instruksi adalah pada page nomor 1, nomor offset 478

48

49

Contoh Pengalamatan-Lanj.Alamat fisik dari instruksi tersebut diekspresikan dalam 16 bit juga, dengan format nomor frame (6 bit) dan nomor offset (10 bit) Nomor frame diperoleh dari Page Table proses tersebut Misalkan pada Page Table diketahui bahwa nomor frame untuk page 1 adalah nomor 6 (000110), maka alamt fisiknya adalah 0001100111011110 (al. relatif 0000010111011110) 50

51

SegmentasiSebuah program dapat dibagi menjadi beberapa segmen Antara satu segmen dengan segmen yang lain tidak berukuran sama, namun tetap ada ukuran maksimum segmen Alamat logika untuk sementasi terdiri atas 2 bagian, yaitu nomor segmen dan nomor offset52

Segmentasi-Lanj.Mirip dengan dynamic partitioning Bedanya adalah dengan segmentasi, sebuah program dapat menempati lebih dari satu bagian partisi pada memory yang tidak saling berurutan

53

Segmentasi-Lanj.Segment Process Table terdiri atas informasi ukuran segmen dan alamat awal (base) untuk setiap segmen Contoh:

54

Segmentasi-Lanj.Misalkan alamat dinyatakan dalam 16 bit, dan ukuran maksimum segmen adalah 4 KB Berarti alamat 16 bit tersebut akan terdiri atas 12 bit untuk nomor offset, dan 4 bit untuk nomor segmen.

55

Segmentasi-Lanj.Misalkan sebuah instruksi memiliki alamat logika 0001001011110000 Bagaimana menentukan alamat fisiknya?

56

Segmentasi-Lanj.Untuk menentukan alamat fisik:1. Ambil nomor segmen 2. Cek di segment process table, pastikan nomor offset < ukuran panjang segmen 3. Cek di segment process table, berapa alamat base segmen tersebut 4. Jumlahkan alamat base dengan nomor offset57

Segmentasi-Lanj.

58