Anda di halaman 1dari 23

Kata Pengantar

Puji syukur alhamdulillah kami panjatkan ke hadirat Tuhan Yang Maha Esa,
karena telah melimpahkan rahmat-Nya berupa kesempatan dan pengetahuan
sehingga makalah ini bisa selesai pada waktunya. Terima kasih juga kami ucapkan
kepada teman-teman yang telah berkontribusi dengan memberikan ide-idenya
sehingga makalah ini bisa disusun dengan baik dan rapi. Kami berharap semoga
makalah ini bisa menambah pengetahuan para pembaca. Namun terlepas dari itu,
kami memahami bahwa makalah ini masih jauh dari kata sempurna, sehingga kami
sangat mengharapkan kritik serta saran yang bersifat membangun demi terciptanya
makalah selanjutnya yang lebih baik lagi.

1
Daftar Isi
Kata Pengantar...........................................................................................1

Daftar isi......................................................................................................2

Bab I Pendahuluan.....................................................................................3

Latar Belakang..................................................................................... 3

Rumusan Masalah................................................................................4

Tujuan...................................................................................................4

Bab II Pembahasan Media Penyimpanan Sekunder..................................5

7.1 Manajemen Penyimpanan Tingkat Rendah....................................5

7.1.1 Komponen Disk Magnetik.....................................................5

7.1.2 Penjadwalan Pada Disk........................................................6

7.1.3 Manajemen Disk....................................................................9

7.1.4 Swap Space..........................................................................10

7.1.5 Kehandalan (Reliability)........................................................10

7.2 Manajemen Penyimpanan Tingkat Tinggi......................................11

7.2.1 File dan Direktori...................................................................11

7.2.2 Operasi File dan Direktori......................................................12

7.2.3 Alokasi Penyimpanan tintuk File dan Direktori......................14

7.3 File system Ext2 pada Linux...........................................................19

7.4 File System NTFS pada Windows 2000.........................................21

Bab III Penutup...........................................................................................23

Kesimpulan...........................................................................................23

Saran....................................................................................................23

Daftar Pustaka............................................................................................24

2
BAB I
PENDAHULUAN

1. Latar Belakang
Media penyimpanan sekunder ini berbeda dengan media penyimpanan
primer (jenis storage device). Untuk media penyimpanan primer itu sendiri
contohnya adalah Memory atau RAM (Random Access Memory) yang fungsinya
adalah menyimpan data yang akan diartikan dan dieksekusi dengan prosesor. Nah
memory di sini seringkali kita kenal di PC (Personal Computer) adalah dalam bentuk
seperti PCB (Printed Circuit Board) kecil yang penuh dengan kombinasi kombinasi
elektro yang rumit di dalam nya. Bentuk seperti itu sering kita sebut saja dengan
RAM. Contoh RAM jaman sekarang adalah jenis DDR (Double Data Rate).
Di dalam sebuah komputer (PC) atau laptop, salah satu perangkat keras
(hardware) yang sangat berperan dalam kinerja dan performa komputer adalah
Memory atau RAM (gambar Figure 1). Data yang ada di RAM bisa diakses jauh lebih
cepat daripada yang ada di Secondary Storage Device (contohnya hardisk), untuk
DDR2 SDRAM saja bisa lebih cepat 40 sampai 100 kali dibanding akses ke hardisk,
dan untuk jenis DDR3 bisa 100 sampai 300 kali lebih cepat dibanding akses ke
hardisk ( sebagai gambaran, akses Hardisk SATA dalam dunia nyata sekitar 80-100
MB/s sedangkan USB 2.0 antara 10MB/s sampai 20 MB/s).
Walaupun kecepatan dari media penyimpanan sekunder kalah cepat dengan
media penyimpanan primer, media penyimpanan sekunder mampu menyimpan lebih
banyak data daripada media penyimpanan primer dengan biaya yang sama.
Misalnya adalah daftar harga yang bisa dilihat di www.enterkomputer.com, harga
dari Visipro SO-DIMM DDR3 PC10600 4GB (contoh media penyimpanan primer)
yang berkapasitas 4 GigaByte adalah Rp 463,000 (7/3/2014), sedangkan untuk
Seagate 250GB SATA3 (contoh media penyimpanan sekunder) yang berkapasitas
250 GigaByte adalah Rp. 485,000 (7/3/2014). Dengan harga yang hampir sama,
media penyimpanan sekunder kapasitasnya mengungguli jauh daripada kapasitas
media penyimpanan primer. Akan tetapi media penyimpanan sekunder bukan hanya
harddisk, contoh lainnya adalah jenis CD/DVD/BlueRay, mobile storage, tape, floppy
disk, ZIP disk, smart card, dan USB disk.
Kita lebih mengenal media penyimpanan sekunder, karena media
penyimpanan jenis ini sudah sering kita gunakan saat ini dan kita bias secara
langsung menyentuh maupun melihat nya. Contoh nya CD/DVD/BlueRay (gambar
Figure 2) yang berisi berbagai macam data/video/music (sering mendapat sebutan
dengan VCD untuk yang berisi video). Contoh lain yang sering kita gunakan adalah
USB Disk (gambar Figure 3). USB Disk seringkali kita sebut dengan sebutan flash
drive atau hanya dengan kata USB saja. Bentuk yang mungil dan kemampuan
menyimpan data cukup besar serta kemampuan mobilitas yang cukup tinggi,
membuat USB Disk cukup populer digunakan untuk menyimpan dan memindahkan
data antar computer.

3
2. Rumusan Masalah

- Apa pengertian dari Media Penyimpanan Sekunder?

- Bagaimana proses Manajemen Penyimpanan Tingkat Rendah?

- Bagaimana proses Manajemen Penyimpanan Tingkat Tinggi?

3. Tujuan

- Menjelaskan arti dari Media Penyimpanan Sekunder.

- Menjelaskan tentang Manejemen Penyimpanan Tingkat Rendah dan


Manajemen Penyimpanan Tingkat Tinggi

4
BAB II
PEMBAHASAN

MEDIA PENYIMPANAN SEKUNDER

Media penyimpanan utama pada computer adalah memori. Proses yang akan
dieksekusi harus diletakkan baik sebagian ataupun seluruhnya pada memori.
Namun computer membutuhkan media penyimpanan sekunder selain memori. Hal
ini karena harga memori yang mahal. Selain itu, memori memiliki sifat volatile, yang
berarti isi memori akan hilang bila computer dimatikan, baik secara sengaja maupun
tidak sengaja.
Oleh sebab itu computer dilengkapi dengan media penyimpanan sekunder
yang bersifat non-volatile. Salah satunya adalah dalam bentuk disk magnetik. Pada
disk magnetic, system operasi bertugas untuk mengatur penyimpanan data dalam
dua tingkat. Pada tingkat rendah, system operasi akan mengatur jadwal request
untuk kegiatan baca dan tulis yang dikirimkan ke kontroler disk. Pada penyimpanan
tingkat tinggi, digunakan bentuk file system sebagai abstraksi disk.

7.1 Manajemen Penyimpanan Tingkat Rendah


7.1.1 Komponen Disk Magnetik
Gambar 7.1 memperlihatkan sebuah harddisk. Harddisk tersusun dari
tumpukan piringan metal/kaca dengan diameter 3,5 atau 5,25 inci yang dilapisi
dengan material magnetic untuk merekam data. Piringan akan diputar pada
kecepatan tinggi, 5.000-10.000 putaran setiap menit. Pada jarak yang sangat tipis
(hanya beberapa micron) di atas piringan, terdapat head yang digunakan untuk
operasi baca dan tulis. Permukaan disk dibagi menjadi track, dan setiap track dibagi
lagi menjadi sektor. Sekumpulan track yang dapat diakses pada seluruh disk untuk
posisi lengan tertentu disebut sebagai silinder.

5
Gambar 7.1 Komponen disk magnetic secara umum

Penggunaan disk melibatkan penempatan head pada posisi yang tepat yang
kemudian diikuti dengan transfer data. Waktu yang dibutuhkan untuk meletakkan
head pada posisi yang tepat meliputi dua komponen yaitu:
- Waktu car (seek time), yaitu waktu yang dibutuhkan untuk memindahkan
lengan pada silinder yang diinginkan.
- Waktu rotasi (rotational latency), yaitu waktu yang dibutuhkan oleh sektor
yang diinginkan untuk diletakkan di bawah head.
Alamat pada disk dianggap sebagai urutan linear dari blok-blok logika.
Sebuah blok dapat terdiri dari satu atau beberapa sektor. Blok merupakan satuan
terkecil untuk transfer data. Sektor 0 dianggap sebagai sektor pertama dari track
pertama yang terletak pada silinder terluar. Pemetaan dari blok logika ke disk
dilakukan secara berurutan yang dimulai dari track tersebut, kemudian track lainnya
pada silinder yang sama, kemudian track pada silinder berikutnya.

7.1.2. Penjadwalan Pada Disk


Sistem operasi akan mengatur supaya penggunaan disk menjadi efisien, yaitu
dengan melakukan penjadwalan terhadap permintaan penggunaan I/O. Tujuan
algoritma ini adalah untuk mengurangi waktu cari dan meningkatkan jumlah data
yang dapat ditransfer/dikirim dari disk. Beberapa algoritma penjadwalan untuk I/O
menyerupai algoritma pada penjadwalan CPU dengan kekurangan dan keunggulan
yang serupa.

FIRST COME,FIRST SERVED (FCFS)


Algoritma FCFS melayani permintaan yang dating berdasarkan urutan kedatangan.
Seandainya terdapat sebuah disk yang memiliki 200 silinder dan diberi nomor 0-199.

6
Misalkan terdapat sekumpulan antrian permintaan yang memerlukan pencarian pada
berikut:
98,183,37,122,14,124,65,67
Seandainya saat ini head sedang berada pada silinder 53, maka jumlah silinder
yang harus dilalui head adalah:
|98-53| + |183-98| + |37-183| + |122-37| + |14-122| + |124-14| + |65-124| + |67-
65| = 640

SHORTEST SEEK TIME FIRST (SSTF)


Algoritma SSTF akan melayani permintaan yang memiliki waktu cari
terpendek dari posisi terakhir head. Dengan demikian permintaan yang melibatkan
silinder yang terdekat dengan silinder pada posisi head saat itu akan dilayani terlebih
dahulu.
Antrian permintaan : 98,183,37,122,14,124,65,67
Posisi awal : 53
Urutan layanan : 65,67,37,14,183,124,122,98
Total jarak yang ditempuh : 12 + 2 + 30 + 23 + 169 + 59 + 2 + 24 = 321

Algoritma SSTF ini menyerupai algoritma Shortest Job First (SJF) yang digunakan
pada penjadwalan CPU. Oleh sebab itu algoritma SSTF juga akan mengalami
masalah starvation. Permintaan-permintaan baru yang datang secara terus-menerus
dan melibatkan silinder yang dekat dengan posisi head saat itu akan selalu dilayani,
sehingga permintaan-permintaan sebelumnya yang melibatkan silinder-silinder yang
terletak jauh menjadi tidak terlayani.
SCAN/ C-SCAN
Pada algoritma Scan, lengan disk akan diletakkan pada satu ujung. Head
mula-mula akan bergerak ke satu arah hingga mencapai ujung disk. Setelah
mencapai ujung, head akan bergerak dalam arah yang berlawanan dengan arah
gerak mula-mula. Oleh sebab itu, algoritma ini disebut juga sebagai algoritma
elevator karena lengan disk bergerak seperti elevator. Algoritma ini mudah
diterapkan bila posisi pergerakkan head pada suatu saat diketahui.
Antrian permintaan : 98,183,37,122,14,124,65,67
Posisi awal : 53, bergerak menuju 0
Urutan layanan : 37,14,65,67,98,122,124,183,
Total jarak yang ditempuh : 16 + 23 + 14 + 65 + 2 + 31 + 24 + 2 + 59 = 236

7
Andaikan telah ada sekumpulan permintaan dengan nomor silinder yang
terdistribusi secara seragam. Ketika head mencapai ujung dan mengubah arah
geraknya, maka hanya aka nada sedikit permintaan untuk silinder yang berdekatan
dengan ujung tersebut (karena mereka baru saja dilayani). Akan terdapat lebih
banyak permintaan yang berada pada ujung disk lainnya (yang telah menunggu
lebih lama untuk dilayani). Kondisi ini adalah ide bagi algoritma C-Scan (Circular
Scan) di mana head segera kembali ke ujung disk awal setelah mencapai akhir
tanpa memberikan layanan I/O sepanjang jalan kembali ke awal.

Antrian permintaan : 98,183,37,122,14,124,65,67


Posisi awal : 53, bergerak menuju silinder terakhir
Urutan layanan : 65,67,98, 122,124, 183, 14, 37
Total jarak yang ditempuh : 12 + 2 + 31 + 24 + 2 + 59 + 16 + 199 + 14 + 23 = 382

LOOK/C-LOOK
Pada algoritma Scan dan C-Scan, lengan disk akan bergerak dari ujung disk
yang satu ke ujung disk yang lain. Lengan akan melalui seluruh area disk.
Pergerakan semacam ini tidaklah selalu diperlukan. Ide untuk algoritma Look dan C-
Look adalah sebagai berikut: Lengan hanya perlu bergerak sejauh permintaan akhir.
Setelah permintaan akhir dilayani, lengan dapat segera membalik arahnya tanpa
perlu melanjutkan gerakannya ke ujung disk.
Berdasarkan contoh sebelumnya, maka C-Look akan berbeda dari C-Scan dalam 3
hal:
- Pencarian 16 silinder, dari 183 ke 199 tidak diperlukan.
- Perjalanan balik akan melalui jarak 183-14=169 silinder dibandingkan 199.
- Pencarian 14 silinder dari awal disk adalah berlebihan.
Sebab itu diperoleh:
Jarak total = 12 + 2 + 31 + 24 + 2 + 59 + 169 + 23 = 322 silinder

MEMILIH ALGORITMA PENJADWALAN DISK


Algoritma SSTF adalah algoritma yang mudah untuk dilakukan, tetapi tidak
akan memberikan kinerja yang optimal. Algoritma Scan dan C-Scan (juga Look dan
C-Look) akan memberikan kinerja yang lebih baik pada system yang sering
menggunakan disk.
Sebenarnya untuk setiap kondisi dapat saja diterapkan urutan penjadwalan
yang akan bekerja secara optimal. Namun perhitungan yang dilakukan untuk

8
mencari jadwal optimal ini akan memerlukan waktu yang lebih lama dibandingkan
penghematan waktu yang dapat diberikan algoritma optimal ini. Oleh sebab itu
penggunaan algoritma SSTF atau Scan secara langsung akan memberikan respons
yang lebih cepat.
Proses I/O pada disk sangat dipengaruhi oleh aktivitas pengguna dan
pengaturan penyimpanan pada disk. Cara bagaimana blok disk dialokasikan pada
file akan menentukan sifat antrian pada permintaan. Sebuah file yang memiliki blok-
blok yang letaknya berdekatan hanya akan memerlukan sedikit pergerakan head,
sedangkan file yang memiliki blok-blok yang letaknya terpencar akan memerlukan
gerakan head yang lebih banyak.
Waktu rotasi juga merupakan masalah penting yang akan membatasi, selain
waktu cari. Namun dalam algoritma penjadwalan, sistem operasi tidak dapat
memperhitungkan waktu rotasi karena alamat suatu blok tidak dapat memberikan
informasi lokasi fisik dari blok tersebut (ingat bahwa pemetaan alamat pada disk
dilakukan secara linear). Walaupun demikian, kini pabrik produsen disk mulai
menerapkan algoritma penjadwalan pada kontroler. Ketika sistem operasi
mengirimkan sederetan permintaan pada kontroler, maka kontroler dapat
menjadwalkan permintaan ini dengan algoritma yang dapat mengurangi waktu cari
dan waktu rotasi.

7.1.3 Manajemen Disk


Sebelum sebuah disk digunakan maka disk harus diformat terlebih dahulu.
Operasi format dibagi menjadi dua bagian. Pertama, format level rendah, yang
merupakan bagian dari proses produksi, dilakukan untuk menciptakan struktur track
dan sektor yang diperlukan untuk menggunakan disk. Setiap sektor akan memiliki
area awal (header), area data, dan area terakhir (trailer). Bagian header dan trailer
digunakan untuk menyimpan informasi yang digunakan oleh kontroler disk, termasuk
kode untuk koreksi kesalahan. Kode ini digunakan untuk mengetahui apakah suatu
sektor bersifat handal untuk menyimpan informasi. Sektor yang merusak data akan
ditandai sebagai sektor yang buruk (bad sector). Keberadaan sektor buruk ini dapat
disembunyikan oleh kontroler peralatan dengan menggantinya dengan sektor
cadangan (yang disediakan pada waktu pemformatan level rendah). Sektor
cadangan diambil dari silinder yang sama dengan sektor yang buruk sehingga tetap
mendukung optimisasi yang dilakukan oleh algoritma penjadwalan disk pada sistem
operasi.

Kedua, format level tinggi, yang meliputi 2 proses, yaitu :


1. Pengelompokkan silinder menjadi partisi. Setiap partisi diperlakukan oleh
sistem operasi sebagai disk yang terpisah.
2. Operasi format secara logika pada setiap partisi untuk menciptakan file
system.

9
File system pada umumnya diperlukan dalam setiap partisi disk. Namun
terdapat kondisi di mana file system tidak diperlukan, misalnya ketika partisi
diperlakukan sebagai array yang berisi urutan blok-blok logika yang besar tanpa
menggunakan struktur file system. Array semacam ini disebut dengan raw I/O, dan
digunakan pada swap space. Contoh lainnya adalah pada Database Management
System (DBMS) di mana digunakan raw I/O sehingga DBMS dapat mengetahui
lokasi yang tepat di mana setiap record database disimpan.
7.1.4 Swap Space
Swap space adalah istilah lain untuk backing store.Swap space dapat
diletakkan pada file system dalam bentuk swap file atau dalam partisi disk yang
terpisah. Dengan menggunakan file system akan terjadi overhead yang cukup
signifikan. Overhead dapat dikurangi dengan menggunakan aplikasi yang
mengalokasikan swap file pada blok disk yang berdekatan. Lebih umum lagi, partisi
yang terpisah digunakan ketika tidak ada file system. Solaris dan Linux mengijinkan
pertukaran antara raw partition dan file system.
System UNIX mengijinkan lebih dari 1 partisi swap untuk didefinisikan. Partisi
ini dapat diletakkan pada disk yang terpisah untuk membagi beban paging dan
swapping pada lebih dari 1 alat I/O. Pada sistem 4.3 BSD UNIX, bagian dari swap
space akan dialokasikan kepada setiap proses ketika proses dimulai sehingga
segmen teks dan data dari proses akan ditangani secara terpisah. Alokasi swap
space dari blok disk ke setiap proses dapat diketahui melalui swap map.

7.1.5 Kehandalan (Reliability)


Disk memiliki tingkat kegagalan yang cukup tinggi dibandingkan dengan
komponen lainnya dalam sistem komputer. Kegagalan disk berakibat pada
kehilangan data dan komputer menjadi tidak dapat digunakan selama beberapa
waktu (sampai proses perbaikan dan penyalinan data backup ke disk pengganti
selesai).
Kinerja dan kehandalan dapat ditingkatkan dengan menggunakan beberapa
disk yang bekerja sama. Metode disk striping menggunakan sekumpulan disk yang
dikelompokkan sebagai satu unit penyimpanan. Setiap blok data dipecah menjadi
beberapa sub-blok dengan satu sub-blok disimpan pada setiap disk. Waktu transfer
akan bertambah karena disk beroperasi secara paralel. Pengaturan semacam ini
dikenal dengan sebutan Redundant Array of Idependent Disks (RAID), khususnya
RAID level 0.
RAID level 1 adalah jenis RAID lain untuk meningkatkan kehandalan dengan
metode disk mirroring. Disk kedua digunakan sebagai duplikat dari disk yang
pertama. Hal ini memerlukan biaya yang lebih besar, tetapi menyediakan cadangan
bila seandainya salah satu disk gagal beroperasi. Performansi sistem yang
menerapkan RAID level 1 juga akan meningkat karena permintaan untuk operasi
baca dapat dilayani oleh lebih dari 1 disk.

10
7.2 Manajemen Penyimpanan Level Tinggi
7.2.1 File dan Direktori
Sistem operasi menyediakan manajemen dan abstraksi penyimpanan level
tinggi dengan menggunakan file. Setiap file menyimpan informasi yang memiliki
makna tertentu bagi penggunanya. File memiliki ruang alamat logik yang dianggap
letaknya berurutan, walaupun pada kenyataannya ruang alamat tidak perlu
berurutan (seperti alokasi proses pada memori). File memiliki berbagai nama, tipe
dan struktur. File dapat dibedakan menjadi dua macam. Pertama, file yang
mengandung karakter yang dapat dicetak (file teks). Kedua, file yang hanya terdiri
dari sekumpulan byte yang tidak bermakna bagi manusia (file biner).
File dapat diperlakukan sebagai deretan byte atau memiliki struktur
penyimpanan tertentu.Struktur penyimpanan yang dimaksudkan misalnya: file yang
terdiri atas baris-baris teks atau file yang memiliki ukuran record data tertentu.
Karakter kontrol khusus biasanya digunakan untuk membatasi struktur elemen yang
berbeda.
Sebuah file pada umumnya akan memiliki beberapa atribut:
- Ukuran file (jumlah byte),
- Waktu file diciptakan,
- Waktu akses terakhir,
- Waktu dilakukannya perubahan terakhir pada file,
- Informasi mengenai pengguna yang memiliki file,
- Informasi untuk proteksi, siapa yang berhak untuk membaca, menulis,
atau mengeksekusi file,
- Flag tersembunyi, menandakan apakah file akan ditampilkan pada
direktori,
- Flag sistem, menandakan apakah file tersebut penting bagi sistem
operasi.

Atribut file juga akan disimpann dalam struktur direktori pada disk. Pada UNIX,
direktori akan disimpan sebagai file. Sebuah direktori dapat memiliki file dan
subdirektori. UNIX mendukung struktur grafik asiklis (acyclic graph) di mana sebuah
direktori dapat memiliki subdirektorii dan file yang digunakan bersama-sama
antardirektori. Metode umum untuk mengimplementasikan penggunaan bersama
adalah dengan hubungan simbol (symbolic link) yang menunjuk pada file atau
direktori.

7.2.2 Operasi File dan Direktori


11
Operasi file yang umumnya didukung oleh sistem operasi:
- Create, yaitu menciptakan entri direktori dan mengatur sebagian atribut
file, tetapi tidak menyediakan ruang untuk isi file.
- Delete, yaitu menghapus isi direktori untuk membebaskan ruang yang
ditempati oleh file.
- Open, yaitu mengambil atribut file dan daftar alamat yang akan digunakan
untuk diletakkan pada memori sehingga kegiatan baca/tulis data dapat
berlangsung lebih cepat.
- Close, yaitu membersihkan data pada buffer dan membebaskan memori
yang digunakan untuk menyimpan atribut file dan alamat disk.
- Read, yaitu membaca sejumlah byte dari posisi tertentu pada file (yang
ditentukan oleh pengguna) dan diletakkan pada buffer.
- Write, yaitu menulis sejumlah byte dari buffer ke posisi tertentu pada file
yang ditentukan oleh pengguna.
- Append, yaitu menambahkan data pada akhir file.
- Seek, yaitu memindahkan penunjuk file ke lokasi baru.
- Rename, yaitu mengganti nama file.
Nama-nama operasi di atas akan berbeda untuk setiap sistem operasi. Operasi
untuk direktori adalah serupa dengan operasi file, terutama ketika sistem operasi
menganggap direktori sebagai file. Walaupun demikian, perintah sistem yang
digunakan untuk file dan untuk direktori adalah berbeda. Sebagai contoh, UNIX
menggunakan perintah creat untuk menciptakan file, tetapi menggunakan perintah
mkdir untuk menciptakan direktori (walaupun kedua file menggunakan argumen
yang sama, yaitu nama file/direktori yang hendak diciptakan).
CONTOH PADA UNIX: MENYALIN (COPY) FILE
Contoh 7.1a memperlihatkan program C++ yang digunakan untuk menyalin isi
sebuah file ke file lain. System call akan ditandai dengan huruf tebal pada Contoh
7.1a. Pada baris 11, open membuka file sumber yang merupakan argument pertama
program dengan sifat read-only. Hasil dari operasi ini adalah nilai integer yang
merupakan handle dari file tersebut (disebut file descriptor).
Baris 14 menggunakan perintah creat untuk menciptakan dan membuka file
baru sebagai file tujuan. Perintah open dapat juga digunakan untuk tujuan ini.
Argumen kedua akan digunakan sebagai nama file tujuan. Selain itu terdapat juga
bilangan oktal (0644) yang menyatakan tingkat proteksi file tujuan. Nilai 0644
menyatakan bahwa file tersebut dapat dibaca dan ditulis oleh pemiliknya, serta
hanya dapat dibaca oleh pengguna lainnya. Nilai ini didapatkan dari operasi OR dari
nilai 400 (dapat dibaca oleh pemilik), 0200 (dapat ditulis oleh pemilik), dan 040
(dapat dibaca oleh grup tempat pemilik), dan 04 (dapat dibaca oleh pengguna
lainnya).
12
Inti dari program ini adalah pada baris 19 dan 20. Pada baris 19, perintah
read membaca dari file descriptor ke buffer yang menyimpan nilai char (1 karakter).
Parameter kedua pada perintah ini digunakan sebagai alamat memori. Parameter
ketiga adalah banyaknya byte yang ingin dibaca (Dalam hal ini 1 byte). Baris 20
menggunakan perintah write dengan parameter yang serupa dengan perintah read.
Hanya saja perintah ini digunakan untuk menulis byte (yang telah dibaca dari file
sumber) ke file tujuan. Pada baris 22 dan 23, perintah close digunakan untuk
menutup kedua file descriptor.
Walaupun program ini dapat bekerja, tetapi kecepatannya sangat lambat.
Untuk menyalin file berukuran 1 MB akan memerlukan dua juta perintah sistem. Hal
ini dapat diperbaiki dengan membaca dan menulis data dalam ukuran yang lebih
besar dari 1 byte. Bagian kode kedua pada Contoh 7.1b menunjukkan bagaimana
program harus diubah supaya menjadi lebih efisien.

Contoh 7.1a Contoh program yang menggunakan file I/O dengan menggunakan
system call (dicetak tebal). Program di atas tidak efisien karena hanya mentransfer
sebuah byte setiap waktu.

13
Contoh 7.1b Program untuk menyalin data dalam potongan-potongan 1 KB sehingga
menggunakan system call yang lebih sedikit.

7.2.3 Alokasi Penyimpanan tintuk File dan Direktori


Terdapat tiga strategi dasar untuk alokasi penyimpanan:
Alokasi berurut (contiguous allocation) mengharuskan setiap file diletakkan
pada blok-blok yang berurutan. Dengan pengaturan semacam ini, akses ke blok
yang berurutan tidak memerlukan pergerakan head. Pergerakan head hanya
diperlukan ketika blok disk terdapat pada silinder yang berbeda. Pendekatan ini
memberikan hasil yang sangat baik. Pendekatan ini juga mendukung akses
sekuensial dan acak untuk file.

Namun masalah utama untuk alokasi ini adalah fragmentasi eksternal. Bila
ada file yang dihapus maka ruang disk yang dibebaskan kemungkinan tidak akan
cukup untuk file baru. Masalah kedua adalah ketika file diciptakan, ukuran file harus
diketahui terlebih dahulu untuk dapat meletakkan disk pada ruangan dengan ukuran
yang tepat.
Alokasi terhubung (linked allocation) memecahkan masalah ini. Pada
pendekatan ini. setiap file diimplimentasikan dengan menggunakan daftar blok-blok
disk yang berhubungan. Gambar 7.2 menunjukkan file foo.dat dengan lokasi blok
awal 9 dan blok akhir 25. Akses ke blok 9 menunjukkan bahwa blok berikutnya
adalah blok 16. dan seterusnya sampai blok 25 dijumpai. Karena setiap blok
berhubungan maka blok-blok dapat diletakkan tersebar pada disk. Dengan
pendekatan ini maka fragmentasi ekstemal tidak terjadi dan ukuran file dapat
ditambah tanpa masalah.
Walaupun demikian pendekatan ini tidak cocok untuk digunakan akses acak. Untuk
menemukan blok ke-i pada file maka pencarian harus dimulai dari blok pertama dan
mengikuti ptnunjuk sampai blok ke-i ditemukan. Hal ini akan memerlukan banyak
waktu. yaitu waktu pembacaan dari disk dan waktu untuk mencari penunjuk.

14
Masalah lainnya adalah berkurangnya ruang untuk melakukan penyinmanan karena
digunakan oleh penunjuk yang disimpan pada blok.
Bila ukuran blok adalah 512 byte dan 4 byte digunakan untuk pengalamatan,
maka hanya 508 byte yang dapat digunakan oleh pengguna. Sebanyak 0,78%
kapasitas disk tidak dapat digunakan untuk penyimpanan data. Salah satu solusi
untuk masalah ini adalah melakukan operasi pada beherapa blok (cluster) sekaligus
dan menggunakan hanya satu penunjuk untuk setup cluster. Hanya saja
penggunaan cluster akan meningkatkan fragmentasi internal.

Gambar 7.2 Linked allocation untuk penyimpanan file

Variasi lain dari alokasi tahubung yang digunakan path Windows 3.x/95/98
melibatkan penggunaan label alokasi 61c (File Allocation Table/FAT). Dengan
FAT, bagian awal setiap partisi akan digunakan untuk menyimpan tabel yang
memiliki sebuah entri untuk setiap blok. Entri untuk setiap file berisi informasi nomor
blok pertama yang digunakan oleh file.
Garnbar 7.3 memperlihatkan contoh implementasi FAT. File foo.txt memiliki
blok awal bernomor 217. Ketika di-indcks ke FAT, maka diketahui blok berikutnya
adalah blok 618 dan 339 (yang berisi blok terakhir dari file).
Kekurangan pada FAT terletak pada pencarian yang dilakukan oleh head bila
FAT tidak dimasukkan pada cache. Hal ini karena head harus digerakkan ke awal
partisi untuk membaca setiap entri pada FAT.

15
Gambar 7.3 Penggunaan tabel alokasi file

Windows 95 menggunakan sistem FAT-16 yang memiliki entri 16 bit. Partisi


yang berukuran hingga 2 GB dapat dialamatkan dengan menggunakan FAT-16.
Untuk membagi partisi yang Iebih besar dan 2 GB menjadi blok-blok (atau cluster
dari blok-blok) dengan pengalamatan 16 bit akan menyebabkan ukuran setiap
cluster menjadi 32 KB. Hal ini akan menyebabkan fragmentasi internal karena file
dengan ukuran 1 KB pun akan menggunakan ruang 32 KB.
Sistem FAT-32 yang digunakan pada Win95 OSR2 dan Win98 dan memiliki
32 bit entri untuk FAT dapat mengatasi masalah ini. FAT-32 mendukung partisi
hingga 2 Terabyte. Untuk partisi 8 GB, digunakan cluster 4 KB sehingga dapat
mengurangi fragmentasi internal.
Alokasi terhubung dapat mcngatasi masalah fragmentasi ekstemal, tetapi
tidak efisien ketika file diakses secara acak. Hal ini disebabkan penunjuk ke blok
berikutnya tersebar di seluruh disk. Alokasi indeks (indexed allocation) mengatasi
masalah ini dengan meletakkan seluruh penunjuk pada satu lokasi, yaitu blok indeks
(index block). Setiap file memiliki blok indeks masing-masing yang merupakan array
alamat untuk blok disk. Entri ke-i pada array merupakan blok ke-i pada file. Direktori
akan menyimpan alamat blok indeks.
Gambar 7.4 memperlihatkan file foo.dat yang memiliki blok indeks 19. Blok 19
berisi penunjuk ke blok-blok lain untuk file tersebut.

16
Gambar 7.4 Alokasi indeks untuk penyimpanan file

Alokasi indeks mendukung akses file secara acak tetapi akan menghabiskan
lebih banyak ruang daripada alokasi terhubung. Bayangkan sebuah file yang hanya
memiliki sebuah blok. Dengan alokasi terhubung, hanya dibutuhkan ruang
penyimpanan untuk 1 penunjuk (biasanya 4 byte). Dengan alokasi indeks maka
harus diciptakan seluruh blok indeks di mana hanya sebuah penunjuk yang
digunakan untuk file tersebut.
Oleh sebab itu diperlukan pertimbangan mengenai seberapa besar
seharusnya ukuran blok indeks. Karena setiap file nembutuhkan blok indeks maka
ukuran blok indeks harus kecil sehingga ruang disk yang tidak dapat digunakan
adalah sekecil mungkin. Namur bila ukuran blok indeks terlalu kecil maka blok
indeks tidak akan dapat menampung penunjuk untuk mereferensikan file yang
besar.
Sastem UNIX memecahkan masalah ini dengan menggunakan blok indeks
yang disebut inode yang terdiri dari beberapa penunjuk (pointer), misalkan saja 15
penunjuk. Dua belas penunjuk pertama akan menunjuk langsung pada blok disk,
sedangkan 3 blok lainnya digunakan untuk menunjuk pada blok tidak langsung
(indirect blocks) bila file memiliki lebih dart 12 blok. File berukuran kecil yang
memiliki kurang dari 12 blok dapat diberi alamat dengan menggunakan sebuah
inode. Penunjuk blok tunggal (single indirect block pointer) akan menunjuk pada blok
yang berisi alamat-alamat blok yang mengandung data. Penunjuk blok ganda
(double indirect block pointer) akan menunjuk pada blok yang berisi alamat blok
yang berisi penunjuk untuk blok yang memiliki data. Penunjuk blok tripel tidak
digunakan.

17
Gambar 7.5 Inode pada UNIX

Pendekatan menggunakan inode ini akan mendukung file dengan ukuran


yang sangat besar. Bila ukuran blok adalah 4 KB maka penunjuk blok tunggal dapat
mereferensikan hingga 1024 blok (tidak termasuk 12 blok yang direferensikan
langsung pada inode). Dengan penunjuk blok ganda maka akan terdapat sebanyak
1024 x 1024 = 1.048.576 blok yang dapat mendukung file dengan ukuran lebih dari
4 GB. Jumlah ini sangat mencukupi karena penunjuk file 32 bit yang digunakan
untuk mereferensikan operasi I/O pada file hanya dapat mengalamatkan hingga 2
GB.
Pada sistem operasi yang menggunakan inode, pembacaan file melibatkan
paling tidak dua operasi, yaitu pembacaan inode dan pembacaan blok data yang
direferensikan oleh inode. Implementasi UNIX menempatkan seluruh inode
bersama-sama, yaitu pada awal partisi disk (Gambar 7.6a). Dengan pengaturan ini,
jarak rata-rata antara inode dan blok adalah setengah jumlah silinder dalam partisi.
Oleh sebab itu diperlukan waktu cari yang lama untuk membaca file, terutama jika
ukuran partisinya besar.
Hal ini dapat diperbaiki dengan membagi partisi menjadi grup-grup silinder
yang masing-masing memiliki inode, blok dan daftar blok yang bebas (Gambar
7.6b). Ketika sebuah file baru diciptakan, maka inode manapun pada partisi dapat
dipilih. Untuk meletakkan blok pada blok bebas, maka akan digunakan blok yang
terIetak pada silinder yang sama dengan inode. Bila tidak ada lagi blok bebas di
tempat inode tersebut maka akan digunakan blok bebas dari grup yang berdekatan.

18
Gambar 7.6 Dua pendekatan untuk peletakan inode pada file system

7.3 File system Ext2 pada Linux


Seperti sistem operasi lainnya, Linux mendukung beberapa jenis file system.
Untuk mengetahui jenis file system yang digunakan oleh kernel dapat digunakan
perintah sysfs. Informasi ini juga dapat diketahui pada pseudofile /proc/ filesystems.
File system yang paling banyak digunakan pada Linux adalah Ext2 (second
extended file system). Jenis file system ini memperlakukan file sebagai urutan byte
yang dapat memiliki nama hingga 255 karakter. lsi file disimpan dalam blok-blok
berukuran 1 KB. Ext2 juga mendukung penggunaan blok berukuran 2 KB dan 4 KB.
Untuk mencapai kinerja yang tinggi dengan penggunaan blok-blok berukuran kecil,
Ext2 mengunakan kebijakan alokasi yang meIetakkan blok-blok file yang berurutan
pada lokasi yang berurutan. Hal ini memungkinkan sebuah permintaan I/O untuk
beberapa blok dilakukan dengan operasi tunggal.

Gambar 7.7 Format partisi Ext2

Susunan partisi Ext2 digambarkan pada Gambar 7.7. Partisi dibagi menjadi
sejumlah grup blok (block groups) yang memiliki satu silinder atau lebih. Setiap grup
blok dimulai dengan superblock yang berisi informasi tentang file system seperti
jumlah blok dan inode dan jumlah blok data yang tersedia. Informasi ini terdapat
pada setiap grup blok sehingga kerusakan pada sebuah sektor tidak menyebabkan
hilangnya informasi bagi seluruh partisi. Grup blok juga berisi peta/pola bit (bitmap)
19
yang menyimpan informasi mengenai alokasi blok dan inode pada grup. Bagian
partisi selanjutnya adalah inode untuk grup blok. Setelah itu, sisanya digunakan
untuk blok data.
Setiap inode pada Ext2 berukuran 128 byte. Kernel menggunakan struktur
data yang disebut ext2_inode untuk menyediakan representasi perangkat lunak bagi
informasi yang tersimpan pada inode disk. Terdapat pula struktur data yang Iebih
besar, yang disebut inode, untuk merepresentasikan file yang sedang dibuka.
Sebuah contoh yang telah disederhanakan untuk ext2_inode ditunjukkan pada
Contoh 7.2. Definisi Iengkap untuk contoh ini dapat dilihat pada file header yang
terletak pada /usr/include/linux/ext2_fs.h.
Tipc data u8, u16, dan u32 melambangkan tipe data unsigned char (sebuah
byte), unsigned short (integer 16 but), dan unsigned int (integer 32 bit). Mode
proteksi yang digunakan oleh field i_mode akan dibahas pada Bab 8. Array yang
berisi alamat blok, i_block, telah dibahas sebelumnya, yaitu 12 indeks pertama dari
array ini langsung menunjuk pada blok data. Sedangkan 3 indeks terakhir,
i_block[12], i_block(13], dan i_block[14] digunakan untuk penunjuk blok tunggal,
penunjuk blok ganda, dan penunjuk blok tripel.
Tiga field terakhir pada Contoh 7.2 menyediakan solusi untuk masalah
fragmentasi internal. Perlu diingat kemball bahwa masalah ini ditimbulkan karena
alokasi penyimpanan menggunakan blok-blok yang berukuran tetap. Ext2 dapat
mengurangi fragmentasi internal dengan membagi blok data menjadi fragmen-
fragmen yang Iebih kecil. Dengan demikian bagian akhir file (yang pada umumnya
memiliki ukuran lebih kecil dari ukuran blok) dapat dialokasikan hanya sejumlah
fragmen yang dibutuhkan. Fragmen untuk sebuah file harus terletak berurutan pada
blok yang sama. Dengan cara ini sebuah blok data dapat berisi fragmen-fragmen
dan beberapa file.

20
Contoh 7.2 Bagian struktur data untuk inode pada Linux Ext2

7.4 File System NTFS pada Windows 2000


File system yang telah dibahas sebelumnya, yaitu FAT-16 dan FAT-32,
memiliki masalah kompatibilitas dengan file system yang didesain 20 tahun yang
lalu. Oleh sebab itu Windows NT/2000 menggunakan file system NTFS yang lebih
kompleks, tetapi lebih sesuai untuk perangkat keras dan perangkat lunak yang
digunakaan saat ini.
NTFS mendukung nama file hingga 255 karakter dan nama path hingga
32.767 karakter. NTFS menggunakan karakter Unicode, dan penamaan bersifat
case-sensitive. Sebuah file NTFS memiliki struktur yang lebih kompleks dari file
UNIX dan disusun dari beberapa byte stream. File akan memiliki byte stream
pendek yang berisi atribut file, dan byte stream panjang yang berisi data. Terkadang
terdapat pula banyak aliran data untuk file gambar (image), misalnya ketika terdapat
gambar-gambar dengan resolusi berbeda, mulai dari ukuran kecil (thumbnail)
sampai ukuran sebenarnya dari gambar tersebut. Sebuah byte stream tidak dapat
lebih panjang dari 264 byte, yaitu sekitar 18,4 exabyte (bila ukuran file sebesar ini
dapat diciptakan, maka seluruh isi WWW dapat disimpan dengan hanya
menggunakan sepersekian dari file ini).
Partisi untuk disk NTFS disebut Volume. Ukuran blok pada volume umumnya
4 KB, tetapi blok berukuran antara 512 byte dan 64 KB juga dapat digunakan. File
yang paling penting dalam volume adalah tabel file utama (Master File Table/ MFT).
File ini berupa urutan linear yang menampung hingga 248 record, di mana setiap
record menggunakan 1 KB untuk menyimpan atribut file/direktori dan daftar alamat
blok. Terdapat perlakuan yang berbeda antara file kecil dan file berukuran besar.
File yang berukuran sangat kecil dapat langsung menyimpan aliran datanya di dalam
MFT. File yang berukuran besar dapat disimpan dalam 2 record MFT atau lebih bila
daftar alamat blok milik file tidak muat dalam 1 record. Tidak seperti FAT (yang
diletakkan pada awal partisi), MFT dapat diletakkan di manapun pada partisi. Lokasi
blok pertama MFT disimpan pada blok boot pada volume.
NTFS mendukung kompresi file dan bekerja sama dengan file system enkripsi
(Encrypting File System/EFS). Aplikasi yang membaca/menulis file tidak akan
mengetahui terjadinya proses kompresi/dekompresi dan enkripsi/dekripsi yang
terjadi pada file.

21
BAB III
PENUTUP

1. Kesimpulan
Dari pembahasan diatas dapat disimpulkan bahwa Memori Sekunder
(Secondary memori) adalah penyimpanan yang terpisah atau tidak berhubungan
langsung dengan Central Processing Unit (CPU). Memori sekunder digunakan untuk
menyimpan atau menampung data yang lebih besar dan permanen, bisa juga
dikatakan sebagai back-up dari memori utama. Memori sekunder juga disebut juga
penyimpanan external (External Storage). Memori sekunder bersifat non-volatile
artinya walaupun computer dimatikan, data-data yang disimpan di sarana
penyimpanan sekunder tidak hilang. Data disimpan dalam piringan-piringan

22
magnetik. Contoh perangkat yang termasuk kedalam memori sekunder diantaranya
ROM, disket, optical disk, pita magnetik, hardisk dan memori flash.

2. Saran
Untuk kemajuan teknologi memori maka diharapkan agar
perkembangan memori kedepan mampu mewujudkan sebuah memori yang
sesuai dengan kebutuhan dan pemakaian. Perkembangan teknologi
memori yang semakin efektif, efisien dan canggih sehingga tuntutan akan
kebutuhan memori dalam penggunaanya di komputer akan terpenuhi.

DAFTAR PUSTAKA

Sari,Riri Fitri & Yansen D. 2005. Sistem Operasi Modern. Yogyakarta: Andi
Publisher.

23

Anda mungkin juga menyukai