Manajemen Memori Pada Sistem Operasi Bab 2

Oleh:   Serhamo Tech Serhamo Tech   |   12/03/2018 02:36:00 pm
Artikel ini ialah lanjutan dari Manajemen Memori Pada Sistem Operasi Bagian 1

Beberapa istilah dalam administrasi memori :

Swaping

Sebuah proses harus berada di memori untuk dieksekusi. Proses juga sanggup ditukar (swap) sementara keluar memori ke backing store dan lalu dibawa kembali ke memori untuk melanjutkan eksekusi. Backing store berupa disk besar dengan kecepatan tinggi yang cukup untuk meletakkan copy dari semua memory image untuk semua user, sistem juga harus menyediakan kanal pribadi ke memory image tersebut. Contohnya, sebuah lingkungan multiprogramming dengan penjadwalan CPU memakai algoritma round-robin.
Pada ketika waktu kuantum berakhir, manajer memori akan memulai untuk menukar proses yang gres selesai keluar dan menukar proses lain ke dalam memori yang dibebaskan. Pada waktu berjalan, penjadwal CPU (CPU scheduler) akan mengalokasikan sejumlah waktu untuk proses yang lain di memori. Ketika masing-masing proses menuntaskan waktu kuantum-nya, akan ditukar dengan proses yang lain.
Kebijakan penukaran juga sanggup dipakai pada algoritma penjadwalan berbasis prioritas. Jika proses memiliki prioritas lebih tinggi tiba dan meminta layanan, memori akan swap out proses dengan prioritas lebih rendah sehingga proses dengan prioritas lebih tinggi sanggup di-load dan dieksekusi.
Umumnya sebuah proses yang di-swap out akan menukar kembali ke ruang memori yang sama dengan sebelumnya. Jika proses pengikatan dilakukan pada ketika load-time, maka proses tidak sanggup dipindah ke lokasi yang berbeda. Tetapi, jikalau pengikatan pada ketika execution-time , maka kemungkinan proses ditukar ke ruang memori yang berbeda, alasannya alamat fisik dihitung selama waktu eksekusi.
Bila CPU scheduler memutuskan untuk mengeksekusi proses, OS memanggil dispatcher. Dispatcher menilik untuk melihat apakah proses selanjutnya pada ready queue ada di memori. Jika tidak dan tidak terdapat cukup memori bebas, maka dispatcher swap out sebuah proses yang ada di memori dan swap in proses tersebut. Kemudian reload register ke keadaan normal. Teknik swapping yang sudah dimodifikasi ditemui pada beberapa sistem contohnya Linux, UNIX dan Windows.

Partitioning

Memori utama biasanya dibagi ke dalam dua partisi yaitu untuk
  • Sistem operasi biasanya diletakkan pada alamat memori rendah dengan vektor
  • Proses user yang diletakkan pada alamat memori tinggi.
Alokasi proses user pada memori berupa single partition allocation atau
  • Pada single partition allocation diasumsikan sistem operasi ditempatkan di memori rendah dan proses user dihukum di memori tinggi. Kode dan data sistem operasi harus diproteksi dari perubahan tak terduga oleh user proses. Proteksi sanggup dilakukan dengan memakai register relokasi (relocation register) dan register limit (limit register). Register relokasi berisi nilai dari alamat fisik terkecil sedangkan register limit berisi jangkauan alamat logika dan alamat logika harus lebih kecil dari register limit. MMU memetakan alamat logika secara dinamis dengan menambah nilai pada register relokasi.
  • Multiple Partition Allocation mengijinkan memori user dialokasikan untuk proses yang berbeda yang berada di antrian input (input queue) yang menunggu dibawa ke memori. Terdapat dua denah yaitu partisi tetap (fixed partition) dimana memori dibagi dalam sejumlah partisi tetap dan setiap partisi berisi sempurna satu proses.
Jumlah partisi terbatas pada tingkat multiprogramming. Digunakan oleh IBM OS/360 yang disebut Multiprogramming with a Fixed number of Task (MFT). Skema yang kedua ialah partisi dinamis (variable partition) merupakan MFT yang digeneralisasi yang disebut Multiprogramming with a Variable number of Tasks (MVT). Skema ini dipakai terutama pada lingkungan batch.
Pada MVT, sistem operasi menyimpan tabel yang berisi bab memori yang tersedia dan yang digunakan. Mula-mula, semua memori tersedia untuk proses user sebagai satu blok besar (large hole). Lubang (hole) ialah blok yang tersedia di memori yang memiliki ukuran berbeda. Bila proses tiba dan memerlukan memori, dicari lubang (hole) yang cukup untuk proses tersebut.
Bila ditemukan memory manager mengalokasikan sejumlah memori yang dibutuhkan dan menyimpan sisanya untuk ajakan berikutnya. Sistem operasi menyimpan isu perihal partisi yang dialokasikan dan partisi yang bebas (hole).
Baca juga :

Paging

Paging merupakan kemungkinan solusi untuk permasalahan fragmentasi eksternal dimana ruang alamat logika tidak berurutan; mengijinkan sebuah proses dialokasikan pada memori fisik yang terakhir tersedia. Memori fisik dibagi ke dalam blok-blok ukuran tetap yang disebut frame. Memori logika juga dibagi ke dalam blok-blok dengan ukuran yang sama yang disebut page.
Semua daftar frame yang bebas disimpan. Untuk menjalankan agenda dengan ukuran n page, perlu menemukan n frame bebas dan meletakkan agenda pada frame tersebut. Tabel page (page table) dipakai untuk menterjemahkan alamat logika ke alamat fisik.
Setiap alamat dibangkitkan oleh CPU dengan membagi ke dalam 2 bab yaitu :
  • Page number (p) dipakai sebagai indeks ke dalam table page (page table).
  • Page table berisi alamat basis dari setiap page pada memori fisik.
  • Page offset (d) mengkombinasikan alamat basis dengan page offset untuk mendefinisikan alamat memori fisik yang dikirim ke unit memori.

Implementasi Sistem Paging

Setiap sistem operasi memiliki metode sendiri untuk menyimpan tabel page. Beberapa sistem operasi mengalokasikan sebuah tabel page untuk setiap proses. Pointer ke tabel page disimpan dengan nilai register lainnya dari PCB.
Pada dasarnya terdapat 3 metode yang berbeda untuk implementasi tabel page :
  1. Tabel page diimplementasikan sebagai kumpulan dari “dedicated” register. Register berupa rangkaian logika berkecepatan sangat tinggi untuk efisiensi translasi alamat paging.
  2. Tabel page disimpan pada main memori dan memakai page table base register”(PTBR) untuk menunjuk ke tabel page yang disimpan di main memori. Penggunakan memori untuk mengimplementasikan tabel page akan memungkinkan tabel page sangat besar (sekitar 1 juta entry). Perubahan tabel page hanya mengubah PTBR dan menurunkan waktu context-switch. Akan tetapi penggunaan metode ini memperlambat kanal memori dengan faktor 2. Hal ini dikarenakan untuk mengakses memori perlu dua langkah : pertama untuk lokasi tabel page dan kedua untuk lokasi alamat fisik yang diperlukan.
  3. Menggunakan perangkat keras cache yang khusus, kecil dan cepat yang disebut associative register atau translation look-aside buffers (TLBs). Merupakan solusi standar untuk permasalahan penggunaan memori untuk implementasi tabel page.  sekumpulan associative register berupa memori kecepatan tinggi. Setiap register terdiri dari 2 bab yaitu key dan value. Jika associative register mengatakan item, akan dibandingkan dengan semua key secara simultan. Jika item ditemukan nilai yang berafiliasi diberikan. Model ini memperlihatkan pencarian cepat tetapiperangkat keras masih mahal.

Segementasi

Konsep segmentasi ialah user atau programmer tidak memikirkan sejumlah rutin agenda yang dipetakan ke main memori sebagai array linier dalam byte tetapi memori dilihat sebagai kumpulan segmen dengan ukuran berbeda-beda, tidak perlu berurutan diantara segment tersebut. Segmentasi ialah denah administrasi memori yang memungkinkan user untuk melihat memori tersebut. Ruang alamat logika ialah kumpulan segmen.
Setiap segmen memiliki nama dan panjang. Spesifikasi alamat berupa nama segmen dan offset. Segment diberi nomor dan disebut dengan nomor segmen (bukan nama segmen) atau segment number. Segmen dibuat secara otomatis oleh compiler. Sebuah agenda ialah kumpulan segmen. Suatu segmen ialah unit logika menyerupai agenda utama, prosedur, fungsi, metode, obyek, variabel lokal, variabel global, blok umum, stack, tabel simbol, array dan lain-lain.


Tampilkan Komentar