Pertemuan 15 & 16 – File Management
Tujuan dari file management system:
- Memenuhi kebutuhan manajemen data dan persyaratan user
- Menjamin bahwa data dalam file adalah valid
- Mengoptimalkan kinerja
- Menyediakan dukungan I/O untuk berbagai jenis perangkat penyimpanan
- Meminimalkan atau menghilangkan potensi data yang hilang atau hancur
- Menyediakan satu set standar I/O rutinitas antarmuka
- Menyediakan dukungan I/O untuk multiple user
Persyaratan set minimal:
- Setiap user harus dapat membuat, menghapus, membaca, dan mengubah file
- Setiap user dapat mempunyai akses kontrol ke file user lain
- Setiap user dapat mengontrol jenis akses apa yang diperbolehkan untuk file user
- Setiap user harus dapat merestrukturisasi file user dalam bentuk yang tepat untuk masalah ini
- Setiap user harus dapat memindahkan data antara file
- Setiap user harus dapat membuat cadangan dan memulihkan file user dalam kasus kerusakan
- Setiap user harus dapat mengakses file user dengan menggunakan nama simbolik
File Management Layer:
Persyaratan untuk long-term storage:
- Harus dapat untuk menyimpan informasi yang berjumlah sangat besar
- Informasi tersebut harus bertahan penghentian proses
- Multiple proses harus dapat mengakses informasi secara bersamaan
Penamaan file:
Struktur file:
Jenis-jenis file:
- Executable file
- Archive
Atribut file:
Single Level Directory System:
Two Level Directory System:
Hierarchical Directory System:
Pathname:
- Absolute pathname
- Relative pathname
Contiguous allocation:
- Set blok dialokasikan ke file pada saat penciptaan
- Hanya satu entri dalam tabel alokasi file
- Mulai blok dan panjang file
- Fragmentasi eksternal akan terjadi
Chained allocation:
- Alokasi atas dasar blok individual
- Setiap blok berisi pointer ke blok berikutnya dalam rantai
- Hanya entri dalam tabel alokasi file
- Mulai blok dan panjang file
- Tidak ada fragmentasi eksternal
- Alokasi terbaik untuk file sekuensial
- Tidak ada akomodasi prinsip lokalitas
Alokasi linked list menggunakan tabel:
Indexed Allocation:
- Tabel alokasi file berisi indeks satu tingkat terpisah untuk setiap file
- Indeks ini memiliki satu entri untuk setiap porsi yang dialokasikan ke file
- Tabel alokasi file berisi nomor blok untuk indeks
Implementing Directory:
Penanganan nama file yang panjang:
Metode akses file:
- Mencerminkan struktur file yang berbeda
- Berbagai cara untuk menyimpan dan mengolah data
File Management Function:
- Mengidentifikasi dan menemukan file yang dipilih
- Menggunakan direktori untuk menggambarkan lokasi dari semua file ditambah dengan atributnya
- Pada shared system menggambarkan kontrol akses user
- Memblokir akses ke file
- Mengalokasikan file ke blok bebas
- Mengelola penyimpanan gratis untuk blok yang tersedia
Kriteria organisasi file:
- Akses cepat
- Kemudahan update
- Ekonomi penyimpanan
- Perawatan sederhana
- Reliability
Pile:
- Data dikumpulan dalam urutan waktu mereka tiba
- Tujuannya adalah untuk mengumpulkan massa data dan menyimpannya
- Record mungkin memiliki bidang yang berbeda
- Tidak ada struktur
- Akses record adalah dengan pencarian lengkap
Sequential File:
- Format tetap digunakan untuk record
- Semua bidang yang sama (urutan dan panjang)
- Nama field dan panjang adalah atribut file
- Satu bidang adalah kunci diajukan
Indexed Sequential File:
- Indeks menyediakan kemampuan pencarian untuk cepat mencapai sekitar catatan yang diinginkan
- Berisi field kunci dan pointer ke file utama
- Diindeks dicari untuk menemukan nilai kunci tertinggi yaitu sebesar atau kurang dari nilai kunci yang diinginkan
- Cari terus di file utama di lokasi yang ditunjukkan oleh pointer
Direct atau Hashed File:
- Langsung mengakses blok di alamat yang dikenal
- Bidang kunci diperlukan untuk setiap record
Menjaga jalur dari free block:
- Menyimpan daftar gratis pada linked list
- Bitmap
- Sebuah blok pointer yang hampir penuh untuk membebaskan blok disk di memori dan tiga blok dari pointer pada disk.
- Hasil membebaskan tiga blok file.
- Strategi alternatif untuk menangani tiga free block. Entri yang diarsir merupakan pointer ke blok disk.
Konsistensi sistem file:
- Konsisten
- Kehilangan blok
- Duplikat blok di free list
- Duplikat blok data
open:
int open(const char *pathname, int oflag, mode_t mode);
- O_RDONLY open for reading only
- O_WRONLY open for writing only
- O_RDWR open for reading and writing
- O_APPEND append on each write
- O_CREAT create file if it does not exist
- O_TRUNC truncate size to 0
- O_EXCL error if create and file exists
- O_SYNC
Open mode:
- Menentukan hak akses untuk digunakan dalam kasus file baru dibuat
- Mode ini hanya berlaku untuk future access dari file yang baru dibuat
- User: S_IRWXU, S_IRUSR, S_IWUSR, S_IXUSR
- Group: S_IRWXG,S_IRGRP,S_IWGRP,S_IXGRP
- Other: S_IRWXO, S_IROTH,S_IWOTH,S_IXOTH
creat:
int creat(const char *pathname, mode_t mode);
lseek:
off_t lseek(int fd, off_t offset, int whence);
stat:
int stat(const char *pathname, struct stat *buf);
Struct stat:
Struct stat {
mode_t st_mode; /* file type and mode (type & permissions) */
ino_t st_ino; /* inode’s number */
dev_t st_dev; /* device number (file system) */
nlink_t st_nlink; /* number of links */
uid_t st_uid; /* user ID of owner */
gid_t st_gid; /* group ID */
off_t st_size; /* size in bytes */
time_t st_atime; /* last access */
time_t st_mtime; /* last modified */
time_t st_ctime; /* last file status change */
long st_blksize; /* I/O block size */
long st_blocks; /* number of blocks allocated */
};
chmod:
int chmod(const char *pathname, mode_t mode);
Operasi directory:
- Create
- Delete
- Opendir
- Closedir
- Readdir
- Rename
- Link
- Unlink
System Call untuk Directory:
- DIR* opendir(const char* pathname)
- struct dirent *readdir(DIR *dirp);
- int closedir(DIR *dirp);
- void rewinddir(DIR *dirp);
Dirent structure:
struct dirent {
ino_t d_ino;
off_t d_off;
unsigned short d_reclen;
char d_name[1];
};
Pertemuan 17 & 18 – I/O Management
Perbedaan utama pada perangkat I/O:
- Setiap perangkat memiliki data rate yang berbeda
- Penggunaan perangkat memiliki pengaruh pada perangkat lunak dan kebijakan di OS dan mendukung utilitas
- Kompleksitas modul I/O yang mengontrol perangkat
Teknik-teknik I/O:
- Programmed I/O
- Interrupt Driven I/O
- Direct Memory Access
Organisasi I/O:
I/O Buffering:
- Proses harus menunggu I/O untuk menyelesaikan sebelum melanjutkan
- Halaman tertentu harus tetap dalam memori utama selama I/O
- Block-oriented
- Stream-oriented
Single Buffer:
- Sistem operasi memberikan buffer dlam memori utama untuk request I/O
- Block-oriented
Double Buffer:
- Menggunakan dua buffer sistem bukan satu
- Sebuah proses dapat mentransfer data ke atau dari satu buffer sementara sistem operasi mengosongkan atau mengisi buffer lainnya
Circular Buffer:
- Lebih dari dua buffer digunakan
- Setiap buffer individu satu unit dalam circular buffer
- Digunakan ketika operasi I/O harus bersaing dengan proses
Contoh buffering:
Mengelola disk:
Magnetic Disk:
- Geometri fisik dari disk dengan dua zona
- Virtual geometri yang mungkin untuk disk ini
CD-ROM:
CD-Recordable:
Perbaikan DVD di CD:
- Pits lebih kecil (0.4 mikron dibandingkan 0.8 mikron untuk CD)
- Spiral lebih ketat (0.74 mikron antara trek vs. 1.6 mikron untuk CD)
- Laser merah (Di 0.65 mikron vs. 0.78 mikron untuk CD)
Format DVD:
- Single-sided, single-layer (4.7 GB)
- Single-sided, dual-layer (8.5 GB)
- Double-sided, single-layer (9.4 GB)
- Double-sided, dual-layer (17 GB)
Disk:
Disk Formatting:
- Tidak ada interleaving
- Single interleaving
- Double interleaving
Penjadwalan disk arm:
- Mencari waktu (waktu untuk memindahkan lengan ke silinder yang tepat)
- Delay rotasi (waktu untuk sektor yang tepat untuk memutar di bawah kepala)
- Data aktual waktu transfer
Disk Scheduling:
- FIFO
- Priority
- Shortest Service Time First
- Scan
- C-Scan
RAID – Redundant Array of Independent Disk:
- RAID adalah sekumpulan disk drive fisik dilihat oleh OS sebagai single logical drive
- Data didistribusikan di seluruh drive fisik array dalam skema yang dikenal sebagai striping
- Kapasitas disk yang berlebihan digunakan untuk menyimpan informasi paritas, yang menjamin data yang pemulihan dalam kasus kegagalan disk
Input Software:
Input Software – Keyboard:
Output Software:
Display Hardware:
User Interface:
The X-Window System:
Graphical User Interface:
Bitmaps:
Thin Client:
SLIM Terminal:
SSD – Solid State Disk – NOR Flash:
SSD NAND Flash:
Pertemuan 19 & 20 – Memory Management
Cara kerja memory management:
- Membagi memori untuk menampung beberapa kebutuhan memori untuk proses yang akan dialokasikan untuk paket peralatan penunjang proses sebanyak mungkin ke dalam memori.
Fungsi memory management:
- Meningkatkan performa kerja CPU
- Meningkatkan efisiensi pemakaian memory dalam sebuah komputer
- Mengelola informasi sesuai kebutuhan
- Meningkatkan performa alokasi memory untuk menjalankan beberapa proses
- Mengelola swapping antara memory dan disk
Jenis-jenis memory:
- Memory Kerja Tetap:
- ROM (Read Only Memory) : Memory yang hanya dapat membaca
- PROM (Programmable ROM) : Memory yang dapat diprogram tapi tidak dapat dihapus lagi
- EPROM (Electrically PROM) : Memory yang dapat diisi melalui listrik, dan dapat dihapus lagi
- EEPROM (Erasable EPROM) : Memory yang dapat diisi dan dihapus dengan listrik, sehingga walaupun tidak ada daya listrik data tetap akan tersimpan dalam memory
- Register Mikroprosesor : Memory yang ukurannya paling kecil tapi waktu aksesnya paling cepat
- Memory Kerja Bebas
- RAM (Random Access Memory)
- Cache Memory
Requirement dalam memory management:
- Relokasi : Programmer tidak tahu memory tempat program dijalankan
- Proteksi : Lokasi memory dari suatu proses tidak dapat diketahui oleh proses lain kecuali dengan ijin tertentu
- Sharing : Memungkinkan beberapa proses untuk mengakses bagian yang sama dari memory
- Logical Organization
- Physical Organization