sistem operasi kelompok 7

25
TUGAS SISTEM OPERASI SISTEM OPERASI TENTANG MEMORY KOMPUTER KELOMPOK 7 NAMA : FARHANI NIM : DBC 113 124 TANGGAL : 30 Mei 2014 Dosen : Drs. Jadiaman Parhusip, M.Kom JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNIK

Upload: farhan-nazer

Post on 22-Jun-2015

32 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Sistem Operasi Kelompok 7

TUGAS SISTEM OPERASI

SISTEM OPERASI TENTANG MEMORY KOMPUTER

KELOMPOK 7

NAMA : FARHANI

NIM : DBC 113 124

TANGGAL : 30 Mei 2014

Dosen : Drs. Jadiaman Parhusip, M.Kom

JURUSAN TEKNIK INFORMATIKA

FAKULTAS TEKNIK

UNIVERSITAS PALANGKA RAYA

2014

Page 2: Sistem Operasi Kelompok 7

MATERI SISTEM OPERASI MENGENAI MEMORY

Alokasi Memori Yang Berdampingan

Memori biasanya dibagi menjadi dua bagian, yakni:

1. Sistem Operasi (Operating System).

2. Proses Pengguna (User Processes).

Sistem Operasi dapat dialokasikan pada memori bagian bawah (low memory) mau pun

memori bagian atas (high memory). Hal ini tergantung pada letak vektor interupsi (interrupt

vector) pada memori tersebut. Jika vektor interupsi lebih sering berada pada memori bawah,

maka sistem operasi juga biasanya diletakkan pada memori bawah. Memori memerlukan suatu

perlindungan yang disebut dengan istilah memory protection yakni perlindungan memori

terhadap:

1. Sistem operasi dari proses pengguna;

2. Proses pengguna yang satu dari proses pengguna lainnya

Perlindungan memori tersebut dapat diakomadasikan menggunakan suatu register

pengalokasian kembali (relocation register) dengan suatu register batasan (limit register).

Register batasan berisi jarak dari alamat logik (logical address), sementara register

pengalokasian kembali berisi nilai dari alamat fisik (physical address) yang terkecil. Dengan

adanya register pengalokasian kembali dan register batasan ini, mengakibatkan suatu alamat

logik harus lebih kecil dari register batas an dan memori akan memetakan (mapping) alamat

logik secara dinamik dengan menambah nilai dalam register pengalokasian kembali.

Gambar Alokasi Kembali

register batasan register pengalokasian kembali

| |

|Prosesor|-->(alamat logik)-->|<|->(ya)-->|+|-->(alamat fisik)-->|MAR|

|(no)

perangkap: kesalahan pengalamatan

Page 3: Sistem Operasi Kelompok 7

Sebagaimana telah diketahui, bahwa pengatur jadual prosesor (CPU scheduler) bertugas

mengatur dan menyusun jadual dalam proses eksekusi proses yang ada. Dalam tugasnya,

pengatur jadual prosesor akan memilih suatu proses yang telah menunggu di antrian proses

(process queue) untuk dieksekusi. Saat memilih satu proses dari proses yang ada di antrian

tersebut, dispatcher akan mengambil register pengalokasian kembali dan register batasan dengan

nilai yang benar sebagai bagian dari skalar alih konteks. Oleh karena setiap alamat yang

ditentukan oleh prosesor diperiksa berlawanan dengan register-register ini, kita dapat melindungi

sistem operasi dari program pengguna lainnya dan data dari pemodifikasian oleh proses yang

sedang berjalan.

Metode yang paling sederhana dalam mengalokasikan memori ke proses-proses adalah

dengan cara membagi memori menjadi partisi tertentu. Secara garis besar, ada dua metode

khusus yang digunakan dalam membagi-bagi lokasi memori:

A. Alokasi partisi tetap (Fixed Partition Allocation) yaitu metode membagi memori menjadi

partisi yang telah berukuran tetap. Kriteria-kriteria utama dalam metode ini antara lain :

Alokasi memori: proses p membutuhkan k unit memori.

Kebijakan alokasi yaitu "sesuai yang terbaik": memilih partisi terkecil yang cukup besar

(memiliki ukuran = k).

Fragmentasi dalam (Internal fragmentation) yaitu bagian dari partisi tidak digunakan.

Biasanya digunakan pada sistem operasi awal (batch).

Metode ini cukup baik karena dia dapat menentukan ruang proses; sementara ruang proses

harus konstan. Jadi sangat sesuai dengan parti si berukuran tetap yang dihasilkan metode ini.

Setiap partisi dapat berisi tepat satu proses sehingga derajat dari pemrograman

banyak multiprogramming dibatasi oleh jumlah partisi yang ada.

Ketika suatu partisi bebas, satu proses dipilih dari masukan antrian dan dipindahkan ke

partisi tersebut.

Setelah proses berakhir (selesai), partisi tersebut akan tersedia (available) untuk proses lain.

B. Alokasi partisi variabel (Variable Partition Allocation) yaitu metode dimana sistem operasi

menyimpan suatu tabel yang menunjukkan partisi memori yang tersedia dan yang terisi dalam

bentuk s.

Alokasi memori: proses p membutuhkan k unit memori.

Page 4: Sistem Operasi Kelompok 7

Kebijakan alokasi:

1. Sesuai yang terbaik: memilih lubang (hole) terkecil yang cukup besar untuk keperluan proses

sehingga menghasilkan sisa lubang terkecil.

2. Sesuai yang terburuk: memilih lubang terbesar sehingga menghasil kan sisa lubang.

3. Sesuai yang pertama: memilih lubang pertama yang cukup besar untuk keperluan proses

Fragmentasi luar (External Fragmentation) yakni proses mengambil ruang, sebagian

digunakan, sebagian tidak digunakan.

Memori, yang tersedia untuk semua pengguna, dianggap sebagai suatu blok besar memori

yang disebut dengan lubang. Pada suatu saat memori memiliki suatu daftar set lubang ( free list

holes).

Saat suatu proses memerlukan memori, maka kita mencari suatu lubang yang cukup besar

untuk kebutuhan proses tersebut.

Jika ditemukan, kita mengalokasikan lubang tersebut ke proses tersebut sesuai dengan

kebutuhan, dan sisanya disimpan untuk dapat digunakan proses lain.

Suatu proses yang telah dialokasikan memori akan dimasukkan ke memori dan selanjutnya

dia akan bersaing dalam mendapatkan prosesor untuk pengeksekusiannya.

Jika suatu proses tersebut telah selesai, maka dia akan melepaskan kembali semua memori

yang digunakan dan sistem operasi dapat mengalokasikannya lagi untuk proses lainnya yang

sedang menunggu di antrian masukan.

Apabila memori sudah tidak mencukupi lagi untuk kebutuhan proses, sistem operasi akan

menunggu sampai ada lubang yang cukup untuk dialokasikan ke suatu proses dalam antrian

masukan.

Jika suatu lubang terlalu besar, maka sistem operasi akan membagi lubang tersebut menjadi

dua bagian, dimana satu bagian untuk dialokasikan ke proses tersebut dan satu lagi dikembalikan

ke set lubang lainnya.

Setelah proses tersebut selesai dan melepaskan memori yang digunakannya, memori tersebut

akan digabungkan lagi ke set lubang.

Fragmentasi luar mempunyai kriteria antara lain:

Ruang memori yang kosong dibagi menjadi partisi kecil.

Page 5: Sistem Operasi Kelompok 7

Ada cukup ruang memori untuk memenuhi suatu permintaan, tetapi memori itu tidak lagi

berhubungan antara satu bagian dengan bagian lain (contiguous) karena telah dibagi-bagi.

Kasus terburuk (Worst case): akan ada satu blok ruang memori yang kosong yang terbuang

antara setiap dua proses.

Aturan 50 persen: dialokasikan N blok, maka akan ada 0.5N blok yang hilang akibat

fragmentasi sehingga itu berarti 1/3 memori akan tidak berguna.

Perbandingan kompleksitas waktu dan ruang tiga kebijakan alokasi memori.

Gambar Alokasi Kembali.

Waktu Ruang

======================================

Sesuai yang Terbaik Buruk Baik

Sesuai yang Terburuk Buruk Buruk

Sesuai yang Pertama Baik Baik

Sesuai yang pertama merupakan kebijakan alokasi memori paling baik secara praktis.

Pemberian Halaman

Solusi lain yang mungkin untuk permasalahan pemecahan luar adalah dengan membuat

ruang alamat fisik dari sebuah proses menjadi tidak bersebelahan, jadi membolehkan sebuah

proses untuk dialokasikan memori fisik bilamana nantinya tersedia. Satu cara

mengimplementasikan solusi ini adalah melalui penggunaan dari skema pemberian halaman.

Pemberian halaman mencegah masalah penting dari mengepaskan the 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 ruang di penyimpanan cadangan.

Masalah pemecahan didiskusikan dengan kaitan bahwa meori utama juga lazim dengan

penyimpanan cadangan, kecuali bahwa pengaksesanny lebih lambat, jadi kerapatan adalah tidak

mungkin. Karena keuntungannya pada metode-metode sebelumnya, pemberian halaman dalam

berbagai bentuk biasanya digunakan pada banyak sistem operasi.

Metode Dasar

Page 6: Sistem Operasi Kelompok 7

Memori fisik 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

disamping. Setiap alamat yang dihasilkan oleh CPU dibagi-bagi menjadi 2 bagian: sebuah nomor

halaman (p) dan sebuah offsethalaman (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.

Ukuran halaman (seperti halnya ukuran frame) didefinisikan oleh perangkat keras. Khasnya

ukuran dari sebuah halaman adalah pangkat 2 yang berkisar antara 512 byte dan 8192 byte per

halamannya, tergantung dari arsitektur komputernya. Penentuan pangkat 2 sebagai ukuran

halaman akan memudahkan penterjemahan dari memori logis ke nomor halaman

dan offset halaman. Jika ukuran ruang dari memori logis adalah 2 pangkat m, dan ukuran sebuah

halaman adalah 2 pangkat n unit pengalamatan (byte atau word), maka pangkat tinggi m-n bit

dari alamat logis manandakan offset dari halaman. Jadi, alamat logisnya adalah: dimana p

merupakan index ke tabel halaman dan d adalah pemindahan dalam halaman.

Untuk konkritnya, walau kecil sekali, contoh,

lihat memori Gambar disamping. Menggunakan

ukuran halaman 4 byte dan memori fisik 32 byte (8

halaman), kami menunjukan bagaimana pandangan

pengguna terhadap memori dapat dipetakan

kedalam memori fisik. Alamat logis 0 adalah

halaman 0, offset 0. Pemberian index menjadi tabel

halaman, kita dapati bahwa halaman 0 berada pada

Page 7: Sistem Operasi Kelompok 7

frame 5. Jadi, alamat logis 0 memetakan ke alamat fisik 20 (=(5x4)+0). Alamat logis 3 (page

0, offset 3) memetakan ke alamat fisik 23 (=(5x4)+3). Alamat logis 4 adalah halaman 1, offset;

menurut tabel halaman, halaman 1 dipetakan ke frame 6. Jadi, alamat logis 4 memetakan ke

alamat fisik 24 (=(6x4)+0). Alamat logis 13 memetakan ke alamat fisik 9.

Pembentukan pemberian halaman itu sendiri adalah suatu bentuk dari penampungan dinamis.

Setiap alamat logis oleh perangkat keras untuk pemberian halaman dibatasi ke beberapa alamat

fisik. Pembaca yang setia akan menyadari bahwa pemberian halaman sama halnya untuk

menggunakan sebuah tabel dari basis register, satu untuk setiap frame di memori.Ketika kita

menggunakan skema pemberian halaman, kita tidak memiliki pemecah-mecahan luar:

sembarang frame kosong dapat dialokasikan ke proses yang membutuhkan. Bagaimana pun juga

kita mungkin mempunyai beberapa pemecahan di dalam. Mengingat bahwa frame-

frame dialokasikan sebagai unit.

Jika kebutuhan memori dari sebuah proses tidak menurun pada batas halaman, frame terakhir

yang dialokasikan mungkin tidak sampai penuh. Untuk contoh, jika halamannya 2048 byte,

proses 72.766 byte akan membutuhkan 35 halaman tambah 1086 byte. Alokasinya menjadi 36

frame, menghasilkan fragmentasi internal dari 2048 - 1086 = 962 byte. Pada kasus terburuknya,

proses akan membutuhkan n halaman tambah satu byte. Sehingga dialokasikan n + 1 frame,

menghasilkan fragmentasi internal dari hampir semuaframe. Jika ukuran proses tidak bergantung

dari ukuran halaman, kita mengharapkan fragmentasi internal hingga rata-rata setengah halaman

per prosesnya. Pertimbangan ini memberi kesan bahwa ukuran halaman yang kecil sangat

diperlukan sekali. Bagaimana pun juga, ada sedikit pemborosan dilibatkan dalam masukan tabel

halaman, dan pemborosan ini dikurangi dengan ukuran halaman meningkat. Juga disk I/O lebih

efisien ketika jumlah data yang dipindahkan lebih besar. Umumnya, ukuran halaman bertambah

seiring bertambahnya waktu seperti halnya proses, himpunan data, dan memori utama telah

menjadi besar. Hari ini, halaman umumnya berukuran 2 atau 4 kilobyte.

Ketika proses tiba untuk dieksekusi, ukurannya yang diungkapkan di halaman itu diperiksa.

Setiap pengguna membutuhkan satu frame. Jadi, jika proses membutuhkan n halaman, maka

pasti ada n frame yang tersedia di memori. Jika ada n frame yang tersedia, maka mereka

dialokasikan di proses ini. Halamn pertama dari proses diisi ke salah satu frame yang sudah

teralokasi, dan nomor frame-nya diletakkan di tabel halaman untuk proses ini. Halaman

Page 8: Sistem Operasi Kelompok 7

berikutnya diisikan ke frame yang lain, dan nomor frame-nya diletakkan ke tabel halaman, dan

begitu seterusnya.

Aspek penting dari pemberian halaman adalah pemisahan yang jelas antara pandangan

pengguna tentang memori dan fisik memori sesungguhnya. Program pengguna melhiat memori

sebagai satu ruang berdekatan yang tunggal, hanya mengandung satu program itu. Faktanya,

program pengguna terpencar-pencar didalam memori fisik, yang juga menyimpan program lain.

Perbedaan antara pandangan pengguna terhadap memori dan fisik memori sesungguhnya

disetarakan oleh perangkat keras penterjemah alamat. Alamat logis diterjemahkan ke alamat

fisik. Pemetaan ini tertutup bagi pengguna dan dikendalikan oleh sistem operasi. Perhatikan

bahwa proses pengguna dalam definisi tidak dapat mengakses memori yang bukan haknya.

Tidak ada pengalamatan memori di luar tabel halamannya, dan tabelnya hanya melingkupi

halaman yang proses itu miliki.

Karena sistem operasi mengatur memori fisik, maka harus waspada dari rincian alokasi

memori fisik: frame mana yang dialokasikan, frame mana yang tersedia, berapa banyak total

frame yang ada, dan masih banyak lagi. Informasi ini umumnya disimpan di struktur data yang

disebut sebagai tabel frame. Tabel frame punya satu masukan untuk setiap fisik halaman frame,

menandakan apakah yang terakhir teralokasi ataukah tidak, jika teralokasi maka kepada halaman

mana dari proses mana.

Tambahan lagi sistem operasi harus waspada bahwa proses-proses pengguna beroperasi di

ruang pengguna, dan semua logis alamat harus dipetakan untuk menghasilkan alamat fisik. Jika

pengguna melakukan pemanggilan sistem (contohnya melakukan I/O) dan mendukung alamat

sebagai parameter (contohnya penyangga), alamatnya harus dipetakan untuk menghasilkan

alamat fisik yang benar. Sistem operasi mengatur salinan tabel halaman untuk tiap-tiap proses,

seperti halnya ia mengatur salinan dari counter instruksi dan isi register. Salinan ini digunakan

untuk menterjemahkan alamat fisik ke alamat logis kapan pun sistem operasi ingin memetakan

alamat logis ke alamat fisik secara manual. Ia juga digunakan oleh dispatcher CPU untuk

mendefinisikan tabel halaman perangkat keras ketika proses dialokasikan ke CPU. Oleh karena

itu pemberian halaman meningkatkan waktu alih konteks.

Page 9: Sistem Operasi Kelompok 7

Struktur Tabel Halaman

Setiap sistem operasi mempunyai metodenya sendiri untuk menyimpan tabel-tabel halaman.

Sebagian besar mengalokasikan tabel halaman untuk setiap proses. Penunjuk ke tabel halaman

disimpan dengan nilai register yang lain (seperti counter instruksi) di blok kontrol proses. Ketika

pelaksana dispatcher mengatakan untuk memulai proses, maka harus disimpan kembali register-

register pengguna dan mendefinisikan nilai tabel halaman perangkat keras yang benar dari

tempat penyimpanan tabel halaman pengguna.

Dukungan Perangkat Keras

Implementasi perangkat keras dari tabel halaman dapat dilakukan dengan berbagai cara.

Kasus sederhananya, tabel halaman diimplementasikan sebagai sebuah himpunan dari register

resmi. Register ini harus yang bekecepatan tinggi agar penerjemahan alamat pemberian halaman

efisien Setiap pengaksesan ke memori harus melalui peta pemberian halaman, jadi ke-efisienan

adalah pertimbangan utama. Pelaksana (dispatcher) CPU mengisi kembali register-register ini,

seperti halnya ia mengisi kembali register yang lain. Instruksi untuk mengisi atau mengubah

register tabel halaman adalah, tentu saja diberi hak istimewa, sehingga hanya sistem operasi yang

dapat mengubah peta memori. DEC PDP-11 adalah contoh arsitektur yang demikian. Alamatnya

terdiri dari 16-bit, dan ukuran halamannya 8K. Jadi tabel halaman terdiri dari 8 masukan yang

disimpan di register-register cepat.

Pemeliharaan

Proteksi memori dari suatu lingkungan berhalaman diselesaikan dengan bit-bit proteksi yang

diasosiasikan dengan tiap-tiap frame. Normalnya, bit-bit ini disimpan di tabel halaman. Satu bit

dapat menentukan halaman yang akan dibaca tulis atau baca saja. Setiap referensi ke memori

menggunakan tabel halaman untuk menemukan nomor frame yang benar. Pada saat yang sama

alamat fisik diakses, bit-bit proteksi dapat dicek untuk menguji tidak ada penulisan yang sedang

dilakukan terhadap halaman yang boleh dibaca saja. Suatu usaha untuk menulis ke halaman yang

boleh dibaca saja akan menyebabkan perangkat keras menangkapnya ke sistem operasi.

Pemberian Halaman Secara Multilevel

Page 10: Sistem Operasi Kelompok 7

Banyak sistem komputer moderen mendukung ruang alamat logis yang sangat luas (2

pangkat 32 sampai 2 pangkat 64). Pada lingkungan seperti itu tabel halamanya sendiri menjadi

sangat-sangat besat sekali. Untuk contoh, misalkan suatu sistem dengan ruang alamat logis 32-

bit. Jika ukuran halaman di sistem seperti itu adalah 4K byte (2 pangkat 12), maka tabel halaman

mungkin berisi sampai 1 juta masukan ((2^32)/(2^12)). Karena masing-masing masukan terdiri

atas 4 byte, tiap-tiap proses mungkin perlu ruang

alamat fisik sampai 4 megabyte hanya untuk

tabel halamannya saja. Jelasnya, kita tidak akan

mau mengalokasi tabel halaman secara

berdekatan di dalam memori. Satu solusi

sederhananya adalah dengan membagi tabel halaman menjadi potongan-potongan yang lebih

kecil lagi. Ada beberapa cara yang berbeda untuk menyelesaikan ini.

Skema Tabel Halaman Dua Tingkat.

Penterjemahan alamat untuk arsitektur pemberian halaman dua tingkat 32-bit logis.

Page 11: Sistem Operasi Kelompok 7

Tabel Halaman yang Dibalik

Biasanya, setiap proses mempunyai tabel

halaman yang diasosiasikan dengannya. Tabel

halaman hanya punya satu masukan untuk

setiap halaman proses tersebut sedang gunakan

(atau satu slot untuk setiap alamat maya, tanpa

meperhatikan validitas terakhir). Semenjak

halaman referensi proses melalui alamat maya

halaman, maka representasi tabel ini adalah

alami. Sistem operasi harus menterjemahkan

referensi ini ke alamat memori fisik. Semenjak tabel diurutkan berdasarkan alamat maya, sistem

operasi dapat menghitung dimana pada tabel yang diasosiasikan dengan masukan alamat fisik,

dan untuk menggunakan nilai tersebut secara langsung. Satu kekurangan dari skema ini adalah

masing-masing halaman mungkin mengandung jutaan masukan. Tabel ini mungkin memakan

memori fisik dalam jumlah yang besar, yang mana dibutukan untuk tetap menjaga bagaimana

memori fisik lain sedang digunakan.

Page 12: Sistem Operasi Kelompok 7

Berbagi Halaman

Keuntungan lain dari pemberian halaman

adalah kemungkinannya untuk berbagi kode

yang sama. Pertimbangan ini terutama sekali

penting pada lingkungan yang berbagi waktu.

Pertimbangkan sebuah sistem yang mendukung

40 pengguna, yang masing-masing

menjalankan aplikasi pengedit teks. Jika editor

teks tadi terdiri atas 150K kode dan 50K ruang

data, kita akan membutuhkan 8000K untuk

mendukung 40 pengguna. Jika kodenya dimasukan ulang, bagaimana pun juga dapat dibagi-bagi,

seperti pada gambar disamping Disini kita lihat bahwa tiga halaman editor (masing-masing

berukuran 50K; halaman ukuran besar digunakan untuk menyederhanakan gambar) sedang

dibagi-bagi diantara tiga proses. Masing-masing proses mempunyai halaman datanya sendiri.

Kode pemasukan kembali (juga disebut kode murni) adalah kode yang bukan self-modifying.

Jika kodenya dimasukan kembali, maka ia tidak akan berubah selama eksekusi. Jadi, dua atau

lebih proses dapat mengeksekusi kode yang sama pada saat bersamaan. Tiap-tiap proses

mempunyai register salinannya sendiri dan penyimpan data untuk menahan data bagi proses

bereksekusi. Data untuk dua proses yang berbeda akan bervariasi pada tiap-tiap proses.

Hanya satu salinan editor yang dibutuhkan untuk menyimpan di memori fisik. Setiap tabel

halaman pengguna memetakan ke salinan fisik yang sama dari editor, tapi halaman-halaman data

dipetakan ke frame yang berbeda. Jadi, untuk mendukung 40 pengguna, kita hanya

membutuhkan satu salinannya editor (150K), ditambah 40 salinan 50K dari ruang data per

pengguna. Total ruang yang dibutuhkan sekarang 2150K, daripada 8000K, penghematan yang

signifikan.

Program-program lain pun juga dapat dibagi-bagi: compiler, system window database system,

dan masih banyak lagi. Agar dapat dibagi-bagi, kodenya harus dimasukan kembali. System yang

menggunakan tabel halaman yang dibalik mempunyai kesulitan dalam mengimplementasikan

berbagi memori. Berbagi memori biasanya diimplementasikan sebagai dua alamat maya yang

dipetakan ke satu alamat fisik. Metode standar ini tidak dapat digunakan, bagaimana pun juga

Page 13: Sistem Operasi Kelompok 7

selama di situ hanya ada satu masukan halaman maya untuk setiap halaman fisik, jadi satu

alamat fisik tidak dapat mempunyai dua atau lebih alamat maya yang dibagi-bagi.

Metode Dasar

Metode dasar dari paging adalah

dengan memecah memori fisik menjadi

blok-blok yang berukuran tertentu yang

disebut dengan frame dan memecah

memori logika menjadi blok-blok yang

berukuran sama denganframe yang

disebut dengan page. Selanjutnya

sebuah page table akan menerjemahkan

alamat logika ke alamat fisik.

Alamat logika terdiri dari 2 bagian yaitu nomor page dan nomor offset. Bila digunakan ruang

alamat logika 2 pangkat m dan ukuran page 2 pangkat n bytes, maka m-n bit paling kiri

menunjukkan nomor page dan n bit paling kanan menunjukkan offset.

Contoh Translasi Alamat Pada Sistem Paging

Page 14: Sistem Operasi Kelompok 7

Lihat gambar di atas. Bila kita mempunyai ruang alamat logika 16 byte (2 pangkat 4), dan

ukuran page-nya 4 byte (2 pangkat 2), maka 2 bit (4-2 dari m-n) paling kiri menunjukkan

nomor page dan 2 (didapat dari n) bit paling kanan menunjukkan nomor offset. Contohnya

alamat logika 0000, maka bit 00 sebelah kiri menunjukkan bahwa nomor pagenya adalah 0 ,

sedangkan 00 sebelah kanan menunjukkan bahwa nomoroffsetnya adalah 0000 (bilangan biner).

Dilihat di page table bahwa page 0 dipetakan ke frame 5, berarti alamat logika 0000 dipetakan

ke frame 5 offset 0000. Dan alamat logika 0000 menyimpan data dariframe 5 offset 0 yaitu 'U'.

Begitu pula alamat logika 0110 berarti nomor pagenya adalah 01 atau 1, dan nomor offsetnya

0010. Sehingga dipetakan ke frame 6 offset 0010 dan menyimpan data AA.

Fragmentasi intern masih mungkin terjadi pada sistem paging. Contohnya adalah

bila page berukuran 2KB (2048 byte), maka proses berukuran 20500 byte membutuhkan

10 page dan tambahan 20 byte, berarti diperlukan 11 frame sehingga terjadi fragmentasi intern

sebesar 2028 byte (2048-20) dan worst case yang terjadi adalah fragmentasi intern sebesar

ukuran page dikurang 1 byte.

Page 15: Sistem Operasi Kelompok 7

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 penjadualan algoritma

CPU Round-Robin. Ketika kuantum habis, manager memori akan mulai menukar keluar proses

yang selesai, dan memasukkan ke memori proses yang bebas. Sementara penjadualan CPU akan

mangalokasikan waktu untuk proses lain di memori. Ketika tiap proses menghabiskan waktu

kuantumnya, proses akan ditukar dengan proses lain. Idealnya memori manager, dapat menukar

proses-proses cukup cepat, sehingga selalu ada proses dimemori, siap dieksekusi, ketika

penjadual CPU ingin menjadual ulang CPU. Besar kuantum juga harus cukup besar, sehingga

jumlah perhitungan yang dilakukan antar pertukaran masuk akal.

Variasi dari kebijakan swapping ini, digunakan untuk algoritma penjadualan berdasarkan

prioritas. Jika proses yang lebih tinggi tiba, dan minta dilayani, memori manager dapat menukar

keluar proses dengan prioritas yang lebih rendah, sehingga dapat memasukkan dan

mengeksekusi proses dengan prioritas yang lebih tinggi. Ketika proses dengan prioritas lebih

tinggi selesai, proses dengan prioritas yang lebih rendah, dapat ditukar masuk kembali, dan

melanjutkan. Macam-macam pertukaran ini kadang disebut roll out, dan roll in.

Normalnya, sebuah proses yang ditukar keluar, akan dimasukkan kembali ke tempat memori

yang sama dengan yang digunakan sebelumnya. Batasan ini dibuat oleh method pengikat alamat.

Jika pengikatan dilakukan saat assemble atau load time, maka proses tidak bisa dipindahkan ke

lokasi yang berbeda. Jika menggunakan pengikatan waktu eksekusi, maka akan mungkin

menukar proses kedalam tempat memori yang berbeda. Karena alamat fisik dihitung selama

proses eksekusi.

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. Ketika penjadual CPU memutuskan untuk

mengeksekusi sebuah proses, dia akan memanggil dispatcher, yang mengecek dan melihat

apakah proses berikutnya ada diantrian memori. Jika proses tidak ada, dan tidak ada ruang

memori yang kosong, dispatcher menukar keluar sebuah proses dan memaasukan proses yang

Page 16: Sistem Operasi Kelompok 7

diinginkan. Kemudian memasukkan ulang register dengan normal, dan mentransfer pengendali

ke proses yang diinginkan.

Konteks waktu pergantian pada sistem swapping, lumayan tinggi. Untuk efisiensi kegunaan

CPU, kita ingin waktu eksekusi untuk tiap proses lebih lama dari waktu pertukaran. Karenanya

digunakan CPU penjadualan roun-robin, dimana kuantumnya harus lebih besar dari waktu

pertukaran.

Perhatikan bahwa bagian terbesar dari waktu pertukaran, adalah waktu pengiriman. Total

waktu pengiriman langsung didapat dari jumlah pertukaran memori. Proses dengan kebutuhan

memori dinamis, akan membutuhkan system call (meminta dan melepaskan memori), untuk

memberi tahu sistem operasi tentang perubahan kebutuhan memori.

Ada beberapa keterbatasan swapping. Jika kita ingin menukar sebuah proses kita harus yakin

bahwa proses sepenuhnya diam. Konsentrasi lebih jauh, jika ada penundaan I/O. Sebuah proses

mungkin menunggu I/O, ketika kita ingin menukar proses itu untuk mengosongkan memori. Jika

I/O secara asinkronus, mengakses memori dari I/O buffer, maka proses tidak bisa ditukar.

Misalkan I/O operation berada di antrian, karena device sedang sibuk. Maka bila kita menukar

keluar proses P1 dan memasukkan P2, mungkin saja operasi I/O akan berusaha masuk ke

memori yang sekarang milik P2. Dua solusi utama masalah ini adalah

1. Jangan pernah menukar proses yang sedang menunggu I/O.

2. Untuk mengeksekusi operasi I/O hanya pada buffer sistem operasi.

Secara umum, ruang pertukaran dialokasikan sebagai potongan disk, terpisah dari sistem

berkas, sehingga bisa digunakan secepat mungkin. Belakangan pertukaran standar pertukaran

digunakan dibeberapa sistem. Ini membutuhkan terlalu banyak waktu untuk menukar dari pada

untuk mengeksekusi untuk solusi managemen memori yang masuk akal. Modifikasi swapping

digunakan dibanyak versi di UNIX. Pertukaran awalnya tidak bisa, tapi akan mulai bila banyak

proses yang jalan dan menggunakan batas jumlah memori.

Page 17: Sistem Operasi Kelompok 7

DAFTAR PUSTAKA

http://bebas.vlsm.org/v06/Kuliah/SistemOperasi/BUKU/SistemOperasi-4.X-2/ch03s02.html,

diakses pada tanggal 28 Mei 2014

http://ikc.dinus.ac.id/umum/ibam/ibam-os-html/i42.html, diakses pada tanggal 28 Mei 2014

http://ikc.dinus.ac.id/umum/ibam/ibam-os-html/x3417.html, diakses pada tanggal 28 Mei

2014

http://ikc.dinus.ac.id/umum/ibam/ibam-os-html/x3278.html, diakses pada tanggal 28 Mei

2014