SISTEM OPERASI CSP 2702 Semester/SKS : 4/3 Program Studi : Sistem Komputer
Kamis, 13.20 – 15.00 - Ruang : P-22
Dosen Pengampu : Erfanti Fatkhiyah, ST., M.Cs.
SISTEM I/O Hardware I/O Interface Aplikasi I/O Subsistem Kernel I/O Transformasi Permintaan I/O ke Operasi Hardware Streams Kinerja
Hardware I/O
Variasi peralatan I/O sangat luar biasa banyak Konsep: Port Bus
(daisy chain or shared direct access) Controller (host adapter)
Instruksi I/O digunakan untuk mengendalikan peralatan Peralatan memiliki alamat, yang digunakan oleh: Instruksi I/O
secara langsung Pemetaan memori I/O
Tipikal Struktur Bus Pada PC
Lokasi Port Peralatan I/O Pada PC (parsial)
Polling
Menentukan status perlatan command-ready busy Error
Busy-wait cycle untuk menunggu I/O dari peralatan
Interrupt
Baris permintaan interrupt CPU menggerakkan peralatan I/O
Interrupt handler menerima interrupt
Mampu menyembunyikan untuk ignore atau menunda beberapa interrupt
Mengarahkan interrupt ke penanganan yang benar Didasarkan pada prioritas Beberapa tidak dapat disembunyikan
Mekanisme interrupt juga untuk pengecualian
6 Tahap Proses Untuk Melaksanakan Transfer DMA
Interface Application I/O
Sistem I/O melaksanakaan perilaku peralatan I/O dalam satu kesatuan dalam class umum Lapis device-driver menyembunyikan secara berbedabeda di antara pengendali I/O dari kernel Peralatan bervariaso dalam beberapa dimensi: Aliran karakter atau blok Akses sequential atau random Sharable atau dedicated Kecepatan operasi read-write, read only, atau write only
Struktur Kernel I/O
Karakteristik Peralatan I/O
Peralatan Blok Dan Karakter
Peralatan blok meliputi: disk drive: Perintah meliputi read, write, seek Akses I/O per baris atau sistem file Memungkinkan pemetaan akses file memori Perlatan karakter meliputi: keyboard, mouse, portport serial Perintah meliputi: get, put Lapis pustaka paling atas mengijinkan editing baris perintah
Peralatan Jaringan • Banyak variasi blok dan karakter untuk interface dengan dirinya sendiri • Unix dan Windows NT/9i/2000 termasuk interface socket - Memisahkan protokol jaringan dari operasi jaringan - Meliputi fungsi select • Pendekatan sangat luas (pipe, FIFO, stream, queues, mailboxe)
Clock Dan Timer
• Memberikan informasi: time, elapsed time, timer
• Jika mungkin diprogramkan dapat untuk menentukan interval waktu yang digunakan untuk: timing, periodic interrupt • ioctl (pada UNIX) menampilkan aspek-aspek ekstra pada I/O seperti clock dan timer
Blocking dan Nonblocking Pada I/O
Proses blocking ditangguhkan hingga I/O lengkap Mudah digunakan dan dipahami Tidak mencukupi untuk beberapa keperluan
Proses nonblocking pada I/O call menguntungkan karena cukup tersedia: User interface, copi data (ditampung oleh I/O) Diimplementasikan melalui multi-threading Hasil perhitungan cepat pada pembacaan atau penulisan byte
Proses asynchronous berjalan selama mengeksekusi I/O Sulit digunakan Subsistem sinyal I/O diproses ketika I/O telah selesai
Subsistem Kernel I/O
Scheduling: Permintaan
I/O dipesan melalui antrian
peralatan Beberapa OS mencoba melaksanakannya secara wajar/adil
Buffering: menyimpan data dalam memori selama transfer antar perlatan: Untuk
mengatasi perbedaaan kecepatan perlatan Untuk mengatasi perbedaan ukuran transfer yang tidak sama Untuk memelihara copy semantic
Subsistem Kernel I/O
Caching – memori yang sepat untuk mengatasi copy data Selalu hanya meng-copy Sebagai kunci utama kinerja
Spooling – mengatasi keluaran pada sebuah peralatan Jika peralatan hanya dapat melayani 1 permintaan pada suatu saat tertentu Misal, pencetakan
Device reservation – memberikan akses ekslusif untuk peralatan System call untuk alokasi dan de-alokasi Menjaga agar tidak deadlock
Penanganan Kesalahan (Error Handling)
OS dapat memperolah kembali hasil pembacaan disk, ketidaktersediaan peralatan, kerusakaan penulisan sementara Sebagian besar mengembalikan nomor kesalahan atau kode jika permintaan I/O mengalami kerusakan Sistem log kesalahan memberikan laporan permasalahan
Struktur Data Kernel • Kernel menyimpan informasi status komponen I/O, melipuii tabel membuka file, koneksi jaringan, status peralatan karakter • Banyak struktur data komplek untuk mencatat jejak buffer, alokasi memori, blok yang rusak “dirty” • Beberapa menggunakan metode berorientasi obyek dan pelewatan pesan untuk implementasi I/O
Struktur Kernel I/O Pada UNIX
Permintaan Operasi Untuk Hardware I/O
Mempertimbangkan pembacaan file dari disk untuk proses: Menentukan
peralatan yang menangani Menterjemahkan nama untuk merepresentasikan peralatan Pembacaan data dari fisik disk ke dalam buffer Membuat data menjadi tersedia untuk memproses permintaan Memberikan kendali proses
Siklus Hidup Pada Permintaan I/O
ALIRAN (STREAM)
STREAM – kanal komunikasi full-duplex antara proses pada level user dan peralatan
Sebuah STREAM meliputi: - STREAM head sebagai interface dengan proses user - driver end sebagai interface dengan perlatan - 0 or lebih modul STREAM di antara proses
Setiap modul memuat 1 read queue dan 1 write queue
Pelewatan pesan digunakan untuk meng-komunikasikan antar antrian
Struktur STREAMS
Kinerja Faktor
utama kinerja sistem I/O:
Permintaan CPU untuk mengeksekusi driver peralatan, kode kernel I/O Hak context switch untuk interrupt Peng-copy-an data Kepadatan lalu lintas jaringan
Peningkatan Kinerja
Mengurangi jumlah context switch Mengurangi peng-copy-an data Mengurangi interrupt yang menggunakan transfer berukuran besar, smart controller, polling Menggunakan DMA Menyeimbangkan CPU, memori, bus, dan kinerja I/O untuk memperoleh throughput tertinggi
Komunikasi Antar Komputer
Fungsi Progress Peralatan