Jumat, 12 November 2010

Management Memory (Sistem Operasi)

Soal
1.      Apa yang dimaksud dengan virtual memori? Apa keuntungannya?
2.      Apa yang dimaksud dengan segmentasi dalam memory management? Gambarkan bila perlu!
3.      Jelaskan tentang paging dalam pengaturan memori dan jelaskan keuntungannya! Dan gambarkan tentang page segmentasinya!
4.      Apa solusi yang ditawarkan oleh management memory terhadap kasus ketika segmentasi melampaui kemampuan dari virtual memori? Jelaskan jawaban dari solusi Anda!
5.      Apa yang terjadi apabila timbunan dari set tugas melampaui  kapasitas memori fisik  komputer? Jelaskan dan gambarkan bila perlu.

Jawaban :
1.      Virtual memory merupakan suatu teknik yang memisahkan antara memori logis dan memori fisiknya. Teknik ini mengizinkan program untuk dieksekusi tanpa seluruh bagian program perlu ikut masuk ke dalam memori. Atau dengan kata lain virtual memori adalah sebuah mekanisme yang digunakan oleh aplikasi untuk menggunakan sebagian dari memori sekunder seolah-olah ia menggunakannya sebagai RAM fisik yang terinstal di dalam sebuah sistem. Mekanisme ini beroperasi dengan cara memindahkan beberapa kode yang tidak dibutuhkan ke sebuah berkas di dalam hard drive yang disebut dengan swap file, page file atau swap partition.

Keuntungannya antara lain :
a.       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.
b.      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.
c.       Meningkatnya respon, sebagai konsekuensi dari menurunnya beban I/O dan memori.
d.      Bertambahnya jumlah user yang dapat dilayani. Ruang memori yang masih tersedia luas memungkinkan komputer untuk menerima lebih banyak permintaan dari user.
e.       Dengan VM perubahan suatu bagian tidak akan mempengaruhi komponen yang lain
f.        Dengan VM perubahan suatu bagian tidak akan mempengaruhi komponen yang lain
g.       Tidak ada pembagian sumber daya secara langsung. Pembagian disk mini dan jaringan diimplementasikan pada perangkat lunak

2.      Segmentasi dalam memory management merupakan skema manajemen memori yang mendukung cara pandang seorang programmer terhadap memori. Ruang alamat logika merupakan sekumpulan dari segmen-segmen. Masing-masing segment mempunyai panjang dan nama. Alamat diartikan sebagai nama segmen dan offset dalam suatu segmen. Jadi jika seorang pengguna ingin menunjuk sebuah alamat dapat dilakukan dengan menunjuk nama segmen dan offsetnya. Untuk lebih menyederhanakan implementasi, segmen-segmen diberi nomor yang digunakan sebagai pengganti nama segment. Sehingga, alamat logika terdiri dari dua tupple: [segment-number, offset].
Gambar  Sisi pandang program oleh pengguna


Segmentasi Perangkat Keras
Meskipun seorang pengguna dapat memandang suatu objek dalam suatu program sebagai alamat berdimensi dua, memori fisik yang sebenarnya tentu saja masih satu dimensi barisan byte. Jadi kita harus bisa mendefinisikan pemetaan dari dua dimensi alamat yang didefinisikan oleh pengguna ke satu dimensi alamat fisik. Pemetaan ini disebut sebagai sebuah segment table. Masing-masing masukan dari mempunyai segment base dan segment limit. Segment base merupakan alamat fisik dan segmen limit diartikan sebagai panjang dari segmen.
Gambar  Arsitektur segmentasi perangkat keras
Suatu alamat logika terdiri dari dua bagian, yaitu nomor segmen(s), dan offset pada segmen(d). Nomor segmen digunakan sebagai indeks dalam segmen table. Offset d alamat logika harus antara 0 hingga dengan segmen limit. Jika tidak maka diberikan pada sistem operasi. Jika offset ini legal maka akan dijumlahkan dengan segmen base untuk menjadikannya suatu alamat di memori fisik dari byte yang diinginkan. Jadi segmen table ini merupakan suatu array dari pasangan base dan limit register.

Gambar  Segmentasi
Sebagai contoh kita mempunyai nomor segmen dari 0 sampai dengan 4. Segmen-segmen ini disimpan dalam suatu memori fisik. Tabel segmen berisi data untuk masing-masing segmen, yang memberikan informasi tentang awal alamat dari segmen di fisik memori (atau base) dan panjang dari segmen (atau limit). Misalkan, segmen 2 mempunyai panjang 400 dan dimulai pada lokasi 4300. Jadi, referensi di byte 53 dari segmen 2 dipetakan ke lokasi 4300 + 53 = 4353. Suatu referensi ke segmen 3, byte 852, dipetakan ke 3200 (sebagai base dari segmen) + 852 = 4052. Referensi ke byte 1222 dari segmen 0 akan menghasilkan suatu trap ke sistem operasi, karena segmen ini hanya mempunyai
panjang 1000 byte.

Kelebihan Segmentasi: saling berbagi-proteksi.
Keuntungan pemakaian cara segmentasi ini adalah sebagai berikut:
a.       Menyederhanakan penanganan struktur data yang berkembang. Seringkali penanganan struktur data menuntut perubahan panjang data. Hal ini dimungkinkan dengan adanya segmentasi. Jadi dengan segmentasi membuat penanganan struktur data menjadi fleksibel.
b.      Kompilasi ulang independen tanpa menautkan kembali seluruh program. Teknik ini memungkinkan program-program dikompilasi ulang secara independen tanpa perlu mentautkan kembali seluruh program dan dimuatkan kembali. Jika masing-masing prosedur terdapat di segmen terpisah beralamat 0 sebagai alamat awal, maka pentautan prosedur-prosedur yang dikompilasi secara terpisah sangat lebih mudah. Setelah semua prosedur dikompilasi dan ditautkan, panggilan ke prosedur di segmen n akan menggunakan alamat dua bagian yaitu (n,0) mengacu ke word alamat 0 (sebagai titik masuk) segmen ke n. Jika prosedur di segmen n dimodifikasi dan dikompilasi ulang, prosedur lain tidak perlu diubah (karena tidak ada modifikasi alamat awal) walau versi baru lebih besar dibanding versi lama.
c.       Memudahkan pemakaian memori bersama diantara proses-proses Teknik ini memudahkan pemakaian memori bersama diantara proses-proses. Pemrogram dapat menempatkan program utilitas atau tabel data berguna di segmen yang dapat diacu oleh proses-proses lain. Segmentasi memberi fasilitas pemakaian bersama terhadap prosedur dan data untuk dapat diproses, berupa shared library.
Pada workstation modern yang menjalankan sistem Windows sering mempunyai pustaka grafis sangat besar. Pustaka ini diacu hampir semua program. Pada sistem bersegmen, pustaka grafis diletakan di satu segmen dan dipakai secara bersama banyak proses sehingga menghilangkan mempunyai pustaka ditiap ruang alamat proses. Shared libraries di sistem pengalamantan murni lebih rumit, yaitu dengan simulasi segmentasi.
d.      Memudahkan proteksi karena segmen dapat dikonstruksi berisi sekumpulan prosedur atau data terdefinisi baik, pemrogram atau administrator sistem dapat memberikan kewenangan pengaksesan secara nyaman.


3.      Paging dalam pengaturan memori adalah suatu metoda yang memungkinkan suatu alamat fisik memori yang tersedia dapat tidak berurutan. Pemberian halaman bisa menjadi solusi untuk pemecahan masalah luar. Untuk bisa mengimplementasikan solusi ini adalah melalui pengunaan dari skema pemberian halaman. Dengan pemberian halaman bisa mencegah masalah penting dari pengepasan besar ukuran memori yang bervariasi kedalam penyimpanan cadangan. Ketika beberapa pecahan kode dari data yang tersisa di memori utama perlu untuk ditukar keluar, harus ditemukan ruang untuk penyimpanan cadangan. Masalah pemecahan kode didiskusikan dengan kaitan bahwa pengaksesannya lebih lambat. Biasanya bagian yang menunjang untuk pemberian halaman telah ditangani oleh perangkat keras. Bagaimana pun, desain yang ada baru-baru ini telah mengimplementasikan dengan menggabungkan perangkat keras dan sistem operasi, terutama pada prosesormikro 64 bit .

Jika kita membuat ukuran dari masing-masing halaman menjadi lebih besar, keuntungannya akses memori akan relatif lebih cepat. Jika kita membuat ukuran dari masing-masing halaman menjadi lebih kecil. Selain itu kemungkinan terjadinya internal Fragmentasi akan menjadi lebih kecil. Keuntungan lainnya dari paging adalah, konsep memori virtual bisa diterapkan dengan menuliskan halaman ke disk, dan pembacaan halaman dari disk ketika dibutuhkan. Hal ini dikarenakan jarangnya pengunaan kode-kode dan data suatu program secara keseluruhan pada suatu waktu.

Gambar Segmentasi dengan Pemberian Halaman
4.      Solusi yang ditawarkan oleh management memory terhadap kasus ketika segmentasi melampaui kemampuan dari virtual memori adalah segmentasi dengan pemberian halaman. Ketika sebuah program dimasukkan ke dalam CPU, maka program tersebut  dibagi menjadi segmen – segmen. Saat program tersebut diperlukan dalam memori yang besar, maka virtual memori akan berperan. Namun jika segmen program yang digunakan ukurannya lebih besar dari kemampuan memori virtual tersebut, maka diperlukan pemberian halaman (paging). Dengan pemberian halaman ini maka halaman – halaman tertentu saja yang akan dialokasikan ke memori fisik. Ini akan menyebabkan berkurangngnya ukuran dari segmen – segmen program tadi sehingga saat diperlukan segmen dengan ukuran besar bisa diperlukan kapanpun karena segmen-segmen tadi sudah diberi halaman. Artinya program dibagi menjadi segmen – segmen kemudian segmen – segmen tersebut diberi halaman agar pada saat diperlukan hanya halaman – halaman  yang diperlukan saja yang akan dipindahkan ke memori fisik agar tidak melampaui kemampuan memori virtual.

5.      Yang terjadi apabila timbunan dari set tugas melampaui  kapasitas memori fisik  komputer adalah akan terjadi swap. Sistem operasi menyimpan bagian – bagian proses yang digunakan di memori fisik (memori utama) dan sisanya diletakkan di disk. Begitu bagian yang berada di disk diperlukan, maka bagian di memori utama yang tidak diperlukan akan dikeluarkan dari memori fisik (swap-out) dan diganti (swap-in) oleh bagian disk yang diperlukan itu.
 



Text Box: Di memori fisik ini disimpan bagian – bagian yang akan diproses. Ketika ada bagian yang diperlukan dari disk yang ukurannya melampaui ukuran memori fisik, maka akan terjadi timbunan yang menyebabkan bagian yang tidak digunakan lagi/tidak diperlukan lagi akan digantikan dengan bagian dari disk yang diperlukan.
 











Sistem Berkas (Sistem Operasi)


5.14. Soal-Soal Sistem Berkas

1.      Sebutkan macam-macam atribut pada berkas!
2.      Operasi apa sajakah yang dapat diterapkan pada sebuah berkas?
3.      Sebutkan informasi yang terkait dengan pembukaan berkas!
4.      Sebutkan dan jelaskan metode alokasi pada sistem berkas!
5.      Sebutkan dan jelaskan operasi pada direktori?
6.      Sebutkan dan Jelaskan tentang tipe akses pada berkas?
7.      Sebutkan dan jelaskan bagaimana cara mengatur free space?
8.      Bagaimanakah implementasi dari sebuah direktori dalam disk?
9.      Sebutkan keunggulan dari sistem berkas dalam UNIX dengan sistem berkas pada WINDOWS?
10.  Bagaimanakah langkah-langkah dalam proses back-up?



JAWABAN :
1.       Macam – macam atribut pada berkas antara lain :
·         Nama, merupakan satu-satunya informasi yang tetap dalam bentuk yang bisa dibaca oleh manusia (human-readable form)
·         Type, dibutuhkan untuk sistem yang mendukung beberapa type berbeda
·         Lokasi, merupakan pointer ke device dan ke lokasi berkas pada device tersebut
·         Ukuran (size), yaitu ukuran berkas pada saat itu, baik dalam byte, huruf, atau pun blok
·         Proteksi, adalah informasi mengenai kontrol akses, misalnya siapa saja yang boleh membaca, menulis, dan mengeksekusi berkas
·         Waktu, tanggal dan identifikasi pengguna,  informasi ini biasanya disimpan untuk:
1)     Pembuatan berkas,
2)     Modifikasi terakhir yang dilakukan pada berkas, dan
3)     Penggunaan terakhir berkas.

2.       Operasi yang dapat diterapkan pada sebuah berkas antara lain :
·         Membuat sebuah berkas : Ada dua cara dalam membuat berkas, yaitu :
1)     Tempat baru di dalam system berkas harus di alokasikan untuk berkas yang akan dibuat.
2)     Sebuah direktori harus mempersiapkan tempat untuk berkas baru, kemudian direktori tersebut akan mencatat nama berkas dan lokasinya pada sistem berkas.
·         Menulis pada sebuah berkas : Untuk menulis pada berkas, kita menggunakan system call beserta nama berkas yang akan ditulisi dan informasi apa yang akan ditulis pada berkas. Ketika diberi nama berkas, sistem mencari ke direktori untuk mendapatkan lokasi berkas. Sistem juga harus menyimpan penunjuk tulis pada berkas dimana penulisan berikut akan ditempatkan. Penunjuk tulis harus diperbaharui setiap terjadi penulisan pada berkas.
·         Membaca sebuah berkas : Untuk dapat membaca berkas, kita menggunakan system call beserta nama berkas dan di blok memori mana berkas berikutnya diletakkan. Sama seperti menulis, direktori mencari berkas yang akan dibaca, dan sistem menyimpan penunjuk baca pada berkas dimana pembacaan berikutnya akan terjadi. Ketika pembacaan dimulai, penunjuk baca harus diperbaharui. Sehingga secara umum, suatu berkas ketika sedang dibaca atau ditulis, kebanyakan sistem hanya mempunyai satu penunjuk, baca dan tulis menggunakan penunjuk yang sama, hal ini menghemat tempat dan mengurangi kompleksitas sistem.
·         Menempatkan kembali sebuah berkas : Direktori yang bertugas untuk mencari berkas yang bersesuaian, dan mengembalikan lokasi berkas pada saat itu. Menempatkan berkas tidak perlu melibatkan proses I/O. Operasi sering disebut pencarian berkas.
·         Menghapus sebuah berkas : Untuk menghapus berkas kita perlu mencari berkas tersebut di dalam direktori. Setelah ditemukan kita membebaskan tempat yang dipakai berkas tersebut (sehingga dapat digunakan oleh berkas lain) dan menghapus tempatnya di direktori.
·         Memendekkan berkas : Ada suatu keadaan dimana pengguna menginginkan atribut dari berkas tetap sama tetapi ingin menghapus isi dari berkas tersebut. Fungsi ini mengizinkan semua atribut tetap sama tetapi panjang berkas menjadi nol, hal ini lebih baik dari pada memaksa pengguna untuk menghapus berkas dan membuatnya lagi.

3.       Informasi yang terkait dengan pembukaan berkas antara lain :
·         Penunjuk Berkas : Pada sistem yang tidak mengikutkan batas berkas sebagai bagian dari system call baca dan tulis, sistem tersebut harus mengikuti posisi dimana terakhir proses baca dan tulis sebagai penunjuk. Penunjuk ini unik untuk setiap operasi pada berkas, maka dari itu harus disimpan terpisah dari atribut berkas yang ada pada disk.
·         Penghitung berkas yang terbuka : Setelah berkas ditutup, sistem harus mengosongkan kembali table berkas yang dibuka yang digunakan oleh berkas tadi atau tempat di tabel akan habis. Karena mungkin ada beberapa proses yang membuka berkas secara bersamaan dan sistem harus menunggu sampai berkas tersebut ditutup sebelum mengosongkan tempatnya di tabel. Penghitung ini mencatat banyaknya berkas yang telah dibuka dan ditutup, dan menjadi nol ketika yang terakhir membaca berkas menutup berkas tersebut barulah sistem dapat mengosongkan tempatnya di tabel.
·         Lokasi berkas pada disk : Kebanyakan operasi pada berkas memerlukan sistem untuk mengubah data yang ada pada berkas. Informasi mengenai lokasi berkas pada disk disimpan di memori agar menghindari banyak pembacaan pada disk untuk setiap operasi.
·         Beberapa sistem operasi menyediakan fasilitas untuk memetakan berkas ke dalam memori pada system memori virtual. Hal tersebut mengizinkan bagian dari berkas ditempatkan pada suatu alamat di memori virtual. Operasi baca dan tulis pada memori dengan alamat tersebut dianggap sebagai operasi baca dan tulis pada berkas yang ada di alamat tersebut. Menutup berkas mengakibatkan semua data yang ada pada alamat memori tersebut dikembalikan ke disk dan dihilangkan dari memori virtual yang digunakan oleh proses.



4.       Metode pada alokasi pada system berkas antara lain :
Alokasi Secara Berdampingan (Contiguous Allocation)
Metode ini menempatkan setiap berkas pada satu himpunan blok yang berurut di dalam disk. Alamat disk menyatakan sebuah urutan linier. Dengan urutan linier ini maka head disk hanya bergerak jika mengakses dari sektor terakhir suatu silinder ke sektor pertama silinder berikutnya. Contoh dari sistem operasi yang menggunakan contiguous allocation adalah IBM VM/ CMS karena pendekatan ini menghasilkan performa yang baik. Contiguous allocation dari suatu berkas diketahui melalui alamat dan panjang disk (dalam unit blok) dari blok pertama. Jadi, misalkan ada berkas dengan panjang n blok dan mulai dari lokasi b maka berkas tersebut menempati blok b, b+1, b+2, ..., b+n-1. Direktori untuk setiap berkas mengindikasikan alamat blok awal dan panjang area yang dialokasikan untuk berkas tersebut. Terdapat dua macam cara untuk mengakses berkas yang dialokasi dengan metode ini, yaitu:

·         Sequential access, sistem berkas mengetahui alamat blok terakhir dari disk dan membaca blok berikutnya jika diperlukan.
·         Direct access, untuk akses langsung ke blok i dari suatu berkas yang dimulai pada blok b, dapat langsung mengakses blok b+i.

Alokasi Secara Berangkai (Linked Allocation)
Metode ini menyelesaikan semua masalah yang terdapat pada contiguous allocation. Dengan metode ini, setiap berkas merupakan linked list dari blok-blok disk, dimana blok-blok disk dapat tersebar di dalam disk. Setiap direktori berisi sebuah penunjuk (pointer) ke awal dan akhir blok sebuah berkas. Setiap blok mempunyai penunjuk ke blok berikutnya. Untuk membuat berkas baru, kita dengan mudah membuat masukan baru dalam direktori. Dengan metode ini, setiap direktori masukan mempunyai penunjuk ke awal blok disk dari berkas. Penunjuk ini diinisialisasi menjadi nil (nilai penunjuk untuk akhir dari list) untuk menandakan berkas kosong. Ukurannya juga diset menjadi 0. Penulisan suatu berkas menyebabkan ditemukannya blok yang kosong melalui sistem manajemen ruang kosong (free-space management system), dan blok baru ini ditulis dan disambungkan ke akhir berkas. Untuk membaca suatu berkas, cukup dengan membaca blok-blok dengan mengikuti pergerakan penunjuk.
Metode ini tidak mengalami fragmentasi eksternal dan kita dapat menggunakan blok kosong yang terdapat dalam daftar ruang kosong untuk memenuhi permintaan pengguna. Ukuran dari berkas tidak perlu ditentukan ketika berkas pertama kali dibuat, sehingga ukuran berkas dapat bertambah selama masih ada blok-blok kosong.

Alokasi Dengan Indeks (Indexed Allocation)
Metode alokasi dengan indeks menyelesaikan masalah fragmentasi eksternal dan pendeklarasian ukuran dengan mengumpulkan semua penunjuk menjadi dalam satu lokasi yang dinamakan blok indeks (index block). Setiap berkas mempunyai blok indeks, yang merupakan sebuah larik array dari alamat-alamat disk-blok. Direktori mempunyai alamat dari blok indeks. Ketika berkas dibuat, semua penunjuk dalam blok indeks di set menjadi nil. Ketika blok ke-i pertama kali ditulis, sebuah blok didapat dari pengatur ruang kosong free-space manager dan alamatnya diletakkan ke dalam blok indeks ke-i.

Metode ini mendukung akses secara langsung, tanpa mengalami fragmentasi eksternal karena blok kosong mana pun dalam disk dapat memenuhi permintaan ruang tambahan. Tetapi metode ini dapat menyebabkan ada ruang yang terbuang. Penunjuk yang berlebihan dari blok indeks secara umum lebih besar dari yang terjadi pada metode alokasi berangkai.

Mekanisme untuk menghadapi masalah berapa besar blok indeks yang diperlukan sebagai berikut:
·         Linked scheme: untuk berkas-berkas yang besar, dilakukan dengan menyambung beberapa blok indeks menjadi satu.
·         Multilevel index: sebuah varian dari representasi yang berantai adalah dengan menggunakan blok indeks level pertama menunjuk ke himpunan blok indeks level kedua, yang akhirnya menunjuk ke blok-blok berkas.
·         Combined scheme: digunakan oleh sistem BSD UNIX yaitu dengan menetapkan 15 penunjuk dari blok indeks dalam blok indeksnya berkas. 12 penunjuk pertama menunjuk ke direct blocks yang menyimpan alamat-alamat blok yang berisi data dari berkas. 3 penunjuk berikutnya menunjuk ke indirect blocks. Penunjuk indirect blok yang pertama adalah alamat dari single indirect block, yang merupakan blok indeks yang berisi alamat-alamat blok yang berisi data. Lalu ada penunjuk double indirect block yang berisi alamat dari sebuah blok yang berisi alamat-alamat blok yang berisi penunjuk ke blok data yang sebenarnya.

5.       Operasi pada direktori antara lain :
Operasi-operasi yang dapat dilakukan pada direktori adalah:
1.      Mencari berkas, kita dapat menemukan sebuah berkas didalam sebuah struktur direktori. Karena berkas-berkas memiliki nama simbolik dan nama yang sama dapat mengindikasikan keterkaitan antara setiap berkas-berkas tersebut, mungkin kita berkeinginan untuk dapat menemukan seluruh berkas yang nama-nama berkas membentuk pola khusus.
2.      Membuat berkas, kita dapat membuat berkas baru dan menambahkan berkas tersebut kedalam direktori.
3.      Menghapus berkas, apabila berkas sudah tidak diperlukan lagi, kita dapat menghapus berkas tersebut dari direktori.
4.      Menampilkan isi direktori, kita dapat menampilkan seluruh berkas dalam direktori, dan kandungan isi direktori untuk setiap berkas dalam daftar tersebut.
5.      Mengganti nama berkas, karena nama berkas merepresentasikan isi dari berkas kepada user, maka user dapat merubah nama berkas ketika isi atau penggunaan berkas berubah. Perubahan nama dapat merubah posisi berkas dalam direktori.
6.      Melintasi sistem berkas, ini sangat berguna untuk mengakses direktori dan berkas didalam struktur direktori.

6.       Tipe akses pada berkas antara lain :
1)     Read             : Membaca dari berkas
2)     Write                        : Menulis berkas
3)     Execute        : Meload berkas kedalam memori untuk dieksekusi.
4)     Append        : Menambahkan informasi kedalam berkas di akhir berkas.
5)     Delete                       : Menghapus berkas.
6)     List                : Mendaftar properti dari sebuah berkas.
7)     Rename        : Mengganti nama sebuah berkas.
8)     Copy             : Menduplikasikan sebuah berkas.
9)     Edit               : Mengedit sebuah berkas.

7.     Ada beberapa cara untuk mengatur free space antara lain :
Menggunakan Bit Vektor
Seringnya daftar ruang kosong diimplementasikan sebagai bit map atau bit vektor. Tiap blok direpresentasikan sebagai 1 bit. Jika blok tersebut kosong maka isi bitnya 1 dan jika bloknya sedang dialokasikan maka isi bitnya 0. Keuntungan utama dari pendekatan ini adalah relatif sederhana dan efisien untuk mencari blok pertama yang kosong atau berturut-turut n blok yang kosong pada disk.

Linked List
Cara ini menghubungkan semua blok yang kosong, menyimpan pointer ke blok pertama yang kosong di tempat yang khusus pada disk dan menyimpannya di memori. Blok pertama ini menyimpan pointer ke blok kosong berikutnya dan seterusnya. Umumnya, sistem operasi membutuhkan blok kosong untuk mengalokasikan blok tersebut ke berkas, maka blok pertama pada daftar ruang kosong digunakan.

Grouping
Cara lainnya adalah dengan menyimpan alamat dari n blok kosong pada blok kosong pertama. Pada n-1 pertama dari blok-blok ini adalah kosong. Blok terakhir menyimpan alamat n blok kosong lainnya dan seterusnya. Keuntungannya dari implementasi seperti ini adalah alamat dari blok kosong yang besar sekali dapat ditemukan dengan cepat, tidak seperti pendekatan standar linked-list.

Counting
Pendekatan lain adalah dengan mengambil keuntungan dari fakta bahwa beberapa blok yang berkesinambungan akan dialokasikan atau dibebaskan secara simultan. Maka dari itu dari pada menyimpan daftar dari banyak alamat disk, kita dapat menyimpan alamat dari blok kosong pertama dan jumlah dari blok kosong yang berkesinambungan yang mengikuti blok kosong pertama. Tiap isi dari daftar menyimpan alamat disk dan penghitung (counter). Meski pun setiap isi membutuhkan tempat lebih tetapi secara keseluruhan daftar akan lebih pendek, selama count lebih dari satu.
8.     Implementasi dari sebuah direktori dalam disk :
Linear List
Metode paling sederhana dalam mengimplementasikan sebuah direktori adalah dengan menggunakan linear list dari nama berkas dengan penunjuk ke blok data.
Untuk membuat berkas baru kita harus mencari di dalam direktori untuk meyakinkan bahwa tidak ada berkas yang bernama sama. Lalu kita tambahkan sebuah berkas baru pada akhir direktori. Untuk menghapus sebuah berkas, kita mencari berkas tersebut dalam direktori, lalu melepaskan tempat yang dialokasikan untuknya. Untuk menggunakan kembali suatu berkas dalam direktori kita dapat melakukan beberapa hal. Kita dapat menandai berkas tersebut sebagai tidak terpakai (dengan menamainya secara khusus, seperti nama yang kosong, atau bit terpakai atau tidak yang ditambahkan pada berkas), atau kita dapat menambahkannya pada daftar direktori bebas. Alternatif lainnya kita dapat menyalin ke tempat yang dikosongkan pada direktori. Kita juga bias menggunakan linked list untuk mengurangi waktu untuk menghapus berkas. Kelemahan dari linear list ini adalah percarian searah untuk mencari sebuah berkas.

Hash Table
Struktur data lainnya yang juga digunakan untuk direktori berkas adalah hash table. Dalam metode ini linear list menyimpan direktori, tetapi struktur data hash juga digunakan. Hash table mengambil nilai yang dihitung dari nama berkas dan mengembalikan sebuah penunjuk ke nama berkas yang ada di-linear list. Maka dari itu dapat memotong banyak biaya pencarian direktori. Memasukkan dan menghapus berkas juga lebih mudah dan cepat. Meski demikian beberapa aturan harus dibuat untuk mencegah tabrakan, situasi dimana dua nama berkas pada hash mempunyai tempat yang sama. Kesulitan utama dalam hash table adalah ukuran tetap dari hash table dan ketergantungan dari fungsi hash dengan ukuran hash table. Sebagai contoh, misalkan kita membuat suatu linear-probing hash table yang dapat menampung 64 data. Fungsi hash mengubah nama berkas menjadi nilai dari 0 sampai 63. Jika kita membuat berkas ke 65 maka ukuran tabel hash harus diperbesar sampai misalnya 128 dan kita membutuhkan suatu fungsi hash yang baru yang dapat memetakan nama berkas dari jangkauan 0 sampai 127, dan kita harus mengatur data direktori yang sudah ada agar memenuhi fungsi hash yang baru. Sebagai alternatif dapat digunakan chained-overflow hash table, setiap hash table mempunyai daftar yang terkait (linked list) dari pada nilai individual dan kita dapat mengatasi tabrakan dengan menambah tempat pada daftar terkait tersebut. Pencarian dapat menjadi lambat, karena pencarian nama memerlukan tahap pencarian pada daftar terkait. Tetapi operasi ini lebih cepat dari pada pencarian linear terhadap seluruh direktori.

9.     Keunggulan dari sistem berkas dalam UNIX dengan sistem berkas pada WINDOWS :
a.       Sistem berkas UNIX lebih hebat dan mudah diatur daripada Windows (DOS).
b.      Pada system Windows, nama diubah menjadi nama yang lebih mudah bagi para pengguna. Contohnya nama folder dalam adalah perubahan dari directory yang masih digunakan oleh UNIX. Penggunaan back slash (\) digunakan untuk memisahkan direktori – diretori dalam Windows. Sedangkan pada UNIX menggunakan case sensitive,  yang artinya nama suatu berkas yang sama jika dibaca, tetapi penulisan namanya berbeda dalam hal ada satu file yang menggunakan huruf kapital dalam penamaan dan satu tidak akan berbeda dalam UNIX. Contohnya ada berkas bernama berkasdaku.txt dan berkasDaku.txt. Jika dibaca nama berkasnya sama tetapi dalam UNIX ini merupakan dua berkas yang jauh berbeda. Jika berkas – berkas ini berada dalam system Windows, mereka menunjuk ke berkas yang sama. Ini berarti Windows tidak case sensitive.
c.       UNIX tidak menggunakan drive letter seperti C:, D: dalam Windows. Tetapi semua partisi dan drive ekstra di mount di dalam sub-direktori di bawah diretori root. Ini tidak membuat penguna bingung menentukan letak berkas yang berada di drive letter mana.

10.Langkah-langkah dalam proses back-up :
·         Hari 1           : Salin ke tempat penyimpanan back up semua berkas dari disk, disebut sebuah full backup.
·         Hari 2           : Salin ke tempat penyimpanan lain semua berkas yang berubah sejak hari 1, disebut incremental backup.
·         Hari 3           : Salin ke tempat peyimpanan lain semua berkas yang berubah sejak hari 2.
·         Hari N           : salin ke tempat penyimpanan lain semua berkas yang berubah sejak hari N-1, lalu kembali ke hari 1.