Kamis, 16 Mei 2013

SEGMENTASI & KONSEP SEGMENTASI

 SEGMENTASI
Segmentasi adalah skema manajemen memory yang memungkinkan user untuk melihat memori tersebut. Kerugian utama dari paging adalah terdapat perbedaan antara pandangan user mengenai memori dan memori fisik aktual.

KONSEP DASAR SEGMENTASI
Konsep dasar segmentasi adalah user programmer tidak memikirkan sejumlah rutin program yang di petakan ke main memori sebagai aray linier dalam byte,tetapi memori dilihat sebagai kumpulan segmen dengan ukuran berbeda beda,tidak perlu berurutan di antara segmen tersebut.
Ruang alamat logika adalah kumpulan segmen.Setiap segmen mempunyai nama dan panjang. Spefikasi alamat berupa nama segmen dan offset.Segmen di beri nomor dan di sebut dengan nomor segmen (bukan nama segmen) atau segmen number. Segmen dibentuk secara otomatis oleh compiyer.Sebuah program adalah sekumpulan segmen.
 Suatu segmen adalah unit logika seperti programutama ,prosedur ,fungsi, metode, obyek, variabel lokal,variabel global,blok umum,stack,tabel simbol, aray dab lain lain.
Pandangan user terdapat sistem segmentasi dapat dilihat pada gambar di bawah ini


ARSITEKTUR SEGMENTASI
Alamat logika terdiri atas dua bagian yaitu  nomor segmen (s) dan offset (d) yang di tulis dengan <nomor segmen,offset>. 
Pemetaan  alamat logika ke alamat fisik mengunakan tabel segmen (segment table),terdiri atas :               
 •Segmen basis (base) berisi alamat fisik awal
•Segmen limit merupakan panjang segmen

Seperti tabel page ,tabel segmen dapat berupa register atau memori berkecepatan  tinggi.Pada program yang berisi sejumlah segmen yang besar,maka harus menyimpan table page dimemori.
•Segment-table base register (STBR) digunakan untuk menyimpan alamat yang menunjuk ke  segment table.
•Segmen-table base lenght register (STLR) digunakan untuk menyimpan nilai jumlah segmen yang di  gunakan untuk segmen yang digunakan program.
•Untuk alamat logika (s, d),pertama di periksa apakah segment number s legal (s < STLR),kemudian tambahan segment number ke STBR ,alamat hasil (STBR+s) ke memori dari segment table.
Pemetaan dari lamat logika ke alamat fisik membutuhkan 2 acuan memori untuk setiap alamat logika.Hal ini akan menurunkan kecepatan sistem dengan faktor 2.Solusi standar yang digunakan adalah dengan cache (atau associative register) untuk menyimpan entri tabel segmen yang sering digunakan. Pemetaan  alamat  logika ke alamat fisik dengan mengunakan tabel segmen. dapat di lihat gambar 9.26. Misalkan alamat logika dengan nomor segment 0 offset 88 akan dipetakan ke alamat fisik 1400 + 88 = 1488 karena offset < limit (88-1000). Alamat logika dengan nomor segment 1 offset 412  akan terjadi error karena offset > limit (412 > 400).Alamat logika dengan nomor segment 2 offset 320 akan dipetakan ke alamat fisik 4300 + 320 = 4620 karena offset < limit (320 < 400)
     Gambar 1 segmentasi  hardware

 gambar 2 Contoh   segmentasi

PROTEKSI DAN SHARING
Proteksi bit dapat diletakan pada tablel segmen. Segmen intruksi dapat diproteksi sebagai segmen read only atau execute only.Segmen data dapat diproteksi sebagai segmen read write .Pemetaan pada perangkat keras memory akan memeriksa bit proteksi untuk mencegah akses yang ilegal. Dengan segmentasi ,juga dimungkinkan membagi kode atay data dengan proses lain. Segmen digunakan bersama sama bila entry pada tabel segmen dari dua proses berbeda menunjukan ke lokasi fisk yang sama seperti gambar di bawah ini:
Gambar 3 sharing segmentasi

PAGING
Konsep Dasar Paging

Paging merupakan kemungkinan solusi untuk permasalahan fragmentasi eksternal dimana ruang alamat logika tidak berurutan, mengijinkan sebuah prosesdialokasikan pada memori fisik yang terakhir tersedia. Memori  fisik  dibagi ke dalam blok-blok ukuran tetap yang disebut frame. Memori  logika juga dibagi ke dalam blok-blok dengan ukuran yang sama yang disebut page. Semua daftar frame yang bebas disimpan. Untuk menjalankan program dengan ukuran n page, perlu menemukan n frame bebas dan meletakkan program pada frame tersebut. Tabel page (page table) digunakan untuk menterjemahkan alamat logika ke alamat fisik.
Setiap alamat dibangkitkan oleh CPU dengan membagi ke dalam 2 bagianyaitu :

•Page number(p) digunakan sebagai indeks ke dalam table page(page table).Page table berisi alamat basis dari setiap page pada memori fisik.
•Page offset (d) mengkombinasikan alamat basis dengan page offset untuk mendefinisikan alamat memori fisik yang dikirim ke unit memori.Arsitektur dari sistem paging dapat dilihat pada:

Gambar 4 arsitektur sistem paging

.Ukuran page(juga frame) didefinisikan oleh perangkat keras. Ukuran page merupakan bilangan 2 pangkat k , mulai 512 (29) s/d 8192 (213) tergantung arsitektur computer. Bila ukuran ruang alamat logika 2m dan ukuran satu page adalah 2n addressunit (byte/word) maka (m-n) bit orde tinggi dari alamat logika menunjukkan nomor page ( page number ) dan n bit orde rendah menunjukkan page offset. Model paging dapat di lihat di bawah  ini:


Proses pemetaan dari alamat logika ke alamat fisik yang menggunakan ukuran page 4 byte dan memori fisik 32 byte (8 page) dapat di lihat pada Gambar 7-13. Sebagai contoh alamat logika 2 berada pada page 0 akan di petakan ke frame 5, sehingga alamat fisiknya adalah (5 X4) + 2 = 22. Alamat logika 4 berada pada page 1 akan di petakanke frame 6, sehingga alamat fisiknya adalah (6 X 4) + 0 = 24. Alamat logika 9 berada pada page 3 akan di petakanke frame 1, sehingga alamat fisiknya adalah (1 X 4) + 1 = 5. Alamat logika 15 berada pada page 4 akan dipetakan ke frame 2, sehingga alamatfisiknya adalah (2 X 4) + 3 = 11.
 gambar pemetaan alamat logika ke alamat fisik.

Pada skema paging, tidak terjadi fragmentasi eksternal, karena “sembarang”  frame dapat dialokasikan ke proses yang memerlukannya. Tetapi beberapa fragmentasi internal masih mungkin terjadi. Hal ini dikarenakan frame dialokasikan sebagai unit dan jika kebutuhan memori dari proses tidak menemukan page, maka frame terakhir mungkin tidak dialokasikan penuh. Bila suatu proses datang untuk dieksekusi,maka ukurannya diekspresikan dengan page. Setiap page membutuhkan satu frame. Bila proses membutuhkan n page, maka proses tersebut juga membutuhkan n frame.  Jika tersedian frame, maka memori dialokasikan  untuk proses tersebut. Alokasi page pada frame bebas dapat dilihat pada Gambar alokasi frame (a) sebelum alokasi (b) setealah aksi. 

Pada paging, user memandang memori sebagai bagian terpisah dari memori fisik aktual. Program user memandang memori sebagai satu ruang berurutan yang hanya berisi program user tersebut. Faktanya, program user terpecah pada memori fisik,yang juga terdapat program lain. Karena sistem operasi mengatur memori fisik, perludiwaspadai lokasi detail dari memori fisik, yaitu frame mana yang dialokasikan, frame mana yang tersedia, berapa jumlah frame dan lain-lain. Informasi tersebut disimpan sebagai struktur data yang disebut “ frame table”.


 Implementasi Sistem Paging

Setiap sistem operasi mempunyai metode sendiri untuk menyimpan tabel page. Beberapa sistem operasi mengalokasikan sebuah tabel page untuk setiap proses. Pointer ke tabel page
disimpan dengan nilai register lainnya dari PCB.Pada dasarnya terdapat 3 metode yang berbeda untuk implementasi tabel page:

1.    Tabel page di implementasikan sebagai kumpulan dari “dedicated ” register. Register berupa rangkaian logika berkecepatan sangat tinggi untuk efisiensi translasi alamat paging. Contoh : DEC PDP-11. Alamat terdiri dari 16 bit dan ukuran page 8K. Sehingga tabel page berisi 8 entri yang di simpan pada register.  Penggunaan register memenuhi jika tabel page kecil (tidak lebih dari 256 entry).
2.    Tabel page disimpan pada main memori dan menggunakan page table base register”(PTBR) untuk menunjuk ke tabel page yang disimpan di main memori. Penggunakan memori untuk mengimplementasikan tabel page akan memungkinkan tabel page sangat besar (sekitar 1 juta entry). Perubahan tabel page hanya mengubah PTBR dan menurunkan waktu context-switch. Akan tetapi penggunaan metode ini memperlambat akses memori dengan faktor 2. Hal ini dikarenakan untuk mengakses memori perlu dua langkah : pertama untuk lokasi tabel page dan kedua untuk lokasi alamat fisik yang diperlukan
3.    Menggunakan perangkat keras cache yang khusus, kecil dan cepat yang disebut    associative register Atau translation look-aside buffers (TLBs).Merupakan solusi standar untuk permasalahan penggunaan memori untuk implementasi tabel page. Sekumpulan associative register berupa memori kecepatan tinggi. Setiap register terdiri dari 2 bagian yaitu key dan value. Jika associative register memberikan item, akan dibandingkan dengan semua key secara simultan. Jika item ditemukan nilaiyang berhubungan diberikan. Model ini menawarkan pencarian cepat tetapiperangkat keras masih mahal. Jumlah entry pada TLB bervariasi antara 8 s/d 2048.Mekanisme penggunaan associative register adalah sebagaiberikut :
    Associative register berisi hanya beberapa entry tabel page (sampai  dengan     ukuranmaksimum).
    Jika memori logika dibangkitkan oleh CPU, nomor page berupa sekumpulan associative register yang berisi nomor page dan nomor frame yang berkorespondensi.
    Jika nomor page ditemukan pada associative register,nomor frame segera tersediadan digunakan untuk mengakses memori.
    Sebaliknya, jika nomor page tidak ditemukan pada associative register,acuanmemori ke tabel page harus dibuat.
    Jika nomor frame tersedia, maka dapat menggunakannya untuk mengakses kememori yang tepat.
    Kemudian ditambahkan nomor page dan nomor frame ke associative register sehingga akan mudah ditemukan pada acuan berikutnya.
     Setiap kali tabel page baru dipilih, TLB harus dihapus untuk menjamin eksekusiproses berikutnya tidak menggunakan informasi translasi yang salah.
Gambar perangkat keras

 Persentasi waktu sebuah page number ditemukan pada associative register disebut hit ratio. Hit ratio 80% berarti penemuan page number yang tepat pada associative register  adalah 80% dari waktu. Misalnya, untuk mencari entry di associative register memerlukan waktu 20 ns dan untuk mengakses memori memerlukan waktu 100 ns sehingga untuk memetakan ke memori memerlukan waktu 120ns. Apabila tidak menemukan page number pada associative register (20 ns), maka harus lebih dahulu mengakses tabel page di memori (100 ns) dan kemudian akses kelokasi memori yang tepat (100 ns). Maka effective access time(EAT) menjadi 0.8 X 120 + 0.2 X 220 = 140 ns Artinya terjadi 40% penurunan kecepatan waktu akses memori.Hit ratio berhubungan dengan jumlah associative register. Apabila jumlah associative register antara 16 s/d 512, maka hit ratio yang dapat dicapai antara 80%sampai 98%. Prosessor Motorola 68030 yang digunakan pada sistem Apple Mac mempunyai TLB 22 entry. CPU Intel 80486 mempunyai 32 register dan hit ratio 98%.
Proteksi
Pada model page, proteksi memori menggunakan bit proteksi yangdiasosiasikan untuk setiap
frame. Biasanya bit proteksi disimpan pada tabel page Satubit mendifinisikan satu page untuk“read and write‘’ atau “read-only”. Setiap acuan kememori melalui tabel page untuk menemukan nomor frame yang benar. Level proteksiyang lebih baik dapat dicapai dengan menambah jumlah bit yang digunakan.
Pada tabel page diberi tambahan “valid-invalid” bit seperti pada Gambar . Nilai “ valid ” mengindikasikan bahwa page berada pada ruang alamat logika yang berarti merupakan page yang legal (valid ).  Nilai  “invalid” mengindikasikan bahwa page tidak berada
pada ruang alamat logika atau page yang illegal (invalid).
Sistem operasi mengeset bit ini untuk setiap page untuk mengijinkan atau tidak mengakses page.








Multilevel Paging

Model multilevel paging digunakan pada sistem yang mempunyai ruang alamatlogika yang sangat besar yaitu antara 232s/d 264. Pada sistem ini, tabel page Akan menjadi sangat besar. Misalnya untuk sistem dengan ruang alamat logika 32 bit danukuran page 4K byte, maka tabel page berisi 1 juta entry (232/ 212). Solusinya yaitudengan melakukan partisi tabel ke beberapa beberapa bagian yang lebih kecil.Untuk sistem dengan ruang alamat logika 32 bit dapat dipecahkan menggunakan skema two level paging. Pada skema ini alamat logika dibagi menjadi 20 bit untuk nomor page dan 12 bit untuk page offset.
Karena tabel page juga merupakan page maka nomor page lebih jauh akan dipecah menjadi 10 bit untuk nomor page dan 10 bit untuk page offset
. Maka alamat logika adalah sebagai berikut:

                           Page  number                   page offser


                            10              10                     12

Dimana pi adalah indeks ke table page luar dan 2 adalah displacement dalam page pada table page luar. Skema tabel page pada two level paging dapat dilihat pada Gambar 7-17.
Sedangkan arsitektur translasi alamat pada two level paging untuk mesin 32 bitdapat dilihat pada Gambar 7-18.Untuk sistem dengan ruang alamat logika 64 bit tidak dapat menggunakanskema two-level paging. Solusi yang digunakan adalah dengan membagi tabel  page luar ke dalam bagian yang lebih kecil : menggunakan skema three-level
Atau four-level paging. Multilevel paging dapat berakibat pada performansi sistem. Untuk skema three-level paging, jika kita menggunakan memori untuk menyimpan tabel, maka akan
membutuhkan 4 kali akses memori. Tetapi jika menggunakan cache dengan hit ratio 98%, effective access time menjadi 0.98 X 120 + 0.02 X 420.

Gambar skema translasi alamat pada two level paging





Gambar skema tabel page pad two level paging

Shared Page
Pada skema paging, dimungkinkan untuk sharing kode umum seperti pada Gambar di bawah ini. Bentuk ini penting terutama pada lingkungan time sharing.
Satu copy kode read-only dibagi ke beberapa proses (misalnya editor teks, compiler dan sistem window). Kode yang dibagi harus berada pada lokasi ruang alamat logika yang sama untuk semua proses.

Kode dan data pribadi (private) untuk setiap proses diletakkan terpisah darikode dan data pribadi proses lain. Page untuk kode dan data pribadi dapat diletakkan disembarang tempat pada ruang alamat logika.
Gambar shared page



KOMBINASI SEGMENTASI DENGAN PAGING
Kombinasi  ini diilustrasikan menggunakan 2 arsitektur berbeda:
•MULTICS
• Intel 386(OS\2)
MULTICS
Pada sistem ini MULTICS,alamat logika di bentuk dari nomor segmen  18 bit dan offset 16 bit. Dengan ukuran segmen 64K word,setiap segmen terdiri atas 36 bit,Rata rata ukuran segmen dapat lebih besar dan fragmentasinya eksternal  menjadi permasalahan karena membutuhkan banyak ruang  memori. Tetapi jika fragmentasi eksternal tidak menjadi permasalahan,waktu pencarian untuk mengakolisasi segmen dapat membutuhkan waktu yang lama.
Solusi yang diadopsi pada MULTICS adalah dengan melakukan paging pada segmen (page the segment). Paging menghilangkan fragmentasi eksternal di mana frame kosong dapat digunakan untuk page yang tepat. Setiap page terdiri atas 1K word. Segment offet (16 bit) ke dalam nomor page 6 bit dan page offet 10 bit. Nomor page mengindeks ke tabel page untuk memberikan nomor frame.Nomor frame di kombinasikan dengan page offet menunjukan ke alamat fisik.Skema translasi alamat logika ke alamat fisik pada MULTICS dapat di lihat pada gambar di bawah ini

Gambar ; Skema translasi alamat pada MULTICS
Nomor segmen (18 bit ) dibagi ke dalam 8 bit nomor page dan 10 bit page offset,sehingga tabel page terdiri atas 28 entry sehingga alamat logika pada MULTICS  adalah sebagai berikut:

                                  8                        10                              6                              10
Dimana s1 adalah indeks ke tabel page dari tabel segmen dan s2 adalah displacemtent dalam page dari tabel segmen. D1 adalah displacement ke alamat tabel page dari segmen yang tepatt dan d2 adalah displacement ke alamat yang diakses.

Intel 386(OS\2)
IBM OS/2 versi 32 bit adalah sistem operasi yang mengunakan arsitektur 30386 (dan 30486).Intel 30386 mengunakan segmentasi dengan paging untuk menyimpan manajemen memori.Maksimumn jumlah segmenn perproses adalah 16K. Setiap segmen maksimal berukuran 4gigabytes. Ukuran page adalah 4K byte. Ruang alamat logika dari suatu proses dibagi kedalam 2 partisi:
•Partisi 1 terdiri atas 8K segmen yang pribadi (private) untuk proses tersebut.
•Partisi 2 terdiri atas 8K segmen yang digunakan bersama untuk semua proses
Informasi mengenai partisi pertama disimpan dalam local descripsi table (LDT),sedangkan informasi detail tentang segmen  tertentu termasuk lokasi basis dan panjang segmen. Alamat logika adalah pasangan (selector,offset),di mana selector sebanyak 16 bit.


                      13                                             1                     2
Dengan s menyatakan nomor segmen, g menyatakan apakah segmen merupakan GDT atau LDT ,dan p menyatakan proteksi.Gambar skema translasi alamat pada intel 30386

Karena setiap segmen adalah page dengan ukuran 4KB per page,sebuah page table terdiri atas 1 juta entri. Dan karena setiap entri terdiri atas 4 byte, Setiap proses memerlukan 4MB ruang alamat fisik untuk tabel page saja.Solusi yang digunakan mengunakan skema two-level paging. Alamat linier dibagi kedalam nomor page 20 bit, dan sebuah page offset 12 bit. Nomor page dibagi kedalam 10 bit page directory pointer dan 10 bit page table pointer.Translasi alamat logika ke alamat fisik pada intel 30386 dapat dilihat pada gambar 9.30.
Menurut Andrew S Tanenbaum, perbandingan antara teknik paging dan segementasi adalah sebagai berikut: TABEL 9.3 Teknik Paging vs Segmentasi
Hal yg dipertimbangan    paging    Segmentasi
Perlukah pemrograman menyadari bahwa teknik ini dipakai?    Tidak
    Ya
Berapa banyak ruang alamat linier yg terdapat?    Cuma 1    Banyak
Dapatkah total ruang alamat melampaui ukuran memori fisik    Ya    Ya
Dapatkah prosedur dan data dibedakan dan diproteksikan secara terpisah    Tidak    Ya
Dapatkah tabel-tabel yang mempunyai fluktuasi ukuran diakomodasikan dengan mudah    Tidak    Ya
Apakah pemakaian bersama prosedur prosedur antara user difasilitasi?    Tidak    Ya
Kenapa teknik ini ditemukan    Untuk mendapatkan alamat linier besar tanpa harus membeli banyak memori fisik    Untuk memungkinkan program program dan data dipecah menjadi ruang ruang alamat yang secara logik indenpenden dan membantu pamakaian bersama proteksi


Tidak ada komentar:

Posting Komentar