You are on page 1of 7

Bab 1.

Konsep Dasar Memori


Daftar Isi
Pendahuluan
Proteksi Perangkat Keras
Address Binding
Ruang Alamat Logika dan Fisik
Pemuatan Dinamis
Linking Dinamis
Pustaka Bersama
Rangkuman
Rujukan

Pendahuluan
Memori merupakan bagian dari komputer yang berfungsi sebagai tempat penyimpanan
informasi yang harus diatur dan dijaga sebaik-baiknya. Sebagian besar komputer
memiliki hirarki memori yang terdiri atas tiga level, yaitu:

Register di CPU, berada di level teratas. Informasi yang berada di register dapat
diakses dalam satu clock cycle CPU.
Primary Memory (executable memory), berada di level tengah. Contohnya, RAM.
Primary Memory diukur dengan satu byte dalam satu waktu, secara relatif dapat
diakses dengan cepat, dan bersifat volatile (informasi bisa hilang ketika komputer
dimatikan). CPU mengakses memori ini dengan instruksi single load dan store
dalam beberapa clock cycle.
Secondary Memory, berada di level bawah. Contohnya, disk atau tape. Secondary
Memory diukur sebagai kumpulan dari bytes (block of bytes), waktu aksesnya
lambat, dan bersifat non-volatile (informasi tetap tersimpan ketika komputer
dimatikan). Memori ini diterapkan di storage device, jadi akses meliputi aksi oleh
driver dan physical device.

Gambar 1.1. Gambar Hirarki Memori

Komputer yang lebih canggih memiliki level yang lebih banyak pada sistem hirarki
memorinya, yaitu cache memory dan bentuk lain dari secondary memory seperti rotating
magnetic memory, optical memory, dan sequntially access memory. Akan tetapi, masingmasing level ini hanya sebuah penyempurnaan salah satu dari tiga level dasar yang telah
dijelaskan sebelumnya.
Bagian dari sistem operasi yang mengatur hirarki memori disebut dengan memory
manager. Di era multiprogramming ini, memory manager digunakan untuk mencegah
satu proses dari penulisan dan pembacaan oleh proses lain yang dilokasikan di primary
memory, mengatur swapping antara memori utama dan disk ketika memori utama terlalu
kecil untuk memegang semua proses.
Tujuan dari manajemen ini adalah untuk:

Meningkatkan utilitas CPU


Data dan instruksi dapat diakses dengan cepat oleh CPU

Efisiensi dalam pemakaian memori yang terbatas

Transfer dari/ke memori utama ke/dari CPU dapat lebih efisien

Rujukan
[Silberschatz2005] Avi Silberschatz, Peter Galvin, dan Grag Gagne. 2005. Operating
Systems Concepts. Seventh Edition. John Wiley & Sons.
[Tanenbaum1997] Andrew S Tanenbaum dan Albert S Woodhull. 1997. Operating
Systems Design and Implementation. Second Edition. Prentice-Hall.

[WEBAmirSch2000] Yair Amir dan Theo Schlossnagle. 2000. Operating Systems


00.418: Memory Management http://www.cs.jhu.edu/ ~yairamir/ cs418/ os5/ . Diakses
29 Mei 2006.
[WEBFunkhouser2002] Thomas Funkhouser. 2002. Computer Science 217 Introduction
to Programming Systems: Memory Paging http://www.cs.princeton.edu/ courses/
archive / spring02/ cs217/ lectures/ paging.pdf . Diakses 28 Juni 2006.
[WEBGottlieb2000] Allan Gottlieb. 2000. Operating Systems: Page tables
http://allan.ultra.nyu.edu/ ~gottlieb/ courses/ 1999-00-spring/ os/ lecture-11.html .
Diakses 28 Juni 2006.
[WEBSolomon2004] Marvin Solomon. 2004. CS 537 Introduction to Operating Systems:
Lecture Notes Part 7 http://www.cs.wisc.edu/ ~solomon/ cs537/ paging.html . Diakses
28 Juni 2006.
[Wikipedia2007] Anonim. 2007. Shared Library
http://en.wikipedia.org/wiki/Shared_library . Diakses 16 maret 2007.
[KUR2003] David A.S, Habib A.M, dan Endah W. 2003. Makalah IF3191 Sistem
Operasi: Manajemen Memori kur2003.if.itb.ac.id/file/FKML-K1-07.pdf . Diakses 16
maret 2007.
[Suny2005] Suny. 2005. Address Binding
www.cs.binghamton.edu/~nael/classes/cs350/notes/4-lec15.pdf . Diakses 16 maret 2007.

Proteksi Perangkat Keras


Pada saat suatu proses sedang berjalan, ada keadaan dimana processor berhenti. Hal ini
menandakan tidak adanya lagi data yang diproses oleh processor. Oleh karena itu,
processor pastinya akan mencari data ke dalam memori. Pengaksesan data tersebut
memerlukan banyak clock cycle. Situasi ini tidak bisa ditoleransi sehingga membutuhkan
perbaikan dalam kecepatan pengaksesan antara CPU dan memori utama. Tidak hanya
peduli tentang kecepatan tersebut, tetapi juga memastikan operasi yang benar untuk
melindungi pengaksesan sistem operasi dari proses lainnya, dan melindungi proses yang
satu dari pengaksesan proses lainnya pula. Perlindungan atau proteksi ini disediakan oleh
perangkat keras.
Kita harus memastikan bahwa masing-masing proses memiliki ruang memori yang
terpisah. Caranya dengan menentukan jarak alamat yang dilegalkan dimana proses bisa

mengakses dan memastikan bahwa proses tersebut hanya bisa mengakses pada alamat
tersebut.
Proteksi di atas dilakukan oleh perangkat keras. Perangkat keras menyediakan dua
register, yaitu base register dan limit register. Base register memegang alamat fisik
terkecil yang dilegalkan, sedangkan limit register menentukan ukuran dari jarak alamat
tersebut. Contohnya jika base register memegang 300040 dan limit register 120900,
maka program bisa mengakses secara legal di semua alamat dari 300040 sampai 420940.
Gambar 1.2. Gambar Base dan Limit Register

Fungsi dari proteksi ini untuk mencegah user program dari kesengajaan memodifikasi
kode/struktur data baik di sistem operasi atau user lainnya. Jika proteksi gagal, semua hal
yang dilakukan oleh program executing di user mode untuk mengakses memori sistem
operasi atau memori user lainnya akan terperangkap di sistem operasi dan bisa
menyebabkan kesalahan yang fatal, yaitu addressing error.
Gambar 1.3. Gambar Proteksi Perangkat Keras dengan base dan limit register

Address Binding
Pengertian address binding adalah sebuah prosedur untuk menetapkan alamat fisik yang
akan digunakan oleh program yang terdapat di dalam memori utama. Address binding
yang dilakukan terhadap suatu program dapat dilakukan di 3 tahap yang berbeda, yaitu:

Compilation time. Pada tahap ini sebuah program pada awalnya akan
menghasilkan alamat berupa simbol-simbol, kemudian simbol-simbol ini akan
langsung diubah menjadi alamat absolut atau alamat fisik yang bersifat statik. Bila
suatu saat terjadi pergeseran alamat dari program tersebut maka untuk
mengembalikan ke alamat yang seharusnya dapat dilakukan kompilasi ulang.
Contoh : file bertipe .com yang merupakan hasil dari kompilasi program
Load time. Pada tahap ini awalnya program menghasilkan alamat berupa simbolsimbol yang sifatnya acak (relative address), kemudian akan dilakukan
penghitungan ulang agar program tersebut ditempatkan pada alamat yang dapat
dialokasikan ulang (relocateble address). Singkatnya binding terjadi pada waktu
program telah selesai di- load. Contoh: File bertipe .exe.
Execution time. Alamat bersifat relatif, binding akan dilakukan pada saat run
time. Pada saat run time dibutuhkan bantuan hardware yaitu MMU (Memory
Management Unit)

Ruang Alamat Logika dan Fisik


Alamat yang dihasilkan oleh CPU berupa alamat logika, sedangkan yang masuk ke dalam
memori adalah alamat fisik. Pada compile time dan load time, alamat fisik dan logika
identik. Sebaliknya, perbedaan alamat fisik dan logika terjadi pada execution time.
Kumpulan semua alamat logika yang dihasilkan oleh program adalah ruang alamat
logika/ruang alamat virtual. Kumpulan semua alamat fisik yang berkorespondensi dengan
alamat logika disebut ruang alamat fisik.
Pada saat program berada di CPU, program tersebut memiliki alamat logika, kemudian
oleh MMU dipetakan menjadi alamat fisik yang akan disimpan di dalam memori.

Ilustrasinya sebagai berikut, nilai pada register ini akan ditambah dengan setiap alamat
yang dibuat oleh user process yang kemudian dikirim ke memori. Contohnya register
relokasi berada di 14000, alamat logika di 346, maka langsung dipetakan menjadi alamat
fisik di 14346.
Gambar 1.4. Gambar Relokasi Dinamis dengan Menggunakan Relocation Register

Pemuatan Dinamis
Ukuran dari memori fisik terbatas. Supaya utilitas memori berjalan dengan baik, maka
kita menggunakan pemuatan dinamis. Dengan cara ini, routine-routine hanya akan
dipanggil jika dibutuhkan.
Ilustrasi sebagai berikut, semua routine disimpan di disk dalam format yang dapat
dialokasikan ulang (relocatable load format). Program utama diletakkan di memori dan
dieksekusi. Ketika sebuah routine memanggil routine yang lain, hal pertama yang
dilakukan adalah mengecek apakah ada routine lain yang sudah di-load. Jika tidak,
relocatable linking loader dipanggil untuk menempatkan routine yang dibutuhkan ke
memori dan memperbaharui tabel alamat program. Lalu, kontrol diberikan pada routine
baru yang dipanggil.
Keuntungan dari pemuatan dinamis adalah routine yang tidak digunakan tidak pernah
dipanggil. Metode ini berguna pada kode yang berjumlah banyak, ketika muncul kasus
seperti routine yang salah. Walaupun ukuran kode besar , porsi yang digunakan bisa jauh
lebih kecil.
Sistem operasi tidak membuat mekanisme pemuatan dinamis, tetapi hanya menyediakan
routine-routine untuk menerapkan mekanisme ini. User-lah yang merancang programnya
sendiri agar programnya menggunakan sistem pemuatan dinamis.

Linking Dinamis
Pustaka bisa bersifat statik, dikenal dengan archive yang terdiri dari kumpulan routine
yang diduplikasi ke sebuah program oleh compiler, linker, atau binder, sehingga

menghasilkan sebuah aplikasi yang dapat dieksekusi (bersifat stand alone atau dapat
berjalan sendiri). Compiler menyediakan standard libraries, misalnya C standard library,
tetapi programmer bisa juga membuat pustakanya untuk digunakan sendiri atau
disebarkan. Pustaka statis ini menyebabkan memori menjadi berat. Oleh karena itu,
seiring dengan perkembangan teknologi, terdapat pustaka yang bersifat dinamis.
Mekanismenya disebut linking dinamis, sedangkan pustakanya disebut dynamically
linked library.
Linking Dinamis artinya data (kode) di pustaka tidak diduplikasi ke dalam program pada
compile time, tapi tinggal di file terpisah di disk Linker hanya membutuhkan kerja sedikit
pada compile time. Fungsi linker adalah mencatat apa yang dibutuhkan oleh pustaka
untuk eksekusi dan nama indeks atau nomor. Kerja yang berat dari linking akan selesai
pada load time atau selama run time. Kode penghubung yang diperlukan adalah loader.
Pada waktu yang tepat, loader menemukan pustaka yang relevan di disk dan
menambahkan data dari pustaka ke proses yang ada di ruang memori. Keuntungan dari
linking dinamis adalah memori program tidak menjadi berat.

Pustaka Bersama
Satu pustaka dipakai bersama-sama oleh banyak program pada waktu yang bersamaan.
Sekumpulan data dapat diperbaharui versinya dan semua program yang menggunakan
pustaka tersebut secara otomatis menggunakan versi baru. Metode yang dipakai adalah
linking dinamis. Tanpa adanya metode ini, semua program akan melakukan proses
linking ulang untuk dapat mengakses pustaka yang baru, sehingga program tidak bisa
langsung mengeksekusi yang baru, informasi versi terdapat di program dan pustaka.
Lebih dari satu versi dari pustaka bisa masuk ke memori sehingga setiap program
menggunakan informasi versinya untuk memutuskan versi mana yang akan digunakan
dari salinan pustaka

You might also like