Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
1
Lecture 6 Main Memory Erick Pranata
Operating System Lecture 6 Main Memory Erick Pranata © Sekolah Tinggi Teknik Surabaya
2
Chapter 7: Memory Management
Latar Belakang Swapping Contiguous Memory Allocation Paging Struktur Page Table Segmentation © Sekolah Tinggi Teknik Surabaya
3
Objectives Menyajikan deskripsi terperinci tentang berbagai cara organisasi memory hardware Membahas berbagai teknik manajemen memory, termasuk paging dan segmentation © Sekolah Tinggi Teknik Surabaya
4
Latar Belakang © Sekolah Tinggi Teknik Surabaya
5
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
6
Base Register dan Limit Register
Base register: physical memory address terkecil Limit regsiter: ukuran; range base <= accessible memory address < base+limit Contoh: Base = Limit = Acccessible memory address = sampai © Sekolah Tinggi Teknik Surabaya
7
Base Register dan Limit Register
© Sekolah Tinggi Teknik Surabaya
8
Base Register dan Limit Register
© Sekolah Tinggi Teknik Surabaya
9
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 , first address dari sebuah process tidak harus ; bisa beragam. Proses penentuan memory address untuk process dilakukan dengan bind: compiler menentukan relocatable address, sementara loader menentukan absolute address. © Sekolah Tinggi Teknik Surabaya
10
Pemrosesan Program User
© Sekolah Tinggi Teknik Surabaya
11
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
12
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
13
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
14
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
15
Dynamic Relocation Base register -> Relocation register
© Sekolah Tinggi Teknik Surabaya
16
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
17
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
18
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
19
Dynamic Linking dan Shared Libraries
© Sekolah Tinggi Teknik Surabaya
20
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
21
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
22
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
23
Swapping © Sekolah Tinggi Teknik Surabaya
24
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
25
Swapping © Sekolah Tinggi Teknik Surabaya
26
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
27
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
28
Next Year © Sekolah Tinggi Teknik Surabaya
29
Next Year… Contiguous Memory Allocation Paging Struktur Page Table
Segmentation © Sekolah Tinggi Teknik Surabaya
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.