Langsung ke konten utama

Sistem Operasi #8 Manajemen Memori

 

Apa itu memori?

Memori merupakan inti dari sistem komputer modern. CPU mengambil instruksi dari memori sesuai yang ada pada program counter. Instruksi dapat berupa menempatkan/menyimpan dari/ke alamat di memori, penambahan, dan sebagainya. 

Memori merupakan inti dari sistem komputer modern. CPU mengambil instruksi dari memori sesuai yang ada pada program counter. Instruksi dapat berupa menempatkan/menyimpan dari/ke alamat di memori, penambahan, dan sebagainya. 

A. Ruang Alamat Fisik dan Logik

Alamat yang dibuat CPU akan merujuk ke sebuah alamat logik. Sedangkan alamat yang dilihat oleh memori adalah alamat yang dimasukkan ke register di memori, merujuk pada alamat fisik pada pengikatan alamat, waktu compile dan waktu penempatan menghasilkan daerah dimana alamat logik dan alamat fisik sama. 

B. Penukaran (Swap)

Sebuah proses membutuhkan memori untuk dieksekusi. Sebuah proses dapat ditukar sementara keluar memori ke backing store (disk), dan kemudian dibawa masuk lagi ke memori untuk dieksekusi. 

Sebagai contoh, asumsi multiprogramming, dengan penjadwalan algoritma CPU Round-Robin. Ketika kuantum habis, manager memori akan mulai menukar keluar proses yang selesai, dan memasukkan ke memori proses yang bebas. Sementara penjadwalan CPU akan mangalokasikan waktu untuk proses lain di memori. Ketika tiap proses menghabiskan waktu kuantumnya, proses akan ditukar dengan proses lain.

Pertukaran membutuhkan sebuah backing store. Backing store biasanya adalah sebuah disk yang cepat. Cukup besar untuk mengakomodasi semua kopi tampilan memori. Sistem memelihara ready queue terdiri dari semua proses yang mempunyai tampilan memori yang ada di backing store, atau di memori dan siap dijalankan. 

Belakangan pertukaran standar pertukaran digunakan di beberapa sistem.Ini membutuhkan terlalu banyak waktu untuk menukar dari pada untuk mengeksekusi untuk solusi managemen memori yang masuk akal. Modifikasi swapping digunakan di banyak versi di UNIX. Pertukaran awalnya tidak bisa, tapi akan mulai bila banyak proses yang jalan dan menggunakan batas jumlah memori.

C. Pemberian Page (Halaman)

Pemberian halaman mencegah masalah penting dari mengepaskan ukuran bongkahan memori yang bervariasi ke dalam penyimpanan cadangan, yang mana diderita oleh kebanyakan dari skema managemen memori sebelumnya. Ketika beberapa pecahan kode dari data yang tersisa di memori utama perlu untuk di tukar keluar, harus ditemukan ruangdi penyimpanan cadangan.

Memori fisik yang dipecah menjadi blok-blok berukuran tetap disebut sebagai frame. Memori logis juga dipecah menjadi blok-blok dengan ukuran yang sama disebut sebagai halaman. Ketika proses akan dieksekusi, halamannya akan diisi ke dalam frames memori mana saja yang tersedia dari penyimpanan cadangan. Penyimpanan cadangan dibagi-bagi menjadi blok-blok berukuran tetap yang sama besarnya dengan frames di memori.

Dukungan perangkat keras untuk pemberian halaman diilustrasikan pada gambar Gambar 8.2. Setiap alamat yang dihasilkan oleh CPU dibagi-bagi menjadi 2 bagian: sebuah nomor halaman (p) dan sebuah offset halaman (d). Nomor halaman digunakan sebagai indeks untuk tabel halaman. Tabel halaman mengandung basis alamat dari tiap-tiap halaman di memori fisik. Basis ini dikombinasikan dengan offset halaman untuk menentukan alamat memori fisik yang dikirim ke unit memori.

D. Segmentasi

Segmentasi adalah sebuah bagian dari managemen memori yang mengatur pengalamatan dari memori yang terdiri dari segmen-segmen. Logical address space adalah kumpulan dari segmen-segmen yang mana tiap-tiap segmen mempunyai nama dan panjang. Alamat tersebut menunjukkan alamat dari segmen tersebut dan offset-nya didalam segmen-segmen tersebut.

Pengguna kemudian menentukan pengalamatan dari setiap segmen menjadi dua bentuk, nama segmen dan offset dari segmen tersebut (Hal ini berbeda denganpemberian halaman, dimana pengguna hanya menentukan satu buah alamat, dimana pembagian alamat menjadi dua dilakukan oleh perangkat keras, semua ini tidak dapat dilihat oleh user).

Jika mengambil contoh kompilator dari Pascal, maka kemungkinan kompilator tersebut akan membuat beberapa segmen yang terpisah untuk:

1. Variabel Global;

2. Prosedur dari pemanggilan stack, untuk menyimpan parameter dan pengembalian alamat;

3. Porsi dari kode untuk setiap prosedur atau fungsi; 

4. Variabel lokal dari setiap prosedur dan fungsi.




Komentar

Postingan populer dari blog ini

Sistem Operasi #5 Sinkronisasi

Sinkronisasi mengacu pada salah satu dari dua proses yang berbeda tetapi saling berkaitan satu sama lainnya. Dua proses ini merupakan sinkronisasi data dan sinkronisasi proses. A. Definisi Sinkronisasi Sinkronisasi merupakan suatu proses pengaturan jalannya beberapa proses pada waktu yang bersamaan untuk menyamakan waktu dan data supaya tidak terjadi inconsitensi (ketidak konsistenan) data akibat adanya akses data secara konkuren agar hasilnya bagus dan sesuai dengan apa yang diharapkan. Sinkronisasi ini dibutuhkan ketika menemukan sebuah kasus yang menyebabkan ketidakkonsistenan data sehingga data menjadi tidak konkuren.  Tujuan dari sinkronisasi itu sendiri ialah untuk menghindari terjadinya inkonsitensi data karena pengaksesan oleh beberapa proses yang berbeda serta untuk mengatur urutan jalannya proses-proses sehingga dapat berjalan dengan baik dan sesuai apa yang di harapkan. Adapun manfaat sikronisasi pada sistem operasi adalah:  Adanya akses-akses dat...

Sistem Operasi #4 Thread

  Ilustrasi Thread Thread  merupakan unit dasar dari penggunaan CPU, yang terdiri dari Thread_ID, program counter, register set, dan stack. Perbedaan antara proses thread tunggal dengan proses thread yang banyak (Multi thread) adalah proses thread yang banyak dapat mengerjakan lebih dari satu tugas pada satu satuan waktu. Banyak sistem operasi modern telah memiliki konsep yang dikembangkan agar memungkinkan sebuah proses untuk memiliki eksekusi multithreads, agar dapat secara terus menerus mengetik dan menjalankan pemeriksaan ejaan didalam proses yang sama, maka sistem operasi tersebut memungkinkan proses untuk menjalankan lebih dari satu tugas pada satu waktu. A. Definisi Thread Proses adalah program yang sedang dieksekusi. Ada dua jenis proses, proses berat (heavyweight) atau biasa dikenal dengan proses tradisional, dan proses ringan atau kadang disebut thread. Thread terdiri atas ID thread, program counter, himpunan register, dan stack sehingga dengan banyaknya kont...

Perintah-perintah Dasar Linux

  Perintah Dasar Linux Beserta Skenario Pembuatan Struktur Folder ` Linux adalah sebuah sistem operasi seperti Unix yang menggunakan kernel linux sebagai inti dan disertakan aplikasi dan module pendukung lain agar berfungsi dan bisa digunakan secara utuh layaknya sistem operasi pada umumnya. Untuk mengoperasikan linux kalian perlu mengakses terminal, terminal merupakan sebuah insterface berbasis Command Line Interface (CLI) yang dapat mengeksekusi perintah yang kalian ketik. Agar dapat memahami perintah-perintah tersebut kalian harus mempelejari sintaks-sintaks dasar Linux. Apa saja perintahnya? yuk simak perintah-perintah dasar Linux dibawah ini. 1. mkdir Perintah mkdir digunakan untuk membuat direktori. Pada skenario, kita mempunyai lima direktori yaitu, member, ashar, rico, ukki dan caca.  Buat direktori member, gunakan perintah  mkdir latihan 2. cd Change directory digunakan untuk pindah dari satu direktori ke direktori lain. Untuk pindah ke direktori member, gunakan ...