
Sebuah
 berkas adalah jenis data abstrak. Untuk mendefinisikan berkas secara 
tepat, kita perlu melihat operasi yang dapat dilakukan pada berkas 
tersebut. Sistem operasi menyediakan 
system calls untuk membuat, 
membaca, menulis, mencari, menghapus, dan sebagainya. Berikut dapat kita
 lihat apa yang harus dilakukan sistem operasi pada keenam operasi dasar
 pada berkas.
•    
Membuat sebuah berkas: Ada dua cara dalam membuat berkas.
 Pertama, tempat baru di dalam sistem berkas harus di alokasikan untuk 
berkas yang akan dibuat. Kedua, 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   digunakkan   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.
Enam  operasi  dasar  ini  sudah  mencakup  operasi  minimum  yang 
 di  butuhkan. Operasi umum lainnya adalah menyambung informasi baru di 
akhir suatu berkas, mengubah nama suatu berkas, dan lain-lain.
Operasi dasar ini kemudian digabung untuk melakukan operasi lainnya. 
Sebagai contoh misalnya kita menginginkan salinan dari suatu berkas, 
atau menyalin berkas ke peralatan I/O lainnya seperti 
printer, dengan cara membuat berkas lalu membaca dari berkas lama dan menulis ke berkas yang baru.
Hampir semua operasi pada berkas melibatkan pencarian berkas pada 
direktori. Untuk menghindari pencarian yang lama, kebanyakan sistem akan
 membuka berkas apabila berkas tersebut digunakan secara aktif. Sistem 
operasi akan menyimpan tabel kecil  yang  berisi  informasi  semua 
 berkas  yang  dibuka  yang  disebut  ”tabel  berkas terbuka”. Ketika 
berkas sudah tidak digunakan lagi dan sudah ditutup oleh yang 
menggunakan, maka sistem operasi mengeluarkan berkas tersebut dari tabel
 berkas terbuka.
Beberapa sistem terkadang langsung membuka berkas ketika berkas 
tersebut digunakan dan otomatis menutup berkas tersebut jika program 
atau pemakainya dimatikan.  Tetapi  pada  sistem  lainnya  terkadang  
membutuhkan  pembukaan  berkas secara tersurat dengan 
system call (
open) sebelum berkas dapat digunakan.
Implementasi dari buka dan tutup berkas dalam lingkungan
 dengan banyak perngguna seperti UNIX, lebih rumit. Dalam sistem seperti
 itu pengguna yang membuka berkas mungkin lebih dari satu dan pada waktu
 yang hampir bersamaan. Umumnya sistem operasi menggunakan tabel 
internal dua level. Ada tabel yang mendata proses mana saja yang membuka
 berkas tersebut, kemudian tabel tersebut menunjuk ke tabel yang lebih 
besar yang berisi informasi yang berdiri sendiri seperti lokasi berkas 
pada disk,   tanggal akses dan ukuran berkas. Biasanya tabel tersebut 
juga memiliki data berapa banyak proses yang membuka berkas tersebut.
Jadi, pada dasarnya ada beberapa informasi yang terkait dengan pembukaan berkas yaitu:
•    
Penunjuk Berkas: Pada sistem yang tidak mengikutkan batas
 berkas sebagai bagian dari  system  call  baca  dan  tulis,  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 tabel 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 sistem 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.
Penggunaan Berkas Secara Bersama-sama
Konsistensi semantik adalah parameter yang penting untuk evaluasi 
sistem berkas yang mendukung penggunaan berkas secara bersama. Hal ini 
juga merupakan karakterisasi dari sistem yang menspesifikasi semantik 
dari banyak pengguna yang mengakses berkas secara bersama-sama. Lebih 
khusus, semantik ini seharusnya dapat menspesifikasi kapan
suatu modifikasi suatu data oleh satu pengguna dapat diketahui oleh pengguna lain.
Terdapat  beberapa  macam  konsistensi  semantik.  Di  bawah  ini  akan  dijelaskan kriteria yang digunakan dalam UNIX.
Berkas sistem UNIX mengikuti konsistensi semantik:
•    Penulisan  ke  berkas  yang  dibuka  oleh  pengguna  dapat 
 dilihat  langsung  oleh pengguna lain yang sedang mengakses ke berkas 
yang sama.
•    Terdapat bentuk pembagian dimana pengguna membagi pointer lokasi
 ke berkas tersebut. Sehingga perubahan pointer satu pengguna akan 
mempengaruhi semua pengguna 
sharingnya