Loading & Linking
Loader vs Linker vs Compiler
Loader
Bagian dari sistem operasi yang
bertugas untuk memasukkan
program ke dalam memori
Linker
Aplikasi yang
bertugas menghubungkan beberapa
object file untuk menjadi satu file
executable (exe,dll,dsb)
Compiler
Menerjemahkan bahasa pemrograman menjadi bahasa komputer
Contoh proses yang membutuhkan linker :
pthread
Pengalamatan ketika
Loading
Absolute Loading
Module
yang akan dimasukkan harus selalu terletak pada lokasi yang
sama di memori
Relocatable Loading
Module
dapat dipindahkan, tergantung dari area
yang kosong di mana
Dynamic run-time Loading
Module
dapat dimasukkan ketika
program yang membutuhkan sudah berjalan
Masalah
Bagaimana jika program terlalu besar dan tidak ada tempat cukup di memori?
Bagaimana jika ruang kosong di memori hanya cukup menampung sebagian saja dari process image?
Virtual
Memory
Virtual memori :
Metode alokasi yang
membuat
secondary memory seolah-olah menjadi bagian dari main
memory
Tidak semua bagian dari
proses harus berada pada main
memory
Virtual address :
Alamat pada
virtual memory
Resident set :
Bagian dari
proses yang berada di
main memory
Paging dan Segmentation di Virtual Memory
Virtual
Memory Policies
Operating System Policies for Virtual
Memory
Fetch Policy
Menentukan kapan sebuah page
seharusnya dibawa ke main
memory
Placement Policy
Menentukan di bagian mana sebuah page
akan diletakkan pada main
memory
Replacement Policy
Menentukan page
mana di memori yang
seharusnya digantikan
Resident Set Management
Menentukan berapa banyak page
yang dibawa ke main
memory
Cleaning Policy
Fetch Policy
Ada 2 jenis, yaitu :
Demand
Paging
Page hanya dibawa ke main
memory jika dibutuhkan
Prepaging
Page selain yang
dibutuhkan juga ikut dibawa ke main
memory
Kelebihan :
Bisa menghemat waktu, karena pembacaan disk
tidak sering
Kelemahan :
Jika page
lain yang dibawa jarang digunakan
!=
Swapping
(Suspended)
Paging
Langsung saja, tergantung
frame yang kosong
Segmentation
Best
Fit
First
Fit
Next
Fit
Replacement Policy
Contoh urutan pengaksesan page :
2 3 2
1 5 2 4 5 3 2 5 2
Optimal
Page
yang waktu dibutuhkan kembali masih lama
akan diganti
Masalah :
Bagaimana memprediksi urutan pengaksesan
page?
Least Recently Used
Page
yang paling jarang digunakan dalam waktu lama
Masalah :
Bagaimana menghitung jumlah pengaksesan untuk setiap
page?
First In First Out
Metode
paling sederhana
Page
yang akan diganti adalah page
yang pertama berada di
main memory
Masalah :
Performa
buruk
Sering terjadi page
fault
Clock Policy
Setiap page
yang masuk ke main
memory akan memiliki nilai untuk bit
used = 1
Ada
pointer yang bertugas 'mengelilingi'
clock
Setiap kali
pointer bergerak :
Bila bit
used pada page
berikutnya sama dengan 1
Reset
jadi 0, dan lanjut ke page
berikutnya
Bila bit
used pada page
berikutnya sama dengan 0
Ganti page
tersebut dengan yang
ada di
secondary.
Resident Set Management
Berdasarkan ukuran page yang harus berada di main memory
Fixed
Allocation
Setiap
proses memiliki jatah
frame di memory
Jatah
frame ditentukan di awal
Variable
Allocation
Jumlah
frame untuk setiap
proses bebas ditentukan kapanpun dan dapat berubah
Berdasarkan Ruang Lingkup :
Local
replacement policy
Pemilihan page
yang akan diganti hanya melihat pada
proses yang bersangkutan saja
Global
replacement policy
Pemilihan page
yang akan diganti dapat diambil dari area manapun di memori
Cleaning Policy
Cleaning Policy :
Menentukan kapan sebuah page
harus dikeluarkan dari main
memory menuju
secondary memory
Ada 2 jenis :
Demand
cleaning
Page hanya berpindah ke
secondary memory ketika dia digantikan oleh page
yang lain
Precleaning
Memindah
page-page pada suatu
proses secara bersama-sama
Menghemat waktu penulisan ke harddisk
Linux Virtual Memory
Virtual Memory Addressing
Menggunakan
3-level page table
Page Replacement Algorithm
Clock
Policy & LRU
Bit
used digantikan dengan
8-bit age variable
0 komentar:
Posting Komentar