Back to IF2130 Sistem Operasi

Topic

Questions/Cues

  • Apa itu Sistem Berkas?
  • Definisi dan Abstraksi Berkas
  • Ragam Struktur Internal Berkas
  • Atribut Kunci Sebuah Berkas
  • Operasi Fundamental pada Berkas
  • Proses Open() dan Close()
  • Tujuan Penguncian Berkas (Locking)
  • Tipe Penguncian: Mandatory vs. Advisory

Pengenalan Sistem Berkas

Merupakan komponen sistem operasi yang paling terlihat oleh pengguna, berfungsi sebagai jembatan antara pengguna dan penyimpanan data

Tujuan Utama: Menyediakan mekanisme untuk menyimpan dan mengakses data serta program secara terorganisir.

Dua Bagian Utama:

  1. Kumpulan Berkas: Wadah untuk menyimpan data-data yang saling terkait.
  2. Struktur Direktori: Kerangka kerja yang mengatur dan menyediakan informasi (metadata) tentang semua berkas.

Sebagian besar sistem berkas berada di penyimpanan sekunder (seperti HDD, SSD/NVM, optical disk) yang bersifat non-volatile, artinya data tetap ada meskipun komputer dimatikan.

Berkas

Konsep Berkas (File Concept)

  • Definisi Teknis: Berkas adalah unit penyimpanan logis terkecil pada penyimpanan sekunder.
  • Abstraksi bagi Pengguna: Berkas adalah sebuah abstraksi. Pengguna tidak perlu tahu bagaimana data secara fisik disimpan di piringan disk (melalui cylinder, track, sector) atau di sel memori NVM. Mereka hanya berinteraksi dengan nama berkas, seperti laporan.docx. OS-lah yang menerjemahkan nama logis ini menjadi lokasi fisik.
  • Representasi: Berkas dapat merepresentasikan hampir semua hal: program (kode sumber), data (numerik, teks), atau bahkan informasi sistem (seperti pada sistem /proc di Linux/UNIX yang menampilkan detail proses seolah-olah mereka adalah berkas).
  • Pada dasarnya, berkas adalah urutan bit atau byte yang maknanya ditentukan oleh program yang membuat dan membacanya.

Struktur Berkas (File Structure): Mengacu pada bagaimana data diatur di dalam sebuah berkas. Ada beberapa pendekatan:

  1. Tanpa Struktur (Urutan Byte): Pendekatan paling fleksibel. Berkas dilihat sebagai aliran byte tanpa format khusus. Sistem operasi tidak peduli dengan isinya. Contoh: UNIX dan Windows memperlakukan sebagian besar berkas seperti ini. Program aplikasi bertanggung jawab untuk menginterpretasikan aliran byte tersebut.
  2. Struktur Record Sederhana: Berkas diorganisir sebagai kumpulan record atau baris. Record ini bisa memiliki panjang yang tetap (memudahkan akses acak) atau panjang variabel (lebih efisien dalam penggunaan ruang).
  3. Struktur Kompleks: Berkas memiliki format internal yang rumit, seperti dokumen terformat (misalnya, file .docx) atau berkas executable yang dapat direlokasi.

Siapa yang Menentukan? Struktur bisa ditentukan oleh Sistem Operasi atau oleh program aplikasi yang menggunakan berkas tersebut. Kebanyakan OS modern memilih pendekatan minimal (urutan byte) untuk fleksibilitas maksimal.

Atribut Berkas

  • Nama lain: Metadata. Atribut ini disimpan dalam struktur direktori.
  • Nama: Satu-satunya atribut yang dapat dibaca manusia secara langsung.
  • Pengenal (Identifier): Nomor unik (tag numerik) yang digunakan oleh sistem berkas untuk mengidentifikasi berkas. Ini adalah “nama” internal yang tidak terlihat oleh pengguna.
  • Tipe: Menunjukkan jenis berkas, seringkali melalui ekstensi (misalnya, .txt, .jpg, .exe). Ini membantu OS dan aplikasi mengetahui cara menangani berkas.
  • Lokasi: Penunjuk (pointer) ke lokasi fisik berkas di perangkat penyimpanan.
  • Ukuran: Ukuran berkas saat ini dalam byte, kata, atau blok.
  • Proteksi: Kontrol akses yang menentukan siapa (pengguna/grup) yang boleh membaca, menulis, mengeksekusi, atau menghapus berkas.
  • Waktu, Tanggal, dan ID Pengguna: Melacak kapan berkas dibuat, terakhir dimodifikasi, dan terakhir diakses, serta siapa pemiliknya. Penting untuk keamanan dan audit.

** Operasi Berkas** Berkas adalah Tipe Data Abstrak (ADT), sehingga OS menyediakan panggilan sistem (system calls) untuk memanipulasinya.

  • Create: Mencari ruang kosong di sistem berkas dan membuat entri baru di direktori.
  • Write: Menulis data ke berkas. OS melacak write pointer untuk mengetahui di mana penulisan berikutnya harus dimulai.
  • Read: Membaca data dari berkas. OS menggunakan read pointer untuk melacak posisi baca. Seringkali, read dan write pointer digabung menjadi satu current-file-position pointer.
  • Reposition (seek): Memindahkan current-file-position pointer ke lokasi tertentu di dalam berkas tanpa melakukan operasi baca/tulis.
  • Delete: Menghapus entri berkas dari direktori dan membebaskan ruang disk yang digunakannya agar bisa dipakai lagi.
  • Truncate: Menghapus seluruh konten berkas (ukuran menjadi nol) tetapi mempertahankan atributnya (seperti nama dan izin).
  • Mekanisme Open() dan Close():
    • Open (open()): Sebelum berkas dapat dibaca atau ditulis, ia harus “dibuka”. Proses ini melibatkan:
      1. OS mencari berkas di struktur direktori pada disk.
      2. Metadata (atribut) berkas disalin dari disk ke tabel khusus di memori yang disebut open-file table.
      3. OS mengembalikan sebuah file handle (atau file descriptor), yaitu sebuah penunjuk sederhana (biasanya integer) yang digunakan oleh program untuk merujuk ke berkas tersebut dalam operasi selanjutnya (read/write). Ini lebih efisien daripada menggunakan nama berkas berulang kali.
    • Untuk mengelola akses bersama, OS menggunakan dua tabel: tabel per-proses (melacak berkas yang dibuka oleh satu proses) dan tabel seluruh sistem (berisi entri unik untuk setiap berkas yang sedang dibuka di sistem, dengan open count untuk melacak berapa banyak proses yang membukanya).
    • Close (close()): Ketika sebuah proses selesai menggunakan berkas, ia harus “ditutup”. Ini akan:
      1. Memperbarui metadata di disk jika ada perubahan.
      2. Melepaskan file handle dari proses.
      3. Mengurangi open count di tabel seluruh sistem. Jika hitungan mencapai nol, entri akan dihapus dari tabel memori.

File Locking

  • Tujuan: Ketika beberapa proses perlu mengakses berkas yang sama secara bersamaan (misalnya, berkas log sistem), ada risiko data menjadi korup. Penguncian berkas (file locking) adalah mekanisme sinkronisasi untuk mencegah hal ini.
  • Cara Kerja: Sebuah proses dapat mengunci berkas untuk sementara waktu, mencegah proses lain memodifikasinya sampai kunci dilepaskan.
  • Tipe Kunci Berkas:
    • Mandatory Locking: Kunci diberlakukan secara ketat oleh sistem operasi. Jika sebuah proses mencoba mengakses berkas yang terkunci, OS akan secara otomatis menolaknya. Ini lebih aman tetapi kurang fleksibel. (Contoh: Windows).
    • Advisory Locking: Kunci bersifat kooperatif. Proses dapat memeriksa status kunci pada sebuah berkas, tetapi terserah pada program itu sendiri untuk mematuhi kunci tersebut. Jika program ditulis dengan buruk, ia bisa saja mengabaikan kunci. (Contoh: Sistem berbasis UNIX).

Summary

Sistem berkas merupakan sebuah abstraksi fundamental yang disediakan oleh sistem operasi untuk mengelola data secara terstruktur pada penyimpanan non-volatile; ia merepresentasikan data sebagai unit logis bernama ‘berkas’, yang masing-masing didefinisikan oleh atribut (metadata), dioperasikan melalui serangkaian panggilan sistem standar (seperti create, read, write, open, dan close), dan dilengkapi mekanisme penguncian untuk memastikan integritas data saat diakses secara bersamaan.