Lecture 6 Main Memory Erick Pranata Operating System Lecture 6 Main Memory Erick Pranata © Sekolah Tinggi Teknik Surabaya
Chapter 7: Memory Management Latar Belakang Swapping Contiguous Memory Allocation Paging Struktur Page Table Segmentation © Sekolah Tinggi Teknik Surabaya
Objectives Menyajikan deskripsi terperinci tentang berbagai cara organisasi memory hardware Membahas berbagai teknik manajemen memory, termasuk paging dan segmentation © Sekolah Tinggi Teknik Surabaya
Latar Belakang © Sekolah Tinggi Teknik Surabaya
Pengantar Main memory dan register merupakan 2 tipe memory yang dapat diakses CPU secara langsung Jika ada data yang dibutuhkan oleh CPU, maka harus dimasukkan ke main memory Akses register dapat dilakukan dengan 1 cycle, namun tidak dengan main memory; terdapat memory bus antara CPU dan main memory Akses lambat dapat membuat CPU dalam kondisi stall (macet); solusi: cache Selain aksesibilitas, perlu juga diperhatikan proteksi akses antarproses © Sekolah Tinggi Teknik Surabaya
Base Register dan Limit Register Base register: physical memory address terkecil Limit regsiter: ukuran; range base <= accessible memory address < base+limit Contoh: Base = 300040 Limit = 120900 Acccessible memory address = 300040 sampai 420939 © Sekolah Tinggi Teknik Surabaya
Base Register dan Limit Register © Sekolah Tinggi Teknik Surabaya
Base Register dan Limit Register © Sekolah Tinggi Teknik Surabaya
Address Binding Program perlu dimasukkan ke dalam memory agar menjadi process. Process yang menunggu masuk ke memory wajib menunggu di input queue. Walaupun memory komputer dimulai dari 000000, first address dari sebuah process tidak harus 000000; bisa beragam. Proses penentuan memory address untuk process dilakukan dengan bind: compiler menentukan relocatable address, sementara loader menentukan absolute address. © Sekolah Tinggi Teknik Surabaya
Pemrosesan Program User © Sekolah Tinggi Teknik Surabaya
Address Binding Bind: compiler menentukan relocatable address, sementara loader menentukan absolute address. Relocatable address 14 byte dari awal modul Absolute Address 74014 © Sekolah Tinggi Teknik Surabaya
Address Binding Binding dapat terjadi di pada step-step tertentu: Compile time: kalau memang memory address yang akan digunakan sudah pasti, akan terbentuk absolute code. Load time: kalau memory address belum pasti, compiler harus membentuk relocatable code. Execution time: kalau proses dapat berpindah tempat, binding harus ditunda hingga saat run time. Chapter ini membahas implementasi efektif dari konsep binding ini © Sekolah Tinggi Teknik Surabaya
Logical vs Physical Address Space Logical address: address yang dibentuk oleh CPU Physical address: address berdasarkan memory Compile-time dan load-time membentuk logical dan physical address yang sama persis Namun, execution-time menghasilkan logical dan physical address yang berbeda Logical address Virtual address Himpunan physical address yang berkoresponden/relevan dengan logical address disebut physical address space © Sekolah Tinggi Teknik Surabaya
Logical vs Physical Address Space Run-time mapping dari virtual menuju physical address dilakukan oleh hardware device yang disebut memory-management unit (MMU) Teknik mapping ini akan dibahas pada subtopik Swapping, Contiguous Memory, Paging, Struktur Page Table, dan Segmentation. Skema sederhana yang dapat digunakan untuk memahami MMU adalah dengan base-limit register © Sekolah Tinggi Teknik Surabaya
Dynamic Relocation Base register -> Relocation register © Sekolah Tinggi Teknik Surabaya
Logical vs Physical Address Space Logical address space 0 sampai max Physical address space R+0 sampai R+max, dimana R adalah Relocation register Logical address space dapat terhubung menjadi beberapa physical address space terpisah © Sekolah Tinggi Teknik Surabaya
Dynamic Loading Seluruh proses harus berada dalam physical address space untuk dapat diproses Physical address space bersifat terbatas Dynamic loading digunakan untuk memaksimalkan penggunaan memory-space. © Sekolah Tinggi Teknik Surabaya
Dynamic Loading Routine tidak akan di-load jika tidak dipanggil Routine berada dalam disk dalam relocatable format Saat pemanggilan routine lain: Apakah routine lain sudah di-load? Jika belum, loader akan melakukan binding dan meletakkan routine dalam memory Menghemat memory dengan tidak memanggil routine yang jarang digunakan Implementasinya bukan pada OS, melainkan user program © Sekolah Tinggi Teknik Surabaya
Dynamic Linking dan Shared Libraries © Sekolah Tinggi Teknik Surabaya
Dynamic Linking dan Shared Libraries Static linking: segala library yang dibutuhkan di-embed pada modul Pemborosan jika banyak membutuhkan library yang sama © Sekolah Tinggi Teknik Surabaya
Dynamic Linking dan Shared Libraries Dynamic linking, dilakukan saat execution time Yang di-embed ke modul adalah sebuah stub spesial Stub ini Memeriksa apakah routine yang dibutuhkan sudah ada di memory. Jika belum, ia akan memasukkan routine tersebut ke dalam memory Mengganti dirinya dengan routine yang dibutuhkan oleh modul © Sekolah Tinggi Teknik Surabaya
Dynamic Linking dan Shared Libraries Hemat memory Library update Bayangkan jika static linking. Harus di-link ulang. Stub berisi informasi versi library yang akan digunakan Inilah yang disebut sebagai Shared Libraries Butuh bantuan OS untuk masalah proteksi © Sekolah Tinggi Teknik Surabaya
Swapping © Sekolah Tinggi Teknik Surabaya
Swapping Sebuah proses dapat di-swap (ditukar) ke backing store, dan dibawa kembali ke memory untuk dikerjakan lebih lanjut Total physical memory space dari seluruh proses dapat melebihi physical memory yang tersedia Backing store: disk cepat yang cukup besar untuk menyimpan seluruh proses yang terdapat dalam memory; harus ada direct access Roll out, roll in: variasi swapping untuk algoritma priority-based scheduling; semakin tinggi prioritas, semakin didahulukan © Sekolah Tinggi Teknik Surabaya
Swapping © Sekolah Tinggi Teknik Surabaya
Swapping Masalah terbesar dalam swap time adalah transfer time; total transfer time berbanding lurus dengan ukuran memory yang ditukar Misal swapping process sebesar 100MB Transfer rate = 50MB/detik Disk latency = 8ms Swap out = 2008ms Ditambah swap in dengan nilai yang sama Total context-switch = 4016ms (> 4 detik) Dapat diminimalkan dengan mengetahui ukuran memory yang benar-benar perlu untuk ditukar Dengan request_memory dan release_memory © Sekolah Tinggi Teknik Surabaya
Swapping Apakah proses yang ditukar harus kembali ke physical address terdahulu? Ya, jika binding dilakukan saat load time Tidak, jika binding dilakukan saat execution time Ya/Tidak, jika ada pending I/O dari/ke process memory space Versi modifikasi dari swapping (i.e., UNIX, Linux, and Windows) Swapping pada kondisi normal dibuat nonaktif Aktif jika memory telah terpakai melebihi threshold tertentu Nonaktif jika sudah di bawah threshold © Sekolah Tinggi Teknik Surabaya
Next Year © Sekolah Tinggi Teknik Surabaya
Next Year… Contiguous Memory Allocation Paging Struktur Page Table Segmentation © Sekolah Tinggi Teknik Surabaya