Konsep Dasar Memory

download Konsep Dasar Memory

of 7

description

-

Transcript of Konsep Dasar Memory

Bab 1

Bab 1. Konsep Dasar Memori

Daftar IsiPendahuluanProteksi Perangkat KerasAddress BindingRuang Alamat Logika dan FisikPemuatan DinamisLinking DinamisPustaka BersamaRangkumanRujukanPendahuluan

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, masing-masing 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 BindingPengertian 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 simbol-simbol 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