Pengalamatan
Memori adalah pusat kegiatan pada sebuah komputer, karena setiap proses yang akan dijalankan, harus melalui memori terlebih dahulu. CPU mengambil instruksi dari memori sesuai yang ada pada Program Counter. Instruksi dapat berupa menempatkan/menyimpan dari/ke alamat di memori, penambahan, dan sebagainya. Tugas sistem operasi adalah mengatur peletakan banyak proses pada suatu memori. Memori harus dapat digunakan dengan baik, sehingga dapat memuat banyak proses dalam suatu waktu. Dalam managemen memori ini, kita akan membahas bagaimana urutan alamat memori yang dibuat oleh program yang berjalan.
Ruang Alamat Logika dan Fisik
Alamat Logika adalah alamat yang dibentuk di CPU, disebut juga alamat virtual. Alamat fisik adalah alamat yang telihat oleh memori. Waktu kompilasi dan waktu pemanggilan menghasilkan daerah dimana alamat logika dan alamat fisik sama. Sedangkan pada waktu eksekusi menghasilkan alamat fisik dan logika yang berbeda. Kumpulan alamat logika yang dibuat oleh program adalah ruang alamat logika. Kumpulan alamat fisik yang berkorespondensi dengan alamat logika disebut ruang alamat fisik. Untuk mengubah dari alamat logika ke alamat fisik diperlukan suatu perangkat keras yang bernama Memory Management Unit (MMU).
Register utamanya disebut register relokasi. Nilai pada register relokasi bertambah setiap alamat dibuat oleh proses pengguna, pada waktu yang sama alamat ini dikirim ke memori. Program pengguna tidak dapat langsung mengakses memori. Ketika ada program yang menunjuk ke alamat memori, kemudian mengoperasikannya, dan menaruh lagi di memori, akan di lokasikan awal oleh MMU, karena program pengguna hanya berinterkasi dengan alamat logika. Pengubahan dari alamat logika ke alamat fisik adalah pusat dari managemen memori.
Pemanggilan Dinamis
Telah kita ketahui seluruh proses dan data berada memori fisik ketika dieksekusi. Ukuran dari memori fisik terbatas. Untuk mendapatkan utilisasi ruang memori yang baik, kita melakukan pemanggilan dinamis. Dengan pemanggilan dinamis, sebuah rutin tidak akan dipanggil sampai diperlukan. Semua rutin diletakkan di disk, dalam format yang dapat dialokasikan ulang. Program utama di tempatkan di memori dan dieksekusi. Jika sebuah rutin memanggil rutin lainnya, maka akan dicek dulu apakah rutin yang dipanggil ada di dalam memori atau tidak, jika tidak ada maka linkage loader dipanggil untuk menempatkan rutin yang diinginkan ke memori dan memperbaharui tabel alamat program untuk menyesuaikan perubahan. Kemudian kontrol diletakan pada rutin yang baru dipanggil.
Keuntungan dari pemanggilan dinamis adalah rutin yang tidak digunakan tidak pernah dipanggil. Metode ini berguna untuk kode dalam jumlah banyak, ketika muncul kasus-kasus yang tidak lazim, seperti rutin yang salah. Dalam kode yang besar, walaupun ukuran kode besar, tapi yang dipanggil dapat jauh lebih kecil.
Pemanggilan Dinamis tidak memerlukan bantuan sistem operasi. Ini adalah tanggung-jawab para pengguna untuk merancang program yang mengambil keuntungan dari metode ini. Sistem operasi dapat membantu pembuat program dengan menyediakan kumpulan data rutin untuk mengimplementasi pemanggilan dinamis.
Penghubungan Dinamis dan Perpustakaan Bersama
Pada proses dengan banyak langkah, ditemukan juga penghubungan-penghubungan perpustakaan yang dinamis, dimana menghubungkan semua rutin yang ada di perpustakaan. Beberapa sistem operasi hanya mendukung penghubungan yang statis, dimana seluruh rutin yang ada dihubungkan ke dalam suatu ruang alamat. Setiap program memiliki salinan dari seluruh perpustakaan. Konsep penghubungan dinamis, serupa dengan konsep pemanggilan dinamis. Pemanggilan lebih banyak ditunda selama waktu eksekusi, dari pada lama penundaan oleh penghubungan dinamis. Keistimewaan ini biasanya digunakan dalam sistem kumpulan perpustakaan, seperti perpustakaan bahasa subrutin. Tanpa fasilitas ini, semua program dalam sebuah sistem, harus mempunyai salinan dari pustaka bahasa mereka (atau setidaknya referensi rutin oleh program) termasuk dalam tampilan yang dapat dieksekusi. Kebutuhan ini sangat boros baik untuk disk, maupun memori utama. Dengan pemanggilan dinamis, sebuah potongan dimasukkan ke dalam tampilan untuk setiap rujukan perpustakaan subrutin. Potongan ini adalah sebuah bagian kecil dari kode yang menunjukan bagaimana mealokasikan perpustakaan rutin di memori dengan tepat, atau bagaimana menempatkan pustaka jika rutin belum ada.
Ketika potongan ini dieksekusi, dia akan memeriksa dan melihat apakah rutin yang dibutuhkan sudah ada di memori. Jika rutin yang dibutuhkan tidak ada di memori, program akan menempatkannya ke memori. Jika rutin yang dibutuhkan ada di memori, maka potongan akan mengganti dirinya dengan alamat dari rutin, dan mengeksekusi rutin. Demikianlah, berikutnya ketika segmentasi kode dicapai, rutin pada perpustakaan dieksekusi secara langsung, dengan begini tidak ada biaya untuk penghubungan dinamis. Dalam skema ini semua proses yang menggunakan sebuah kumpulan bahasa, mengeksekusi hanya satu dari salinan kode perpustakaan.
Fasilitas ini dapat diperluas menjadi pembaharuan perpustakaan. Sebuah kumpulan data dapat ditempatkan lagi dengan versi yang lebih baru dan semua program yang merujuk ke perpustakaan akan secara otomatis menggunakan versi yang baru. Tanpa pemanggilan dinamis, semua program akan akan membutuhkan pemanggilan kembali, untuk dapat mengakses perpustakaan yang baru. Jadi semua program tidak secara sengaja mengeksekusi yang baru, perubahan versi perpustakaan, informasi versi dapat dimasukkan ke dalam memori, dan setiap program menggunakan informasi versi untuk memutuskan versi mana yang akan digunakan dari salinan perpustakaan. Sedikit perubahan akan tetap meggunakan nomor versi yang sama, sedangkan perubahan besar akan menambah satu versi sebelumnya. Karenanya program yang dikompilasi dengan versi yang baru akan dipengaruhi dengan perubahan yang terdapat di dalamnya. Program lain yang berhubungan sebelum pustaka baru diinstal, akan terus menggunakan pustaka lama. Sistem ini juga dikenal sebagai berbagi pustaka. Jadi seluruh pustaka yang ada dapat digunakan bersama-sama. Sistem seperti ini membutuhkan bantuan sistem operasi.
Overlays
Overlays berguna untuk memasukkan suatu proses yang membutuhkan memori lebih besar dari yang tersedia. Idenya untuk menjaga agar di dalam memori berisi hanya instruksi dan data yang dibutuhkan dalam satuan waktu. Rutinnya dimasukkan ke memori secara bergantian.
Sebagai contoh, sebuah two-pass assembler. Selama pass1 dibangun sebuah tabel simbol, kemudian selama pass2, akan membuat kode bahasa mesin. Kita dapat mempartisi sebuah assembler menjadi kode pass1, kode pass2, dan simbol tabel, dan rutine biasa digunakan untuk kedua pass1 dan pass2.
Untuk menempatkan semuanya sekaligus, kita akan membutuhkan 200K memori. Jika hanya 150K yang tersedia, kita tidak dapat menjalankan proses. Bagaimana pun perhatikan bahwa pass1 dan pass2 tidak harus berada di memori pada saat yang sama. Kita mendefinisikan dua overlays. Overlays A untuk pass1, tabel simbol dan rutin, overlays dua untuk simbol tabel, rutin, dan pass2.
Kita menambahkan sebuah driver overlays (10K) dan mulai dengan overlays A di memori. Ketika selesai pass1, pindah ke driver, dan membaca overlays B ke dalam memori, menimpa overlays A, dan mengirim kontrol ke pass2. Overlays A butuh hanya 120K, dan B membutuhkan 150K memori. Kita sekarang dapat menjalankan assembler dalam 150K memori. Pemanggilan akan lebih cepat, karena lebih sedikit data yang ditransfer sebelum eksekusi dimulai. Jalan program akan lebih lambat, karena ekstra M/K dari kode overlays B melalui overlays A.
Seperti dalam pemanggilan dinamis, overlays tidak membutuhkan bantuan dari sistem operasi. Implementasi dapat dilakukan secara lengkap oleh pengguna dengan berkas struktur yang sederhana, membaca dari berkas ke memori, dan pindah dari memori tersebut, dan mengeksekusi instruksi yang baru dibaca. Sistem operasi hanya memperhatikan jika ada lebih banyak M/K dari biasanya.
Di sisi lain pemrogram harus merancang program dengan struktur overlays yang layak. Tugas ini membutuhkan pengetahuan yang lengkap tentang struktur dari program, kode dan struktur data.
Pemakaian dari overlays, dibatasi oleh komputer mikro, dan sistem lain yang mempunyai batasan jumlah memori fisik, dan kurangnya dukungan perangkat keras, untuk teknik yang lebih maju. Teknik otomatis menjalankan program besar dalam dalam jumlah memori fisik yang terbatas, lebih diutamakan.
Sumber http://kambing.ui.ac.id/bebas/v06/Kuliah/SistemOperasi/BUKU/
SistemOperasi 3-0




Leave a comment