P. 1
makalah-sistem-operasi.doc

makalah-sistem-operasi.doc

|Views: 248|Likes:

More info:

Published by: رسمان الدروري on Jan 23, 2013
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less

09/10/2015

pdf

text

original

MAKALAH SISTEM OPERASI

Disusun oleh: Nama Nim Kelas : SUPARDI : 08.11.2495 : SI-TI-2I

SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER “STMIK AMIKOM” YOGYAKARTA 2008/2009

Bab VI SINKRONISASI DAN DEADLOCK

A. Sinkronisasi Akses bebarengan untuk berbagi dua bersama dapat mengakibatkan inkosistensi data. Pemeliharaan konsistensi data memerlukan mekanisme untuk memastikan eksekusi dari proses kerjasama. Shared memory merupakan solusi ke masalah bounded-butter yang mengijinkan paling banyak n-1 materi dalam buffer pada waktu yang sama. Suatu solusi, jika semua N buffer digunakan tidaklah sederhana. Dimisalkan kita memdifikasi producer-consumer code dengan menambahkan suatu variable counter, dimulai dari 0 dan masing-masing waktu tambahan dari suatu item baru diberikan kepada buffer. 1. Race Condition Race Condition adalah situasi di mana beberapa proses mengakses dan memanipulasi data bersama pada saat besamaan. Nilai akhir dari data bersama tersebut tergantung pada proses yang terakhir selesai. Untuk mencegah race condition, proses-proses yang berjalan besamaan harus di disinkronisasi. Dalam beberapa sistem operasi, proses-proses yang berjalan bersamaan mungkin untuk membagi beberapa penyimpanan umum, masing-masing dapat melakukan proses baca (read) dan proses tulis (write). Penyimpanan bersama (shared storage) mungkin berada di memori utama atau berupa sebuah berkas bersama, lokasi dari memori bersama tidak merubah kealamian dari komunikasi atau masalah yang muncul. Untuk mengetahui bagaimana komunikasi antar proses bekerja, mari kita simak sebuah contoh sederhana, sebuah print spooler. Ketika sebuah proses ingin mencetak sebuah berkas, proses tersebut memasukkan nama berkas ke dalam sebuah spooler direktori yang khusus. Proses yang lain, printer daemon, secara periodik memeriksa untuk mengetahui jika ada banyak berkas yang akan dicetak, dan jika ada berkas yang sudah dicetak dihilangkan nama berkasnya dari direktori. 2. Masalah Critical Section Kunci untuk mencegah masalah ini dan di situasi yang lain yang melibatkan shared memori, shared berkas, and shared sumber daya yang lain adalah menemukan beberapa jalan untuk mencegah lebih dari satu proses untuk melakukan proses writing dan reading kepada shared data pada saat yang sama. Dengan kata lain kita memutuhkan mutual exclusion, sebuah jalan yang menjamin jika sebuah proses sedang menggunakan shared berkas, proses lain dikeluarkan dari pekerjaan yang sama. Kesulitan yang terjadi karena proses 2 mulai menggunakan variabel bersama sebelum proses 1 menyelesaikan tugasnya. Masalah menghindari race conditions dapat juga diformulasikan secara abstrak. Bagian dari waktu, sebuah proses sedang sibuk melakukan perhitungan internal dan hal lain yang tidak menggiring ke kondisi race conditions. Bagaimana pun setiap kali sebuah proses mengakses shared memory atau shared berkas atau melakukan sesuatu yang kitis akan menggiring kepada race conditions. Bagian dari program dimana shaed memory diakses disebut Critical Section atau Critical Region.

Walau pun dapat mencegah race conditions, tapi tidak cukup untuk melakukan kerjasama antar proses secara pararel dengan baik dan efisien dalam menggunakan shared data. Kita butuh 4 kondisi agar menghasilkan solusi yang baik: • Tidak ada dua proses secara bersamaan masuk ke dalam citical section. • Tidak ada asumsi mengenai kecepatan atau jumlah cpu. • Tidak ada proses yang berjalan di luar critical secion yang dapat mengeblok proses lain. • Tidak ada proses yang menunggu selamamya untuk masuk critical section. Critical Section adalah sebuah segmen kode di mana sebuah proses yang mana sumber daya bersama diakses. Terdiri dari: Entry Section: kode yang digunakan untuk masuk ke dalam critical section Critical Section: Kode di mana hanya ada satu proses yang dapat dieksekusi pada satu waktu Exit Section: akhir dari critical section, mengizinkan proses lain Remainder Section: kode istirahat setelah masuk ke critical section. 3. Solusi ke Masalah Critical-Section Ada bebrapa Solusi untuk mengatasi masalah Critical Section, yaitu:

Mutual exclution Jika proses pi sedang mengeksekusi critical section-nya maka tidak ada proses lain yang dapat mengeksekusi dalam critical section mereka.

Progress Jika tidak ada proses yang sedang dieksekusi dalam critical section dan ada beberapa proses yang ingin masuk ke critical section mereka, maka pemilihan proses yang akan masuk ke critical section berikutnya tidak bias ditunda.

Bounded Waiting Suatu keterikatan harus ada pada sejumlah proses yang diijinkan masuk ke critical section mereka, setelah adanya proses yang meminta masuk ke critical section dan sebelum permintaan itu diterima. a. Asumsikan bahwa tiap proses mengeksekusi pada nonzero speed. b. Tidak ada asumsi mengenai kecepatan relative dan n proses.

Cara-cara memecahkan masalah
• •

Hanya dua proses, Po dan P1 Struktur umum dari proses adalah Pi (proses lain Pj)

4. Bakery Algorithm Critical section untuk n proses:

5. Seperti proses dapat dipaksa berhenti pada suatu saat.3. 6. Proses yang diblocked akan dapat melanjutkan kembali bila proses yang ada di critical section keluar dan melakukan opersai up sehingga menjadikan proses yang diblocked ready dan melanjutkan sehingga opersi Down-nya berhasil. proses melakukan Down. yaitu Down dan Up.5…. Adanya semaphore mempermudah persoalan mutual exclusion. Operasi Down adalah atomic. ii. then Pi is served first. Variabel khusus untuk penanda ini disebut semaphore. Terdapat dua operasi terhadap semaphore. dapat dipilih secara acak. Jika satu proses atau lebih diblocked pada semaphore itu tak dapat menyelesaikan operasi Down. menempatkan proses pada antrian dan memblocked sebagai instruksi tunggal. Semaphore dapat diinisialisasi dengan nilai non-negatif.4. Bila berhasil maka proses masuk ke critical section. tak ada proses alain yang dapat mengakses semaphore sampai operasi selesai atau diblocked. Semaphore mempunyai dua sifat. Jika proses Pi dan Pj menerima nomor yang sama.3.3. Usulan asli yang disampaikan Djikstra adalah operasi P dan V.2.a. memeriksa nilai. Problem Klasik pada Sinkronisasi Ada tiga hal yang selalu memjadi masalah pada proses sinkronisasi: . Sebelum memasuki critical Section-nya. proses menerima nomor pemilik nomor terkecil memasuki critical section. yaitu: i. maka salah satu dipilih oleh system dan menyelesaikan operasi Down-nya. Operasi Up Operasi Up menakkan nilai semaphore. tak dapat diinterupsi sebelaum diselesaikan. else Pj is served first). sampai proses mendapatkan penanda tertentu itu. b. c. Skema penelesaian mutual exclusion mempunyai bagan sebagai berikut: Sebelum masuk critical section. Urutan proses yang dipilih tidak ditentukan oleh Djikstra. maka Pi dilayani duluan. Bila tidak berhasil maka proses di-blocked atas semaphore itu.3. yaitu 1. dengan prinsip bahwa dua proses atau lebih dapat bekerja sama dengan menggunakan penanda-penanda sederhana. jika i < j. Operasi Down Operasi ini menurunkan nilai semaphore. Sejak dimulai. Semaphore Semaphore adalah pendekatan yang diajukan oleh Djikstra.Emnurunkan nilai. Skema penomoran selalu menghasilkan angka –angka yang disebutkan satu per satu. Sembarang kebutuhan koordinasi kompleks dapat dipenuhi dengan struktur penanda yang cocok untuk kebutuhan itu. lainnya Pj dilayani duluan (if i< j. jika nilai semaphore menjadi non-positif maka proses yang mengeksekusinya diblocked.

Versi Brinch Hansen: Setelah melakukan signal. Monitors Solusi sinkronisasi ini dikemukakan oleh Hoare pada tahun 1974. seperti pada real-time . 7. yaitu Wait dan Signal. Pada beberapa kasus. Problem Reades and Writer. Terdapat cara agar proses yang tidak dapat berlangsung di-blocked. Hanya satu proses yang dapat aktif di monitor pada satu saat. Jika data pada monitor merepresentasikan sumber daya. Dua atau lebih proses dikatakan berada dalam kondisi deadlock. Proses dapat memanggil prosedur-prosedur kapan pun diinginkan. bila setiap proses yang ada menunggu suatu kejadian yang hanya dapat dilakukan oleh proses lain dalam himpunan tersebut. proses segera keluar dari monitor. dengan dua operasi. Signal: Proses membangunkan partner-nya yang sedang diblocked dengan signal pada variabel kondisi yang sedang ditunggu partnernya. overhead atau ongkos yang harus dibayar untuk membuat sistem bebas deadlock menjadi hal yang terlalu mahal dibandingkan jika mengabaikannya. Sementara pada kasus lain. e. d. Monitor adalah kumpulan prosedur. g. Variabel-variabel data lokal. hanya dapat diakses oleh prosedur-prosedur dala monitor dan tidak oleh prosedur di luar monitor. Struktur data bersama dapat dilindungi dengan menempatkannya dalam monitor. maka monitor menyediakan fasilitas mutual exclusion dalam mengakses sumber daya itu. Variabel-variabel data dalam monitor hanya dapat diakses oleh satu proses pada satu saat.a. c. monitor menyediakan fasilitas mutual exclusion. Problem Dining Philosophers. Wait: Ketika prosedur monitor tidak dapat berkanjut (misal producer menemui buffer penuh) menyebabkan proses pemanggil diblocked dan mengizinkan proses lain masuk monitor. f. Kompilator harus mengimplementasi ini(mutual exclusion). B. membangunkan proses baru agar berjalan dan menunda proses lain. Dengan memaksakan disiplin hanya satu proses pada satu saat yang berjalan pada monitor. Deadlock Deadlock yang mungkin dapat terjadi pada suatu proses disebabkan proses itu menunggu suatu kejadian tertentu yang tidak akan pernah terjadi. variabel dan struktur data di satu modul atau paket khusus. Versi Hoare: Setelah signal. Menambahkan variabelvariabel kondisi. Terdapat kaitan antara overhead dari mekanisme koreksi dan manfaat dari koreksi deadlock itu sendiri. b. c. Tapi proses tak dapat mengakses struktur data internal dalam monitor secara langsung. Problem Bounded buffer. b. Properti-properti monitor adalah sebagai berikut: a. Hanya lewat prosedur-prosedur yang dideklarasikan minitor untuk mengakses struktur internal.

Kondisi yang menyatakan proses-proses yang sedang memakai suatu sumber daya dapat meminta sumber daya yang lain. P2. Suatu kondisi dimana setiap sumber daya diberikan tepat pada satu proses pada suatu waktu. Node V terdiri dari proses-proses = {P1. Untuk mengatasinya beberapa mobil harus preempt (mundur). Peranan Deadlock Menurut Coffman dalam bukunya "Operating System" menyebutkan empat syarat bagi terjadinya deadlock. maka: a. yaitu: • • • • Terdapat satu jalur pada jalan.} dan jenis resource. 1. Kondisi dimana suatu sumber daya yang sedang berada pada suatu proses tidak dapat diambil secara paksa dari proses tersebut. Circular Wait h. yaitu: a. atau kemungkinan terjadinya. Meminta poin-poin ke kotak. jika tipe resource memiliki banyak instance. resource adalah kotak. .. maka deadlock DAPAT ada. R2. Hold and Wait d. Contoh berikut ini terjadi pada sebuah persimpangan jalan. Sebuah panah dari resource ke process menunjukkan sebuah instance dari resource telah dtempatkan ke proses. {R1. titik-titik merepresentasikan jumlah instance dari resource Dalam tipe. Mobil digambarkan sebagai proses yang sedang menuju sumber daya. P3. g. perintah datang dari titik. c..} Edge E adalah (Pi.. Jika graf tidak berisi lingkaran. Process adalah lingkaran. Kondisi yang menyatakan bahwa adanya rantai saling meminta sumber daya yang dimiliki oleh suatu proses oleh proses lainnya.process control. maka tidak ada proses yang deadlock. . . Jika membentuk lingkaran. Pj) Sebuah panah dari process ke resource menandakan proses meminta resource. E) Graf berisi node and edge. G = (V. Resources-Allocation Graph Sebuah cara visual (matematika) untuk menentukan apakah ada deadlock. Mutual Exclusion b.sampai proses itu melepaskannya. Sangat memungkinkan untuk terjadinya starvation (kondisi proses tak akan mendapatkan sumber daya). Non-pre-emptive f. Beberapa hal yang dapat membuat deadlock pada suatu persimpangan. e. 2.. mengizinkan deadlock akan membuat sistem menjadi kacau dan membuat sistem tersebut tidak berguna. Rj) atau (Ri.

Metode Pencegahan dianggap sebagai solusi yang bersih dipandang dari sudut tercegahnya deadlock. Mencegah Deadlock Metode ini merupakan metode yang paling sering digunakan. tabel proses sendiri tidak mungkin untuk di-spool ii. 4. error pada kompilator atau bugs pada sistem operasi. yaitu dengan mengantrikan job-job pada antrian dan akan dilayani satu-satu. . Beberapa masalah yang mungkin terjadi adalah: i. Syarat pertama yang akan dapat ditiadakan adalah Mutual Exclusion. yaitu mengizinkan empat kondisi deadlock. Mengabaikan adanya deadlock. Pendeteksian deadlock. cara ini sama sekali tidak dapat diterima dan semua keadaan deadlock harus ditangani. jika komputer lebih sering mengalami kerusakkan disebabkan oleh kegagalan hardware. Tetapi pencgahan akan mengakibatkan kinerja utilisasi sumber daya yang buruk. Maka ongkos yang dibayar untuk melakukan penanganan deadlock sangatlah besar dan lebih baik mengabaikan keadaan deadlock tersebut. Memastikan bahwa deadlock tidak akan pernah ada. Pemulihan deadlock. Metode ini diterapkan pada sistem operasi UNIX dan MINIX.b. yaitu: • • c. b. Kompetisi pada ruang disk untuk spooling sendiri dapat mengarah pada deadlock Hal inilah yang menyebabkan mengapa syarat pertama tidak dapat ditiadakan. Langkah yang digunakan adalah dengan spooling sumber daya. tetapi menghentikan setiap proses yang kemungkinan mencapai deadlock. yaitu: a. Menurut para ahli Matematika. Tidak semua dapat di-spool. 3. jika tidak ada sumber daya yang secara khusus diperuntukkan bagi suatu proses maka tidak akan pernah terjadi deadlock. Metode Menghindari deadlock. Beragam pendapat muncul berkaitan dengan strategi ini. baik dengan metode Pencegahan. jadi mutual exclusion benar-benar tidak dapat dihilangkan. pendekatan ini membutuhkan dua metode yang saling mendukung. maka deadlock telah terjadi. Strategi menghadapi Deadlock Strategi untuk menghadapi deadlock dapat dibagi menjadi tiga pendekatan. Namun jika membiarkan ada dua atau lebih proses mengakses sebuah sumber daya yang sama akan menyebabkan chaos. jika setiap tipe resource mempunyai satu instance. Strategi Ostrich Pendekatan yang paling sederhana adalah dengan menggunakan strategi burung unta: masukkan kepala dalam pasir dan seolah-olah tidak pernah ada masalah sama sekali. dengan mencegah empat kondisi deadlock agar tidak akan pernah terjadi. 5. Sementara menurut para ahli Teknik. Membiarkan deadlock untuk terjadi. mengembalikan kembali sumber daya yang dibutuhkan pada proses yang memintanya. untuk mengidentifikasi ketika deadlock terjadi. Metode pencegahan menggunakan pendekatan dengan cara meniadakan empat syarat yang dapat menyebabkan deadlock terjadi pada saat eksekusi Coffman (1971).

Suatu proses dimungkinkan untuk dapat meminta sumber daya kapan pun. Sulitnya mengetahui berapa sumber daya yang dibutuhkan pada awal proses ii. Meniadakan syarat ketiga non preemptive ternyata tidak lebih menjanjikan dari meniadakan syarat kedua. Tabel 3-1. Sedangkan dengan penomoran masalah yang dihadapi adalah tidak terdapatnya suatu penomoran yang dapat memuaskan semua pihak. Membuat penomoran pada proses-proses yang mengakses sumber daya. Tidak optimalnya pengunaan sumber daya jika ada sumber daya yang digunakan hanya beberapa waktu dan tidak digunakan tapi tetap dimiliki oleh suatu proses yang telah memintanya dari awal. Namun jika terdapat sumber daya yang sedang terpakai maka proses tersebut tidak dapat memulai prosesnya. jika menginginkan sumber daya lain maka sumber daya yang dimiliki harus dilepas. Jika suatu proses yang sedang menggunakan sumber daya dapat dicegah agar tidak dapat menunggu sumber daya yang lain. terangkum dalam tabel dibawah ini. Terdapat dua pendekatan. untuk suatu proses yang kompleks dibutuhkan banyak sumber daya pada saat yang bersamaan. tetapi permintaannya harus dibuat terurut. Tabel Deadlock Syarat Mutual Exclusion Hold and Wait Langkah Spooling sumber daya Meminta sumber daya di awal Kelemahan Dapat menyebabkan chaos Sulit memperkirakan di awal dan tidak optimal No Pre-emptive Mengambil sumber daya di tengah Hasil proses tidak akan baik proses Circular Wait Penomoran permintaan sumber Tidak ada penomoran yang memuaskan daya semua pihak . karena dengan meniadakan syarat ketiga maka suatu proses dapat dihentikan ditengah jalan.Cara kedua dengan meniadakan kondisi hold and wait terlihat lebih menjanjikan. Masalah yang mungkin terjadi: i. Secara ringkas pendekatan yang digunakan pada metode pencegahan deadlock dan masalahmasalah yang menghambatnya. Mengatur agar setiap proses hanya dapat menggunakan sebuah sumber daya pada suatu waktu. yaitu: i. ii. Langkah yang digunakan adalah dengan membuat proses agar meminta sumber daya yang mereka butuhkan pada awal proses sehingga dapat dialokasikan sumber daya yang dibutuhkan. Hal ini tidak dimungkinkan karena hasil dari suatu proses yang dihentikan menjadi tidak baik. Cara terakhir adalah dengan meniadakan syarat keempat circular wait. maka deadlock dapat dicegah. Masalah yang mungkin terjadi dengan mengatur bahwa setiap proses hanya dapat memiliki satu proses adalah bahwa tidak semua proses hanya membutuhkan satu sumber daya.

Sumber daya yang tadinya tersedia dapat saja menjadi tidak tersedia kembali. ii. Stallings (1995) dan Deitel (1990) adalah sebagai berikut: i. Kondisi Tak Aman (Unsafe state) Suatu state dinyatakan sebagai state tak selamat (unsafe state) jika tidak terdapat cara untuk memenuhi semua permintaaan yang saat ini ditunda dengan menjalankan proses-proses dengan suatu urutan. 10.6. Dengan cara mengikuti urutan tertentu. v. Menghindari Deadlock Pendekatan metode ini adalah dengan hanya memberi kesempatan ke permintaan sumber daya yang tidak mungkin akan menyebabkan deadlock. Kondisi aman yang dimaksudkan selanjutnya disebut sebagai safe-state. Algoritma ini menghendaki memberikan semua permintaan selama waktu yang berhingga. Beberapa kelemahan algoritma Bankir Tanenbaum (1992). padahal uang yang belum dikembalikan tadi dibutuhkan oleh peminjam lain yang juga belum mengembalikan uang pinjamannya. Setelah kondisi deadlock dapat dideteksi. 8. jika pemberian akses tidak mungkin menuju kepada deadlock. Model ini menggunakan suatu kota kecil sebagai percontohan dengan suatu bank sebagai sistem operasi. Jumlah proses yang tidak tetap dan berubah-ubah. 9. proses yang meminta akan di-suspend sampai suatu waktu permintaannya aman untuk diberikan. maka sumber daya akan diberikan pada proses yang meminta. Algoritma Bankir Algoritma penjadualan ini diungkapkan oleh Dijkstra (1965) lebih dikenal dengan nama Algoritma Bankir. Metode ini memeriksa dampak pemberian akses pada suatu proses. Kondisi Aman (Safe state) Suatu keadaan dapat dinyatakan sebagai safe state jika tidak terjadi deadlock dan terdapat cara untuk memenuhi semua permintaan sumber daya yang ditunda tanpa menghasilkan deadlock. sedangkan keadaan yang tidak memungkinkan untuk diberikan sumber daya yang diminta disebut unsafe-state. Proses-proses yang dieksekusi haruslah tidak dibatasi oleh kebutuhan sinkronisasi antar proses. pinjaman sebagai sumber daya dan peminjam sebagai proses yang membutuhkan sumber daya. Kondisi ini terjadi ketika setelah sumber daya yang sebelumnya dipegang oleh proses lain telah dilepaskan. Jika tidak aman. Deadlock akan terjadi apabila terdapat seorang peminjam yang belum mengembalikan uangnya dan ingin meminjam kembali. 7. iv. Mendeteksi Deadlock dan Memulihkan Deadlock Metode ini mengunakan pendekatan dengan teknik untuk menentukan apakah deadlock sedang terjadi serta proses-proses dan sumber daya yang terlibat dalam deadlock tersebut. iii. Sulit untuk mengetahui seluruh sumber daya yang dibutuhkan proses pada awal eksekusi. maka langkah pemulihan dari kondisi deadlock dapat segera .

yaitu: • • • • Pencegahan deadlock Menghindari deadlock Mendeteksi deadlock Pemulihan deadlock Namun pada sebagian besar Sistem Operasi dewasa ini mereka lebih condong menggunakan pendekatan untuk mengabaikan semua deadlock yang terjadi. Monitor termasuk ke dalam level tertinggi mekanisme sinkronisasi yang berguna untuk mengkoordinir aktivitas dari banyak thread ketika mengakses data melalui pernyataan yang telah disinkronisasi. C. Langkah pemulihan tersebut adalah dengan memperoleh sumber daya yang diperlukan oleh proses-proses yang membutuhkannya. Tetapi Semaphores mampu menanganinya. Silberschatz (1994) merumuskan sebuah strategi penanggulangan deadlock terpadu yang dapat disesuaikan dengan kondisi dan situasi yang berbeda. 3. yaitu dengan terminasi proses dan pre-emption (mundur) suatu proses. Beberapa cara digunakan untuk mendapatkan sumber daya yang diperlukan. Kelompokkan sumber daya kedalam kelas yang berbeda 2. Pendekatan untuk mengatasi deadlock dipakai tiga buah pendekatan. Gunakan strategi pengurutan linear untuk mencegah kondisi circular waityang nantinya. Metode ini banyak digunakan pada komputer mainframe berukuran besar.dilakukan. Kesimpulan Untuk mengatasi problem critical section dapat digunakan berbagai solusi software. Kondisi deadlock akan dapat terjadi jika terdapat dua atau lebih proses yang akan mengakses sumber daya yang sedang dipakai oleh proses yang lainnya. Berbagai contoh klasik problem sinkronisasi berguna untuk mengecek setiap skema baru sinkronisasi. terlebih jika hardware yang digunakan mendukung maka akan memudahkan dalam menghadapi problem sinkronisasi. strateginya sendiri berbunyi: 1. dapat diturunkan menjadi empat buah metode untuk mengatasi deadlock. Gunakan algoritma yang paling cocok untuk suatu kelas sumber daya yang berbeda satu dengan yang BAB VII MANAJEMEN MEMORY . yaitu: • • • Memastikan bahwa tidak pernah dicapai kondisi deadlock Membiarkan deadlock untuk terjadi dan memulihkannya Mengabaikan apa pun deadlock yang terjadi Dari ketiga pendekatan diatas. Namun masalah yang akan timbul dengan solusi software adalah solusi software tidak mampu menangani masalah yang lebih berat dari critical section.

maka kompilator harus membuat kode yang dapat dialokasikan. Alamat dalam kode program masih berupa simbolik. dimana proses ditempatkan di memori. Sedangkan pada waktu eksekusi menghasilkan alamat fisik dan logika yang berbeda. Waktu compile dan waktu pemanggilan menghasilkan daerah dimana alamat logika dan alamat fisik sama. Pengikatan akan ditunda sampai run-time . Alamat fisik adalah alamat yang telihat oleh memori. Kumpulan alamat fisik yang berkorespondensi dengan alamat logika disebut ruang alamat fisik.  Waktu eksekusi : Jika proses dapat dipindahkan dari suatu segmen memori ke lainnya selama dieksekusi. Gambar 5-1. Jika kemudian alamat awalnya berubah. Ruang Alamat Logika & Fisik Alamat Logika adalah alamat yang dibentuk di CPU. maka harus dicompile ulang. Memori harus dapat digunakan dengan baik. Alamat ini akan diikat oleh kompilator ke alamat memori yang dapat diakses. Untuk kemudian kode absolutnya dapat dibuat. yaitu :  Waktu compile : Jika diketahui pada waktu compile . Dalam manajemen memori ini. Proses-proses ini akan berada dalam beberapa tahapan sebelum dieksekusi. 2. Pendahuluan Memori adalah pusat kegiatan pada sebuah komputer. kita akan membahas bagaimana urutan alamat memori yang dibuat oleh program yang berjalan. kita hanya perlu menempatkan ulang kode. disebut juga alamat virtual. Memory Management Unit . Untuk mengubah dari alamat logika ke alamat fisik diperlukan suatu perangkat keras yang bernama MMU (Memory Management Unit ). karena setiap proses yang akan dijalankan. Kumpulan alamat logika yang dibuat oleh program adalah ruang alam. 3.  Waktu pemanggilan : Jika tidak diketahui dimana poses ditempatkan di memori.1. CPU mengambil instruksi dari memori sesuai yang ada pada ProgramCounter . untuk menyesuaikan dengan perubahan.dan sebagainya. harus melalui memori terlebih dahulu. suatu proses harus menunggu. akan mengikat alamat fisiknya. penambahan. Tugas sistem operasi adalah mengatur peletakan banyak proses pada suatu memori. Jika alamat awalnya berubah. Hal ini disebut antrian masukan. Setiap pengikatan akan memetakan suatu ruang alamat ke lainnya. sehingga dapat memuat banyak proses dalam suatu waktu. Pemberian Alamat Sebelum masuk ke memori. Dalam kasus pengikatan akan ditunda sampai waktu pemanggilan. Kemudian linkage editor dan loader . Instruksi dapat berupa menempatkan / menyimpan dari / ke alamat di memori. Penjilidan alamat dapat terjadi pada 3 saat. Alamat-alamat yang dibutuhkan mungkin saja direpresentasikan dalam cara yang berbeda dalam tahapan-tahapan ini.

Metode ini berguna untuk kode dalam jumlah banyak. Routine -nya dimasukkan ke memori secara bergantian. Program pengguna tidak dapat langsung mengakses memori. Ukuran dari memori fisik terbatas. Sistem operasi dapat membantu pembuat program dengan menyediakan kumpulan data routine untuk mengimplementasi pemanggilan dinamis. tapi yang dipanggil dapat jauh lebih kecil. Ini adalah tanggung jawab para pengguna untuk merancang program yang mengambil keuntungan dari metode ini.ini merupakan skema dari MMU Register utamanya disebut register relokasi. sebuah routine tidak akan dipanggil sampai diperlukan. dan menaruh lagi di memori. Keuntungan dari pemanggilan dinamis adalah routine yang tidak digunakan tidak pernah dipanggil. Pengubahan dari alamat logika ke alamat fisik adalah pusat dari manajemen memori. kemudian mengoperasikannya. Dalam kode yang besar. Overlays Overlays berguna untuk memasukkan suatu proses yang membutuhkan memori lebih besar dari yang tersedia. Ketika ada program yang menunjuk ke alamat memori. 5. kita melakukan pemanggilan dinamis. Pemanggilan Dinamis Telah kita ketahui seluruh proses dan data berada memori fisik ketika dieksekusi. karena program pengguna hanya berinterkasi dengan alamat logika. jika tidak ada maka linkage loader dipanggil untuk menempatkan routine yang diinginkan ke memori dan memperbaharui tabel alamat program untuk menyesuaikan perubahan. . walaupun ukuran kode besar. Kemudian kontrol diletakan pada routine yang baru dipanggil. Pemanggilan Dinamis tidak memerlukan bantuan sistem operasi. maka akan dicek dulu apakah routine yang dipanggil ada di dalam memori atau tidak. Semua routine diletakan di disk . pada waktu yang sama alamat ini dikirim ke memori. Idenya untuk menjaga agar di dalam memori berisi hanya instruksi dan data yang dibutuhkan dalam satuan waktu. ketika muncul kasus-kasus yang tidak lazim. Nilai pada register relokasi bertambah setiap alamat dibuat oleh proses pengguna. Untuk mendapatkan utilisasi ruang memori yang baik. seperti routine yang salah. Jika sebuah routine memanggil routine lainnya. 4. akan di lokasikan awal oleh MMU. Dengan pemanggilan dinamis. Program utama di tempatkan di memori dan dieksekusi. dalam format yang dapat dialokasikan ulang.

routine .swap proses yang telah selesai. 6. dibatasi oleh komputer mikro. tabel simbol dan routine . kode dan struktur data. Variasi dari kebijakan swapping ini. dan B membutuhkan 150K memori. Jalan program akan lebih lambat. asumsikan sebuah multiprogramming environment . Bagaimana pun perhatikan bahwa pass1 dan pass2 tidak harus berada di memori pada saat yang sama. Implementasi dapat dilakukan secara lengkap oleh user dengan berkas struktur yang sederhana. dan memasukkan proses yang lain ke dalam memori yang sudah bebas. Sebagai contoh. Swap dan Alokasi Memori • Swapping Sebuah proses harus berada di dalam memori untuk dapat dieksekusi. Sistem operasi hanya memperhatikan jika ada lebih banyak I/O dari biasanya. karena ekstra I/O dari kode overlays B melalui overlays A. kita tidak dapat menjalankan proses. dan membaca overlays B ke dalam memori. kemudian selama pass2. menimpa overlays A. dan mengirim kontrol ke pass2. sebuah two-pass assembler . Idealnya. Ketika selesai pass1. kita dapat mempartisi sebuah assembler menjadi kode pass1. Pemakaian dari overlays . pindah ke driver . Overlays A untuk pass1. Pemanggilan akan lebih cepat. Kita menambahkan sebuah driver overlays (10K) dan mulai dengan overlays A di memori. digunakan untuk algoritma penjadualan berbasis prioritas. dan sistem lain yang mempunyai batasan jumlah memori fisik. dan kemudian dibawa masuk lagi ke memori untuk melanjutkan pengeksekusian. bagaimanapun juga. lebih diutamakan. membaca dari berkas ke memori. dan pindah dari memori tersebut. dan pass2. Tugas ini membutuhkan pengetahuan yang lengkap tentang struktur dari program.swap dengan proses lain. Jika hanya 150K yang tersedia. Sementara di saat yang bersamaan. Di sisi lain pemrogram harus merancang program dengan struktur overlays yang layak. karena lebih sedikit data yang ditransfer sebelum eksekusi dimulai. Ketika waktu kuantum setiap proses sudah habis. dan kurangnya dukungan perangkat keras. Lama kuantum pun harus cukup besar sehingga jumlah komputasi yang dilakukan selama terjadi swap cukup masuk akal. sehingga proses-proses yang .Gambar Two-Pass Assembler ini merupakan skema dari two-Pass Assembler Sebagai contoh. proses tersebut akan di. dan simbol tabel. pengatur memori akan mulai men. penjadual CPU akan mengalokasikan waktu untuk proses lain di dalam memori. overlays tidak membutuhkan bantuan dari sistem operasi. Teknik otomatis menjalankan program besar dalam dalam jumlah memori fisik yang terbatas. dan mengeksekusi instruksi yang baru dibaca. akan membuat kode bahasa mesin.swap keluar proses-proses yang prioritasnya rendah. dengan penjadualan algoritma penjadualan CPU round-robin . Untuk menempatkan semuanya sekaligus. Overlays A butuh hanya 120K. overlays 2 untuk simbol tabel. dapat melakukan swapping proses-proses tersebut dengan cukup cepat sehingga beberapa proses akan selalu berada di dalam memori dan siap untuk dieksekusi saat penjadual CPU hendak menjadwal CPU. manajer memori. Kita sekarang dapat menjalankan assembler dalam 150K memori. Kita mendefinisikan dua overlays . dan routine biasa digunakan untuk kedua pass1 dan pass2. selama pass1 dibangun sebuah tabel simbol. dapat di. Sebuah proses. kita akan membutuhkan 200K memori. Seperti dalam pemanggilan dinamis. manajer memori dapat men. Ketika kuantum habis.swap sementara keluar memori ke sebuah penyimpanan sementara . untuk teknik yang lebih maju. kode pass2. Jika proses dengan prioritas lebih tinggi tiba dan meminta layanan.

Alokasi memori berkesinambungan berarti alamat memori diberikan kepada proses secara berurutan dari kecil ke besar. Hal tersebut akan menjaga agar transfer antara buffer sistem operasi dan proses memori hanya terjadi saat si proses di. dan harus cukup untuk menampung salinan dari seluruh gambaran memori untuk semua user . karena alamat fisiknya dihitung pada saat pengeksekusian. sampai apabila ada banyak proses yang berjalan yang menggunakan cukup besar memori. Hal ini dikarenakan swapping menghabiskan terlalu banyak waktu swap dan memberikan waktu eksekusi yang terlalu kecil sebagai solusi dari manajemen memori.swap proses yang sedang menunggu I/O. Pembatasan ini dinyatakan menurut metode pemberian alamat. dan harus mendukung akses langsung terhadap gambaran memori tersebut. Swapping akan berhenti lagi apabila jumlah proses yang berjalan sudah berkurang. Pada awal pengembangan komputer pribadi.Pada masa sekarang ini.swap kembali ke dalam ruang memori yang berbeda. Pada umumnya. penjadual CPU akan melakukan swap out terhadap proses-proses yang berada di dalam memori sehingga tersedia tempat untuk memasukkan proses yang hendak dieksekusi tersebut.swap kembali ke dalam memori dan dilanjutkan eksekusinya. Salah satu sistem operasi yang menggunakan versi modifikasi dari metode swapping ini adalah UNIX. tidak banyak perangkat keras (atau sistem operasi yang memanfaatkan perangkat keras) yang dapat mengimplementasikan memori manajemen yang baik. Cara ini disebut juga dengan metode roll out.swap in . proses yang telah di. Lakukan eksekusi operasi I/O hanya di buffer sistem operasi. Oleh karena itu kita harus mengalokasikan pembagian memori seefisien mungkin. Akan tetapi. Swapping membutuhkan sebuah penyimpanan sementara . Penyimpanan sementara pada umumnya adalah sebuah fast disk . proses swapping secara dasar hanya digunakan di sedikit sistem. proses-proses dengan prioritas rendah dapat di. Saat sebuah penjadual CPU ingin menjalankan sebuah proses.swap kembali menempati ruang memori yang sama dengan yang ditempatinya sebelum proses tersebut keluar dari memori. ia akan memeriksa apakah proses yang mengantri di ready queue tersebut sudah berada di dalam memori tersebut atau belum. roll in . maka proses tersebut dapat di. Tetapi apabila pemberian alamat dilakukan pada saat waktu eksekusi .swap keluar akan di. Sistem mengatur ready queue yang berisikan semua proses yang gambaran memori nya berada di memori dan siap untuk dijalankan. Apabila pemberian alamat dilakukan pada saat waktu pembuatan atau waktu pemanggilan . melainkan digunakan untuk menjalankan banyak proses berukuran besar dengan menggunakan versi modifikasi dari metode swapping . Swapping berada dalam keadaan non-aktif. Cara untuk mengatasi masalah ini adalah: 1.prioritasnya lebih tinggi tersebut dapat dieksekusi. Keuntungan menggunakan . Waktu pergantian isi dalam sebuah sistem yang melakukan swapping pada umumnya cukup tinggi. • Pengalokasian Memori  Contiguous Memory Allocation Memori utama harus dapat melayani baik sistem operasi maupun proses user. banyak sistem yang menggunakan versi modifikasi dari metode swapping ini. Salah satunya adalah dengan cara alokasi memori berkesinambungan . Setelah proses-proses yang memiliki prioritas lebih tinggi tersebut selesai dieksekusi. 2. Setelah itu register dikembalikan seperti semula dan proses yang diinginkan akan dieksekusi. Hindari men. maka proses tersebut tidak dapat dipindahkan ke lokasi memori lain. Apabila belum.

CPU akan mencari hole yang cukup besar untuk menampung proses tersebut. Sederhana 2. memori dipartisi menjadi blok-blok yang ukurannya tetap yang ditentukan dari awal. Sistem operasi setiap saat selalu memiliki catatan jumlah memori yang tersedia dan antrian masukan. Sedangkan sistem partisi banyak dinamis artinya memori dipartisi menjadi bagian-bagian dengan jumlah dan besar yang tidak tentu. seluruh memori dapat diisi oleh proses user . dan mempersiapkan sisanya untuk menampung proses-proses yang akan datang kemudian (seandainya ada). Satu bagian akan dialokasikan untuk menerima proses tersebut. Sistem operasi dapat mengatur antrian masukan berdasarkan algoritma penjadualan yang digunakan. proses akan dimasukkan ke dalam antrian masukan. Setelah proses selesai. Sistem partisi tunggal berarti alamat memori yang akan dialokasikan untuk proses adalah alamat memori pertama setelah pengalokasian sebelumnya. sistem operasi akan mencari hole yang cukup besar untuk menampung memori tersebut. atau dapat mencari proses lain di antrian masukan yang kebutuhan memorinya memenuhi jumlah memori yang tersedia. untuk menentukan proses mana yang dapat diberikan alokasi memori. Pada umumnya. proses tersebut akan melepas memori dan mengembalikannya sebagai hole-hole . sistem harus memeriksa apakah ada proses yang menunggu yang dapat dimasukkan ke dalam ruang memori yang baru terbentuk tersebut. sementara bagian lainnya tidak digunakan dan siap menampung proses lain. CPU akan mengalokasikan memori sebanyak yang dibutuhkan oleh proses tersebut. Memori dialokasikan untuk proses sampai akhirnya kebutuhan memori dari proses selanjutnya tidak dapat dipenuhi (tidak ada hole yang cukup besar untuk menampung proses tersebut). Sistem operasi kemudian dapat menunggu sampai ada blok memori cukup besar yang kosong. proses tersebut akan melepas memori tempat dia berada. kita akan memfokuskan pembahasan pada sistem partisi banyak. Mendukung proteksi memori Sedangkan kerugian dari menggunakan alokasi memori berkesinambungan adalah apabila tidak semua proses dialokasikan di waktu yang sama. Hal ini disebut Permasalahan alokasi penyimpanan dinamis. maupun menggunakan sistem partisi tunggal. Sedangkan sistem partisi banyak berarti sistem operasi menyimpan informasi tentang semua bagian memori yang tersedia untuk dapat diisi oleh proses-proses (disebut hole ). Apabila hole yang tersedia terlalu besar. Pada intinya. Alokasi memori berkesinambungan dapat dilakukan baik menggunakan sistem partisi banyak. kumpulan hole-hole dalam berbagai ukuran tersebar di seluruh memori sepanjang waktu. Pada saat ini.alokasi memori berkesinambungan dibandingkan menggunakan alokasi memori tidak berkesinambungan adalah: 1. Apabila ada 2 hole yang kecil yang berdekatan. dan bagian mana yang sudah diisi. keduanya akan bergabung untuk membentuk hole yang lebih besar. Untuk selanjutnya. Setelah sebuah proses mendapat alokasi memori. Sistem operasi menyimpan sebuah tabel yang menunjukkan bagian mana dari memori yang memungkinkan untuk menyimpan proses. Saat proses memasuki sistem. Sistem operasi akan menyimpan besar memori yang dibutuhkan oleh setiap proses dan jumlah memori kosong yang tersedia. Apabila ada proses yang datang. yakni bagaimana . akan dipecah menjadi 2. Sistem partisi banyak kemudian dibagi lagi menjadi sistem partisi banyak tetap. akan menjadi sangat tidak efektif sehingga mempercepat habisnya memori. Setelah proses tersebut dimatikan. Hal yang membedakan keduanya adalah untuk sistem partisi banyak tetap. dan sistem partisi banyak dinamis. Saat sebuah proses datang dan membutuhkan memori. Cepat 3. Setelah menemukannya. yang mana dapat diisi kembali oleh proses lain dari antrian masukan. proses tersebut akan dimasukkan ke dalam memori.

First fit : Mengalokasikan hole pertama ditemukan yang besarnya mencukupi. Pencarian dimulai dari awal. karena setiap metode memiliki kelebihan dan kekurangan masing-masing. Penghalamanan .  Fragmentasi Fragmentasi adalah munculnya hole-hole yang tidak cukup besar untuk menampung permintaan dari proses. • Worst fit : Mengalokasikan hole terbesar yang ada. diantaranya adalah: 1. Hal ini disebut dengan aturan 50% . bukan tidak mungkin akan cukup untuk menampung sebuah proses. kecuali apabila hole-hole sudah disusun berdasarkan ukuran. sebanyak 0. Salah satu kondisi terburuk adalah apabila kita memiliki memori terbuang setiap 2 proses. Compactation . Menggunakan best fit dan worst fit berarti kita harus selalu memulai pencarian hole dari awal. Gambar. Fragmentasi ekstern dapat diatasi dengan beberapa cara. Best fit : Mengalokasikan hole dengan besar minimum yang mencukupi permintaan. Metode worst fit akan menghasilkan sisa hole yang tersbesar. 2. Memilih yang terbaik diantara keempat metode diatas adalah sepenuhnya tergantung kepada user . Algoritma alokasi penyimpanan dinamis manapun yang digunakan. Fragmentasi dapat berupa fragmentasi internal maupun fragmentasi eksternal. 2. Bahkan hal ini bisa menjadi fatal. sehingga proses dapat masuk ke ruang memori kosong tersebut.5N blok lain akan terbuang karena fragmentasi. yaitu mengatur kembali isi memori agar memori yang kosong diletakkan bersama di suatu bagian yang besar. 3.memenuhi permintaan sebesar n dari kumpulan hole-hole yang tersedia. Sebuah contoh statistik menunjukkan bahwa saat menggunakan metode first fit . Fragmentasi ekstern muncul apabila jumlah keseluruhan memori kosong yang tersedia memang mencukupi untuk menampung permintaan tempat dari proses. Ada berbagai solusi untuk mengatasi hal ini. tetapi letaknya tidak berkesinambungan atau terpecah menjadi beberapa bagian kecil sehingga proses tidak dapat masuk. Jumlah sebanyak itu berarti kurang lebih setengah dari memori tidak dapat digunakan. Sedangkan fragmentasi intern muncul apabila jumlah memori yang diberikan oleh penjadual CPU untuk ditempati proses lebih besar daripada yang diminta proses karena adanya selisih antara permintaan proses dengan alokasi hole yang sudah ditetapkan. dari N blok teralokasi. sementara metode best fit akan menghasilkan sisa hole yang terkecil. Next fit : Mengalokasikan hole pertama ditemukan yang besarnya mencukupi. bahkan setelah dioptimisasi. yaitu: 1. Apabila semua memori terbuang itu digabungkan. tetap tidak bisa menutup kemungkinan terjadinya fragmentasi. Pencarian dimulai dari akhir pencarian sebelumnya.

Bagaimanapun. Alamat logis dari sebuah segmen adalah alamat dua dimensi. Arsitektur Segmentasi Ukuran tiap segmen tidak harus sama. Saat sebuah program atau proses dimasukkan ke CPU. Dengan pemberian halaman bias mencegah masalah penting dari pengepasan besar ukuran memori yang bervariasi kedalam penyimpanan cadangan. yaitu unit yang terdiri dari beberapa bagian yang berjenis yang sama. Base menunjukkan alamat awal segmen (dari alamat fisik) dan limit menunjukkan panjang segmen. Penerjemahan Halaman 3. procedure dan sebagainya. Ciri tertentu itu adalah nama segmen dan panjang segmen. ukuran tiap segmen tidak harus sama dan memiliki ’ciri’ tertentu. mengingat besar hole yang disediakan selalu tetap. Dengan demikian. Gambar 5-4. variable lokal. Oleh karena itu.Yang dimaksud dengan pemberian halaman adalah suatu metode yang memungkinkan suatu alamat fisik memori yang tersedia dapat tidak berurutan. Contoh: program utama. . Segmentasi Fragmentasi intern hampir tidak dapat dihindarkan apabila kita menggunakan sistem partisi banyak berukuran tetap. Nama segmen dirujuk oleh nomor segmen sedangkan panjang segmen ditentukan oleh offset . terutama pada 64 bit microprocessor. Untuk bisa mengimplementasikan solusi ini adalah melalui pengunaan dari skema pemberian halaman. sedangkan alamat fisik memori adalah alamat satu dimensi. desain yang ada baru2 ini telah mengimplementasikan dengan menggabungkan hardware dan sistem operasi. Segmentasi adalah skema manajemen memori dengan cara membagi memori menjadi segmen-segmen. Pemberian halaman bisa menjadi solusi untuk pemecahan masalah luar. harus ditemukan ruang untuk penyimpanan cadangan. a. segmen yang berbeda dapat ditempatkan dimana saja di dalam memori utama (dapat menggunakan cara first-fit atau best-fit ). Segmen adalah sebuah unit logis . Ketika beberapa pecahan kode dari data yang tersisa di memori utama perlu untuk ditukar keluar. agar implementasinya menjadi mudah ( dari alamat logis ke alamat fisik ) diperlukan Tabel Segmen yang yang terdiri dari base dan limit . Berbeda dengan halaman. Masalah pemecahan kode didiskusikan dengan kaitan bahwa pengaksesannya lebih lambat. sebuah program dibagi menjadi segmen-segmen. Biasanya bagian yang menunjang untuk pemberian halaman telah ditangani oleh hardware.

Kelebihan Segmentasi: saling berbagi – proteksi. Saling berbagi ini muncul di level segmen dan pada saat ini terjadi semua informasidapat turut terbagi. Gambar. Segmentasi dengan Pemberian Halaman Kelebihan Pemberian Halaman : tidak ada fragmentasi luar .Gambar. Arsitektur Segmentasi alamat logisnya : s dan d . yang dijumlahkan itu adalah alamat fisik dari segmen tersebut. Caranya: menempatkan sebuah array di dalam segmen itu sehingga perangkat keras manajemen memori secara otomatis akan mengecek indeks array -nya legal atau tidak. Bitproteksi ini berguna untuk mencegah akses ilegal ke memori. c. s adalah nomor segmen / index di dalam tabel segmen d adalah offset . Segmentasi dengan Pemberian Halaman . Saling Berbagi dan Proteksi Segmen dapat terbagi jika terdapat elemen di tabel segmen yang berasal dari dua proses yang berbeda yang menunjuk pada alamat fisik yang sama. b. Proteksi dapat terjadi karena ada bit-proteksi yang berhubungan dengan setiap elemen dari segmen tabel. Jika offset kurang dari nol dan tidak lebih besar dari besarnya limit maka base akan dijumlahkan dengan d ( offset ) .alokasinya cepat. Masalah dalam Segmentasi • Segmen dapat Membesar • Muncul Fragmentasi Luar • Bila Ada Proses yang Besar d.

e. Penggunaan Segmentasi MULTICS Gambar. Penggunaan Segmentasi dengan Pemberian Halaman pada INTEL 30386 . Penggunaan Segmentasi dengan Pemberian Halaman pada MULTICS INTEL Gambar.

Inggris (Hariyanto. b. list dan tabel. Memori Virtual Manajemen memori pada intinya adalah menempatkan semua bagian proses yang akan dijalankan kedalam memori sebelum proses itu dijalankan. Tetapi tidak semua bagian dari proses itu akan dijalankan. misalnya: • Pernyataan atau pilihan yang hanya akan dieksekusi pada kondisi tertentu. Berbeda dengan keterbatasan yang dimiliki oleh memori fisik. Akan tetapi. semua bagian proses itu harus memiliki tempat sendiri di dalam memori fisik. Contoh: array . hal ini akan menurunkan optimalisasi utilitas dari ruang memori fisik. Teknik ini menyembunyikan aspek-aspek fisik memori dari user dengan menjadikan memori sebagai lokasi alamat virtual berupa byte yang tidak terbatas dan menaruh beberapa bagian dari memori virtual yang berada di memori logis.7. • Fungsi-fungsi yang jarang digunakan. pada memori yang sangat terbatas. melebihi daya tampung dari memori fisik yang tersedia. Prinsip dari memori virtual yang patut diingat adalah bahwa: "Kecepatan maksimum eksekusi proses di memori virtual dapat sama. "Konsep memori virtual pertama kali dikemukakan Fotheringham pada tahun 1961 pada sistem computer Atlas di Universitas Manchester. tetapi tidak pernah melampaui kecepatan eksekusi proses yang sama di sistem tanpa menggunakan memori virtual. memori virtual dapat menampung program dalam skala besar. Bambang : 2001). a. Pengertian Memori virtual adalah suatu teknik yang memisahkan antara memori logis dan memori fisiknya. Sebagai solusi dari masalah-masalah ini digunakanlah konsep memori virtual. Pada memori berkapasitas besar. Untuk itu. Keuntungan . hal-hal ini tidak akan menjadi masalah. • Pengalokasian memori yang lebih besar dari yang dibutuhkan. Contohnya adalah: pesan-pesan error yang hanya muncul bila terjadi kesalahan saat program dijalankan.

• Space menjadi lebih leluasa karena berkurangnya memori fisik yang digunakan. karena itu jarang diimplementasikan. Misalnya untuk program butuh membaca dari disk dan memasukkan dalam memory setiap kali diakses. Contoh: IBM OS/2. Perangkat keras . Demand Paging Demand paging atau permintaan pemberian halaman adalah salah satu implementasi dari memori virtual yang paling umum digunakan. Hal ini memberikan keuntungan: • Berkurangnya proses I/O yang dibutuhkan (lalu lintas I/O menjadi rendah). Sistem operasi menyimpan bagian-bagian proses yang sedang digunakan di memori fisik ( main memory ) dan sisanya diletakkan di disk. maka proses dinyatakan mengalami page fault . • Meningkatnya respon. yaitu: • Sedikit I/O yang dibutuhkan. maka keuntungannya sama dengan keuntungan memori virtual. Implementasi Gagasan utama dari memori virtual adalah ukuran gabungan program. Tiap program dialokasikan 256 KByte dan bagian-bagian proses swap in ) masuk ke dalam memori fisik begitu diperlukan dan akan keluar ( swapout ) jika sedang tidak diperlukan. Ruang memori yang masih tersedia luas memungkinkan komputer untuk menerima lebih banyak permintaan dari user . c. Pesan-pesan error hanya dimasukkan jika terjadi error. yaitu: Page ada dan sudah berada di memori. Saat terjadi kasus kedua dan ketiga. Begitu bagian yang berada di disk diperlukan. baik di memori maupun di disk ( invalid reference --> abort ).Sebagaimana dikatakan di atas bahwa hanya sebagian dari program yang diletakkan di memori fisik. • Sedikit memori yang dibutuhkan • Respon yang lebih cepat • Dapat melayani lebih banyak user a. untuk program 10 MB tidak seluruh bagian dimasukkan dalam memori fisik. karena menurunnya beban I/O dan memori. Memori virtual diimplementasikan dalam sistem multiprogramming. Page ada tetapi masih berada di disk belum diberada di memori (harus menunggu sampai dimasukkan). Karena demand paging merupakan implementasi dari memori virtual. Untuk itu diperlukan bantuan perangkat keras untuk mengetahui lokasi dari page saat ia diperlukan. data dan stack melampaui jumlah memori fisik yang tersedia. • Permintaan segmentasi ( demand segmentation ). maka bagian di memori yang tidak diperlukan akan dikeluarkan dari memori fisik ( swap-out) dan diganti ( swap-in ) oleh bagian disk yang diperlukan itu. Misalnya: 10 program dengan ukuran 2 Mb dapat berjalan di memori berkapasitas 4 Mb. Permasalahan pada Demand Paging Ada tiga kemungkinan kasus yang dapat terjadi pada saat dilakukan pengecekan pada page yang dibutuhkan. Algoritma dari permintaan segmentasi lebih kompleks. Memori virtual dapat dilakukan melalui dua cara: • Permintaan pemberian halaman ( demand paging ). Statusnya valid ("1"). Page tidak ada. sistem multiprogramming menjadi lebih efisien. 8. • Bertambahnya jumlah user yang dapat dilayani. Statusnya invalid ("0"). Dengan demikian. Contoh. Demand paging ) pada prinsipnya hampir sama dengan permintaan halaman ( paging ) hanya saja halaman ( page ) tidak akan dibawa ke ke dalam memori fisik sampai ia benar-benar diperlukan.

9. mengizinkan proses untuk menggunakan sebuah berkas secara bersamaan pada keadaan read only . tapi tetap memiliki salinan dari data yang diubah. maka dapat ditentukan page mana yang ada di dalam memori dan mana yang tidak ada di dalam memori. Memori virtual memetakan tiap proses ke dalam halaman yang sama pada memori virtual.akan menjebaknya ke dalam Sistem Operasi. Bagan proses memory-mapped files 10. Algoritma Pemindahan Halaman Pemindahan halaman diimplementasikan dalam algoritma yang bertujuan untuk menghasilkan tingkat kesalahan halaman terendah. yaitu halaman yang menyimpan salinan dari blok disk. Pengesetan bit: • Bit 1 --> page berada di memori • Bit 0 --> page tidak berada di memori. Proses yang banyak diperbolehkan untuk memetakan berkas yang sama ke dalam memori virtual dari masing-masing berkas. Ada beberapa algoritma pemindahan halaman yang berbeda. Dengan sistem pemetaan memori sistem pemangggilan dapat juga mendukung fungsi copy-on-write . (Dengan inisialisasi: semua bit di-set 0) Apabila ternyata hasil dari translasi. Proses membaca dan menulis sebuah berkas ditangani oleh akses memori routine agar memudahkan mengakses dan menggunakan sebuah berkas yaitu dengan mengizinkan manipulasi berkas melalui memori dibandingkan memanggil dengan sistem pemanggilan read() dan write(). . agar data dapat digunakan secara bersamaan. sedangkan invalid berarti page tidak ada (kasus 3) atau page ada tapi tidak ditemui di memori (kasus 2).Tidak Valid Dengan meminjam konsep yang sudah pernah dijelaskan dalam Pokok Bahasan 5.invalid . bit page = 0. Memory-Mapped Files Kita dapat menganggap berkas I/O sebagai akses memori routine pada teknik memori virtual. Berikut ini merupakan bagan dari proses memory-mapped files Gambar. Konsep itu adalah skema bit valid . Beberapa sistem operasi menyediakan pemetaan memori hanya melalui sistem pemanggilan yang khusus dan menjaga semua berkas I/O yang lain dengan menggunakan sistem pemanggilan yang biasa. berarti page fault terjadi. Dengan teknik pemetaan memori sebuah blok disk dapat dipetakan ke ke sebuah halaman pada memori. b. Skema Bit Valid . Cara ini disebut dengan "pemetaan memori" sebuah berkas yang mengizinkan sebuah bagian dari alamat virtual dihubungkan dengan sebuah berkas. di mana di sini pengertian valid berarti bahwa page legal dan berada dalam memori (kasus 1).

biasanya dikombinasikan dengan algoritma lain. . yang dikenal dengan nama Anomali Belady. a. dan lain sebagainya. Kelemahan dari algoritma FIFO adalah kinerjanya yang tidak selalu baik. Contoh Algoritma FIFO b. Di samping itu dalam beberapa kasus. Algoritma FIFO (First In First Out) Prinsip yang digunakan dalam algoritma FIFO yaitu halaman yang diganti adalah halaman yang paling lama berada di memori. padahal sistem operasi tidak dapat mengetahui halaman yang akan muncul tersebut. memilih dengan berdasarkan pada penggunaan. akan tetapi paling jarang digunakan dalam bentuk aslinya. Kelebihannya antara lain dapat menghindari terjadinya anomali Belady dan juga memiliki tingkat kesalahan halaman yang terendah diantara algoritma-algoritma pemindahan halaman yang lain. Pengimplementasian algoritma FIFO dilakukan dengan menggunakan antrianuntuk menandakan halaman yang sedang berada di dalam memori. seperti dengan memilih secara acak. Meskipun tampaknya mudah untuk dijelaskan. Hal ini disebabkan karena ada kemungkinan halaman yang baru saja keluar dari memori ternyata dibutuhkan kembali. Apabila antrian telah penuh dan ada halaman yang baru diakses maka halaman yang berada di bagian depan (kepala) dari antrian akan diganti. tetapi algoritma ini sulit atau hampir tidak mungkin untuk diimplementasikan karena sistem operasi harus dapat mengetahui halaman-halaman mana saja yang akan muncul. Algoritma ini adalah algoritma pemindahan halaman yang paling mudah diimplementasikan. umur halaman. Algoritma Optimal Algoritma optimal pada prinsipnya akan mengganti halaman yang tidak akan digunakan untuk jangka waktu yang paling lama. tingkat kesalahan halaman justru bertambah seiring dengan meningkatnya jumlah frame. Pemilihan algoritma yang kurang tepat dapat menyebabkan peningkatan tingkat kesalahan halaman sehingga proses akan berjalan lebih lambat. Gambar. Setiap halaman baru yang diakses diletakkan di bagian belakang (ekor) dari antrian.Pemilihan halaman mana yang akan diganti dalam penggunaan algoritma-algoritma tersebut bisa dilakukan dengan berbagai cara.

yaitu halaman yang diganti adalah halaman yang tidak digunakan dalam jangka waktu terlama. Halaman yang diganti adalah halaman yang memiliki nilai terkecil. Algoritma Perkiraan LRU Pada dasarnya algoritma perkiraan LRU memiliki prinsip yang sama dengan algoritma LRU. Setiap selang beberapa waktu. tidak akan mengalami anomali Belady. yaitu: • Algoritma Additional-Reference-Bits Setiap halaman akan memiliki bit acuan yang terdiri dari 8 bit byte sebagai penanda. contohnya : 00000000. Pada awalnya semua bit nilainya 0. Pada awalnya bit acuan diinisialisasikan oleh perangkat keras dengan nilai 0. Setiap halaman yang berbeda memiliki bit acuan. Pengimplementasiannya dapat dilakukan dengan dua cara. maka halaman yang berada di bagian paling bawah stack akan diganti. akan diletakkan di bagian paling atas stack. Setiap halaman memiliki nilai.sehingga setiap kali halaman baru diakses tidak perlu mencari kembali halaman yang akan diganti. pencatat waktu melakukan interupsi kepada sistem operasi. Akan tetapi cara ini lebih mahal implementasinya dibandingkan dengan menggunakan counter. Perbedaannya dengan algoritma LRU terletak pada penggunaan bit acuan. Contoh Algoritma Optimal c. nilai pada clock akan ditambah 1. Contoh Algoritma LRU d. Algoritma LRU (Least Recently Used) Algoritma LRU akan mengganti halaman yang telah tidak digunakan dalam jangka waktu terlama. Kelebihan dari algoritma LRU yaitu seperti halnya pada algoritma optimal. kemudian sistem operasi menggeser 1 bit ke kanan. Apabila ada halaman yang perlu diganti. Jadi halaman yang selalu digunakan pada setiap periode akan memiliki nilai 11111111. hanya saja dilakukan modifikasi pada algoritma ini untuk mendapatkan hasil yang lebih baik. Ada beberapa cara untuk mengimplementasikan algoritma ini. Gambar. • Stack Penggunaan implementasi ini dilakukan dengan menggunakan stack yang menandakan halaman-halaman yang berada di memori. Setiap kali suatu halaman diakses. yaitu dengan menggunakan: • CounterCara ini dilakukan dengan menggunakan clock. Nilainya akan berubah menjadi 1 bila dilakukan akses ke halaman tersebut.Gambar. Halaman yang diganti adalah halaman yang memiliki nilai terkecil. • Algoritma Second-Chance . Ketika mengakses ke suatu page baru.

• Algoritma MFU (Most Frequently Used) Halaman yang diganti adalah halaman yang paling sering dipakai (nilai counter terbesar) dengan alasan bahwa halaman dengan nilai terkecil mungkin baru saja dimasukkan dan baru digunakan f.0) digunakan tapi tidak dimodifikasi. Algoritma Counting Dilakukan dengan menyimpan counter dari nomor acuan yang sudah dibuat untuk masing-masing halaman. Algoritma Page Buffering Sistem menyimpan pool dari frame yang kosong. Ketika proses selesai atau diterminasi. Strategi Alokasi Frame a. Prosedur ini memungkinkan suatu proses mengulang dari awal secepat mungkin. Algoritma Counting dapat dikembangkan menjadi 2 skema dibawah ini: • Algoritma LFU (Least Frequently Used) Halaman yang diganti adalah halaman yang paling sedikit dipakai (nilai counter terkecil) dengan alasan bahwa halaman yang digunakan secara aktif akan memiliki nilai acuan yang besar. halaman tidak diganti tetapi bit acuan diubah menjadi 0 dan dilakukan pencarian kembali. halaman dapat diganti. tanpa perlu menunggu halaman yang akan dipindahkan untuk ditulis ke disk karena frame -nya telah ditambahkan ke dalam pool frame kosong. Apabila nilai bit acuan-nya 0. Saat frame bebas sudah habis. Sebanyak seratuskesalahan halaman pertama akan mendapatkan frame dari daftar frame bebas. Alokasi Frame Hal yang mendasari strategi alokasi frame yang menyangkut memori virtual adalah bagaimana membagi memori yang bebas untuk beberapa proses yang sedang dikerjakan. akan terjadi sederetan kesalahan halaman.Algoritma ini sering juga disebut algoritma clock karena pengimplementasiannya dilakukan dengan menggunakan antrian melingkar yang berarti menggunakan juga prinsip algoritma FIFO disamping menggunakan algoritma LRU. Ketika sebuah user mulai dijalankan. dan seterusnya.  (0. seratus frame tersebut akan disimpan lagi pada daftar frame bebas.  (1. halaman ini mungkin akan segera digunakan lagi dan halaman ini perlu ditulis ke disk sebelum dipindahkan. yaitu bit acuan dan bit modifikasi. Ada beberapa variasi untuk strategi . keseratus frame tersebut akan ditaruh pada daftar frame bebas.1) digunakan dan dimodifikasi. Penggunaan algoritma ini memiliki kekurangan yaitu lebih mahal. ada kemungkinan halaman ini akan segera digunakan lagi. Dan apabila nilai bit acuan-nya 1.1) tidak digunakan tapi dimodifikasi. Teknik seperti ini digunakan dalam sistem VAX/ VMS. Ada 4 kemungkinan yang dapat terjadi :  (0. • Algoritma Enhanced Second-Chance Algoritma ini mempertimbangkan 2 hal sekaligus.0) tidak digunakan dan tidak dimodifikasi. bit terbaik untuk dipindahkan. sebuah algoritma pergantian halaman akan digunakan untuk memilih salah satu dari seratus halaman di memori yang diganti dengan yang ke seratus satu. Misalnya sebuah sistem mempunyai seratus frame bebas untuk proses user. tidak terlalu baik untuk dipindahkan karena halaman ini perlu ditulis sebelum dipindahkan. Dapat kita ambil 1 contoh yang mudah pada sistem satu pemakai. e.  (1. 11. Untuk pure demand paging.

ada frame bebas yang dapat digunakan untuk paging. Satu blok karakter yang akan dipindahkan dan daerah tujuan perpindahan juga dapat memakai dua halaman. Sehingga kita harus mempunyai jumlah frame yang cukup untuk menampung semua halaman yang dibutuhkan oleh sebuah instruksi. sebanyak m/n frame untuk tiap proses. Ukuran memori virtual untuk proses pi = si. jika jumlah total dari frame yang tersedia adalah m. Saat ruang ini tidak digunakan oleh sistem operasi. setiap proses akan kehilangan beberapa frame guna menyediakan memori yang dibutuhkan untuk proses yang baru. Sebagai contoh. Frame yang tersisa. Kita juga dapat menyimpan tiga frame bebas dari daftar frame bebas. Untuk menyelesaikan masalah ini. Algoritma ini memberikan bagian yang sama. tidak masuk akal jika kita memberikan masing-masing proses 31 frame. maka tiap prosesakan mendapatkan 20 frame. Di sisi lain. Sebuah alternatif yaitu pengertian bahwa berbagai proses akan membutuhkan jumlah memori yang berbeda. proses yang berprioritas tinggi diperlakukan sama dengan proses yang berprioritas rendah. . instruksi ini butuh 6 bit dan dapat memakai dua halaman. Lalu. tiap operannya mungkin merujuk tidak langsung. Algoritma Alokasi Algoritma pertama yaitu equal allocation. Mengingat hal itu. Sebagai tambahan. Satu pendekatan adalah menggunakan proportional allocation scheme dimana perbandingan frame-nya tidak tergantung pada ukuran relatif dari proses. 21 frame lain akan terbuang percuma. Hal yang utama adalah berapa minimum frame yang harus dialokasikan agar jika sebuah instruksi dijalankan. Sebagai contoh ada 100 frame tersisa dan 5 proses. melainkan lebih pada prioritas proses. Jumlah Frame Minimum Ada suatu batasan dalam mengalokasikan frame.sederhana ini antara lain kita bisa meminta sistem operasi untuk mengalokasikan seluruh buffer dan ruang tabelnya dari daftar frame bebas. semua informasinya ada dalam memori. instruksi tersebut harus diulang. sehingga situasi ini membutuhkan enam frame. Jika ada sebuah proses sebesar 10K dan sebuah proses basis data 127K dan hanya kedua proses ini yang berjalan pada sistem. dengan equal allocation ataupun proportional allocation. Jika terjadi kesalahan halaman sebelum eksekusi selesai. Proses pertama hanya butuh 10 frame. sebanyak 3 buah dapat digunakan sebagai frame bebas cadangan. kita menggunakan algoritma kedua yaitu proportional allocation. maka ketika ada 62 frame bebas. jika multiprogramming level-nya menurun. sehingga instruksi tersebut bisa membutuhkan dua halaman. Pada dasarnya yaitu proses pengguna diberikan frame bebas yang mana saja. Karena instruksi tersebut adalah instruksi perpindahan dari penyimpanan ke penyimpanan. c. kemudian ditulis ke disk. Hal ini terjadi karena multiprogramming menaruh dua (atau lebih) proses di memori pada waktu yang bersamaan. Saat pertukaran halaman terjadi. penggantinya dapat dipilih. kita ingin memberi memori yang lebih pada proses yang berprioritas tinggi untuk mempercepat eksekusi-nya. b. dimana ai mendekati : ai = si / S x mDalam kedua strategi ini. ruang ini bisa digunakan untuk mendukung paging dari user. sehingga total ada enam frame. sehingga ketika terjadi page fault. frame yang sudah dialokasikan pada bagian proses sekarang bias disebar ke proses-proses yang masih tersisa. kita mengalokasikan proses ai ke proses pi. Kasus terburuk untuk IBM 370 adalah instruksi MVC. Jika multiprogramming level-nya meningkat. instruksi move pada PDP-11 adalah lebih dari satu kata untuk beberapa modus pengalamatan. sementara proses user tetap berjalan. alokasi untuk setiap proses bisa bervariasi berdasarkan multiprogramming level-nya. dan S = si. Masalah yang muncul ketika demand paging dikombinasikan dengan multiprogramming. Jumlah frame mimimum yang bisa dialokasikan ditentukan oleh arsitektur komputer. Berdasarkan definisi tersebut. kita tidak dapat mengalokasikan frame lebih dari jumlah frame yang ada. tentu saja. atau tergantung kombinasi dari ukuran dan prioritas. Kita mengalokasikan memori yang tersedia kepada setiap proses tergantung pada ukurannya. bagaimanapun juga.

Jika proses yang dikerjakan CPU hanya sedikit. Dalam Penggantian Lokal. Dengan Penggantian Global. Pada titik ini terjadi aktifitas paging yang tinggi yang akan menyebabkan . Penggantian Lokal dapat menyembunyikan sebuah proses dengan membuatnya tidak tersedia bagi proses lain. maka halaman yang diganti adalah halaman yang dalam waktu dekat berkemungkinan akan digunakan kembali. Halaman-halaman dalam memori untuk sebuah proses tergantung tidak hanya pada prilaku paging dari proses tersebut. Thrashing Thrashing adalah keadaan dimana terdapat akitifitas yang tinggi dari paging. Dalam penggantian lokal. Maka hal ini mengakibatkan kasalahan halaman. Penggantian lokal memberi aturan bahwa setiap proses hanya boleh memilih frame pengganti dari frame-frame yang memang dialokasikan untuk proses itu sendiri. 12. d. Penyebab Thrashing utilitas dari CPU selalu diharapkan tinggi hingga mendekati 100%. Hal ini memang efisien. Masalah pada algoritma Penggantian Global adalah bahwa sebuah proses tidak bias mengontrol kasalahan halaman-nya sendiri. Penggantian Global dan Penggantian Lokal. walaupun frame tersebut sedang dialokasikan untuk proses yang lain.Algoritma ini dinamakan alokasi prioritas. Alokasi Global lawan Lokal Hal penting lainnya dalam pengalokasian frame adalah pergantian halaman. Suatu proses dapat mengurangi jumlah frame yang digunakan dengan alokasi yang minimum. misalkan ada sebuah skema alokasi yang memperbolehkan proses berprioritas tinggi untuk mencari frame pengganti dari proses yang berprioritas rendah. Jika Utilitas CPU rendah. tetap ada halaman dalam jumlah besar yang memiliki kondisi aktif digunakan.5 detik untuk satu eksekusi dan 10. page-page dalam memori untuk sebuah proses hanya dipengaruhi prilaku paging proses itu sendiri. proses yang sama dapat tampil berbeda (memerlukan 0. secara umum Penggantian Global menghasilkan sistem throughput yang lebih bagus. Proses berprioritas tinggi ini dapat mancari frame pengganti dari frame-frame yang telah dialokasikan untuknya atau dari frameframe yang dialokasikan untuk proses berprioritas lebih rendah. Jadi. menambah jumlah proses justru akan menyebabkan utilitas CPU turun drastis dikarenakan proses-proses yang baru tidak mempunya memori yang cukup untuk berjalan secara efisien. tetapi juga pada prilaku paging dari proses lain. Utilitas dari CPU bisa ditingkatkan dengan meningkatkan jumlah proses. Pada titik tertentu. Karena itu. Tetapi jika sebuah proses tidak memiliki frame yang cukup. Hal ini mengakibatkan kasalahan halaman yang terus-menerus a. Proses-proses bersaing mendapatkan frame. Pergantian global memperbolehkan sebuah proses mencari frame pengganti dari semua frame-frame yang ada. Untuk seterusnya sistem harus mengganti beberapa halaman menjadi halaman yang akan dibutuhkan. jumlah frame yang teralokasi tidak berubah.3 detik untuk eksekusi berikutnya). maka sistem akan menambah derajat dari multiprogramming yang berarti menambah jumlah proses yang sedang berjalan. Aktifitas paging yang tinggi ini maksudnya adalah pada saat sistem sibuk melakukan swap-in dan swap-out dikarenakan banyak kasalahan halaman yang terjadi. tetapi ada kemungkinan proses lain tidak mendapatkan frame karena framenya terambil oleh proses lain. Karena semua halamannya aktif digunakan. sehingga meningkatkan jumlah frame yang teralokasi pada proses itu sendiri (asumsi bahwa proses lain tidak memilih frame proses tersebut untuk penggantian. ada kemungkinan sebuah proses hanya menyeleksi frame-frame yang teralokasi pada proses lain. maka dari itu kita dapat mengklasifikasikan algoritma penggantian halaman kedalam dua kategori. Sebagai contoh. maka itu artinya metode yang paling sering digunakan. menggunakan halaman yang lebih sedikit pada memori. maka kita tidak bisa menjaga agar CPU sibuk.

Struktur Program Pemilihan struktur data dan struktur permograman secara cermat dapat meningkatkan locality dan karenanya menurunkan tingkat kesalahan halaman dan jumlah halaman di working set. Dengan pergantian lokal. jumlah total dari referensi dan jumlah total dari halaman yang disentuh. derajat dari multiprogramming harus diturunkan.thrashing. di sisi lain. Suatu program pada umumnya dibuat pada beberapa lokalitasm sehingga ada kemungkinan terjadi overlap. Jika proses mulai thrashing. Hal ini mengakibatkan kesalahan halaman meningkat tajam. referensi akan locality hanyalah satu ukuran dari efisiensi penggunaan struktur data. Pada gambar di bawah ini tergambar grafik dimana utilitas dari CPU akan terus meningkat seiiring dengan meningkatnya derajat dari multiprogramming hingga sampai pada suatu titik saat utilitas CPU menurun drastis. Rata-rata waktu layanan untuk kesalahan halaman akan bertambah seiring dengan makin panjangnya rata-rata antrian untuk melakukan paging. Faktorfaktor lain yang berbobot berat termasuk kecepatan pencarian. proses itu akan berada pada antrian untuk melakukan paging yang mana hal ini memakan banyak waktu. 13. proses tersebut dapat mengambil frame dari proses yang lain dan menyebabkan proses itu tidak langsung thrashing. Tentunya. Sebuah stack memiliki lokalitas yang baik. Utilitas CPU akan menurun dengan sangat drastis diakibatkan oleh sistem yang terus menerus menambah derajat multiprogramming. Membatasi Efek Thrashing Efek dari thrashing dapat dibatasi dengan algoritma pergantian lokal atau prioritas. Maka. Salah satu cara untuk menghindari thrashing. karena akses selalu dari atas. Thrashing dapat muncul bila ukuran lokalitas lebih besar dari ukuran memori total. . Sebuah hash table. jika satu proses mulai thrashing. waktu akses efektif akan bertambah walau pun untuk suatu proses yang tidak thrashing. menghasilkan lokalitas yang buruk. model lokalitas berpindah dari satu lokalitas satu ke lokalitas lainnnya. Ketika sistem mendeteksi bahwa utilitas CPU menurun dengan bertambahnya proses. Cara untuk mengetahui berapa frame yang dibutuhkan salah satunya adalah dengan strategi Working Set. didesain untuk menyebar referensi-referensi. Proses. Lokalotas adalah kumpuulan halaman yang aktif digunakan bersama.proses yang baru berusaha merebut frame-frame yang telah dialokasikan untuk proses yang sedang berjalan. untuk menghentikan thrashing. Pada titik ini. Selama satu proses di eksekusi. maka system meningkatkan lagi derajat dari multiprogramming. kita harus menyediakan sebanyak mungkin frame sesuai dengan kebutuhan suatu proses. Derajat dari Multiprogramming b.

magnetic tapes. Berkas dipetakan ke media fisik oleh sistem operasi. berkas merupakan bagian terkecil dari penyimpanan logis. Executable file. Informasi dalam berkas ditentukan oleh pembuatnya. yang mengatur dan menyediakan informasi mengenai seluruh berkas dalam sistem. Format berkas juga bisa bebas. Object file. misalnya berkas teks. byte. Media penyimpanan ini umumnya bersifat non-volatile. Ada banyak beragam jenis informasi yang dapat disimpan dalam berkas. sebagai tempat penyimpanan data. Berkas adalah kumpulan informasi berkait yang diberi nama dan direkam pada penyimpanan sekunder. Agar komputer dapat digunakan dengan nyaman. seperti magnetic disks. Seperti yang telah kita ketahui. sistem operasi menyediakan sistem penyimpanan dengan sistematika yang seragam. alfabetik. adalah rangkaian code section yang dapat dibawa loader ke dalam memori dan dieksekusi. artinya data tidak dapat ditulis ke penyimpanan sekunder kecuali jika berada di dalam berkas. Contohnya: • • • • Text file. baik data mau pun program yang berada dalam Sistem Operasi. 2. Data dari berkas dapat bersifat numerik. Source file. Secara umum. Pendahuluan Sistem berkas merupakan mekanisme penyimpanan on-line serta untuk akses. komputer dapat menyimpan informasi ke beberapa media penyimpanan yang berbeda. yaitu urutan subroutine dan fungsi. Nama berkas biasanya berupa string atau karakter. atau dapat juga diformat pasti. merupakan urutan byte yang diatur ke dalam blok-blok yang dikenali oleh linker dari sistem. Terdapat dua bagian penting dalam sistem berkas. yaitu urutan karakter yang disusun ke dalam baris-baris. Biasanya berkas merepresentasikan program (baik source mau pun bentuk objek) dan data. Atribut Pada Berkas Berkas diberi nama. dan optical disks. Dari sudut pandang pengguna. sehingga kandungan di dalamnya tidak akan hilang jika terjadi gagal listrik mau pun system reboot. baris. yaitu berkas. yang nantinya akan dideklarasikan. berkas adalah urutan bit. alfanumerik. sesuai dengan jenisnya masing-masing. Sistem Operasi mengabstraksi properti fisik dari media penyimpanannya dan mendefinisikan unit penyimpanan logis. untuk kenyamanan bagi pengguna. dan untuk acuan bagi data yang terkandung di dalamnya. serta struktur direktori. yaitu: • • kumpulan berkas. atau pun biner. atau catatan yang didefinisikan oleh pembuat berkas dan pengguna. Hal ini disebabkan oleh struktur tertentu yang dimiliki oleh berkas.BAB VIII SISTEM BERKAS 1. Beberapa sistem membedakan penggunaan huruf besar dan kecil dalam penamaan sebuah berkas. sementara .

kemudian direktori tersebut akan mencatat nama berkas dan lokasinya pada sistem berkas. Atribut berkas terdiri dari: a. menulis. Membaca sebuah berkas: Untuk dapat membaca berkas. huruf. pembuatan berkas. Untuk mendefinisikan berkas secara tepat. penunjuk baca harus diperbaharui. keamanan. kita menggunakan system call beserta nama berkas dan di blok memori mana berkas berikutnya diletakkan. c. a. suatu berkas ketika sedang dibaca atau ditulis. kita menggunakan system call beserta nama berkas yang akan ditulisi dan informasi apa yang akan ditulis pada berkas. maka berkas tersebut akan menjadi mandiri terhadap proses. dan sebagainya. yaitu ukuran berkas pada saat itu. Data tersebut dapat berguna untuk proteksi. f. Sistem operasi menyediakan system calls untuk membuat.Ketika berkas diberi nama. c. Kedua. dan mengeksekusi berkas Waktu. membaca. Penunjuk tulis harus diperbaharui setiap terjadi penulisan pada berkas. misalnya siapa saja yang boleh membaca. sehingga keduanya harus disimpan pada sebuah device dan baru dibawa bagian per bagian ke memori pada saat dibutuhkan. harus bersifat non-volatile. informasi ini biasanya disimpan untuk: • • • b. tempat baru di dalam sistem berkas harus di alokasikan untuk berkas yang akan dibuat. sebuah direktori harus mempersiapkan tempat untuk berkas baru. seperti berkas. Operasi Pada Berkas Sebuah berkas adalah jenis data abstrak. sistem mencari ke direktori untuk mendapatkan lokasi berkas. baik dalam byte. Berikut dapat kita lihat apa yang harus dilakukan sistem operasi pada keenam operasi dasar pada berkas. Sistem juga harus menyimpan penunjuk tulis pada berkas dimana penulisan berikut akan ditempatkan. bahkan sistem yang membuatnya. atau pun blok Proteksi. dibutuhkan untuk sistem yang mendukung beberapa type berbeda Lokasi. kebanyakan sistem hanya mempunyai satu penunjuk. Informasi tentang seluruh berkas disimpan dalam struktur direktori yang terdapat pada penyimpanan sekunder. merupakan pointer ke device dan ke lokasi berkas pada device tersebut Ukuran (size). Sehingga secara umum. Pertama. Menulis pada sebuah berkas: Untuk menulis pada berkas. Ketika pembacaan dimulai. . Membuat sebuah berkas: Ada dua cara dalam membuat berkas. kita perlu melihat operasi yang dapat dilakukan pada berkas tersebut. 3. Ketika diberi nama berkas. direktori mencari berkas yang akan dibaca. dan sistem menyimpan penunjuk baca pada berkas dimana pembacaan berikutnya akan terjadi. mencari. adalah informasi mengenai kontrol akses. tanggal dan identifikasi pengguna. Nama. Direktori.sistem yang lain menganggap kedua hal di atas sama. baca dan tulis b. Sama seperti menulis. d. menghapus. dan penggunaan terakhir berkas. pengguna. e. merupakan satu-satunya informasi yang tetap dalam bentuk yang bisa dibaca oleh manusia (human-readable form) Type. dan monitoring penggunaan dari berkas. menulis. modifikasi terakhir yang dilakukan pada berkas.

lebih rumit.menggunakan penunjuk yang sama. f. dengan cara membuat berkas lalu membaca dari berkas lama dan menulis ke berkas yang baru. Ketika berkas sudah tidak digunakan lagi dan sudah ditutup oleh yang menggunakan. maka sistem operasi mengeluarkan berkas tersebut dari tabel berkas terbuka. Dalam sistem seperti itu pengguna yang membuka berkas mungkin lebih dari satu dan pada waktu yang hampir bersamaan. Biasanya tabel tersebut juga memiliki data berapa banyak proses yang membuka berkas tersebut. mengubah nama suatu berkas. Fungsi ini mengizinkan semua atribut tetap sama tetapi panjang berkas menjadi nol. e. Beberapa sistem terkadang langsung membuka berkas ketika berkas tersebut digunakan dan otomatis menutup berkas tersebut jika program atau pemakainya dimatikan. Setelah ditemukan kita membebaskan tempat yang dipakai berkas tersebut (sehingga dapat digunakkan oleh berkas lain) dan menghapus tempatnya di direktori. Operasi umum lainnya adalah menyambung informasi baru di akhir suatu berkas. Tetapi pada sistem lainnya terkadang membutuhkan pembukaan berkas secara tersurat dengan system call (open) sebelum berkas dapat digunakan. dan lain-lain. Menempatkan kembali sebuah berkas: Direktori yang bertugas untuk mencari berkas yang bersesuaian. Memendekkan berkas: Ada suatu keadaan dimana pengguna menginginkan atribut dari berkas tetap sama tetapi ingin menghapus isi dari berkas tersebut. kemudian tabel tersebut menunjuk ke tabel yang lebih besar yang berisi informasi yang berdiri sendiri seperti lokasi berkas pada disk. atau menyalin berkas ke peralatan I/O lainnya seperti printer. Jadi. Penghitung berkas yang terbuka: Setelah berkas ditutup. Menghapus sebuah berkas: Untuk menghapus berkas kita perlu mencari berkas tersebut di dalam direktori. Operasi sering disebut pencarian berkas. Penunjuk ini unik untuk setiap operasi pada berkas. pada dasarnya ada beberapa informasi yang terkait dengan pembukaan berkas yaitu: • Penunjuk Berkas: Pada sistem yang tidak mengikutkan batas berkas sebagai bagian dari system call baca dan tulis. Implementasi dari buka dan tutup berkas dalam lingkungan dengan banyak perngguna seperti UNIX. maka dari itu harus disimpan terpisah dari atribut berkas yang ada pada disk. Sistem operasi akan menyimpan tabel kecil yang berisi informasi semua berkas yang dibuka yang disebut "tabel berkas terbuka". kebanyakan sistem akan membuka berkas apabila berkas tersebut digunakan secara aktif. d. Sebagai contoh misalnya kita menginginkan salinan dari suatu berkas. sistem harus mengosongkan • . Ada tabel yang mendata proses mana saja yang membuka berkas tersebut. sistem tersebut harus mengikuti posisi dimana terakhir proses baca dan tulis sebagai penunjuk. hal ini menghemat tempat dan mengurangi kompleksitas sistem. hal ini lebih baik dari pada memaksa pengguna untuk menghapus berkas dan membuatnya lagi. Operasi dasar ini kemudian digabung untuk melakukan operasi lainnya. Umumnya sistem operasi menggunakan tabel internal dua level. tanggal akses dan ukuran berkas. Hampir semua operasi pada berkas melibatkan pencarian berkas pada direktori. Menempatkan berkas tidak perlu melibatkan proses I/O. Enam operasi dasar ini sudah mencakup operasi minimum yang di butuhkan. dan mengembalikan lokasi berkas pada saat itu. Untuk menghindari pencarian yang lama.

Tabel 5-1. Jenis Berkas Pertimbangan utama dalam perancangan sistem berkas dan seluruh sistem operasi. Beberapa sistem operasi menyertakan dukungan terhadap akhiran.com yang bisa dijalankan (eksekusi). Menutup berkas mengakibatkan semua data yang ada pada alamat memori tersebut dikembalikan ke disk dan dihilangkan dari memori virtual yang digunakan oleh proses. nama dan akhiran (ekstensi). Operasi baca dan tulis pada memori dengan alamat tersebut dianggap sebagai operasi baca dan tulis pada berkas yang ada di alamat tersebut.kembali tabel berkas yang dibuka yang digunakan oleh berkas tadi atau tempat di tabel akan habis. maka ia dapat mengoperasikan berkas tersebut. Penghitung ini mencatat banyaknya berkas yang telah dibuka dan ditutup. Nama dibagi dua. Tetapi UNIX memperbolehkan akhiran berkas tetapi hal ini tidak dipaksakan atau tergantung sistem operasi. dan menjadi nol ketika yang terakhir membaca berkas menutup berkas tersebut barulah sistem dapat mengosongkan tempatnya di tabel. Program aplikasi juga menggunakan akhiran tersebut untuk mengenal berkas yang dapat dioperasikannya. • Lokasi berkas pada disk: Kebanyakan operasi pada berkas memerlukan sistem untuk mengubah data yang ada pada berkas. kebanyakan hanya untuk membantu pengguna mengenali jenis isi dari suatu berkas. Tabel Jenis Berkas Jenis berkas executable Akhiran Fungsi exe. bat. Akhiran ini dapat ditimpa atau diganti jika diperbolehkan oleh sistem operasi. 4. Beberapa sistem operasi menyediakan fasilitas untuk memetakan berkas ke dalam memori pada sistem memori virtual. Sistem menggunakan akhiran tersebut untuk mengindikasikan jenis berkas dan jenis operasi yang dapat dilakukan pada berkas tersebut. Karena mungkin ada beberapa proses yang membuka berkas secara bersamaan dan sistem harus menunggu sampai berkas tersebut ditutup sebelum mengosongkan tempatnya di tabel. apakah sistem operasi harus mengenali dan mendukung jenis berkas. hal ini dapat dicegah apabila sistem operasi sudah diberitahu bahwa berkas tersebut merupakan kode biner. jadi sistem tidak bisa bergantung pada informasi ini. Informasi mengenai lokasi berkas pada disk disimpan di memori agar menghindari banyak pembacaan pada disk untuk setiap operasi. Sistem UNIX tidak dapat menyediakan dukungan untuk akhiran berkas karena menggunakan angka ajaib yang disimpan di depan berkas untuk mengenali jenis berkas.bat. Teknik yang umum digunakan dalam implementasi jenis berkas adalah menambahkan jenis berkas dalam nama berkas. Hal tersebut mengizinkan bagian dari berkas ditempatkan pada suatu alamat di memori virtual.exe atau . Tidak semua berkas memiliki angka ini. tetapi beberapa menyerahkan kepada aplikasi untuk mengatur akhiran berkas yang digunakan. com. Jika suatu sistem operasi mengenali jenis dari berkas. program yang siap dijalankan bin . . Sebagai contoh hanya berkas yang berakhiran . sehingga jenis dari berkas dapat menjadi petunjuk aplikasi apa yang dapat mengoperasikannya. Contoh apabila pengguna mencoba mencetak berkas yang merupakan kode biner dari program yang pasti akan menghasilkan sampah. biasanya dipisahkan dengan karakter titik.

6. Sebagai contoh pada sistem operasi UNIX. sh perintah pada shell text txt. Semua I/O dari disk dilakukan dalam satuan blok dan semua blok ('physical record') memiliki ukuran yang sama. sebuah berkas berukuran 1. cc. Teknik memuatkan dapat dilakukan oleh aplikasi pengguna atau oleh sistem operasi. Semua sistem berkas pasti mempunyai fragmentasi dalam disk. Hal ini juga merupakan karakterisasi dari sistem yang menspesifikasi semantik dari banyak pengguna yang mengakses berkas secara bersamasama. Struktur Berkas Pada Disk Menempatkan batas dalam berkas dapat menjadi rumit bagi sistem operasi. . sehingga beberapa bagian dari blok terakhir yang ditempati berkas dapat terbuang. dan teknik untuk memuatkannya menjelaskan berapa banyak 'logical record' dalam tiap-tiap 'physical record'. dvi.Jenis berkas Akhiran Fungsi objek obj. Pada kasus ini ukuran 'logical record' adalah 1 byte. Tempat pada disk selalu berada pada blok. Sistem berkas secara otomatis memuatkan byte-byte tersebut kedalam blok pada disk. zip. Terdapat beberapa macam konsistensi semantik. a batch bat. Jika setiap blok berukuran 512 byte. Ukuran 'logical record'. doc data text. semakin besar ukuran blok akan semakin besar fragmentasi dalam disknya. Ukuran dari 'logical record' akan bervariasi. ukuran blok pada disk. o bahasa mesin.949 byte akan menempati empat blok (2. kode terkompilasi kode asal (source c. pas. tex. tar beberapa berkas yang dikumpulkan menjadi satu berkas. Sistem disk biasanya memiliki ukuran blok yang sudah ditetapkan dari ukuran sektor. Konversi dari 'logical record' ke 'physical record' merupakan masalah perangkat lunak. java. semantik ini seharusnya dapat menspesifikasi kapan suatu modifikasi suatu data oleh satu pengguna dapat diketahui oleh pengguna lain. gif format aSCII atau biner untuk dicetak archive arc. Tetapi ukuran dari 'physical record' tidak akan sama dengan ukuran 'logical record'. Berkas juga dapat dianggap sebagai urutan dari beberapa blok pada disk. Di bawah ini akan dijelaskan kriteria yang digunakan dalam UNIX. Penggunaan Berkas Secara Bersama-sama Konsistensi semantik adalah parameter yang penting untuk evaluasi sistem berkas yang mendukung penggunaan berkas secara bersama. Lebih khusus. gambar ps.048 byte) dan akan tersisa 99 byte pada blok terakhir. Memuatkan beberapa 'logical record' ke dalam 'physical record' merupakan solusi umum dari masalah ini. a. kode asal dari berbagai bahasa code) asm. Terkadang dimampatkan untuk penyimpanan 5. Byte yang terbuang tersebut dipertahankan agar ukuran dari unit tetap blok bukan byte disebut fragmentasi dalam disk. doc format jenis pengolah data library lib. document pengolah kata wpd. DLL library untuk rutin program print. semua berkas didefinisikan sebagai kumpulan byte. Setiap byte dialamatkan menurut batasnya dari awal berkas sampai akhir.

Pembatasan ini berupa sebuah permission atau pun not permitted operation. Terdapat bentuk pembagian dimana pengguna membagi pointer lokasi ke berkas tersebut. Pada bagian ini. Sehingga perubahan pointer satu pengguna akan mempengaruhi semua pengguna sharingnya. 8. ada dua hal yang harus menjadi perhatian utama kita. Rename: Mengganti nama sebuah berkas. b. . dalam hal ini adalah perlindungan secara fisik pada sebuah berkas. Di bawah ini adalah beberapa operasi berkas yang dapat diatur aksesnya: a. i. sebagai pemilik dari sebuah berkas. e. Write: Menulis berkas c. Append: Menambahkan informasi kedalam berkas di akhir berkas. Proteksi Berkas Ketika kita menyimpan informasi dalam sebuah sistem komputer. h. b. Read: Membaca dari berkas b. tergantung pada kebutuhan pengguna lain terhadap berkas tersebut. Tipe Akses Pada Berkas Salah satu cara untuk melindungi berkas dalam komputer kita adalah dengan melakukan pembatasan akses pada berkas tersebut. Execute: Meload berkas kedalam memori untuk dieksekusi.Berkas sistem UNIX mengikuti konsistensi semantik: a. d. Reabilitas dari sebuah sistem Maksud dari reabilitas sistem adalah kemampuan sebuah sistem untuk melindungi informasi yang telah disimpan agar terhindar dari kerusakan. Edit: Mengedit sebuah berkas. g. sesuai dengan layanan yang dari sebuah sistem operasi. f. Delete: Menghapus berkas. Copy: Menduplikasikan sebuah berkas. Proteksi (Perlindungan) terhadap sebuah berkas Perlindungan terhadap berkas dapat dilakukan dengan berbagai macam cara. Hal tersebut adalah: a. kita akan membahas secara detil mekanisme yang diterapkan dalam melindungi sebuah berkas. Pembatasan akses yang dimaksudkan adalah kita. Reabilitas Sistem akan dibahas lebih lanjut pada bagian berjudul Kehandalan Disk di Bab 6. dapat menentukan operasi apa saja yang dapat dilakukan oleh pengguna lain terhadap berkas tersebut. 7. List: Mendaftar properti dari sebuah berkas. Reabilitas sistem dapat dijaga dengan membuat cadangan dari setiap berkas secara manual atau pun otomatis. Penulisan ke berkas yang dibuka oleh pengguna dapat dilihat langsung oleh pengguna lain yang sedang mengakses ke berkas yang sama.

Akses List dan Group Hal yang paling umum dari sistem proteksi adalah membuat akses tergantung pada identitas pengguna yang bersangkutan.Selain operasi-operasi berkas diatas. Untuk meningkatkan efisiensi I/O. karena ukuran sebuah direktori dapat berubah-ubah. Owner: User yang membuat berkas. atau men-share sebuah berkas. 9. b. Implementasi dari akses ini adalah dengan membuat daftar akses yang berisi keterangan setiap pengguna dan keterangan akses berkas dari pengguna yang bersangkutan. Proses ini juga berlaku untuk hal yang sebaliknya. Dengan adanya pengelompokkan pengguna seperti ini. Seperti telah disebutkan. bit w sebagai kontrol menulis dan bit x sebagai bit kontrol untuk pengeksekusian. c. Manajemen ruang harddisk yang lebih rumit. b. Jika pengguna tersebut memiliki akses yang diminta pada berkas tersebut. terutama jika jumlah pengguna dalam sistem tidak dapat diketahui secara pasti.25 bekas. teknik ini mengakibatkan 2 konsekuensi yang tidak dapat dihindarkan: a. Akses pengguna terhadap berkas akan ditolak. Oleh karena itu. kita harus mendaftarkan semua pengguna dalam daftar akses tersebut hanya untuk akses pada satu berkas saja. Namun setiap mekanisme memiliki kelebihan dan kekurangan. pengiriman data antara memori dan disk dilakukan dalam .txt owner group universe group owner ukuran waktu nama berkas 10. Dalam sistem UNIX dikenal bit rwx dengan bit r untuk mengontrol akses baca. Tabel 5-2. Setiap field dipisahkan dengan field separator. Pembuatan daftar yang sangat panjang ini dapat menjadi pekerjaan yang sangat melelahkan sekaligus membosankan. Kedua konsekuensi diatas melahirkan sebuah teknik daftar akses yang lebih singkat. maka diperbolehkan untuk mengakses berkas tersebut. tidak memiliki ukuran yang tetap. Universe: Seluruh pengguna yang terdapat dalam sistem komputer. Teknik ini mengelompokkan pengguna berdasarkan tiga kategori: a. maka kita hanya membutuhkan tiga field untuk melindungi sebuah berkas. Pemilihan mekanisme sangatlah tergantung pada kebutuhan dan spesifikasi sistem. Dibawah ini adalah contoh dari sistem proteksi dengan daftar akses pada sistem UNIX. Masalah baru yang timbul adalah panjang dari daftar akses yang harus dibuat. Group: Sekelompok pengguna yang memiliki akses yang sama terhadap sebuah berkas. perlindungan terhadap berkas dapat dilakukan dengan mekanisme yang lain. Contoh sistem daftar akses pada UNIX drwx rwx rwx 1 pbg staff 512 Apr 16 22. Daftar akses ini akan diperiksa setiap kali seorang pengguna meminta akses ke sebuah berkas. Field ini diasosiasikan dengan 3 buah bit untuk setiap kategori. Struktur Sistem Berkas Disk menyediakan sebagian besar tempat penyimpanan dimana sistem berkas dikelola dikelola. dan sistem operasi akan mengeluarkan peringatan Protection Violation.

Karena kita dapat menyimpan initial address dari berkas di dalam memori. operasi ke berkas. Hal ini mencakup definisi berkas dan atributnya. dan struktur direktori dalam mengorganisasikan berkas-berkas. 11. Setiap blok merupakan satu atau lebih sektor. alokasi yang berdampingan hanya memerlukan satu akses untuk mendapatkan sebuah blok disk.setiap blok. yaitu: • • Disk tersebut dapat ditulis ulang di disk tersebut. Terdapat dua masalah desain dalam membangun suatu sistem berkas. maka alamat disk pada blok ke-i dapat segera dikalkulasi dan dibaca secara langsung. Pada dasarnya sistem berkas tersusun atas beberapa tingkatan. Dapat diakses langsung ke setiap blok di disk. akses menuju blok ke-ikemungkinan membutuhkan pembacaan disk sebanyak i kali. kita juga dapat menyimpan alamat dari blok selanjutnya ke dalam memori. Kinerja Sistem Berkas • Salah satu kesulitan dalam membandingkan performa sistem adalah menentukan bagaimana sistem tersebut akan digunakan. Driver device adalah perantara komunikasi antara sistem operasi dengan perangkat keras. beberapa sistem mendukung akses langsung dengan menggunakan alokasi berdampingan (contiguous allocation). Untuk jenis akses apa pun. lalu membacanya secara langsung. hal ini memungkinkan untuk membaca. struktur dari direktori. Modul ini juga mengatur sisa disk dengan melacak alamat yang belum dialokasikan dan menyediakan alamat tersebut saat user ingin menulis berkas ke dalam disk. Basic file system. memodifikasi. informasi tentang alamat logika dan alamat fisik dari berkas tersebut. File-organization module. Untuk . 12. diletakkan dan diambil kembali dengan mudah. dan proteksi dan sekuriti dari berkas tersebut. Sistem yang lebih banyak menggunakan akses sekuensial (berurutan) akan memakai metode yang berbeda dengan sistem yang lebih sering menggunakan akses random (acak). tingkat ini berisi informasi tentang simbol nama berkas. dan berpindah dari satu berkas ke berkas lain dengan hanya mengangkat head disk dan menunggu disk berputar. Setiap disk memiliki ukuran yang berbeda-beda. Metode ini sangat baik untuk akses sekuensial. Untuk alokasi berangkai (linked list). Masalah ini mengindikasikan bahwa alokasi berangkai sebaiknya tidak digunakan untuk aplikasi yang membutuhkan akses langsung. Hal ini memudahkan untuk mengakses setiap berkas baik secara berurut mau pun tidak berurut. Disk memiliki dua karakteristik penting yang menjadikan disk sebagai media yang tepat untuk menyimpan berbagai macam berkas. terdiri atas driver device dan interrupt handler. biasanya berukuran 512 bytes. namun untuk akses langsung. Logical file system. serta akses berurutan dengan alokasi berangkai. yaitu (dari yang terendah): • • • I/O control. Masalah pertama adalah definisi dari sistem berkas. Oleh sebab itu. Masalah kedua adalah membuat algoritma dan struktur data yang memetakan struktur logikal sistem berkas ke tempat penyimpanan sekunder. diperlukan untuk mengeluarkan perintah generik ke device driver untuk baca dan tulis pada suatu blok dalam disk. dan menulis di disk tersebut. Organisasi Sistem Berkas Sistem operasi menyediakan sistem berkas agar data mudah disimpan.

pembacaan dua blok indeks mungkin diperlukan. Para pengguna Windows tidak akan menemui kesulitan dalam menggunakan sistem direktori yang telah dibuat oleh Microsoft. jenis akses harus dideklarasikan pada saat berkas dibuat. registry. dan posisi dari blok yang diinginkan. Direktori yang secara otomatis dibuat dalam instalasi Windows adalah: 1. Berkas yang dibuat untuk akses sekuensial (berurutan) akan dirangkaikan dan tidak dapat digunakan untuk akses langsung. Untuk indeks dua tingkat. baru kemudian blok data yang diinginkan. Jika blok indeks telah terdapat dalam memori. Direktori C:\My Documents Direktori ini berisikan semua dokumen yang dimiliki oleh pengguna sistem. Dalam direktori ini terdapat pustaka-pustaka yang diperlukan oleh Windows.sistem-sistem tersebut. Namun. dengan mendeklarasikan jarak maksimum. yaitu keluarga Windows 9x dan keluarga Windows NT (New Technology). menyimpan blok indeks dalam memori memerlukan ruang (space) yang besar. dan beralih secara otomatis ke alokasi indeks jika berkas semakin membesar. Sistem operasi Windows dapat berjalan diatas beberapa macam sistem berkas. maka kita mungkin harus membaca blok indeks terlebih dahulu. ukuran berkas. Alokasi dengan menggunakan indeks lebih rumit lagi. Dengan demikian. Semua program yang diinstal akan menulis entry ke dalam registry agar program tersebut dapat dijalankan dalam sistem Windows. 3. Caranya adalah dengan menggunakan alokasi berdampingan untuk berkas berukuran kecil (3-4 blok). Windows menggunakan sistem drive letter dalam merepresentasikan setiap partisi dari disk. Sistem operasi secara otomatis akan terdapat dalam partisi pertama yang diberi label drive C. performa alokasi dengan menggunakan indeks ditentukan oleh: struktur indeks. dan program-program esensial yang dibutuhkan oleh Windows untuk berjalan dengan baik. Sistem operasi ini sangat memudahkan para penggunanya dengan membuat struktur direktori yang sangat userfriendly. Beberapa sistem mengkombinasikan alokasi berdampingan dengan alokasi indeks. Setiap sistem . akses dapat dilakukan secara langsung. mengakses blok di dekat akhir suatu berkas akan membutuhkan pembacaan seluruh blok indeks agar dapat mengikuti rantai penunjuk sebelum blok data dapat dibaca. Direktori C:\Program Files Direktori ini berisikan semua program yang diinstal ke dalam sistem operasi. Untuk berkas yang berukuran sangat besar. 13. device driver. Perhatikan bahwa sistem operasi harus mendukung struktur data dan algoritma yang sesuai untuk mendukung kedua metode alokasi di atas. Berkas yang dibuat untuk akses langsung akan berdampingan dan dapat mendukung baik akses langsung mau pun akses berurutan. Jika ruang memori tidak tersedia. 2. Sistem operasi Windows dibagi menjadi dua keluarga besar. Macam-macam Sistem Berkas Sistem Berkas Pada Windows Sistem operasi Windows merupakan sistem operasi yang telah dikenal luas. Direktori C:\WINDOWS Direktori ini berisikan sistem dari Windows.

Berkas-berkas dapat disimpan pada direktori root tetapi usahakan tidak menyimpan berkas-berkas biasa sehingga direktori ini tetap terjaga keteraturannya. Biasanya direktori root ini diberi tanda / atau slash. Untuk melihat daftar environment variable. bin adalah singkatan dari kata binary. Sebagian besar dari perintah dalam UNIX merupakan binary. FAT 16: Sistem berkas ini digunakan dalam sistem operasi DOS dan Windows 3. yang mendefinisikan dimana shell akan mencari ketika perintah dari pengguna. 3. perintah pencarian dan lain-lainnya. Terkadang direktori bin terhubung ke direktori lain yang dinamakan /usr/bin. Tetapi kita bisa membuat direktori lain pada level ini. Direktori "/" (root) Direktori ini terletak pada level teratas dari struktur direktori UNIX. Direktori root kita dikenal sebagai direktori home kita dan dispesifikasi dengan environment variable yang dinamakan HOME. Perubahan penamaan direktori-direktori yang ada pada direktori root akan menyebabkan sebagian besar dari sistem menjadi tidak berguna.1 2. 2. Direktori ini biasanya hanya terdiri dari direktoridirektori lainnya yang terletak pada level dibawah level direktori root. Sistem Berkas yang terdapat dalam sistem operasi Windows adalah: 1. Sistem berkas ini adalah sistem berkas berbasis journaling dan dapat digunakan hanya pada keluarga Windows NT. perintah-perintah tersebut merupakan programprogram kecil yang dapat dieksekusi oleh pengguna. Ada beberapa direktori yang umum terdapat dalam instalasi UNIX: 1. Direktori home juga bisa ditemukan pada level ini hasil pembuatan oleh administrator sistem. FAT 32: Sistem ini digunakan oleh keluarga Windows 9x. Environment variable yang umum adalah variabel PATH. Sistem Berkas pada UNIX (dan turunannya) Ketika kita login ke UNIX. namun hal tersebut tidak berlaku sebaliknya.berkas memiliki keunggulan dan kekurangan masing-masing. Sedangkan untuk mengatur environment variable. Dalam direktori ini dapat ditemukan perintah-perintah navigasi. gunakan saja perintah printenv. Ada beberapa perintah yang disebut perintah built-in dimana fungsi mereka dikendalikan oleh program shell sehingga mereka tidak beroperasi sebagai binary yang terpisah. NTFS: Merupakan singkatan dari New Technology File System. Environment variable ini menentukan karakteristik dari shell kita dan interaksi pengguna dengan shell tersebut. Semua keluarga Windows yang berbasis Windows NT dapat mendukung sistem berkas yang digunakan oleh keluarga Windows 9x. Direktori "/bin" Direktori ini berisi program-program yang esensial agar sistem operasi dapat bekerja dengan benar. kita akan ditempatkan di direktori root kita. Keunggulan dari sistem berkas ini adalah fasilitas recovery yang memungkinkan dilakukannya penyelamatan data saat terjadi kerusakan pada sistem operasi. Di UNIX. Direktori . gunakan setenv. programprogram shell. sebuah binary adalah berkas yang dapat dieksekusi. Karena sebagian besar dari direktoridirektori ini berisi fungsi-fungsi yang sifatnya kritikal yang dimana sistem operasi dan semua aplikasi memerlukan direktori-direktori ini dengan nama yang sudah diberikan pada awal instalasi.

Binary-binary ini bukan yang biasa digunakan oleh pengguna tetapi digunakan agar komputer dapat beroperasi secara efisien. Beberapa direktori yang terdapat dalam direktori ini berhubungan dengan direktori yang ada di direktori /. pesan untuk hari ini. Sistem UNIX menganggap semua hal sebagai berkas. Aplikasi-aplikasi di UNIX biasanya memeriksa lib ketika menginstalasi untuk memeriksa apakah pustaka-pustaka yang diperlukan oleh aplikasi sudah tersedia atau belum. hal ini diakibatkan ada pustaka yang hilang dari direktori lib.bedanya adalah binary-binary pada direktori ini berhubungan dengan fungsi-fungsi sistem administrasi pada sistem operasi UNIX. 7. Direktori ini berisi berkas-berkas yang dapat diakses oleh para pengguna biasa. . 4. /bin adalah gerbang untuk mencapai /usr/bin.Tetapi./usr/bin biasanya adalah lokasi sebenarnya dari binary-binary pengguna disimpan. Data-data seperti ini ada dalam waktu yang singkat. 5. 3. Direktori "/etc" Direktori yang dibaca et-see ini berisi beberapa konfigurasi berkas pengguna dan sistem. Pustaka ini adalah rutin perangkat lunak (software routines) yang digunakan lebih dari satu bagian dari sistem operasi. dan berkas yang ditunjuk sistem sebagai operasi normal seperti berkas kata sandi. 8. Jika UNIX memerlukan perangkatperangkat tersebut maka UNIX akan mencarinya ke direktori dev.Dalam hal ini. printer dan lain-lainnya dianggap hanya sebagai berkas saja oleh sistem operasi. Ketika kita menginstalasi perangkat lunak yang baru maka ada pustakapustaka baru yang ditambahkan ke direktori lib. Direktori "/usr" Direktori ini terdiri dari banyak direktori seperti pada direktori root. UNIX biasanya tidak menimpa pustaka tersebut. CD-ROM. Direktori "/var" Direktori ini berisi data yang bermacam-macam (vary). Hal-hal seperti monitor. Direktori "/dev" Direktori ini berisi berkas-berkas alat atau alat I/O. Direktori "/lib" Direktori ini berisi pustaka-pustaka (libraries) yang dibagi (shared). Jika sudah tersedia. Struktur dari direktori ini mirip dengan struktur direktori "/". Jika pada waktu berusaha menjalankan aplikasi terdapat pesan error. Karena sifatnya yang selalu berubah tidak memungkinkan disimpan dalam direktori seperti "/etc". Perubahan data dalam sistem yang aktif sangatlah cepat. data-data seperti ini disimpan di direktori var. Direktori "/sbin" Direktori ini berisi binary-binary juga seperti pada direktori bin. 6. dan lain-lainnya. Oleh karena itu.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->