State Polytechnic of Jember: The Exercises of File System Chapter 10
State Polytechnic of Jember: The Exercises of File System Chapter 10
Arranged by :
EXERCISES (LATIHAN)
10.1 Some systems provide file sharing by maintaining a single copy of a file; other systems
maintain several copies, one for each of the users sharing the file. Discuss the relative merits of
each approach.
10.1 Beberapa sistem menyediakan file sharing dengan mempertahankan salinan awal dari
sebuah file; sistem lainya mempertahankan beberapa salina, satu untuk setiap pengguna yang
berbagi file. Diskusikan hubungan dari masing-masing !
Sistem berbagi file salinan tunggal memungkinkan pengguna untuk mengakses salinan yang
sama untuk menghindari perubahan yang dibuat untuk satu tetapi tidak menjadi pembawa ke
yang lain, di sisi lain jika pengguna mendapatkan informasi yang salah mereka dapat
meninggalkan file tersebut dalam kondisi yang salah. Dengan beberapa sistem salinan file, ada
banyak salinan untuk menghindari ini, tetapi pada waktu yang sama ada sebuah redundasi
dengan ruang penyimpanan yang boros dan file tersebut biasanya tidak konstent dengan file
lainya.
10.2 Some systems automatically open a file when it is referenced for the first time and close the
file when the job terminates. Discuss the advantages and disadvantages of this scheme compared
with the more traditional one, where the user has to open and close the file explicitly.
Direct Access
Another method is direct access method also known as relative access method. A filed-length
logical record that allows the program to read and write record rapidly. in no particular order.
The direct access is based on the disk model of a file since disk allows random access to any file
block. For direct access, the file is viewed as a numbered sequence of block or record. Thus, we
may read block 14 then block 59 and then we can write block 17. There is no restriction on the
order of reading and writing for a direct access file.
A block number provided by the user to the operating system is normally a relative block
number, the first relative block of the file is 0 and then 1 and so on.
Beberapa sistem secara otomatis membuka file ketika direferensikan untuk pertama kalinya dan
menutup file ketika pekerjaan berakhir. Diskusikan kelebihan dan kekurangan skema ini
dibandingkan dengan yang lebih tradisional, di mana pengguna harus membuka dan menutup file
secara eksplisit !
Beberapa sistem secara otomatis membuka file ketika direferensikan untuk pertama kalinya dan
menutup file ketika pekerjaan berakhir. Diskusikan kelebihan dan kekurangan skema ini
dibandingkan dengan yang lebih tradisional, di mana pengguna harus membuka dan menutup file
secara eksplisit.
Ketika file digunakan, informasi dibaca dan diakses ke dalam memori komputer dan ada
beberapa cara untuk mengakses informasi file ini. Beberapa sistem hanya menyediakan satu
metode akses untuk file. Sistem lain, seperti IBM, mendukung banyak metode akses, dan
memilih yang tepat untuk aplikasi tertentu adalah masalah desain utama.
Ada dua cara untuk mengakses file ke dalam sistem komputer: Akses Sekuensial dan Akses
Langsung :
Akses Sekuensial
Ini adalah metode akses paling sederhana. Informasi dalam file diproses secara berurutan,
satu catatan setelah yang lain. Mode akses sejauh ini adalah yang paling umum; misalnya, editor
dan kompiler biasanya mengakses file dengan cara ini.
Akses Langsung
Metode lain adalah metode akses langsung yang juga dikenal sebagai metode akses
relatif. Catatan logis yang diarsipkan yang memungkinkan program membaca dan menulis
catatan dengan cepat. tanpa urutan tertentu. Akses langsung didasarkan pada model disk file
karena disk memungkinkan akses acak ke blok file apa pun. Untuk akses langsung, file
dipandang sebagai urutan blok atau rekaman. Jadi, kita dapat membaca blok 14 lalu blok 59 dan
kemudian kita dapat menulis blok 17. Tidak ada batasan pada urutan membaca dan menulis
untuk file akses langsung.
Nomor blok yang disediakan oleh pengguna untuk sistem operasi biasanya merupakan nomor
blok relatif, blok relatif pertama dari file adalah 0 dan kemudian 1 dan seterusnya.
10.3 In some systems, a subdirectory can be read and written by an authorized user, just as
ordinary files can be.
a) Describe the protection problems that could arise.
b) Suggest a scheme for dealing with each of these protection problems.
Dalam beberapa sistem, subdirektori dapat dibaca dan ditulis oleh pengguna yang berwenang,
seperti halnya file biasa.
a) Jelaskan masalah perlindungan yang bisa muncul.
b) Sarankan skema untuk menangani masing-masing masalah perlindungan ini.
a) Salah satu informasi yang disimpan dalam entri direktori adalah lokasi file. Jika
pengguna dapat memodifikasi lokasi ini, maka ia dapat mengakses file lain yang
mengalahkan skema perlindungan akses.
b) Jangan izinkan pengguna untuk langsung menulis ke subdirektori. Selain itu, sediakan
operasi sistem untuk melakukannya.
10.4 do some systems keep track of the type of a file, while others leave it to the user and others
simply do not implement multiple file types? Which system is "better?"
Apakah beberapa sistem melacak jenis file, sementara yang lain menyerahkannya kepada
pengguna dan yang lain tidak menerapkan beberapa tipe file? Sistem mana yang "lebih baik?"
Saya lebih memilih “beberapa sistem melakukan pelacakan tipe data file, sebab itu
membantu pengguna untuk mengetahui tipe file tersebut
10.5 Consider a system that supports 5,000 users. Suppose that you want to allow 4,990 of these
users to be able to access one file.
a) How would specify this protection scheme in UNIX?
b) Can you suggest another protection scheme that can be used more effectively for this
purpose than the scheme provided by UNIX?
b) In this case, it would be easier to be able to specify a group of users that can not access
the file and allow any user not on the list to have access.Another alternative is to
password the file and give the password to users that you deem need access to the file.
Pertimbangkan sistem yang mendukung 5.000 pengguna. Misalkan Anda ingin mengizinkan
4.990 pengguna ini untuk dapat mengakses satu file.
a. Bagaimana cara menentukan skema perlindungan ini di UNIX?
b. Bisakah Anda menyarankan skema perlindungan lain yang dapat digunakan lebih efektif
untuk tujuan ini daripada skema yang disediakan oleh UNIX?
a) Anda dapat menambahkan masing-masing 4.990 pengguna ke grup, dan kemudian menggunakan
izin untuk mengakses file oleh grup itu. Sebagai alternatif, pada beberapa sistem Unix, Anda
dapat membuat Access Control List (ACL) dan menetapkan akses sesuai dengan daftar itu.
b) Dalam hal ini, akan lebih mudah untuk dapat menentukan kelompok pengguna yang tidak
dapat mengakses file dan memungkinkan setiap pengguna yang tidak ada dalam daftar
untuk memiliki akses. Alternatif lain adalah dengan kata sandi file dan memberikan kata
sandi kepada pengguna yang Anda anggap perlu akses ke file.
10.6 What are the advantages and disadvantages of providing ncandatory locks instead of
advisory locks whose usage is left to users' discretion?
Apa keuntungan dan kerugian dari menyediakan kunci ncandatory daripada kunci advisory yang
penggunaannya tergantung pada kebijaksanaan pengguna?
Dalam banyak kasus, program terpisah mungkin bersedia untuk mentolerir akses bersamaan ke
file tanpa memerlukan kebutuhan untuk mendapatkan kunci dan dengan demikian menjamin
saling pengecualian ke file. Pengecualian bersama dapat dijamin oleh struktur program lain
seperti kunci memori atau bentuk sinkronisasi lainnya. Dalam situasi seperti itu, kunci wajib
akan membatasi fleksibilitas dalam cara file dapat diakses dan mungkin juga meningkatkan
overhead yang terkait dengan mengakses file.
Operasi The open () menginformasikan sistem bahwa file yang dinamai sedang aktif.
Operasi The close () menginformasikan sistem bahwa file bernama tidak lagi digunakan
secara aktif oleh pengguna yang mengeluarkan operasi tutup
10.8 The open-file table is used to maintain information about files that are currently open.
Should the operating system maintain a separate table for each user or just maintain one table
that contains references to files that are currently being accessed by all users? If the same file is
being accessed by two different programs or users, should there be separate entries in the open-
file table?
Tabel file terbuka digunakan untuk menyimpan informasi tentang file yang saat ini terbuka.
Haruskah sistem operasi mempertahankan tabel terpisah untuk setiap pengguna atau hanya
mempertahankan satu tabel yang berisi referensi ke file yang saat ini sedang diakses oleh semua
pengguna? Jika file yang sama sedang diakses oleh dua program atau pengguna yang berbeda,
haruskah ada entri terpisah di tabel file-terbuka?
Dengan menyimpan tabel openfile pusat, sistem operasi dapat melakukan operasi berikut yang
tidak mungkin dilakukan orang lain. Pertimbangkan file yang saat ini sedang diakses oleh satu
atau lebih proses. Jika file dihapus, maka tidak boleh dihapus dari disk sampai semua proses
mengakses file telah menutupnya. Pemeriksaan ini hanya dapat dilakukan jika ada akuntansi
terpusat jumlah proses mengakses file. Di sisi lain, jika dua proses mengakses file, maka keadaan
terpisah perlu dipertahankan untuk melacak lokasi saat ini di mana bagian file sedang diakses
oleh kedua proses. Ini membutuhkan sistem operasi untuk memelihara entri terpisah untuk dua
proses.
10.9 Give an example of an application that could benefit from operatingsystem support for
random access to indexed files.
When the file is very big, its parts may be spread out over multiple places on the disk or even
multiple disk drives. The information describing where it is … is also stored on those same
drives. So the obvious thing one has to do is read the information describing the location of the
parts, find the part of interest, and then read that part. For big files, this amounts to two disk
seek/reads minimum, and disk seeks are not very fast.
Contoh aplikasi adalah sistem basis data apa pun, dengan contoh yang jelas adalah basis data
relasional. Anda dapat menganggap ini sebagai satu set file, satu per tabel, dan satu per kunci per
tabel. Dengan perspektif itu kita dapat berpikir tentang cara mengakses file tabel dan file
kuncinya secara efisien.
Pada dasarnya Anda bertanya bagaimana OS dapat mengoptimalkan akses acak ke file. Indeks
tidak banyak mengubah masalah, lebih belakangan.
Ketika file sangat besar, bagian-bagiannya dapat tersebar di beberapa tempat pada disk atau
bahkan beberapa disk drive. Informasi yang menggambarkan di mana itu ... juga disimpan di
drive yang sama. Jadi hal yang jelas harus dilakukan adalah membaca informasi yang
menggambarkan lokasi bagian, menemukan bagian yang menarik, dan kemudian membaca
bagian itu. Untuk file besar, jumlah ini adalah dua disk mencari / membaca minimum, dan
mencari disk tidak terlalu cepat.
10.10 Discuss the advantages and disadvantages of associating with remote file systems (stored
on file servers) a set of failure semantics different from that associated with local file systems.
Diskusikan keuntungan dan kerugian dari asosiasi dengan sistem file jarak jauh (disimpan pada
server file) satu set semantik kegagalan yang berbeda dari yang terkait dengan sistem file lokal.
Saya tidak yakin persis apa yang ada dalam pikiran Anda, tetapi saya pikir satu-satunya
perbedaan nyata adalah kemungkinan kegagalan ini, bukan semantik mana yang mungkin. Anda
mungkin berpikir bahwa sistem file lokal bukan sistem terdistribusi karena Anda tidak melihat
kawat jaringan antara di mana program Anda berjalan dan di mana bit pergi untuk beristirahat,
tetapi Anda akan salah.
Tidak ada komputer modern yang benar-benar berulir tunggal. Pustaka I / O Anda untuk sistem
file "lokal" Anda sering memiliki utas sekunder yang tidak Anda lihat dan memori serta
pengontrol bus I / O memiliki pikiran mereka sendiri seperti halnya pengontrol disk itu sendiri.
Jarak yang lebih pendek mengurangi kemungkinan kegagalan tertentu dan mereka dapat
mempersingkat waktu jendela untuk kondisi balapan, tetapi sistem file lokal Anda dapat
memiliki hampir semua mode kegagalan yang dimiliki sistem file jarak jauh. Dan jangan
bertaruh jendela waktu itu terlalu pendek.
10.11 Could you simulate a multilevel directory structure with a single-level directory structure
in which arbitrarily long names can be used? If your answer is yes, explain how you can do so,
and contrast this scheme with the multilevel directory scheme. If your answer is no, explain what
prevents your simulation's success. How would your answer change if file names were limited to
seven characters?
Bisakah Anda mensimulasikan struktur direktori bertingkat dengan struktur direktori satu tingkat
di mana nama panjang yang sewenang-wenang dapat digunakan? Jika jawaban Anda adalah ya,
jelaskan bagaimana Anda dapat melakukannya, dan kontraskan skema ini dengan skema
direktori bertingkat. Jika jawaban Anda adalah tidak, jelaskan apa yang mencegah keberhasilan
simulasi Anda. Bagaimana jawaban Anda berubah jika nama file dibatasi hingga tujuh karakter?
Ya, menggunakan beberapa simbol untuk mensimulasikan direktori dalam nama, seperti ".",
Maka Anda dapat melakukannya.
10.12 What are the implications of supporting UNIX consistency semantics for shared access for
files stored on remote file systems?
The joy of POSIX is that it simplifies application logic for the programmer. It's very easy to
reason about. Relaxing POSIX frequently forces the application developer to implement logic to
ensure consistency (ordering, durability). Some apps can function reliably without consistency,
they are typically free of collisions in the data model (eg embarrassingly parallel or 100% read
only). But my experience is that there are few apps with those characteristics in real world
computing outside of high performance computing, AI and such.
The translation of task number 10.12
Apa implikasi dari dukungan semantik konsistensi UNIX untuk akses bersama untuk file yang
disimpan pada sistem file jarak jauh?
Jika Anda memerlukan konsistensi POSIX yang ketat, maka Anda harus memiliki koordinasi
antara node yang mengakses data yang sama atau Anda harus memaksa setiap IO untuk
membuat serialisasi terhadap beberapa sumber daya global (biasanya backend). Koordinasi
diatributkan rumit untuk diperkenalkan pada skala (ada banyak skema manajer kunci
terdistribusi, semuanya memiliki kelemahan). Serialisasi setiap IO ke toko backend mahal,
terutama untuk operasi IO kecil karena latensi (misalnya tidak ada yang bisa di-cache).
Kegembiraan POSIX adalah menyederhanakan logika aplikasi untuk programmer. Sangat mudah
untuk dipikirkan. Santai POSIX sering memaksa pengembang aplikasi untuk menerapkan logika
untuk memastikan konsistensi (pemesanan, daya tahan). Beberapa aplikasi dapat berfungsi
dengan andal tanpa konsistensi, mereka biasanya bebas dari tabrakan dalam model data (misal
paralel memalukan atau 100% hanya baca). Tetapi pengalaman saya adalah bahwa ada beberapa
aplikasi dengan karakteristik tersebut dalam komputasi dunia nyata di luar komputasi kinerja
tinggi, AI dan semacamnya.
10.13 If the operating system knew that a certain application was going to access file data in a
sequential manner, how could it exploit this information to improve performance?
Jika sistem operasi tahu bahwa suatu aplikasi akan mengakses data file secara berurutan,
bagaimana ia dapat mengeksploitasi informasi ini untuk meningkatkan kinerja?
Sederhana. Asumsikan file ada pada beberapa media disk yang berputar (atau bahkan disk
semikonduktor, yang memiliki waktu akses tidak nol). OS membaca file, secara berurutan, di
depan titik di mana aplikasi sedang membacanya. Dilakukan dengan benar, bagian selanjutnya
dari file yang diperlukan oleh aplikasi telah tiba di memori utama komputer tepat sebelum
program membutuhkannya, mengurangi waktu akses ke overhead panggilan OS, daripada
panggilan OS + waktu untuk baca file dari media penyimpanannya. Sistem operasi telah
melakukan hal semacam ini untuk waktu yang sangat lama.
10.14 Consider a file system in which a file can be deleted and its disk space reclaimed while
links to that file still exist. What problems may occur if a new file is created in the same storage
area or with the same absolute path name? How can these problems be avoided?
Unix fixed this in the mid 1980s (BSD developed) by extending a design from the 1970s - using
“reference counting”.
Each file on disk is represented by an inode. The inode has a reference count, and the file is not
deleted until the reference count goes to zero. Every time a link is made, the reference count is
incremented. Every time a link is removed, the reference count is decremented.
Easy to know when a file is to be deleted. Even if the system crashes, a file is only deleted if the
reference count is 0. It COULD have “orphan” files where the deletion couldn’t finish before a
crash - these “lost” files are those where the reference count isn’t zero, but there are no links.
Thus a file system corruption (minor) occurs - and a filesystem check pass was used to identify
these and enter them into “lost+found” directory so the admin can decide what to do.
Journaling filesystems covered this by recording what was going on in the filesystem at the time,
thus a crash recovery just replays the journal, and finishes the delete.
Late 1980s through 1991s extended this reference counting to include any open file - thus a two
level count, where processes with open files get counted as a reference. File systems still tracked
the links, but when the link goes to zero the filesystem is prevented from deleting the file as the
open file count may still be non-zero, thus the file doesn’t get deleted.
This added feature made it MUCH easier to update the system as executables and shared
libraries could now be removed and replaced without causing problems to the running system.
Linux just used the same system when released around 1993 as the technique had become an
industry standard.
Symbolic links are explicitly NOT part of this as they can cross filesystem boundaries. These
links are interpreted by kernel software and are not the same kind of link, though they can act in
a similar way. Having dangling symbolic links is not a fault of the filesystem, as what is left may
be in another filesystem (which might not be mounted)… So it is not an error in either filesystem.
The symbolic link itself also identifies WHAT is being linked to, so there is still data available
about the link, and the admin/user can decide what to do about it.
Pertimbangkan sistem file di mana file dapat dihapus dan ruang disknya direklamasi sementara
tautan ke file itu masih ada. Masalah apa yang mungkin terjadi jika file baru dibuat di area
penyimpanan yang sama atau dengan nama jalur absolut yang sama? Bagaimana masalah ini bisa
dihindari?
Jelas, kode sistem file memiliki bug yang agak parah. Satu-satunya perbaikan adalah dengan
memperbaiki bug.
Unix memperbaiki ini pada pertengahan 1980-an (bsd dikembangkan) dengan memperluas
desain dari tahun 1970-an - menggunakan "penghitungan referensi".
Setiap file pada disk diwakili oleh inode. Inode memiliki jumlah referensi, dan file tidak dihapus
sampai jumlah referensi menjadi nol. Setiap kali tautan dibuat, jumlah referensi bertambah.
Setiap kali tautan dihapus, jumlah referensi dikurangi.
Mudah diketahui kapan suatu file akan dihapus. Bahkan jika sistem crash, file hanya dihapus jika
jumlah referensi adalah 0. Ini bisa memiliki file "yatim" di mana penghapusan tidak bisa selesai
sebelum crash - file "hilang" ini adalah file di mana jumlah referensi tidak nol, tetapi tidak ada
tautan. Dengan demikian terjadi kerusakan sistem file (minor) - dan pass pemeriksaan filesystem
digunakan untuk mengidentifikasi ini dan memasukkannya ke direktori "lost + found" sehingga
admin dapat memutuskan apa yang harus dilakukan. Filesystem journal membahas hal ini
dengan merekam apa yang sedang terjadi di filesystem pada saat itu, sehingga pemulihan crash
hanya memutar ulang jurnal, dan menyelesaikan penghapusan.
Akhir 1980-an hingga 1991-an memperpanjang penghitungan referensi ini untuk memasukkan
file terbuka - jadi penghitungan dua level, di mana proses dengan file terbuka dihitung sebagai
referensi. Sistem file masih melacak tautan, tetapi ketika tautan menuju ke nol, sistem file
dicegah untuk menghapus file karena jumlah file yang terbuka mungkin masih nol, sehingga file
tidak terhapus.
Fitur tambahan ini membuatnya jauh lebih mudah untuk memperbarui sistem karena executable
dan shared library sekarang dapat dihapus dan diganti tanpa menyebabkan masalah pada sistem
yang sedang berjalan.
Linux hanya menggunakan sistem yang sama ketika dirilis sekitar tahun 1993 karena tekniknya
telah menjadi standar industri.
Tautan simbolik secara eksplisit bukan bagian dari ini karena mereka dapat melintasi batas
sistem file. Tautan ini ditafsirkan oleh perangkat lunak kernel dan bukan jenis tautan yang sama,
meskipun mereka dapat bertindak dengan cara yang sama. Memiliki tautan simbolik yang
menjuntai bukan kesalahan sistem file, karena apa yang tersisa mungkin ada di sistem file lain
(yang mungkin tidak bisa dipasang) ... Jadi itu bukan kesalahan di sistem file mana pun. Tautan
simbolik itu sendiri juga mengidentifikasi apa yang sedang ditautkan, sehingga masih ada data
yang tersedia tentang tautan tersebut, dan admin / pengguna dapat memutuskan apa yang harus
dilakukan tentang itu.
10.15 Discuss the advantages and disadvantages of supporting links to files that cross mount
points (that is, the file link refers to a file that is stored in a different volume).
Diskusikan kelebihan dan kekurangan tautan pendukung ke file yang melintasi titik pemasangan
(yaitu tautan file merujuk ke file yang disimpan dalam volume yang berbeda).
keuntungan utama adalah mungkin ada lebih banyak ruang disk pada titik pemasangan lainnya.
Ini biasanya dilakukan dengan tautan simbolis, yang memiliki kerugian bahwa mengubah nama
file tidak akan memiliki efek yang Anda harapkan atau ketika membuat file dengan nama yang
sama di lokasi yang sama, file akan dibuat pada sistem file pertama. Selain itu, mengganti nama
file di berbagai titik pemasangan mungkin gagal, mis. jika file diubah namanya dari file yang
disinkronkan ke direktori lokal.
10.16 What are the advantages and disadvantages of recording the name of the creating
program with the file's attributes (as is done in the Macintosh operating system)?
Otherwise it is a don’t care as other programs may be used to process or transform the file into
a new file - which would then get the transform tool name. And then worthless for selecting the
editor.
Now what it would to is favor the bloated all-in-one applications with no external tools for
processing the file.
Apa kelebihan dan kekurangan dari pencatatan nama program pembuatan dengan atribut file
(seperti yang dilakukan dalam sistem operasi Macintosh)?
Ini adalah sedikit keuntungan untuk mengedit program karena memungkinkan sistem untuk
secara otomatis memilih editor (dengan asumsi itu diinstal).
Kalau tidak, itu tidak peduli karena program lain dapat digunakan untuk memproses atau
mengubah file menjadi file baru - yang kemudian akan mendapatkan nama alat transformasi.
Dan tidak ada gunanya memilih editor.
Sekarang apa yang akan dilakukan adalah mendukung aplikasi all-in-one yang membengkak
tanpa alat eksternal untuk memproses file.