Session 15 & 16 – File Management
File management adalah kumpulan perangkat lunak sistem yang menyediakan layanan-layanan berhubungan dengan penggunaan file ke pemakai dan/atau aplikasi.
Biasanya, satu-satunya cara pemakai atau aplikasi mengakses file adalah lewat sistem file. Pemakai atau pemrogram tidak perlu mengembangkan perangkat lunak khusus untuk mengakses data di tiap aplikasi. Sistem pun menyediakan pengendalian terhadap aset penting ini.
Beberapa sasaran sistem file adalah sebagai berikut :
- Untuk memenuhi kebutuhan manajemen data dan kebutuhan user dalam hal penyimpanan data dan melakukan operasi terhadap file
- Untuk menjamin data pada file adalah valid.
- Optimasi kinerja.
- Untuk menyediakan dukungan I/O beragam tipe perangkat penyimpan.
- Untuk meminimalkan atau mengeliminasi potensi kehilangan atau perusakan data.
- Untuk menyediakan sekumpulan rutin interface I/O.
- Untuk menyediakan dukungan I/O banyak pemakai di sistem multiuser.
Fungsi file management :
- User dan aplikasi berinteraksi dengan sistem file dengan perintah-perintah untuk operasi file (create, delete, read, write, modify)
- Mekanisme pemakaian file secara bersama.
- Kemampuan backup dan recovery untuk mencegah kehilangan data.
- Pemakai dapat mengacu file dengan nama simbolik bukan menggunakan penamaan yang mengacu perangkat keras.
- Pada lingkungan sensitif dikehendaki informasi tersimpan amana dan rahasia.
- Sistem file harus menyediakan interface user-friendly.
- Sistem file menyediakan enkripsi dan dekripsi untuk menjaga informasi hanya digunakan oleh pemakai yang diotorisasi saja
Pengelolaan file terdiri dari :
- Sistem akses: berkaitan dengan bagaimana cara data disimpan pada file diakses.
- Manajemen file: berkaitan dengan penyediaan mekanisme operasi pada file seperti: Penyimpanan, Pengacuan, Pemakaian bersama, dan pengamanan
- Manajemen ruang penyimpanan: berkaitan dengan alokasi ruang untuk file diperangkat pentimpanan
- Mekanisme integritas file: berkaitan dengan penjaminan informasi pada file tak terkorupsi
Program dapat mengakses file di sistem melalui sistem manajemen basis data (DBMS) ataupun secara langsung melalui fasilitas yang disediakan sistem operasi.
Umumnya sistem operasi menyediakan:
- Manajemen file
- Manajemen penyimpanan file
- Mekanisme integritas
DBMS umumnya memuat bagian berikut:
- Database engine, diantaranya berisikan mekanisme integritasi.
- Sistem akses
Pathname
Setiap file memiliki pathname ada 2 macam pathname yaitu:
- Pathname absolut suatu file didapat dari menelusuri path dari root directory, melewati semua direktori sampai ke file yang diinginkan. Pathname absolute diawali dengan /.
- Pathname relatif menelusuri path dari direktori yang sedang digunakan(direktori kerja). Suatu pathname yang tidak diawali / adalah suatu pathname relatif. Seperti pathname absolute, pathname ini mendeskripsikan path melalui direktori yang dilewati.
Arsitektur Software Sistem File
Device Driver
- Merupakan level paling rendah dalam arsitektur software sistem file
- Berkomunikasi langsung dengan peripheral device
- Tugas device driver: memulai operasi I/O pada device, memproses penyelesaian permintaan I/O
- Contoh device: harddisk, tape drive, dll
Basic File System
- Merupakan antarmuka utama dengan lingkungan di luar sistem komputer
- Tugas basic file system : menangani pertukaran blok data dengan memori sekunder, yang meliputi: penempatan blok data ke dalam memori sekunder enampungan sementara (buffering) blok data di dalam memori utama
- Tidak menangani isi data maupun struktur file yang dipertukarkan
Basic I/O Supervisor
- Tugas I/O supervisor: bertanggung jawab terhadap semua inisiasi dan terminasi I/O file, memilih device dimana I/O file akan dilakukan, dan menangani penjadualan pengaksesan disk atau tape agar optimal
- Menjaga control structure yang berhubungan dengan device I/O, penjadualan, dan status file
Logical I/O
- Mengijinkan user dan aplikasi untuk mengakses record
- Memberikan kapabilitas I/O record serbaguna
- Menjaga data dasar dari file
Metode Akses
- Merupakan bagian file sistem yang paling dekat dengan user
- Bertugas untuk memberikan antar muka standar antara aplikasi dan sistem file dengan device yang menyimpan data
- Jika metode akses berbeda berarti struktur file dan cara memproses data juga berbeda
- Macam-macam metode akses: pile, sequential file, indexed sequential file, dan direct/hashed file
Konsep terpenting dari pengelolaan file :
1. File
File merupakan kumpulan data yang dibuat oleh user.
Properti file :
– Tahan lama
- File disimpan di dalam memori sekunder dan tidak hilang ketika sistem dimatikan
- Dapat digunakan bersama oleh sejumlah proses
- Setiap file mempunyai nama dan hak akses sehingga dapatditentukan proses mana saja yang bisa mengaksesnya
– Mempunyai struktur tertentu -> Setiap file mempunyai struktur internal tertentu sesuai dengan jenis aplikasi yang menggunakannya
Penamaan File
Pemakai file dengan nama simbolik. Tiap file disistem harus mempunyai nama unik agar tidak ambigu. Penamaan file berbeda sesuai sistem. Ada dua pendekatan sistem dalam penamaan file yaitu:
- Sistem yang case-sensitive: sistem membedakan antara hurup kecil dan hurup kapital.
- Sistem Case-insensitive : sistem tidak membedakan ntara hurup kecil dan hurup kapital.
Tipe File
Terdapat tiga tipe file dalam sistem operasi, yaitu:
- Regular : file ini berisi informasi, dari file ASCII dan biner.File ASCII berisi baris teks. Untuk file biner hasil program aplikasi, struktur internalnya hanya diketahui program aplikasi yangmenggunakan file tersebut.
- File Derectori : merupakan file yang dimiliki sistem untuk mengelola struktur sistem file. Berisikaninformasi-informasi mengenai file-file yang termasuk dalam direktori itu.
- File spesial: merupakan nama logik perangkat I/O. file special ada dua macam yaitu file special karakter dan special blok
2. Direktori
Direktori menyediakan pemetaan nama file ke file. Informasi terpenting pada direktori adalah berkaitan dengan penyimpanan, termasuk lokasi dan ukuran penyimpanan file.
Pada sistem bersama (shared system), informasi yang penting adalah informasi pengendalian akses file.Satu pemakai adalah pemilik file yang dapat memberi wewenang pengaksesan ke pemakai-pemakai lain.
Beberapa konsep penting yang dipahami oleh Pemakai:
- Hirarki direktori ( struktur pohon)
Kebanyakan sistem menggunakan hirarki direktor atau berstruktur pohon. Terdapat satu direktori master (root) yang didalamnya dapat terdapat subdirektori-direktori.
- Jalur pengaksesan (path-name)
Penamaan file diselesaikan dengan penamaan absolut yaitu nama jalur dari direktori root ke file.dan nama jalur relatif (relative pathname) jalur relatif terhadap direktori kerja/saat itu (working directory atau current directory) pemakai dapat menyatakan satu direktori sebagai current directory.
- Perintah- perintah memanipulasi direktori
Yang digunakan perintah-perintah meliputi:
- Pindah direktori
- Penciptaan direktori
- Penghapusan direktori
Penghapusan direktori mengisyaratkan direktori tidak sedang digunakan atau direktori telah kosong.
Terdapat perintah-perintah memanipulasi seluruh sistem file, diantaranya pembentukan sistem file, pemeriksaan sistem file, pengkopian seluruh sistem file, manipulasi lainnya.
Shared File
Shared file tidak hanya diacu oleh satu direktori (pemakai), tapi juga oleh direktori-direktori lain. Sistem file tidak lagi berupa pohon melainkan directory acyclic graph. (DAG).
Masalah yang terdapat pada shared file adalah :
- Metode implementasi shard file
- Metode pemberian hak akses pada shared file.
- Metode pengendalian atau penanganan terhadap pengaksesan yang secara simultan dilakukan pemakai yang mengacu file.
Pengaksesan Perangkat Penyimpanan
- Perangkat akses sekuen
Proses harus membaca semua byte atau rekord file secara berturutan mulai dari awal, tidak dapat meloncati dan membaca diluar urutan.Contoh tape
- Perangkat akses acak.
Dimungkinkan dapat membaca byte atau rekord file diluar urutan atau mengakses rekord berdasar kunci bukan posisinya.
Organisasi File
Kriteria penting pada organisasi file:
- Media penyimpan data murah : berbanding terbalik dengan kehandalan, semakin murah, maka kehandalannya semakin rendah
- Perawatannya mudah
- Handal (Reliability): berbanding terbalik dengan harga, semakin handal biasanya waktu akses semakin cepat dan harganya semakin mahal
Jenis Pengorganisasian File (metode akses) :
- File pile (tumpukan)
- File sekuensial
- File sekuensial berindeks
- File berindeks
- File direct atau hashed
Implementasi Sistem Manajemen File
Masalah implementasi sistem manajemen file antara lain:
– Penyimpanan File
- Blocking -> Blok berisi sekumpulan byte berukuran tetap yang dipindah dari tempat penyimpanan ke memori untuk diproses dan sebaliknya.
- Ukuran blok -> ukuran blok yang sama pada perangkat-perangkat berbeda dapat menyebabkan pemborosan ruangpenyimpanan. Ukuran-ukuran blok berbeda sungguh sangat menyulitkan penulisan program.
Terdapat tiga cara pengalamatan blok, yaitu:
- Pengalamatan fisik disk
Terdapat enam pengalamatan secara fisik, yaitu: Nomor perangkat fisik, nomor silinder, nomor permukaa, nomor sektor atau block, nomor rekord dalam blok dan nomor field atau karakter dalam rekord
- Pengalamatan relatif.
digunakan bilangan bulat dari 0 sampai jumalah maksimal blok. Penghitungan dilakukan oleh sistem operasi
- Pengalamatan simbolik -> Tiap blok diberi alamat simbolik, Digunakan tabel alamat, Identifier blok bisa menggunakan bilangan bulat .
Implementasi Sistem File
Sistem manajemen file bertanggung jawab untuk alokasi blok-blok disk ke file.
Sistem file meliputi:
- Alokasi file
- Pencatatan ruang file
- Shared file
- Kehandalan sistem file
- Kinerja sistem file
Alokasi file
Metode yang digunakan untuk pencatatan blok yang digunakan file, yaitu
– Alokasi berturutan/kontigu (contigous allocation)
Keunggulan : sederhana dan kinerjanya luar biasa bagus.
Kelemahanya: hanya bila ukurannya maksimumdiketahui pada saat file diciptakan, terjadi fragmentasi disk.
– Alokasi blok-blok file sebagai sebagai berkait
Keunggulan : Setiap blok disk dapat digunakan, isian/elemen direktori cukup menyimpan alamat blok pertama file
Kelemahan : Pembacaan sekuen cukup merepotkan karena harus menelusuri blok satu per satu, blok data tidak lagi berukuran 2k karena pointer memerlukan berbagai byte.
– Alokasi blok-blok file sebagai sebagai berkait menggunakan index
Keunggulan: Pengaksesan acak lebih mudah, (tanpa pengaksesan di disk), Direktori cukup menyimpan bilangan bulat nomor blok awal
Kelemahan: Seluruh tabel (FAT) harus disimpan di disk, Jika penyimpanan berukuran besar mengakibatkan tabel berukuran besar dan harus ditarik di memori utama meskipun hanya satu file
– i-node atau index-block chaining
- File kecil -> Beberapa alamat disk awal disimpan di I-node itu sendiri, semua informasi yang diperlukan terdapat di I-node di disk dan disimpan di memori begitu file dibuka.
- File lebih besar -> Untuk file lebih besar, salah satu dari field di i_node adalah Pointer ke singly indireck block yang berisi pointer ke blok yang berisi alamat blok-nlok data berikutnya.
Keunggulan: Isian direktori sederhana (bisamengimplementasikan file kecil sampai yang besar)
Kelemahan: Perlu pengaksesan disk untuk penelusuran blok-blok data file.
Session 17 & 18 – Input / Output Management
Prinsip Perangkat Keras I/O
Batasan : bagaimana hardware tersebut di program
Manajemen perangkat I/O mempunyai beragam fungsi, diantaranya :
- mengirimkan perintah ke perangkat I/O agar menyediakan layanan
- menangani interupsi perangkat I/O
- menangani kesalahan pada perangkat I/O
- menyediakan interface ke pemakai
I/O Device
Perangkat I/O dapat dibedakan berdasarkan :
- Sifat aliran data
Berdasarkan aliran data dibedakan menjadi :
a. Perangkat berorientasi blok (block-oriented devices)
Menyimpan informasi dan menukarkan (menerima / mengirim) informasi sebagai blok-blok berukuran tetap. Tiap blok mempunyai alamat tersendiri. Ukuran blok dapat beragam antara 128 s/d 1024 byte.
Ciri utamanya adalah : dimungkinkan membaca / menulis blok-blok secara independent, yaitu dapat membaca atau menulis sembarang blok tanpa harus melewati blok-blok lain.
Contohnya : disk, tape, CD ROM, Optical disk
b. Perangkat berorientasi karakter (character-oriented devices)
Mengirim atau menerima karakter dan tanpa peduli membentuk suatu struktur blok, not addresable dan tidak mempunyai operasi seek.
Contohnya : terminals, line printer, punch card, network interfaces, pita kertas, mouse
Klasifikasi diatas tidak mutlak, karena ada beberapa perangkat yang tidak termasuk kategori diatas, misalnya :
- clock yang tidak teramati secara blok dan juga tidak menghasilkan / menerima aliran karakter. Clock menyebabkan interupsi pada interval-interval yang didefinisikan.
- Memory mapped screen,
- Sensor
- Sasaran komunikasi
Berdasarkan sasaran komunikasi dibedakan menjadi :
a. Perangkat yang terbaca oleh manusia (human readable device)
Perangkat yang cocok untuk komunikasi dengan manusia.
Contohnya : VDT (Video Display Terminal) terdiri dari monitor, keyboard (+mouse)
b. Perangkat yang terbaca oleh mesin (machine readable device)
Perangkat yang cocok untuk komunikasi dengan perangkat elektronik.
Contohnya : disk, tape, sensor, controller, aktuator
c. Untuk komunikasi
Perangkat yang cocok untuk komunikasi dengan perangkat jarak jauh.
Contohnya : modem
Device Controller
Unit I/O berupa :
a. Komponen elektronik
Device controller / adapter adalah untuk mengaktifkan perangkat eksternal dan memberitahukan yang perlu dilakukan oleh perangkat / driver.
Contoh : unit tape megnetik diinstruksikan untuk kembali ke posisi awal, bergerak ke record berikutnya dan sebagainya.
b. Komponen mekanik
Contohnya : head, motor stepper, printer
Direct Memory Access (DMA)
DMA berfungsi membebaskan pemroses menunggui transfer data yang dilakukan I/O device. Saat pemroses ingin membaca atau menulis data, pemroses memerintahkan DMA Controller dengan mengirimkan informasi berikut :
- perintah penulisan / pembacaan
- alamat I/O device
- awal lokasi memori yang ditulis / dibaca
- jumlah word / byte yang ditulis / dibaca
setelah mengirimkan informasi itu ke DMA Controller, pemroses dapat melanjutkan kerja lain. Pemroses mendelegasikan operasi I/O ke DMA. DMA mentransfer seluruh data yang diminta ke / dari memori secara langsung tanpa melewati pemroses. Ketika transfer data selesai, DMA mengirimkan sinyal interupsi ke pemroses. Pemroses hanya dilibatkan pada awal dan akhir transfer data.
Operasi transfer antara perangkat dan memori utama dilakukan sepenuhnya oleh DMA, lepas dari pemroses dan hanya melakukan interupsi bila operasi telah selesai.
Keuntungan DMA :
- peningkatan kinerja prosesor atau I/O
- meminimasikan over head
Pada waktu data di tranfer dari controller ke memori, sektor berikut akan lewat dibawah head dan bits sampai ke controller. Controller sederhana tidak dapat melakukan I/O dalam waktu yang bersamaan, maka dilakukan interleaving (skip blok), memberi waktu untuk tranfer data ke memori. Interleaving ini terjadi pada disk bukan pada memori, seperti terlihat pada gambar di bawah ini.
Prinsip Software I/O
Ide Dasar : mengorganisasikan software dalam beberapa layer dimana level bawah menyembunyikan akses / kepelikan hardware untuk level diatasnya. Level atas membuat interface yang baik ke user.
Tujuan Software I/O
a. Konsep dalam desain software I/O
Device independence / tidak bergantung pada device yang digunakan
b. Penamaan yang seragam / Uniform Naming
Penamaan file berkas atau perangkat adalah string atau integer dan harus sederhana, tidak bergantung pada device
Contoh : seluruh disks dapat dibuat dengan hirarki sistem file (menggunakan NPS)
c. Penanganan kesalahan / Error Handling
Error harus ditangani sedekat mungkin dengan hardware
Contoh : pertama controller, device driver, dst. Dan jika tidak bisa ditangani beri pesan
d. Synchronous (blocking) vs Asynchronous (Interrupt Driver) transfer
Kebanyakan I/O adalah asinkron. Pemroses mulai transfer dan mengabaikan untuk melakukan kerja lain sampai interupsi tiba.
Program pemakai sangat lebih mudah ditulis jika operasi I/O berorientasi blok. Setelah perintah read, pemrogram kemudian ditunda secara otomatis sampai data tersedia di buffer. Terserah sistem operasi untuk menangani operasi yang sesungguhnya interrupt driver.
e. Sharable vs Dedicated Device
Beberapa perangkat dapat dipakai bersama seperti disk, tapi ada juga perangkat yang hanya satu pemakai yang dibolehkan memakai pada satu saat.
Misal : disk untuk sharable dan printer untuk dedicated
Tujuan diatas dapat dicapai dengan memisahkan software I/O menjadi 4 layers, yaitu :
- Interrupt Handler
Interrupt harus disembunyikan agar tidak terlihat rutin berikutnya. Device driver di blok saat perintah I/O diberikan dan menunggu interupsi. Ketika interupsi terjadi, prosedur penanganan interupsi bekerja agar device driver keluar dari state blocked.
- Device Drivers
Seluruh kode device dependent terletak di device driver. Tiap device driver menangani satu tipe / satu kelas device. Tugas dari device driver untuk menerima permintaan abstrak dari software device independent diatasnya dan melakukan layanan sesuai permintaan / mengeksekusinya.
- Device Independent Operating System Software
I/O device-independent adalah : software I/O yang tak bergantung pada perangkat keras.
Fungsi dasar dari software device-independent :
- membentuk fungsi I/O yang berlaku untuk semua device
- menyediakan interface uniform / seragam ke user level software
Fungsi dari software I/O device-independent yang biasa dilakukan :
a. Interface seragam untuk seluruh device-driver
b. Penamaan device
c. Proteksi device
d. Memberi ukuran blok device agar bersifat device-independent
e. Melakukan Buffering
f. Alokasi penyimpanan pada blok devices
g. Alokasi dan pelepasan dedicated devices
h. Pelaporan kesalahan
- User Space I/O Software
Sebagian besar software I/O berada di dalam sistem operasi yang di link dengan user program.
System call termasuk I/O, biasanya dalam bentuk prosedur (library procedures).
Contoh : count = write(fd,buffer,nbytes)
I/O prosedur dengan level lebih tinggi.
Contoh : printf (memformat output terlebih dahulu kemudian panggil write)
Disk
Tiga kelebihan disk dari main memory untuk penyimpanan :
- kapasitas penyimpanan yang tersedia lebih besar
- harga per-bit-nya lebih rendah
- informasi tidak hilang meskipun power off
Perangkat Keras Disk
Disk diorganisasikan menjadi silinder-silinder dengan tiap permukaan terdapat head yang ditumpuk secara vertikal. Track terbagi menjadi sektor-sektor.
Tiga faktor yang mempengaruhi waktu read/write block disk :
- seek time (waktu menggerakkan lengan ke silinder)
- rotational delay (waktu sector berputar ke head)
- transfer time
yang sangat dominan adalah seek time, jadi performance dapat ditingkatkan dengan mengurangi waktu rata-rata seek
Proses seek pada disk driver : seek ke lebih dari satu disk secara bersamaan, read/write bersama dengan seek, read/write dalam waktu yang bersamaan dari dua drive
Algoritma Penjadwalan Akses Lintas Disk
Pada sistem multiprogramming, banyak proses yang melakukan permintaan read/write record disk. Proses membuat permintaan lebih cepat dibandingkan yang dapat dilayani disk, membentuk antrian permintaan layanan disk. Diperlukan penjadwalan disk agar memperoleh kerja optimal.
Terdapat dua tipe penjadwalan disk, yaitu :
- Penjadwalan untuk optimasi seek, karena waktu seek lebih tinggi satu orde dibandingkan waktu rotasi, maka kebanyakan algoritma penjadwalan berkonsentrasi meminimumkan seek kumpulan atau antrian permintaan layanan disk.
- Penjadwalan untuk optimasi rotasi, penjadwalan disk melibatkan pemeriksaan terhadap permintaan yang belum dilayani untuk menentukan cara paling efisien melayani permintaan-perminataan, dan memeriksa hubungan posisi di antrian permintaan. Antrian disusun kembali sehingga permintaan akan dilayani dengan pergerakan mekanis minimum.
Adapun beberapa metode yang digunakan :
a. Algoritma Pertama Tiba Pertama Dilayani (PTPD) / First Come, First Served (FCFS) Algorithm
Disk drive melayani satu permintaan pada sauatu saat dan melayaninya sesuai urutan kedatangannya. Permintaan yang duluan tiba, dilayani duluan.
b. Algoritma Pungut / Pick Up Algorithm
c. Algoritma Waktu Cari Terpendek Dipertamakan (WCTD) / Shortest Seek Time First (SSTF) Algorithm
d. Algoritma Lift Singkat / LOOK Algorithm
e. Agoritma Lift Singkat Searah / C-LOOK Algorithm
f. Algoritma Lift Lengkap / SCAN Algorithm
g. Algoritma Lift Lengkap Searah / C-Scan Algorithm
I/O Error Handling / Penanganan Kesalahan I/O
Error yang umum terjadi adalah :
- Error pemrograman
Kesalahan disebabkan pemrograman. Misalnya : request sektor yang tidak ada. Penanganannya : pembetulan program untuk komersial software, batalkan operasi dan berharap tidak akan terjadi lagi
- Error checksum transient
Kesalahan disebabkan adanya debu diantara head dengan permukaan disk. Penanganannya : lakukan operasi berulang-ulang dan menandai sector yang rusak.
- Error checksum permanent
Kesalahan disebabkan kerusakan disk. Misalnya harus dibuat daftar blok-blok buruk agar data tidak ditulisi di blok-blok buruk.
- Error seek
Kesalahan ini ditanggulangi dengan mengkalibrasi disk supaya berfungsi kembali. Misalnya lengan harusnya ke silinder 6 ternyata ke 7. Penanganannya : kalibrasi ulang.
- Error controller
Kesalahan ini ditanggulangi dengan menukar pengendali yang salah dengan pengendali yang baru. Misalnya controller menolak perintah akses. Penanganannya : reset.
- Track at time caching
Kontroller mempunyai memori untuk menyimpan informasi track dimana ia berada, permintaan pembacaan blok track tersebut dilakukan tanpa pergerakan mekanik.
RAM Disk
RAM disk adalah disk driver yang disimulasikan pada memori akses acak (RAM). RAM disk sepenuhnya mengeliminasi waktu tunda yang disebabkan pergerakan mekanis dalam seek dan rotasi. RAM disk berguna untuk aplikasi yang memerlukan kinerja disk yang tinggi.
Devices block adalah media penyimpanan dengan 2 perintah : R (read) dan W (write). Normalnya blok-blok disimpan di disk berputar yang memerlukan mekanisme fisik.
Idenya adalah meniru driver dengan mengalokasikan terlebih dahulu satu bagian memori utama untuk menyimpan blok-blok data.
Keuntungannya : berkecepatan tinggi karena pengaksesan sesaat / instant, tidak ada waktu tunda seek dan waktu tunda rotasi. Sangat cocok untuk menyimpan program atau data yang sering diakses.
Terminal
Semua komputer memerlukan terminal untuk komunikasi antar peralatan.
Terminal Hardware
Terminal hardware terbagi atas 2 kategori dasar, yaitu :
- Terminal interface melalui RS-232
RS-232 menghubungkan keyboard, monitor menggunakan serial interface, 1 bit dalam 1 waktu, dan menggunakan 25 pin konektor, dimana 1 pin untuk transmisi data, 1 pin untuk receive data dan 1 pin untuk ground, 22 pin yang lain digunakan untuk fungsi control atau ada pin yang tidak digunakan.
RS-232 dapat dikategorikan lagi menjadi :
- hardcopy / printer, dimana tipe karakter dari keyboard ditransmisikan ke komputer, dan kemudian di cetak di kertas / printer.
- Dumb CRT terminal / glass tty (teletype = terminal)
- Intelligent CRT terminals, terdiri dari CPU dan memory, dan untuk program yang kompek digunakan EPROM atau ROM.
- Blit, adalah terminal dengan powerful microprocessor
- Terminal memory-mapped
adalah interface melalui video RAM / video controller yang digunakan untuk monitor.
Terminal Software
Terminal Software terdiri dari :
a. Input Software
b. Output Software
Session 19 & 20 – Memory Management
Manajemen Memori
- Manajemen memori dilakukan dengan cara membagi-bagi memori untuk mengakomodasi banyak proses
- Manajemen memori dilakukan untuk menjamin agar setiap proses yang ready dapat segera memanfaatkan processor time
Terdapat 5 requirement manajemen memori:
- Relocation
- Protection
- Sharing
- Logical organization
- Physical organization
- Relocation
Mengapa Relocation perlu ditangani?
- Programmer tidaktahu dibagian memori yang mana program akan ditaruh pada saat dieksekusi
- Pada saat program dieksekusi, dimungkinkan program tersebut akan di-swap ke disk dan kemudian diambil lagi dari disk untuk ditaruh di memori dengan lokasi yang berbeda dengan lokasi sebelumnya(terjadi relocation )
- Diperlukan adanya translasi antara alamat program dengan alamat fisik memori
Mengapa relocation penting dalam manajemen memori ?
- Jika suatu program diload ke memori, maka alamat lokasi memori(alamat absolut atau alamat fisik) yang akan ditempati harus ditentukan ditentukan
- Alamat absolut suatu program dapat berubah-ubah sebagai akibat : Swapping dan Compaction
Jenis-jenis alamat data:
a. Alamat Logical
- Alamat suatu word relatif terhadap titik referensi tertentu
- Harus dilakukan translasi terhadap alamat fisik
b. Alamat Relatif
- Alamat yang menunjukkan lokasi relatif terhadap alamat awal suatu program
- Dapat terdiri dari: Alamat instruksi dalam pencabangan, Alamat instruksi call, Alamat data
c. Alamat Fisik
- Alamat mutlak/absolut
- Merupakan alamat sebenarnya dari suatu memori
Jenis-jenis register yang digunakan:
a. Base register
- Alamat awal suatu proses (tiap proses berbeda-beda)
- Ditentukan oleh sistem operasi
b. Bound register
- Alamat akhir suatu proses
- Bound register = base register + panjang proses
c. Kedua alamat di-set pada saat proses di-load atau kembali dari swap
d. Setiap proses mempunyai nilai base register dan bound register sendiri-sendiri
Mekanisme relocation :
- Alamat base register ditambahkan dengan alamat relatif sehingga diperoleh alamat absolute
- Protection
Mengapa Protection perlu ditangani?
- Suatu proses tidak boleh mengakses lokasi memori proses yang lain tanpa ijin
- Lokasi program di memori tidak tentu -> alamat mutlak pada saat compile tidak dapat diketahui
- Penanganan proteksi memori diserahkan kepada prosesor (secara hardware ), bukan bagian sistem operasi ( software )-> Sistem operasi tidak dapat memperkirakan penggunaan semua referensi memori dari setiap program
Mekanisme relocation :
a. Alamat base register ditambahkan dengan alamat relative sehingga diperoleh alamat absolut
b. Alamat yang diperoleh dibandingkan dengan nilai-nilai pada bound register
c. Jika nilainya berada di dalam bound -> instruksi dilanjutkan
d. Jika nilainya di luar bound -> dihasilkan interrupt
- Sistem operasi harus mengambil tindakan lebih lanjut
- Merupakan mekanisme proteksi terhadap pengaksesan data proses yang lain
- Sharing
Mengapa Sharing perlu ditangani?
- Harus dimungkinkan suatu lokasi memori dapat diakses oleh lebih dari satu proses (secara legal)
- Beberapa proses yang memerlukan data yang sama, maka tidak perlu setiap proses meng-copy data dari disk ke memori, cukup sebuah copy saja
- Logical Organization
Mengapa Logical Organization perlu ditangani?
– Main memory dikelompokkan secara linier atau berdimensi satu yang berupa ruang alamat yang terdiri dari deretan byte atau word
– Sebagian besar program dibuat dalam bentuk modul -> penempatan di memori tidak linier -> diperlukan pengaturan secara logic
– Kelebihan program dalam bentuk modul:
- Modul dapat ditulis dan di-compile secara terpisah
- Setiap modul dapat diberi tingkatan proteksi berbeda-beda (read-only, execute only)
- Module dapat di-share oleh beberapa proses
- Physical Organization
Mengapa Physical Organization perlu ditangani?
– Memory dikelompokkan menjadi memori utama dan memori sekunder
– Diperlukan metode yang mengatur aliran data dari memori utama ke memori sekunder dan sebaliknya
– Pengaturan tersebut dilakukan oleh sistem operasi, bukan programmer karena:
- Programmer tidak tahu berapa ruang memori yang tersedia pada saat program dijalankan
- Bila ruang memori yang tersedia tidak cukup untuk menampung program dan data -> sistem dapat melakukan overlay.
- Overlay adalah menempatkan beberapa bagian modul/program pada area memori yang sama secara bergantian
Teknik Manajemen Memory
Beberapa teknik manajemen memori yang ada:
a. Partisi
- Partisi tetap( fixed ) -> Partisi berukuran sama dan Ukuran partisi berbeda-beda
- Partisi dinamis
b. Paging sederhana
c. Segmentasi sederhana
d. Virtual-memory -> terdri dari virtual-memory paging dan virtual-memory segmentation
Partisi Memori Tetap (Fixed)
Sebelum digunakan memori terlebih dahulu dipartisi (ukuran partisi tidak berubah)
Model ukuran partisi:
- Partisi berukuran sama
- Setiap proses yang ukurannya lebih kecil atau sama dengan ukuran partisi dapat menempati partisi tersebut
- Jika semua partisi telah terisi, maka sistem operasi akan melakukan swap terhadap proses yang sudah tidak aktif
- Dimungkinkan adanya program yang ukurannya lebih besar daripada ukuran partisi yang tersedia -> programmer harus merancang program dengan overlay
- Penggunaan memori sangat tidak efisien –> Misal bila ukuran partisi adalah 8 MB, maka program berukuran 2 MB akan menyisakan ruang memori sebesar 6 MB
- Partisi berukuran tidak sama
- Lebih baik daripada partisi berukuran sama karena enggunaan memori lebih efisien dan tidak memerlukan overlay
Algoritma penempatan ( placement ) :
a. Partisi berukuran sama
- Algoritmanya sederhana, partisi yang mana saja asalkan kosong boleh ditempati, karena ukurannya sama
b. Partisi berukuran berbeda
- Setiap proses ditempatkan pada partisi yang menyisakan ruang bebas terkecil
- Terdapat 2 model antrian : Satu antrian –satu partisi , Satu antrian –banyak partisi
Satu partisi-satu antrian
- Setiap proses antri pada partisi yang berukuran sedikit lebih besar atau sama dengan ukuran proses
- Kelebihan: Dapat meminimalisir ruang memori yang terbuang
- Kekurangan: Diperlukan penjadwalan antrian dan ada kemungkinan efisiensi secara keseluruhan tidak optimal.
Banyak partisi-satu antrian
- Setiap proses dapat menempati di sembarang partisi yang sedang tidak digunakan
- Dipilih partisi yang menyisakan ruang memori terkecil
- Bila seluruh partisi telah diisi -> dilakukan swapping
Kelebihan Partisi Memori Tetap
- Mudah diimplementasikan
- Overhead sistem operasi hanya sedikit
Kekurangan Partisi Memori Tetap
- Tidak efisien dalam penggunaan memori akibat terjadi fragmentasi internal. Fragmentasi internal adalah sisa ruang memori yang terjadi jika ukuran proses lebih kecil daripada partisi yang digunakan
- Jumlah maksimum proses yang aktif adalah tetap dan terbatas (bergantung jumlah partisi)
Partisi Memori Dinamis
Keterangan:
a. Tersedia 64 MB memori, 8 MB untuk sistem operasi
b. Proses1 aktif dan membutuhkan 20MB
c. Proses 2 aktif dan memerlukan 14 MB
d. Proses 3 aktif dan memerlukan 18MB, sisa memori tinggal 4MB
e. Proses 2 selesai
f. Proses 4 aktif dan memerlukan 8MB -> ditempatkan di ruang memori bekas proses 2 -> terjadi fragmentasi eksternal sebesar 6 MB
g. Proses 1 telah selesai -> tersedia ruang bebas sebesar 20 MB
h. Proses 2 aktif lagi dan ditempatkan pada lokasi bekas proses 1 -> terjadi fragmentasi eksternal sebesar 6 MB
Algoritma penempatan ( placement ) :
– Permasalahan: Kapan saat untuk melakukan loading dan swapping?
Bila terdapat lebih dari satu blok memori yang dapat dibebaskan, blok memori yang mana yang akan di-swap?
– Algoritma yang dapat digunakan:
- Best-fit
- First-fit
- Next-fit
Algoritma Best-fit :
- Memilih blok memori yang paling sedikit menyisakan ruang memori
- Biasanya performansi secara keseluruhan adalah yang paling buruk karena :
- Proses pencarian lebih lama dan membebani prosesor
- Sisa memori berukuran kecil-kecil lebih cepat terbentuk -> Compaction harus lebih sering dilakukan dari pada algoritma yang lain
Algoritma First-fit :
- Pencarian blok memori kosong dimulai dari awal
- Blok memori yang dipilih adalah blok memori yang pertama kali ditemukan dan ukurannya sesuai
- Merupakan algoritma yang paling baik karena paling cepat dan paling sederhana
- Pencarian akan melewati sejumlah proses yang terletak pada bagian ujung awal memori sebelum menemukan blok memori yang bebas
Algoritma Next-fit :
– Pencarian blok memori kosong dimulai lokasi placement terakhir
– Lebih buruk dibandingkan First-fit , karena blok memori yang ditemukan sering berada pada ujung akhir memori yang merupakan blok memori berukuran paling besar.
- Blok memori yang besar akan lebih cepat terpartisi menjadi blok memori yang lebih kecil
- Compaction untuk memperoleh blok memori berukuran besar pada ujung akhir memori harus lebih sering dilakukan daripada First-fit
Kelebihan Partisi Memori Dinamis :
- Tidak terjadi fragmentasi internal
- Penggunaan memori lebih efisien
- Jumlah proses aktif lebih fleksibel (tidak tetap)
Kekurangan Partisi Memori Dinamis :
- Implementasinya lebih susah
- Dapat terjadi fragmentasi eksternal
- Terjadi overhead penggunaan prosesor: Untuk compaction dan untuk menjalankan algoritma