SISTIM OPERASI (Operating System) IKI-20230 Memory Management by zzzzzzzzs26

VIEWS: 219 PAGES: 17

									                        SISTIM OPERASI
                      (Operating System)
                               IKI-20230
                       Memory: Part – 2
                       Ch. 8

                       Johny Moningka
                       (moningka@cs.ui.ac.id)

                                  Fakultas Ilmu Komputer
                                    Universitas Indonesia
                                    Semester 2000/2001




 Memory Management
 Latar Belakang
 Address space: lojik vs fisik
 Swapping
 Contiguous Allocation
 Paging
 Segmentation
 Segmentation dengan Paging




OS/ JM -2001/v1.1/2




                                                            1
 Review: load-time binding

n   Link => beri daftar referensi untuk alamat absolut
n   Saat load => dimana proses berada di memori dan ubah
    alamat tersebut sesuai dengan lokasi.
                                             OS
static a.out
           0x3000                                          0x6000
                                         a.out’
                                        jump 0x5000
jump 0x2000
                                                          0x4000
                      0x1000



OS/ JM -2001/v1.1/3




 Excecution:base + limit register

n   Gunakan bantuan h/w: setiap load dan store ke memori.
     n   relocation: physical addr = virtual addr + base register
     n   protection: check that address falls in [base, base+limit)

                                             OS
     a.out
                      0x3000                               0x6000
                                         a.out
                                        jump 0x2000
jump 0x2000
                                                          0x4000
                      0x1000
      When process runs, base register = 0x3000, limit register = 0x6000.
      Jump addr = 0x2000 + 0x4000 = 0x5000

OS/ JM -2001/v1.1/4




                                                                            2
 Some terminology
n    Definitions:
     n       Alamat program: logical atau virtual addresses (LA)
     n       Alamat sesungguhnya: physical addresses (PA)
n    Translation (or relocation) mechanism: MMU

                                                           Physical
                         logical addrs                     addrs
                                                                       memory
                CPU                          MMU

     n       Dynamic relocation:
             Setiap instruksi mesin (CPU) dalam bentuk: virtual address
             => diterjemahkan ke physical address MMU (memory management unit)
     n       Setiap proses: mempunyai view (akses dan alokasi) memori fisik yang unik,
             dikenal address spaces.
OS/ JM -2001/v1.1/5




 Allocation: contiguous
 n    Memori utama biasanya terbagi dalam dua bagian:
         n    Bagian rutin/dukungan untuk OS (berada terus di memori =>
              resident): biasanya disimpan dalam memori beralamat rendah
              (low memory)
                • Termasuk alamat (list) untuk interrupt vector.
                • Hardware driver atau interface
         n    Bagian proses user (contiguous allocation):
                • Alokasikan dengan besaran tetap (setiap proses => max. besarnya
                  program).

 n    Issue: proteksi untuk setiap area => sederhana
         n    Termudah: dilakukan partisi (fixed allocation) => kurang flexible,
              alokasi tidak optimal.


OS/ JM -2001/v1.1/6




                                                                                         3
 Hardware support


                Range address?            Base address?
                            Register         Register
                             Limit           relokasi

                       Address                          Addres
                         lojik                           fisik    Memori
             CPU                 <               +               (Physical)




                      Trap: “Addressing error”


OS/ JM -2001/v1.1/7




 Example:
 n    Misal:
       n   Register relokasi (base register) = 100.040
           Register limit (limit register) = 300.000
       n   Address lojik = 10.200 (dari CPU)
           Address fisik = 110.240 (akses ke physical memory)
       n   address lojik = 810.000
           address fisik= error




OS/ JM -2001/v1.1/8




                                                                              4
 Multiple-Partition Allocation
 n    Partisi Fixed-Sized (MFT)
       n   Memori dibagi menjadi beberapa blok dengan ukuran
           tertentu yang seragam
       n   Jumlah proses yang bisa running max hanya sejumlah
           blok yang disediakan(misal IBM OS/360)
 n    Partisi Variabel-Size (MVT)
       n   Pembagian memori sesuai dengan request dari
           proses-proses yang ada.
             • Lebih rumit karena ukuran alokasi (partisi) memori dapat
               bervariasi
       n   Peranan memori manajemen semakin penting: list dari
           partisi yang digunakan, free dll.

OS/ JM -2001/v1.1/9




 Example: multiple allocation


                OS         OS          OS          OS          OS

                P1         P1          P1         Free         P5
                                                              Free

                                       P4          P4          P4
                P2        Free
                                      Free        Free        Free
                P3         P3          P3          P3          P3
               Free       Free        Free        Free        Free
                       P2 selesai   P4 masuk P1 selesai    P5 masuk




OS/ JM -2001/v1.1/10




                                                                          5
 Fragmentasi (issue)
 n    External (masalah variable sized partition):
       n   Ruang memori free, namun tidak contiguous.
       n   Hole-hole ada di antara proses-proses berturutan.
       n   Tidak dapat digunakan karena proses terlalu besar
           untuk menggunakannya.
 n    Internal (masalah fixed size):
       n   Sifat program dinamis (alokasi dan dealokasi).
       n   Memori yang teralokasi mungkin lebih besar dari
           memori yang diminta (wasted).


OS/ JM -2001/v1.1/11




 Paging
 n    Membagi memori fisik ke dalam blok (page,
      frame) dengan ukuran tertentu (fixed) yang
      seragam.
       n   Memudahkan manajemen free memory (hole) yang
           dapat bervariasi.
       n   Tidak perlu menggabungkan hole menjadi blok yang
           besar seperti pada variable partition (compaction).
       n   OS lebih sederhana dalam mengontrol (proteksi dan
           kebijakan) pemakaian memori untuk satu proses.
 n    Standard ukuran blok memori fisik yang
      dialokasikan (de-alokasi) untuk setiap proses.
       n   Ukuranya (tergantung OS): 512 byte s/d 16 KB.

OS/ JM -2001/v1.1/12




                                                                 6
 Page Allocation
 n    Alokasi:
       n   Terdapat “free list” yang menyimpan informasi “frame”
           di memori fisik yang tidak digunakan
       n   Tergantung besarnya proses => memerlukan n pages
       n   Alokasi frame diberikan sesuai dengan permintaan
           (demand, expand).
 n    Implikasi:
       n   User’s (program) view (logical address): memori
           dialokasikan secara sinambung (contiguous)
       n   Fakta (physical address): memori fisik tersebar (non-
           contiguous) sesuai dengan frame yang dialokasikan.

OS/ JM -2001/v1.1/13




 Paging Scheme
 n    Bagaimana menjembatani antara “user’s view”
      dan alokasi memori sebenarnya?
       n   Penerjemahan (translasi) alamat logical ke alamat fisik
           => tugas dari OS (user/program “transparant”).
       n   Perlu dukungan hardware (CPU) => address
           translation.
 n    Setiap proses mempunyai informasi “pages”
      yang dialokasikan oleh OS
       n   Mapping setiap alamat logical ke alamat fisik
       n   Issue: mekanisme mudah, cepat dan efisien.
       n   Page table: berisi “base address” (alamat fisik) dari
           frame yang telah dialokasikan ke proses tsb.
OS/ JM -2001/v1.1/14




                                                                     7
 Page table
 n    Setiap OS mempunyai cara menyimpan page
      table untuks setiap proses
 n    Page table bagian dari setiap proses.
       n   Page table berada di memori, saat proses tersebut
           dieksekusi.
       n   Informasi page table disimpan oleh PCB: pointer ke
           page table dari proses tersebut.
       n   Setiap kali terjadi context switch => informasi page
           table untuk proses yang baru harus di restore
           (misalkan referensi/pointer lokasi page table tsb. di
           memori).

OS/ JM -2001/v1.1/15




 Page table (h/w support)
 n    Menggunakan “fast register”
       n   Contoh: DEC PDP11 : 16 bit address (logical 216 ): 64K, page size
           8K (213 ).
       n   Memerlukan page table dengan: 8 entry (dapat diterapkan pada
           hardware register, hanya 3 bit)
 n    Untuk komputer modern sulit menggunakan fast register
       n   Pentium : 32 bit address logical (total: 4 GB), page size (8K),
           maka mempunyai potensi entry: 524.288 entry.
       n   Page table disimpan pada memori (bagian program) dengan
           menggunakan page table base register
             • Page-table base register (PTBR) : pointer ke page-table di memori.
             • Page-table length register (PTLR) : besarnya ukuran page table
               (karena tidak semua proses memerlukan ukuran page tabel max.)



OS/ JM -2001/v1.1/16




                                                                                    8
 Paging: translation
 •    Address logik dari CPU dianggap terdiri atas dua
      bagian:
       •   Page number (p): merupakan indeks dalam tabel yang
           berisi base address dari tiap page dalam memori fisik
       •   Page offset (d): menunjukkan lokasi address memori
           berdasarkan “base address” pada page tersebut.

                          Page number Page offset
                                 p           d
                                m-n          n




OS/ JM -2001/v1.1/17




 Address: hardware support




                       Adress                               Adress
                        lojik                                fisik
            CPU           p     d                  f    d


                         Index: p
                                                                     Memori
                                      f
                                                 Base address:        fisik
                                                 frame f

                                Page Table

OS/ JM -2001/v1.1/18




                                                                              9
 Paging Example




                                                    physical
                                                    address
            logical address    allocate
                               dynamically




OS/ JM -2001/v1.1/19




 Model Paging
                                              0

                                              1   Page 0
            Page 0
                                              2
                                 0   1
            Page 1               1   4
                                              3   Page 2
                                 2   3
            Page 2               3   7
                                              4   Page 1
            Page 3               Page table
                                              5

        Memori lojik                          6            Memori
               Address (p, d) dipetakan ke
                                              7   Page 3   fisik
                    table index (p)
                      + d (offset)
OS/ JM -2001/v1.1/20




                                                                    10
 Example:
 n    Misalkan LA: 4 bits (max. logical addres: 16
      lokasi)
 n    Page size => 4 bytes (ditentukan oleh designer
      OS).
       n   2 bits: menunjuk ke alamat dari masing-masing byte
           dalam setiap page tersebut.
 n    Page table: tersisa 2 bits
       n   Max. 4 entry
       n   Jadi setiap proses max. akan menggunakan 4 pages
           => mencakup seluruh alamat logical.

OS/ JM -2001/v1.1/21




 Example: simple (2)
                                                  0
                                                  1       Frame 0
            0   a                                 2
            1   b                                 3
            2   c                                 4   i
            3   d                                 5   j   Frame 1
            4   e                                 6   k
            5   f                                 7   l
            6   g                                 8   m
            7   h             0   4               9   n   Frame 2
            8   i                                10   o
            9   j             1   5              11   p
           10   k             2   1              12
           11   l                                13       dst.
           12   m             3   2              14
           13   n                                15
           14   o             Page table         16   a
           15   p                                17   b
                                                 18   c
        Memori lojik                             19   d
                                                 20   e    Memori
                                                 21   f
                                                 22   g    fisik
                                                 23   h
                                                 24
                                                 25
                                                 26
OS/ JM -2001/v1.1/22                             27




                                                                    11
 Example: simple (3)
 n    Logical address: 11 10 (program view: 14
      desimal => “o”)
 n    Page translation (physical memory allocation):
       n   Bagian: p (index page) => base address
           dari frame.
           Binary 11 => 3 (index = 3 dari page table)
           => berisi base address untuk frame 2 di memori.
       n   Bagian offset: d (displacement)
           Binary 10 => 2

       n   Alamat fisik:
           base address frame 2 : 2 * 4 => 8;
           => 8 + 2 = 10 (berisi “o”).
OS/ JM -2001/v1.1/23




 Frame table
 n    OS harus mempunyai informasi “frame” dari
      memori fisik:
       n   Berapa banyak frame yang bebas?
       n   Mana saja frame yang bebas (identifikasi) => frame
           table (list)
       n   Informasi hubungan antara satu frame dengan page
           mana dari proses yang aktif
       n   List ini akan terus di-update, misalkan jika proses
           terminate maka semua frame yang dialokasikan akan
           di kembalikan ke free list.



OS/ JM -2001/v1.1/24




                                                                 12
 Page size
 n    Fragmentasi internal pada page terakhir
       n   Tidak ada fragmentasi eksternal
       n   Fragmentasi internal bisa terjadi
       n   Worst-case:
             • Untuk proses yang memerlukan n page + 1 byte
             • bila ukuran page = 4096 byte maka akan terbuang 4095 byte /
               process
 n    Besarnya ukuran pages
       n   Independent dari program/proses (system wide)
       n   Intuitif: small pages preferable
             • Apakah keuntungan ukuran pages kecil?
       n   Page table entry dapat dikurangi dengan memperbesar ukuan
           pages
             • Apakah keuntungan ukuran pages besar?
       n   Umumnya page disesuaikan dengan kapasitas memori (tipikal)
           pada sistim (range: 2 – 8 Kbytes)
OS/ JM -2001/v1.1/25




 Multilevel Paging
 n    Address logical besar => page table menjadi
      besar.
       n   Misalkan: LA => 32 bits, dan ukuran page frame: 12
           bits, maka page table: 20 bits (2^20 => 1 MB).
       n   Page table dapat dipisah dalam bentuk pages juga,
           sehingga tidak semua page table harus berada di
           memori.
 n    Address lojik terdiri atas: section number s, page number
      p, offset d
       n   s indeks ke dalam outer page table dan p displacement dalam
           page table
                           Section number Page number Page offset
                                   s             p            d
OS/ JM -2001/v1.1/26




                                                                             13
 Two level page table
                                                Page 0
                            1                   Page 1
                            .
                            .                      .
                            .                      .
                                                   .
                           500                 Page 100
                            .
                            .                      .
                            .                      .
                                                   .
                           100                 Page 500
                            .
                            .                      .
              .
              .             .                      .
                                                   .
              .
                           929                 Page 708
                            .
                            .                      .
                            .                      .
                                                   .
        Outer-page
                           708                 Page 900
          table             .
                            .
                            .                      .
                                                   .
                                                   .
                           900                 Page 929
                                                   .
                                                   .
                        Page table                 .
                                             Memori fisik

OS/ JM -2001/v1.1/27




 Translation: multilevel



                       pages of page table




OS/ JM -2001/v1.1/28




                                                            14
 Segmentation
 n Bagaimana   supaya programmer dapat
    mengontrol/view memori? (pemetaan program)
       n   A program is a collection of segments.
           A segment is a logical unit such as:
                           main program,
                           procedure,
                           function,
                           local variables, global variables,
                           common block,
                           stack,

       n   Idea: proses dapat dibagi penyimpanan ke memori sesuai
           dengan programmer view => proteksi, sharing,


OS/ JM -2001/v1.1/29




 Logical View of Segmentation
 Note: besarnya segment bervariasi
                                                                1

                                                                4
                           1


                                       2

                                          shared
                       3                                        2
                                      4
  text/instruction
                                  data                          3
                                                                3




                       user space                    physical memory space



OS/ JM -2001/v1.1/30




                                                                             15
 Segment Table
 n    Big-idea: setiap proses dapat mempunyai lebih
      dari satu base dan limit register =>
       n   Masing-masing menunjuk ke memori dari segment
           yang diberikan.
       n   Disimpan pada segment table (kumpulan segment dari
           sebuah proses).
 n    Dimana segment table berada?
       n   Di memori (sama seperti page table).
       n   Segment-table base register (STBR): pointer ke lokasi
           segment table di memori.
       n   Segment-table length register (STLR): besarnya
           jumlah segment yang digunakan oleh program.
       n   Keduanya bagian dari PCB.
OS/ JM -2001/v1.1/31




 Segmentation Architecture
 n    Logical address consists of a two tuple:
      <segment-number, offset>,
       n   Harus diset oleh programmer atau compiler untuk
           menyatakan berapa besar segment tersebut
       n   Implikasi: segment bervariasi besarnya (bandingkan
           dengan page table: fixed dan single/flat address space
           => hardware yang menentukan berapa size)
 n    Segment table – mapping dari LA ke PA
       n   base table – berisi lokasi awal dari physical address
           dimana segment berada di memori.
       n   limit table – berisi panjang (besar) dari segmen
           tersebut.
OS/ JM -2001/v1.1/32




                                                                    16
 Segmentation with Paging
 n    Intel 386
       n   Logical address (32 bits) dibagi atas 2:
             • Selector: Segment: S (13 bits), Descriptor Table (1 bit: Local
               or Global); Protection ( 2 bits)
             • Offset: 16 bits
       n   Melalui Descriptor table
             • Selector menentukan entry pada table, melihat protection, dan
               menguji limit (tabel berisi informasi limit)
             • Menghasilkan linear address: Base address segment + offset
       n   Logical Linear address: paging (besar page: 4 K), 2
           level (10 bits untuk direktori dan 10 bits untuk page
           number), offset: 12 bits.

OS/ JM -2001/v1.1/33




 Intel 30386 address translation




OS/ JM -2001/v1.1/34




                                                                                17

								
To top