implementasi sistem file

58
1. VIRTUAL MEMORI Selama bertahun-tahun, pelaksanaan berbagai strategi managemen memori yang ada menuntut keseluruhan bagian proses berada di memori sebelum proses dapat mulaidieksekusi. Dengan kata lain, semua bagian proses harus memiliki alokasi sendiri padamemori fisiknya.Pada nyatanya tidak semua bagian dari program tersebut akan diproses, misalnya: 1. Terdapat pernyataan-pernyataan atau pilihan yang hanya akan dieksekusi jika kondisi tertentu dipenuhi. Apabila kondisi tersebut tidak dipenuhi, maka pilihan tersebut tak akan pernah dieksekusi/ diproses. Contoh dari pilihan itu adalah: pesan-pesan error yang hanya akan muncul bila terjadi kesalahan dalam eksekusi program. 2. Terdapat fungsi-fungsi yang jarang digunakan, bahkan sampai lebih dari 100x pemakaian. 3. Terdapat pealokasian memori lebih besar dari yang sebenarnya dibutuhkan. Contoh pada: array, list, dan tabel. Hal-hal di atas telah menurunkan optimalitasi utilitas dari ruang memori fisik. Padamemori berkapasitas besar, hal ini mungkin tidak menjadi masalah. Akan 1

Upload: harry-ichsan-hidayat

Post on 13-Nov-2015

24 views

Category:

Documents


7 download

DESCRIPTION

Tugas Sistem Operasi

TRANSCRIPT

1. VIRTUAL MEMORI

Selama bertahun-tahun, pelaksanaan berbagai strategi managemen memori yang ada menuntut keseluruhan bagian proses berada di memori sebelum proses dapat mulaidieksekusi. Dengan kata lain, semua bagian proses harus memiliki alokasi sendiri padamemori fisiknya.Pada nyatanya tidak semua bagian dari program tersebut akan diproses, misalnya:

1. Terdapat pernyataan-pernyataan atau pilihan yang hanya akan dieksekusi jika kondisi tertentu dipenuhi. Apabila kondisi tersebut tidak dipenuhi, maka pilihan tersebut takakan pernah dieksekusi/ diproses. Contoh dari pilihan itu adalah: pesan-pesan erroryang hanya akan muncul bila terjadi kesalahan dalam eksekusi program.2. Terdapat fungsi-fungsi yang jarang digunakan, bahkan sampai lebih dari 100xpemakaian.3. Terdapat pealokasian memori lebih besar dari yang sebenarnya dibutuhkan. Contohpada: array, list, dan tabel.Hal-hal di atas telah menurunkan optimalitasi utilitas dari ruang memori fisik. Padamemori berkapasitas besar, hal ini mungkin tidak menjadi masalah. Akan tetapi,bagaimana jika memori yang disediakan terbatas?Salah satu cara untuk mengatasinya adalah dengan overlay dan dynamic loading .Namun hal ini menimbulkan masalah baru karena implementasinya yang rumit danpenulisan program yang akan memakan tempat di memori. Tujuan semula untukmenghemat memori bisa jadi malah tidak tercapai apabila program untuk overlay dandynamic loading . malah lebih besar daripada program yang sebenarnya ingindieksekusi.Maka sebagai solusi untuk masalah-masalah ini digunakanlah konsep memori virtual.

1.0.1 PengertianMemori virtual merupakan suatu teknik yang memisahkan antara memori logis danmemori fisiknya. Teknik ini mengizinkan program untuk dieksekusi tanpa seluruh bagian program perlu ikut masuk ke dalam memori. Berbeda dengan keterbatasan yang dimiliki oleh memori fisik, memori virtual dapat menampung program dalam skala besar, melebihi daya tampung dari memori utama yang tersedia. Prinsip dari memori virtual yang patut diingat adalah bahwa: "Kecepatanmaksimum eksekusi proses di memori virtual dapat sama, tetapi tidak pernah melampauikecepatan eksekusi proses yang sama di sistem tanpa menggunakan memori virtual."Konsep memori virtual pertama kali dikemukakan Fotheringham pada tahun 1961pada sistem komputer Atlas di Universitas Manchester, Inggris (Hariyanto, Bambang :2001).

1.0.2 KeuntunganSebagaimana dikatakan di atas bahwa hanya sebagian dari program yang diletakkan di memori. Hal ini berakibat pada:1. Berkurangnya I/O yang dibutuhkan (lalu lintas I/O menjadi rendah). Misal, untuk program butuh membaca dari disk dan memasukkan dalam memory setiap kali diakses.2. Berkurangnya memori yang dibutuhkan (space menjadi lebih leluasa). Contoh, untuk program 10 MB tidak seluruh bagian dimasukkan dalam memori. Pesan-pesan error hanya dimasukkan jika terjadi error.Meningkatnya respon, sebagai konsekuensi dari menurunnya beban I/O dan memori.3. Bertambahnya jumlah user yang dapat dilayani. Ruang memori yang masih tersedia luas memungkinkan komputer untuk menerima lebih banyak permintaan dari user.

1.1 Konsep Dasar Memori Virtual

Gagasan dari memori virtual adalah ukuran gabungan program, data dan stackmelampaui jumlah memori fisik yang tersedia. Sistem operasi menyimpan bagian-bagianproses yang sedang digunakan di memori utama (main memory) dan sisanya ditaruh didisk. Begitu bagian di disk diperlukan, maka bagian di memori yang tidak diperlukan akandisingkirkan (swap-out) dan diganti (swap-in) oleh bagian disk yang diperlukan itu.Memori virtual diimplementasikan dalam sistem multiprogramming. Misalnya: 10 programdengan ukuran 2 Mb dapat berjalan di memori berkapasitas 4 Mb. Tiap programdialokasikan 256 KByte dan bagian-bagian proses di-swap masuk dan keluar memoribegitu diperlukan. Dengan demikian, sistem multiprogramming menjadi lebih efisien.Memori virtual dapat dilakukan melalui dua cara:1. Permintaan pemberian halaman (demand paging).2. Permintaan segmentasi (demand segmentation). Contoh: IBM OS/2. Algoritma dari permintaan segmentasi lebih kompleks, karenanya jarang diimplementasikan.

1.2 Permintaan Pemberian Halaman (Demand Paging)

Merupakan implementasi yang paling umum dari memori virtual.Prinsip permintaan pemberian halaman (demand paging) hampir sama dengan sistem penomoran (paging) dengan menggunakan swapping. Perbedaannya adalah page pada permintaan pemberian halaman tidak akan pernah di-swap ke memori sampaiia benar-benar diperlukan. Untuk itu diperlukan adanya pengecekan dengan bantuan perangkat keras mengenai lokasi dari page saat ia dibutuhkan.

1.2.1 Permasalahan pada Page FaultAda tiga kemungkinan kasus yang dapat terjadi pada saat dilakukan pengecekan pada page yang dibutuhkan, yaitu:1. Page ada dan sudah berada di memori.2. Page ada tetapi belum ditaruh di memori (harus menunggu sampai dimasukkan).3. Page tidak ada, baik di memori mau pun di disk (invalid reference abort).Saat terjadi kasus kedua dan ketiga, maka proses dinyatakan mengalami page fault.

1.2.2 Skema Bit Valid - Tidak ValidDengan meminjam konsep yang sudah pernah dijelaskan dalam Bab 9, maka dapatditentukan page mana yang ada di dalam memori dan mana yang tidak ada di dalammemori.Konsep itu adalah skema bit valid - tidak valid, di mana di sini pengertian "valid"berarti bahwa page legal dan berada dalam memori (kasus 1), sedangkan "tidak valid"berarti page tidak ada (kasus 3) atau page ada tapi tidak ditemui di memori (kasus 2).Pengesetan bit:Bit 1 page berada di memoriBit 0 page tidak berada di memori.(Dengan inisialisasi: semua bitdi-set 0).Apabila ternyata hasil dari translasi, bit page = 0, berarti page fault terjadi.

1.2.3 Penanganan Page FaultProsedur penanganan page fault sebagaimana tertulis di buku Operating SystemConcept 5th Ed halaman 294 adalah sebagai berikut:1. Cek tabel internal yang dilengkapi dengan PCB untuk menentukan valid atau tidaknya bit.2. Apabila tidak valid, program akan di-terminate (interupsi oleh illegal address trap).3. Memilih frame kosong (free-frame), misal dari free-frame list. Jika tidak ditemui ada frameyang kosong, maka dilakukan swap-out dari memori. Frame mana yang harus di-swap-out akan ditentukan oleh algoritma (lihat sub bab Page Replacement).4. Menjadualkan operasi disk untuk membaca page yang diinginkan ke frame yang baru dialokasikan.5. Ketika pembacaan komplit, tabel internal akan dimodifikasi dan page di identifikasi adadi memori.6. Mengulang instruksi yang tadi telah sempat diinterupsi. Jika tadi page fault terjadi saatinstruksi di-fetch, maka akan dilakukan fecthing lagi. Jika terjadi saat operan sedangdi-fetch, maka harus dilakukan fetch ulang, decode, dan fetch operan lagi.

1.3 Unjuk Kerja Demand Paging

Sebagaimana dilihat di atas, bahwa ternyata penanganan page fault menimbulkanmasalah-masalah baru pada proses restart instruction yang berhubungan denganarsitektur komputer.Masalah yang terjadi, antara lain mencakup:1. Bagaimana mengulang instruksi yang memiliki beberapa lokasi yang berbeda?2. Bagaimana pengalamatan dengan menggunakan special-addresing mode, termasukautoincrement dan autodecrement mode?3. Bagaimana jika instruksi yang dieksekusi panjang (contoh: block move)?Masalah pertama dapat diatasi dengan dua cara yang berbeda.1. komputasi microcode dan berusaha untuk mengakses kedua ujung dari blok, agartidak ada modifikasipage yang sempat terjadi.2. memanfaatkan register sementara (temporary register ) untuk menyimpan nilai yang sempat tertimpa/termodifikasi untuk nilai lain.Masalah kedua diatasi dengan menciptakan suatu special-status register baru yangberfungsi menyimpan nomor register dan banyak perubahan yang terjadi sepanjangeksekusi instruksi. Sedangkan masalah ketiga diatasi dengan mengeset bit FPD (first phase done) sehingga restart instruction tidak akan dimulai dari awal program, melainkan dari tempat program terakhir dieksekusi.1.3.1 Persyaratan Perangkat KerasPemberian nomor halaman melibatkan dukungan perangkat keras, sehingga adapersyaratan perangkat keras yang harus dipenuhi. Perangkat-perangkat keras tersebutsama dengan yang digunakan untuk paging dan swapping, yaitu:Secondary memory, tempat menyimpan page yang tidak ada di memori utama, Page-table, menandai bit valid-tidak valid.Lebih lanjut, sebagai konsekuensi dari persyaratan ini, akan diperlukan pula perangkat lunak yang dapat mendukung terciptanya pemberian nomor halaman.1.4 Pemindahan Halaman (Page Replacement)

Pada dasarnya, kesalahan halaman (page fault) sudah tidak lagi menjadi masalahyang terlalu dianggap serius. Hal ini disebabkan karena masing-masing halaman pastiakan mengalami paling tidak satu kali kesalahan dalam pemberian halaman, yakni ketikahalaman ini ditunjuk untuk pertama kalinya.Representasi seperti ini sebenarnya tidaklah terlalu akurat. Berdasarkanpertimbangan tersebut, sebenarnya proses-proses yang memiliki 10 halaman hanyaakan menggunakan setengah dari jumlah seluruh halaman yang dimilikinya. Kemudiandemand paging akan menyimpan I/O yang dibutuhkan untuk mengisi 5 halaman yangbelum pernah digunakan. Kita juga dapat meningkatkan derajat multiprogrammingdengan menjalankan banyak proses sebanyak 2 kali.Jika kita meningkatkan derajat multiprogramming, itu sama artinya denganmelakukan over-allocating terhadap memori. Jika kita menjalankan 6 proses, denganmasing-masing mendapatkan 10 halaman, walau pun sebenarnya yang digunakan hanya5 halaman, kita akan memiliki utilisasi CPU dan throughput yang lebih tinggi dengan 10frame yang masih kosong.Lebih jauh lagi, kita harus mempertimbangkan bahwa sistem memori tidak hanyadigunakan untuk menangani pengalamatan suatu program. Penyangga (buffer) untuk I/Ojuga menggunakan sejumlah memori. Penggunaan ini dapat meningkatkan pemakaianalgoritma dalam penempatan di memori.Beberapa sistem mengalokasikan secara pasti beberapa persen dari memori yangdimilikinya untuk penyangga I/O, dimana keduanya, baik proses pengguna mau punsubsistem dari I/O saling berlomba untuk memanfaatkan seluruh sistem memori.

1.5 Algoritma Page Replacement

Pemindahan halaman mengambil pendekatan seperti berikut. Jika tidak ada frameyang kosong, kita mencari frame yang tidak sedang digunakan dan mengosongkannya.Kita dapat mengosongkan sebuah frame dengan menuliskan isinya ke ruang pertukaran(swap space), dan merubah tabel halaman (juga tabel-tabel lainnya) untukmengindikasikan bahwa halaman tesebut tidak akan lama berada di memori.Sekarang kita dapat menggunakan frame yang kosong sebagai penyimpan halaman dariproses yang salah. Rutinitas pemindahan halaman:1. Cari lokasi dari halaman yang diinginkan pada disk2. Cari frame kosong:a. Jika ada frame kosong, gunakan.b. Jika tidak ada frame kosong, gunakan algoritma pemindahan halaman untukmenyeleksi frame yang akan digunakan.c. Tulis halaman yang telah dipilih ke disk, ubah tabel halaman dan tabel frame.3. Baca halaman yang diinginkan kedalam frame kosong yang baru, ubah tabel halamandan tabel frame.4. Ulang dari awal proses pengguna.

Jika tidak ada frame yang kosong, pentransferan dua halaman (satu masuk, satukeluar) akan dilakukan. Situasi ini secara efektif akan menggandakan waktu pelayanankesalahan halaman dan meningkatkan waktu akses efektif. Kita dapat mengurangipemborosan ini dengan menggunakan bit tambahan. Masingmasing halaman atau frame mungkin memiliki bit tambahan yang diasosiasikan didalam perangkat keras.Pemindahan halaman merupakan dasar dari demand paging. Yang menjembatanipemisahan antara memori lojik dan memori fisik. Dengan mekanisme seperti ini, memorivirtual yang sangat besar dapat disediakan untuk programmer dalam bentuk memori fisikyang lebih kecil. Dengan nondemand paging, alamat dari user dipetakan kedalam alamatfisik, jadi 2 set alamat dapat berbeda. Seluruh halaman dari proses masih harus beradadi memori fisik. Dengan demand paging, ukuran dari ruang alamat logika sudah tidakdibatasi oleh memori fisik.Kita harus menyelesaikan 2 masalah utama untuk mengimplementasikan demandpaging. Kita harus mengembangkan algoritma pengalokasian frame dan algoritmapemindahan halaman. Jika kita memiliki banyak proses di memori, kita harus memutuskan berapa banyak frame yang akan dialokasikan ke masing-masing proses.Lebih jauh lagi, saat pemindahan halaman diinginkan, kita harus memilih frame yangakan dipindahkan. Membuat suatu algoritma yang tepat untuk menyelesaikan masalah ini adalah hal yang sangat penting. Ada beberapa algoritma pemindahan halaman yang berbeda. Kemungkinan setiap Sistem Operasi memiliki skemapemindahan yang unik. Algoritma pemindahan yang baikadalah yang memiliki tingkat kesalahan halaman terendah.Kita mengevaluasi algoritma dengan menjalankannya dalam string khusus di memoriacuan dan menghitung jumlah kesalahan halaman. String dari memori acuan disebutstring acuan (reference string).Sebagai contoh, jika kita memeriksa proses khusus, kita mungkin akan mencataturutan alamat seperti dibawah ini:0100, 0432, 0101, 0612, 0102, 0103, 0104, 0101, 0611, 0102, 0103, 0104, 0101, 0610,0102, 0103, 0104, 0101, 0609, 0102, 0105,dimana pada 100 bytes setiap halaman, diturunkan menjadi string acuan seperti berikut:1, 4, 1, 6, 1, 6, 1, 6, 1, 6, 1Perlu diperhatikan bahwa selama jumlah frame meningkat, jumlah kesalahan halamanmenurun.Penambahan memori fisik akan meningkatkan jumlah frame.

1.5.1 Pemindahan Halaman Secara FIFOAlgoritma ini adalah algoritma paling sederhana dalam hal pemindahan halaman.Algoritma pemindahan FIFO (First In First Out) mengasosiasikan waktu pada saathalaman dibawa kedalam memori dengan masing-masing halaman. Pada saat halamanharus dipindahkan, halaman yang paling tua yang dipilih. Sebagai contoh:

Gambar 4.11. String Acuan

Dari contoh diatas, terdapat 15 kesalahan halaman. Algoritma FIFO mudah untukdipahami dan diimplementasikan. Namun performance-nya tidak selalu bagus. Salahsatu kekurangan dari algoritma FIFO adalah kemungkinan terjadinya anomali Beladi,dimana dalam beberapa kasus, tingkat kesalahan akan meningkat seiring denga peningkatan jumlah frame yang dialokasikan.

1.5.2 Pemindahan Halaman Secara OptimalSalah satu akibat dari upaya mencegah terjadinya anomali Beladi adalah algoritmapemindahan halaman secara optimal. Algoritma ini memiliki tingkat kesalahan halamanterendah dibandingkan dengan algoritma-algoritma lainnya. Algoritma ini tidak akanmengalami anomaly Belady. Konsep utama dari algoritma ini adalah mengganti halamanyang tidak akan digunakan untuk jangka waktu yang paling lama. Algoritma ini menjaminkemungkinan tingkat kesalahan terendah untuk jumlah frame yang tetap.

Dari contoh diatas, terdapat 9 kesalahan halaman. Dengan hanya 9 kesalahan halaman, algoritma optimal jauh lebih baik daripada algoritma FIFO.Perlu disayangkan, algoritma optimal susah untuk diimplementasikan kedalam program, karena algoritma ini menuntut pengetahuan tentang string acuan yang akan muncul.

1.5.3 Pemindahan Halaman Secara LRUJika algoritma optimal sulit untuk dilakukan, mungkin kita dapat melakukan pendekatan terhadap algoritma tersebut. Jika kita menggunakan waktu yang baru berlalu sebagai pendekatan terhadap waktu yang akan datang, kita akan memindahkan halaman yang sudah lama tidak digunakan dalam jangka waktu yang terlama. Pendekatan ini disebut algoritma LRU (Least Recently Used).

Algoritma LRU mengasosiasikan dengan masing-masing halaman waktu dari halaman yang terakhir digunakan. Ketika halaman harus dipindahkan, LRU memilih halaman yang paling lama tidak digunakan pada waktu yang lalu. Inilah algoritma LRU, melihat waktu yang telah lalu, bukan waktu yang akan datang.

Dari contoh diatas, terdapat 12 kesalahan halaman. Meski pun algoritma ini menghasilkan 12 kesalahan halaman, algoritma ini masih lebih baik daripada algoritma FIFO, yang menghasilkan 15 kesalahan halaman. Untuk mengimplementasikan algoritma LRU, terdapat 2 implementasi yang dapat digunakan, yaitu dengan counter dan stack.

Selain algoritma optimal, algoritma LRU juga dapat terhindar dari anomali Beladi. Salah satu kelas dari algoritma pemindahan halaman adalah algoritma stack, yang juga tidak akan pernah mengalami anomali Beladi. Algoritma stack ini menyimpan nomor-nomor halaman pada stack. Kapan pun suatu halaman ditunjuk, halaman ini dikeluarkan dari stack dan diletakkan di blok paling atas dari stack. Dengan cara seperti ini, blok paling atas dari stack selalu berisi halaman yang baru digunakan, sedangkan blok terbawah dari stack selalu berisi halaman yang sudah lama tidak digunakan. Karena suatu halaman dalam stack dapat dikeluarkan meski pun berada ditengah-tengah stack, maka implementasi terbaik untuk algoritma ini adalah dengan daftar mata rantai ganda (doubly linked list), dengan kepala dan ekor sebagai penunjuk. Pendekatan ini sangat tepat untuk perangkat lunak atau implementasi kode mikro dari algoritma LRU. Sebagai contoh:

1.5.4 Pemindahan Halaman Secara Perkiraan LRUHanya sedikit sistem komputer yang menyediakan perangkat lunak yang memberikan cukup dukungan terhadap algoritma pemindahan halaman secara LRU. Banyak sistem yang tidak menyediakan perangkat lunak yang memberikan dukungan terhadap algoritma LRU, sehingga terpaksa menggunakan algoritma lain, seperti FIFO.

Banyak sistem menyediakan bantuan untuk menangani masalah ini, misalnya dengan bit acuan. Bit acuan untuk halaman diset oleh perangkat lunak kapan pun halaman tersebut ditunjuk. Bit acuan diasosiasikan dengan masing-masing isi dari tabel halaman.

Awalnya, seluruh bit dikosongkan oleh sistem operasi. Selama proses pengguna dijalankan, bit yang diasosiasikan ke masing-masing halaman acuan diset menjadi 1 oleh perangkat keras. Setelah beberapa waktu, kita dapat menentukan halaman mana yang sudah digunakan dan halaman mana yang belum digunakan dengan menguji bit-bit acuan.

Informasi tersebut memberikan informasi penting untuk banyak algoritma pemindahan halaman yang memperkirakan halaman mana yang sudah lama tidak digunakan.

1.6 Pengalokasian Frame Terdapat masalah dalam alokasi frame dalam penggunaan memori virtual, masalahnya yaitu bagaimana kita membagi memori yang bebas kepada berbagai proses yang sedang dikerjakan? Jika ada sejumlah frame bebas dan ada dua proses, berapakah frame yang didapatkan tiap proses? Kasus paling mudah dari memori virtual adalah sistem satu pemakai. Misalkan sebuah sistem mempunyai memori 128K dengan ukuran halaman 1K, sehingga ada 128 frame. Sistem operasinya menggunakan 35K sehingga ada 93 frame yang tersisa untuk proses tiap user. Untuk pure demand paging, ke-93 frame tersebut akan ditaruh pada daftar frame bebas. Ketika sebuah proses user mulai dijalankan, akan terjadi sederetanpage fault. Sebanyak 93 page fault pertama akan mendapatkan frame dari daftar frame bebas. Saat frame bebas sudah habis, sebuah algoritma pergantian halaman akan digunakan untuk memilih salah satu dari 93 halaman di memori yang diganti dengan yang ke 94, dan seterusnya. Ketika proses selesai atau diterminasi, sembilan puluh tiga frame tersebut akan disimpan lagi pada daftar frame bebas. Terdapat macam-macam variasi untuk strategi sederhana ini, kita bisa meminta sistem operasi untuk mengalokasikan seluruh buffer dan ruang tabel-nya dari daftar frame bebas. Saat ruang ini tidak digunakan oleh sistem operasi, ruang ini bisa digunakan untuk mendukung paging dari user. Kita juga dapat menyimpan tiga frame bebas yang dari daftar frame bebas, sehingga ketika terjadi page fault, ada frame bebas yang dapat digunakan untuk paging. Saat pertukaran halaman terjadi, penggantinya dapat dipilih, kemudian ditulis ke disk, sementara proses user tetap berjalan.Variasi lain juga ada, tetapi ide dasarnya tetap yaitu proses pengguna diberikan frame bebas yang mana saja. Masalah lain muncul ketika demand paging dikombinasikan dengan multiprogramming. Hal ini terjadi karena multiprogramming menaruh dua (atau lebih) proses di memori pada waktu yang bersamaan.1.6.1 Jumlah Frame Minimum Tentu saja ada berbagai batasan pada strategi kita untuk alokasi frame. Kita tidak dapat mengalokasikan lebih dari jumlah total frame yang tersedia (kecuali ada page sharing). Ada juga jumlah minimal frame yang dapat di alokasikan. Jelas sekali, seiring dengan bertambahnya jumlah frame yang dialokasikan ke setiap proses berkurang, tingkat page fault bertambah dan mengurangi kecepatan eksekusi proses. Selain hal tersebut di atas, ada jumlah minimum frame yang harus dialokasikan. Jumlah minimum ini ditentukan oleh arsitektur set instruksi. Ingat bahwa ketika terjadi page fault, sebelum eksekusi instruksi selesai, instruksi tersebut harus diulang. Sehingga kita harus punya jumlah frame yang cukup untuk menampung semua halaman yang dirujuk oleh sebuah instruksi tunggal. Jumlah minimum frame ditentukan oleh arsitektur komputer. Sebagai contoh, instruksi move pada PDP-11 adalah lebih dari satu kata untuk beberapa modus pengalamatan, sehingga instruksi tersebut bisa membutuhkan dua halaman. Sebagai tambahan, tiap operannya mungkin merujuk tidak langsung, sehingga total ada enam frame. Kasus terburuk untuk IBM 370 adalah instruksi MVC. Karena instruksi tersebut adalah instruksi perpindahan dari penyimpanan ke penyimpanan, instruksi ini butuh 6 bit dan dapat memakai dua halaman. Satu blok karakter yang akan dipindahkan dan daerah tujuan perpindahan juga dapat memakai dua halaman, sehingga situasi ini membutuhkan enam frame. Kesimpulannya, jumlah minimum frame yang dibutuhkan per proses tergantung dari arsitektur komputer tersebut, sementara jumlah maksimumnya ditentukan oleh jumlah memori fisik yang tersedia. Di antara kedua jumlah tersebut, kita punya pilihan yang besar untuk alokasi frame.1.6.2 Algoritma Alokasi Cara termudah untuk membagi m frame terhadap n proses adalah untukmemberikan bagian yang sama, sebanyak m/n frame untuk tiap proses. Sebagai contohada 93 frame tersisa dan 5 proses, maka tiap proses akanmendapatkan 18 frame. Frameyang tersisa, sebanyak 3 buah dapat digunakan sebagai frame bebas cadangan. Strategiini disebut equal allocation.Sebuah alternatif yaitu pengertian bahwa berbagai proses akan membutuhkanjumlah memori yang berbeda. Jika ada sebuah proses sebesar 10K dan sebuah prosesbasis data 127K dan hanya kedua proses ini yang berjalan pada sistem, maka ketika ada62 frame bebas, tidak masuk akal jika kita memberikan masing-masing proses 31 frame.Proses pertama hanya butuh 10 frame, 21 frame lain akan terbuang percuma. Untuk menyelesaikan masalah ini, kita menggunakan proportional allocation. Kita mengalokasikan memori yang tersedia kepada setiap proses tergantung pada ukurannya. Let the size of the virtual memory for process pi be si, and define S = si. Lalu, jika jumlah total dari frame yang tersedia adalah m, kita mengalokasikan proses ai ke proses pi, dimana ai mendekati ai = si / S x m Dalam kedua strategi ini, tentu saja, alokasi untuk setiap proses bisa bervariasi berdasarkan multiprogramming level-nya. Jika multiprogramming level-nya meningkat, setiap proses akan kehilangan beberapa frame guna menyediakan memori yang dibutuhkan untuk proses yang baru. Di sisi lain, jika multiprogramming level-nya menurun, frame yang sudah dialokasikan pada bagian process sekarang bisa disebar ke proses-proses yang masih tersisa. Mengingat hal itu, dengan equal atau pun proportional allocation, proses yang berprioritas tinggi diperlakukan sama dengan proses yang berprioritas rendah. Berdasarkan definisi tersebut, bagaimanapun juga, kita ingin memberi memori yang lebih pada proses yang berprioritas tinggi untuk mempercepat eksekusi-nya, to the detriment of low-priority processes. Satu pendekatan adalah menggunakan proportional allocation scheme dimana perbandingan frame-nya tidak tergantung pada ukuran relatif dari proses, melainkan lebih pada prioritas proses, atau tergantung kombinasi dari ukuran dan prioritas.1.6.3 Alokasi Global dan Lokal Faktor penting lain dalam cara-cara pengalokasian frame ke berbagai proses adalah penggantian halaman. Dengan proses-proses yang bersaing mendapatkan frame, kita dapat mengklasifikasikan algoritma penggantian halaman kedalam dua kategori broad: 1.6.3.1 Penggantian Global dan Penggantian Lokal. Penggantian Global memperbolehkan sebuah proses untuk menyeleksi sebuah frame pengganti dari himpunan semua frame, meski pun frame tersebut sedang dialokasikan untuk beberapa proses lain; satu proses dapat mengambil sebuah frame dari proses yang lain. Penggantian Lokal mensyaratkan bahwa setiap proses boleh menyeleksi hanya dari himpunan frame yang telah teralokasi pada proses itu sendiri. Untuk contoh, pertimbangkan sebuah skema alokasi dimana kita memperbolehkan proses berprioritas tinggi untuk meyeleksi frame dari proses berprioritas rendah untuk penggantian. Sebuah proses dapat menyeleksi sebuah pengganti dari frame-nya sendiri atau dari frame-frame proses yang berprioritas lebih rendah. Pendekatan ini memperbolehkan sebuah proses berprioritas tinggi untuk meningkatkan alokasi frame-nya pada expense proses berprioritas rendah.Dengan strategi Penggantian Lokal, jumlah frame yang teralokasi pada sebuahproses tidak berubah. Dengan Penggantian Global, ada kemungkinan sebuah proseshanya menyeleksi frame-frame yang teralokasi pada proses lain, sehingga meningkatkanjumlah frame yang teralokasi pada proses itu sendiri (asumsi bahwa proses lain tidakmemilih frame proses tersebut untuk penggantian).Masalah pada algoritma Penggantian Global adalah bahwa sebuah proses tidak bisamengontrol page-fault-nya sendiri. Himpunan halaman dalam memori untuk sebuahproses tergantung tidak hanya pada kelakuan paging dari proses tersebut, tetapi jugapada kelakuan paging dari proses lain. Karena itu, proses yang sama dapat tampilberbeda (memerlukan 0,5 detik untuk satu eksekusi dan 10,3 detik untuk eksekusiberikutnya) due to totally external circumstances. Dalam Penggantian Lokal, himpunanhalaman dalam memori untuk sebuah proses hanya dipengaruhi kelakuan paging prosesitu sendiri.Penggantian Lokal dapat menyembunyikan sebuah proses dengan membuatnya tidak tersedia bagi proses lain, menggunakan halaman yang lebih sedikit pada memori. Jadi, secara umum Penggantian Global menghasilkan sistem throughput yang lebih bagus, maka itu artinya metode yang paling sering digunakan.1.7 Thrasing Jika suatu proses tidak memiliki frame yang cukup, walau pun kita memiliki kemungkinan untuk mengurangi banyaknya frame yang dialokasikan menjadi minimum, tetap ada halaman dalam jumlah besar yang memiliki kondisi aktif menggunakannya. Maka hal ini akan mengakibatkan kesalahan halaman. Pada kasus ini, kita harus mengganti beberapa halaman menjadi halaman yang dibutuhkan walau pun halaman yang diganti pada waktu dekat akan dibutuhkan lagi. Hal ini mengakibatkan kesalahan terus menerus. Aktivitas yang tinggi dari paging disebut thrashing. Suatu proses dikatakan thrashing jika proses menghabiskan waktu lebih banyak untuk paging daripada eksekusi (proses sibuk untuk melakukan swap-in swap-out).1.7.1 Penyebab Thrashing Penyebab dari thrashing adalah utilisasi CPU yang rendah. Jika utilisasi CPU terlalu rendah, kita menambahkan derajat dari multiprogramming dengan menambahkan proses baru ke sistem. Sejalan dengan bertambahnya derajat dari multiprogramming, utilisasi CPU juga bertambah dengan lebih lambat sampai maksimumnya dicapai. Jika derajat dari multiprogramming ditambah terus menerus, utilisasi CPU akan berkurang dengandrastis dan terjadi thrashing. Untuk menambah utilisasi CPU dan menghentikan thrashing, kita harus mengurangi derajat dari multiprogramming.

2. MANAJEMEN SISTEM FILEFile system atau manajemen file adalah metode dan struktur data yang digunakan sistem operasi untuk mengatur dan mengorganisir file pada disk atau partisi. File system juga dapat diartikan sebagai partisi atau disk yang digunakan untuk menyimpan file-file dalam cara tertentu. Cara memberi suatu file system ke dalam disk atau partisi dengan cara melakukan Format.

2.0 Manfaat Manajemen FileManfaat manajemen file yaitu dapat mengurangi resiko kehilangan file yang dikarenakan: terhapus secara tidak disengaja, tertimpa file baru, tersimpan dimana saja, dan hal lain yang tidak kita inginkan.Pada sebagian besar pemakai, system file merupakan bagian system operasi yang paling tampak. System file menyediakan pengaksesan dan penyimpanan file secara online terhadap data dan program. System file terisi dua bagian terpisah, yaitu kumpulan file yang masing-masing file menyimpan data dan / atau program serta struktur direktori yang mengorganisasikan dan menyediakan informasi mengenai file di system.2.1 Interface Sistem FileAntarmuka (Interface) merupakan mekanisme komunikasi antara pengguna (user) dengan sistem. Antarmuka (Interface) dapat menerima informasi dari pengguna (user) dan memberikan informasi kepada pengguna (user) untuk membantu mengarahkan alur penelusuran masalah sampai ditemukan suatu solusi. Sedangkan Sistem File adalah adalah metoda untuk memberi nama padaberkasdan meletakkannya padamedia penyimpanan. Semua sistem operasi mulai dari DOS, Windows, Macintosh dan turunanUNIXmemiliki Sistem berkas sendiri untuk meletakkan file dalam sebuah struktur hirarki. Contoh dari sistem berkas termasuk di dalamnyaFAT,NTFS,HFSdanHFS+,ext2,ext3,ISO 9660,ODS-5, danUDF.2.1.1 Konsep File

File adalah unit penyimpan logika yang diabstraksi sistem operasi dari perangkat penyimpan. File berisi informasi yang disimpan pada penyimpan sekunder (seperti magnetic disk, magnetic tape dan optical disk). Informasi dalam file didefinisikan oleh pembuatnya. Sebuah file mempunyai struktur tertentu tergantung tipenya. Tipe file terdiri dari data baik data numeric, karakter maupun binary sertaprogram misalnya source program, object program dan executable program.

2.1.1.1 Atribut FileSebuah file mempunyai atribut yg berbeda antara sistem operasi satu denganlainnya, tetapi secara umum terdiri dari : Nama, informasi disimpan dalam bentuk yang dapat dibaca manusia Tipe, diperlukan sistem yang mendukung tipe yang berbeda. Lokasi, pointer ke lokasi file pada perangkat. Ukuran, ukuran file saat ini. Proteksi, mengontrol siapa yang dapat membaca, menulis dan mengeksekusi. Waktu, tanggal dan identifikasi user, data untuk monitoring proteksi, sekuriti dan penggunaan.Informasi file disimpan dalam struktur direktori yang diatur oleh disk.2.1.1.2 Operasi pada File

Sebagai tipe data abstrak, perlu didefinisikan operasi yang dapat dibentuk olehfile. Terdapat enam operasi dasar yg disediakan sebagai sistem call yaitu : Membuat file (create) Menulis file (write) Membaca file (read) Reposisi dalam file (file seek) Menghapus file (delete) Memotong file (truncate) Open(Fi) mencari struktur direktori untuk entry Fi dan memindahkan isi entry kememori. Close (Fi) memindahkan isi entry Fi di memori ke struktur direktori pada disk.Operasi tambahan yang biasanya dilakukan terhadap file adalah : Menambah (append) informasi baru pada akhir file yang sudah ada Mengubah nama (rename) file yang sudah ada Membuat duplikasi (copy) file

Kebanyakan operasi file melibatkan pencarian direktori untuk masukan yangberhubungan dengan file. Untuk menghindari pencarian tetap, beberapa sistem akanmembuka file bila file tersebut aktif pertama kali. Sistem operasi menyimpan table kecil yang berisi informasi tentang semua file yang terbuka (open-file table). Bila filetidak digunakan lagi, dilakukan penutupan oleh proses dan sistem operasi memindahkanfile dari open-file table.Beberapa informasi yang berkaitan dg pembukaan file yaitu: Pointer file. Jumlah file yang dibuka. Lokasi file pada disk.

2.1.1.3 Tipe FileSalah satu pertimbangan penting dalam merancang sistem file dan keseluruhansistem operasi adalah apakah sistem operasi mengenali dan mendukung sistem file. Bila sistem operasi mengenali tipe suatu file, maka dapat dilakukan operasi terhadap filedengan cara yang rasional. Misalnya user yang mencoba mencetak file executable dapatdicegah oleh sistem operasi karena file adalah program binary.Teknik yg umum untuk implementasi tipe file adalah memasukkan tipe filesebagai bagian dari nama file. Nama file dibagi menjadi dua bagian yaitu nama danextension (seperti pada MS-DOS) seperti pada Gambar 9-2. Setiap file mempunyaiatribut pembuat berisi nama dari program yang membuatnya (seperti pada MSWindows/ Apple Macintosh). Atribut ini di-set oleh sistem operasi saat menggunakansystem call create. Bila user membuka file tersebut dengan melakukan double-clickingmouse pada icon dari file tsb, program yang dibuat ditampilkan otomatis.

UNIX menggunakan magic number yang disimpan pada awal file untuk mengindikasikan tipe file berupa program executable, batch file (shell script), filepostscript dan lain-lain. Tidak semua file mempunyai magic number, sehinggainformasi tipe tidak dapat digambarkan. UNIX tidak menyimpan nama dari programpembuatnya. UNIX juga mengijinkan nama extension dari file tersembunyi, sehingga user dapat menentukan tipe file sendiri dan tidak tergantung pada sistem operasi.2.1.1.3 Struktur FileTipe file juga digunakan untuk untuk menunjukkan struktur internal dari file.File tertentu harus konfirmasi ke struktur yang dibutuhkan yang dimengerti oleh system operasi. Misalnya sistem operasi membutuhkan file executable yang mempunyaistruktur khusus sehingga dapat menentukan dimana letak memory dan lokasi dariinstruksi pertama.Beberapa sistem operasi menggunakan sekumpulan sistem pendukung strukturfile dg sejumlah operasi khusus untuk manipulasi file dengan struktur tersebut. Hal inimenjadi kelemahan pada sistem operasi yang mendukung struktur file lebih dari satu.Jika sistem operasi menentukan 10 struktur file berbeda, maka perlu menyertakan kodeuntuk mendukung struktur file tersebut. Setiap file perlu dapat didefinisikan sebagai satu dari tipe file yang didukung oleh sistem operasi.Beberapa sistem operasi seperti UNIX dan MS-DOS hanya mendukungsejumlah struktur file. UNIX menentukan setiap file merupakan deret 8 bit byte dan bit tersebut tidak di terjemahkan oleh sistem operasi. Skema ini mempunyai fleksibilitasimaksimum, tetapi sedikit dukungan. Setiap program aplikasi harus mnyertakan kodesendiri untuk menterjemahkan file input ke dalam struktur yang tepat. Setidaknyasemua SO harus mendukung sedikitnya satu struktur file executable sehingga system dapat load dan menjalankan program.

2.1.1.4 Struktur File InternalSecara internal, sistem disk mempunyai ukuran blok yang ditentukan olehukuran sebuah sector. Semua disk I/O dibentuk dalam unit satu blok (physical record) yang berukuran sama. Ukuran physical record tidak tepat dg panjang logical record.Logical record mempunyai panjang yang bervariasi. Solusinya adalah denganmengirim sejumlah logical record ke blok fisik. Ukuran logical record, ukuran blokfisik dan teknik pengiriman menentukan berapa banyak logical record yang berada padablok fisik. Pengiriman dapat dilakukan oleh program aplikasi user atau sistem operasi.File merupakan deretan blok-blok. Semua fungsi dasar I/O dioperasikan padablok-blok tersebut. Konversi dari logical record ke blok fisik berhubungan dgperangkat lunak sederhana.

2.1.2 Metode AksesFile menyimpan informasi. Bila digunakan, informasi tersebut harus diakses dan dibaca ke memory. Terdapat beberapa cara mengakses informasi pada file yaituakses berurutan (sequential access), akses langsung (Direct access atau relative access) dan metode akses lain.

2.2.2.1 Akses Berurutan (Sequential Access)Akses berurutan merupakan metode akses paling sederhana. Informasi pada filediproses secara berurutan, satu record diakses setelah record yang lain. Metode akses ini berdasarkan model tape dari suatu file yang bekerja dengan perangkat sequential-accessatau random-access.Operasi pada akses berurutan terdiri dari :read nextwrite nextresetno read after last write (rewrite)Operasi read membaca bagian selanjutnya dari file dan otomatis menambah file pointer yang melacak lokasi I/O. Operasi write menambah ke akhir file dan ke akhir materialpembacaan baru (new end of file). File dapat di-reset ke awal dan sebuah programuntuk meloncat maju atau mundur ke n record.

Gambar 3 : Akses file berurutan2.2.2.2 Akses Langsung (Direct Access)File merupakan logical record dengan panjang tetap yang memungkinkanprogram membaca dan menulis record dengan cepat tanpa urutan tertentu. Metodeakses langsung berdasarkan model disk dari suatu file, memungkinkan acak kesembarang blok file, memungkinkan blok acak tersebut dibaca atau ditulis.Operasi pada akses langsung terdiri dari :read nwrite nposition to nread nextwrite nextrewrite nOperasi file dimodifikasi untuk memasukkan nomor blok sebagai parameter. Nomor blok ditentukan user yang merupakan nomor blok relatif, misalnya indeks relatif keawal dari file. Blok relatif pertama dari file adalah 0, meskipun alamat disk absolutaktual dari blok misalnya 17403 untuk blok pertama. Metode ini mengijinkan system operasi menentukan dimana file ditempatkan dan mencegah user mengakses posisi darisistem file yang bukan bagian dari file tersebut.

Tidak semua sistem operasi menggunakan baik akses berurutan atau akse langsung untuk file. Beberapa sistem hanya menggunakan akses berurutan, beberapasistem lain menggunakan akses langsung. Untuk mengubah akses berurutan ke akseslangsung bukan sesuatu hal yang sulit seperti pada Gambar 4.

Gambar 4 : Mengubah akses berurutan menjadi akses langsung2.2.2.3 Metode Akses LainMetode akses lain dapat dibangun berpedoman pada metode direct access.Metode tambahan ini biasanya melibatkan konstruksi indeks untuk file. Indeks, seperti indeks pada bagian akhir buku, berisi pointer ke blok-blok tertentu. Untuk menentukan masukan dalam file, pertama dicari indeks, dan kemudian menggunakan pointer untukmengakses file secara langsung dan menemukan masukan yang tepat.File indeks dapat disimpan di memori. Bila file besar, file indeks juga menjaditerlalu besar untuk disimpan di memori. Salah satu pemecahan nya adalah membuatindeks untuk file indeks. File indeks primer berisi pointer ke file indeks sekunder, yangmenunjuk ke data item aktual. Bentuk pengaksesan secara berindeks diilustrasikan pada Gambar 5.

Gambar 5 : Contoh indeks dan file relative

2.2.3 Struktur DirektoriDirektori adalah kumpulan titik yang berisi informasi tentang semua file . Beberapa sistem menyimpan ratusan file pada disk ratusan gigabyte.Untuk mengatur semua data menggunakan organisasi yg dilakukan dalam dua bagian. Pertama, system file dipecah ke dalam partisi, yang disebut juga minidisk (pada mesin IBM) atau volume (pada mesin PC dan Macintosh). Setiap disk padasistem berisi sedikitnya satu partisi, merupakan struktur low-level dimana file dandirektori berada. Terkadang, partisi digunakan untuk menentukan beberapa daerahterpisah dalam satu disk, yang diperlakukan sebagai perangkat penyimpan yangterpisah. Sistem lain menggunakan partisi yang lebih besar dari sebuah disk untukmengelompokkan disk ke dalam satu struktur logika. Kedua, setiap partisi berisi informasi mengenai file di dalamnya. Informasi inidisimpan pada entry dalam device directory atau volume table of contents. Perangkat direktori (atau direktori) menyimpan informasi seperi nama, lokasi, ukuran dan tipeuntuks semua file dari partisi tersebut. Organisasi file yang umum dapat dilihat padaGambar 6.

Gambar 7 : Organisasi sistem fileInformasi yang terdapat pada direktori adalah Nama Tipe Alamat Panjang saat ini Panjang maksimum Tanggal akses terakhir Tanggal perubahan terakhir ID pemilik Informasi proteksi

Beberapa operasi yang dibentuk pada direktori adalah : Mencari file (search) Membuat file (create) Menghapus file (delete) Mendaftar suatu direktori (list) Mengubah nama file (rename) Melintasi sistem file (traverse)

Gambar 8 : Direktori satu levelOrganisasi file dan direktori disarankan yang seefisien mungkin sehingga dapat menempatkan file dengan cepat. Selain itu dalam penamaan file dan direktori harus nyaman untuk user. Dua user dapat memberikan nama file yang sama. File yang samadapat mempunyai beberapa nama. Dalam organisasi file dan direktori juga perlu dilakukan pengelompokan file berdasarkan property, misalnya semua program Java, game dan lain-lain.

2.2.3.1 Direktori Satu LevelDirektori ini hanya terdiri dari satu direktori untuk setiap user (Gambar 8).Pada direktori jenis ini terjadi permasalahan penamaan dan pengelompokan berdasarkan user.

2.2.3.2 Direktori Dua LevelDirektori ini terdiri dari dua level yang memisahkan direktori untuk setiap user (Gambar 9). Setiap file diberi nama path, dapat mempunyai nama file yang sama untuk user yang berbeda, mempunyai kapabilitas pencarian, tetapi belum dilakukan pengelompokan.

Gambar 9 : Direktori dua level2.2.3.3 Direktori Berstruktur PohonDirektori berstruktur pohon merupakan struktur direktori yang biasa digunakan.Pohon mempunyai direktori root. Setiap file pada sistem mempunyai nama path yang unik (Gambar 10).

Gambar 10 : Direktori berstruktur pohonPada direktori ini pencarian file dan direktori lebih efisien, mengelompokkanfile dan dapat mengakses direktori dan sub direktori.Sebuah direktori atau subdirektori berisi kumpulan file atau sub direktori.Sebuah direktori merupakan file yang diperlakukan dengan cara khusus. Semua direktori mempunyai format internal yang sama. Satu bit dalam setiap masukan direktori merupakan masukan sebagai file (0) atau sebagai subdirektori (1). Sistem call khusus digunakan untuk membuat dan menghapus direktori. Namapath dapat dibagi menjadi dua tipe yaitu nama path absolut dan relatif. Pada saatmembuat file baru akan dilakukan pada current directory. Demikian juga pada saatmembuat direktori baru.2.2.3.4 Direktori Acyclic GraphStruktur tree melarang menggunakan bersama-sama file dan direktori. Padadirektori acyclic graph memungkinkan direktori mempunyai subdirektori dan file yangdigunakan bersama-sama. File dan subdirektori yang sama mungkin berada pada duadirektori yang berbeda (Gambar 11).

Gambar 11 : Direktori acyclic graph

Direktori acyclic-graph diimplementasikan dalam beberapa cara. Cara yangumum, pada beberapa system UNIX, adalah membuat entry direktori baru yang disebutlink. Sebuah link berupa sebuah pointer ke file atau subdirektori lain. Sebuah linkdapat diimplementasikan sebagai nama path absolut atau relatif (sebuah symbolic link).Sebuah link berbeda dari direktory asal. Link diindentifikasi oleh format pada direktori entry dan memberi nama pointer secara tak langsung. Pendekanan lain denganmenduplikasi semua informasi pada direktori yang digunakan bersama-sama sehinggakedua entri identik dan sama. Cara ini menyebabkan informasi asli dan duplikasi tidak dapat dibedakan.Permasalahan mendasar adalah memelihara konsistensi jika file dimodifikasi.Struktur direktori acyclic-graph lebih fleksibel daripada struktur pohon, tetapi lebih Gambar 11 : Direktori acyclic graphkompleks. Sebuah file mungkin mempunyai lebih dari satu nama path, konsekuensinya, nama file yang berbeda harus merujuk ke file yang sama. Jika mencoba melintasikeseluruhan sistem file (misalnya untuk akumulasi statistik pada semua file) struktursharing tidak boleh dilintasi lebih dari satu kali.Masalah lainnya melibatkan penghapusan. Kapan ruang yang sudahdialokasikan untuk file yang digunakan bersama-sama dapat di dealokasi dan digunakan lagi. Pendekatan lain untuk penghapusan adalah menyediakan file sampai semua acuandihapus.2.2.4 ProteksiInformasi yang disimpan dalam system komputer harus diproteksi dari kerusakan fisik (reliability) dan akses yang tidak benar (protection).Reliability biasanya dilakukan dengan duplikasi copy dari file. Beberapa system komputer mempunyai sistem yang secara otomatis (atau melalui intervensi operator komputer) menduplikasi file ke tape secara regular dari sistem file yang secara tiba-tiba dihapus. Protection, sebaliknya, dapat dilakukan dalam beberapa cara.

2.2.4.1 Tipe AksesMekanisme proteksi dengan tipe akses file terbatas yang dapat dibuat. Akses diperbolehkan atau tidak tergantung beberapa faktor, satu diantaranya permintaan tipe akses. Beberapa operasi yang disediakan : Membaca dari file (read) Menulis ke file (write) Menjalankan file (execute) Menambah isi file (append) Menghapus file (delete) Melihat nama dan atribut file (list)Operasi yang lain, seperti pemberian nama, meng-copy atau mengubah file, juga harus dikontrol. Untuk beberapa alasan, fungsi level lebih tinggi (sepertimengcopy) diimplementasikan oleh system program yang menggunakan system calllevel lebih rendah. Proteksi disediakan hanya pada level lebih rendah. Sebagai contoh,meng-copy file diimplementasikan dengan deretan permintaan membaca. Dalam hal ini user dengan akses read dapat menyebabkan file di-copy, dicetak dan lain-lain.

2.2.4.2 Access List dan GroupPendekatan permasalahan proteksi yang sering digunakan adalah dengan membuat akses secara dependent pada identifikasi user. Skema umum untukimplementasi akses identity-dependent dengan menghubungkan masing-masing file dan direktori dengan sebuah access list yang menentukan nama user dan tipe akses yangdiijinkan untuk setiap user.Bila user meminta akses ke file khusus, sistem operasi memeriksa access list.Jika user tersebut terdaftar, akses diijinkan, sebaliknya terjadi protection violation dandilarang mengakses file.Masalah pokok dengan access list adalah ukuran. Jika ingin mengijinkan usermembaca file, harus didaftar semua user dengan akses read. Teknik ini mempunyai duakonsekuensi yaitu membangun sebuah daftar mungkin kesulitan dan directory entryyang sebelumnya mempunyai ukuran tetap sekarang menjadi ukuran bervariasi,sehingga muncul permasalahan manajemen ruang.Masalah ini dipecahkan dengan melakukan pengetatan terhadap access list.Beberapa system memperkenalkan tiga klasifikasi user : Owner. User yang membuat file Group. Kumpulan user yang menggunakan file bersama-sama dan memerlukanakses yang sama Universe. Semua user lain dalam system.Agar sistem diatas bekerja dg baik, keanggotaan group harus dikontrol secaraketat. Sebagai contoh, dalam sistem UNIX, group dapat dibuat dan dimodifikasi hanya oleh manager (superuser).2.2.4.3 Contoh Proteksi : UNIX

Pada sistem UNIX, proteksi direktori ditangani sama dengan proteksi file, misalnya, diasosiasikan dengan setiap subdirektory menggunakan owner, group dan universe (others) sebagai 3 bit RWX. Informasi yang terdapat pada file dari kiri ke kanan terdiri dari proteksi file atau direktori, jumlah link ke file, nama pemilik, nama group, ukuran file dalam byte, tanggal membuat, nama file (Gambar 13).

Gambar 13 : Proteksi file dan direktori pada UNIX

2.2 Implementasi Sistem Fileimplementasi sistem file yang meliputi pokok bahasan struktur sistem file, implementasi direktori, metode alokasi, manajemen ruang bebas, efisiensi dan performansi, perbaikan, sistem file berstruktur log dan network file sistemPada level terendah, I/O control berisi device driver dan interrupt handler untuk mengirim informasi antara memori dan sistem disk. Basic file system berisi perintah bagi device driver untuk membaca dan menulis blok fisik pada disk. File organization module berisi modul untuk mengetahui blok logika pada blok fisik. Logical file system menggunakan struktur direktori untuk memberikan ke file organization module informasi tentang kebutuhan terakhir. Informasi mengenai sebuah file disimpan pada struktur penyimpan yang disebut file control blockPada saat membuka file (dengan menjalankan perintah open) blok-blok dari struktur direktori disimpan pada struktur direktori di memori dan mengubah file control block. Pada saat membaca file (dengan menjalankan perintah read), indeks yang dibaca di cari lokasi blok pada disk melalui tabel open file yang berada di memori.2.2.1 Struktur Sistem FileDisk yang merupakan tempat terdapatnya sistem berkas menyediakan sebagian besar tempat penyimpanan dimana sistem berkas akan dikelola. Disk memiliki dua karakteristik penting yang menjadikan disk sebagai media yang tepat untuk menyimpan berbagai macam berkas, yaitu: Data dapat ditulis ulang di disk tersebut, hal ini memungkinkan untuk membaca, memodifikasi, dan menulis di disk tersebut.Dapat diakses langsung ke setiap blok di disk. Hal ini memudahkan untuk mengakses setiap berkas baik secara berurut mau pun tidak berurut, dan berpindah dari satu berkas ke berkas lain dengan hanya mengangkat head disk dan menunggu disk berputar.

Disk Organization2.2.2 Metode Pengalokasian

2.2.2.1 Contiguous Allocation (Alokasi Berurutan)Setiap file menempati sekumpulan blok yang berurutan pada disk.

Kelebihan: Model ini sangat sederhana karena hanya membutuhkan lokasi awal (block #) dan panjang (jumlah blok), Akses pada blok disk dilakukan secara random . Kekurangan: memakan banyak ruang (permasalahan dynamic storage-allocation). File yang disimpan secara berurutan tidak dapat berkembang.

Contoh Contiguous Allocation

2.2.2.2 Linked Allocation (Alokasi Berhubungan)Setiap file adalah sebuah linked list dari blok-blok terpisah pada disk.

Kelebihan: Berhubungan mempunyai bentuk yang sederhana, hanya memerlukan alamat awal. Sistem manajemen ruang bebas pada alokasi berhubungan. Tidak memakan banyak ruang. Kekurangan: tidak menggunakan random access.

Contoh Linked Allocation

2.2.2.3 Indexed Allocation (Alokasi Berindeks) Pointer digabungkan didalam suatu blok yang dinamakan blok indeks Setiap file memiliki blok indeks masing-masing Direktori mengandung alamat dari blok indeks Kelemahan: Jika blok indeks terlalu kecil, maka itu tidak akan bisa memuat pointer yang cukup untuk sebuah file yang besar Suatu mekanisme akan dibutuhkan menangani masalah tersebut

Contoh Indexed Allocation

2.2.2.4 Kinerja dari Metode AlokasiCountiguous allocation: Efisien untuk file kecil. Mendukung akses secara langsungLinked allocation: Mendukung akses secara sequentialIndexed allocation: Tergantung dari struktur index, ukuran file, dan posisi dari blok yang dibutuhkan

2.2.3 Manajemen Ruang Kosong

2.2.3.1 Bit Vector

Daftar ruang kosong diimplementasikan sebagai bit map atau bit vectorSetiap bit merepresentasikan 1 blok. Blok yang kosong ditandai dengan angka 1 dan blok yang ada isinya ditandai dengan angka 0

Perhitungan nomor blok kosong pada vektor bit ini adalah :(jumlah bit per word)*(jumlah nilai-0 word) + offset dari bit pertama.Kelemahan dari cara ini : pemetaan bit-nya membutuhkan ruang tambahan (blok tersendiri).

2.2.3.2 Linked ListSkema ini menghubungkan blok-blok yang masih kosong menjadi linked listBlok kosong pertama pointer menunjuk ke blok kosong kedua, dan blok kosong kedua pointer menunjuk ke blok ketiga yang kosong

Keunggulan : tidak membutuhkan terlalu banyak ruang khusus untuk pointerKelemahan : sulit untuk mendapatkan ruang kosong berurutan dengan mudah

2.2.3.3 GroupingMenggunakan satu blok untuk menyimpan alamat blok-blok kosong di dekatnya. Jika blok telah terisi, maka akan terhapus, dan blok alamat kembali kosong

2.2.3.4 CountingRuang kosong list berupa urutan blok-blok kosong, maka dilakukan pendaftaran rangkaian blok kosong dengan memasukkan alamat blok kosong pertama dari rangkaian, lalu disertakan jumlah blok kosong yang bersebelahan dengannya

2.2.4 Implementasi Direktori

2.2.4.1 Direktori pada CP/MDirektori pada CP/M merupakan direktori entri yang mencakup nomor blok disk untuk setiap file.

2.2.4.2 Direktori pada MS-DOSMS-DOS merupakan sistem direktori hierarki atau berstruktur pohon

2.2.4.3 Direktori pada UNIXi-node berisi informasi tentang :

1. tipe2. ukuran3. waktu4. owner5. blok-blok di disk

Contoh Directory di Linux /bin /boot /dev /etc /lib

2.2.5 Efisiensi Dan Kerja

2.2.5.1 Efisiensi Penggunaan yang efisien dari ruang disk sangat tergantung pada alokasi disk dan algoritma direktori yang digunakan2.2.5.2 Unjuk Kerja Sekali algoritma sistem berkas dipilih, kita tetap dapat mengembangkan kinerja dengan beberapa cara. Kebanyakan dari disk controller mempunyai memori lokal untuk membuat on-board cache yang cukup besar untuk menyimpan seluruh tracks dengan sekejap.

2.2.6 Recovery

2.2.6.1 Backup dan Restore Dikarenakan disk magnetik kadang-kadang gagal, perawatan harus dijalankan untuk memastikan data tidak hilang selamanya. Oleh karena itu, program sistem dapat digunakan untuk back up data dari disk menuju ke media penyimpanan yang lainnya, seperti sebuah floppy disk, tape magnetik, atau disk optikal. Recovery dari kehilangan sebuah berkas individu, atau seluruh disk, mungkin menjadi masalah dari restoring data dari backup.

Daftar pustakahttp://terminaltechno.blog.uns.ac.id/2009/12/13/implementasi-sistem-file/http://mohiqbal.staff.gunadarma.ac.id/Downloads/files/5359/09.Manajemen+Sistem+File.ppt

Daftar pustakahttp://arna.lecturer.pens.ac.id/Diktat_SO/9.Sistem%20File.pdfhttp://manajementos.blogspot.com/2010/10/sistem-manajemen-file.html

31