INPUT / OUTPUT
INPUT / OUTPUT Pengelolaan perangkat masukan/keluaran merupakan aspek perancangan sistem operasi yang terluas disebabkan sangat berangamnya perangkat dan begitu banyaknya aplikasi dari perangkat-perangan tsb. Manajemen perangkat masukan/keluaran mempunyai beragam fungsi, diantaranya: Mengirim perintah ke perangkat I/O agar menyediakan layanan. Menangani interupsi perangkat I/O Menangani kesalahan pada perangkat I/O Menyediakan interface ke pemakai
PRINSIP PERANGKAT KERAS INPUT / OUTPUT Peralatan Input/Output = I/O DEVICES Dua jenis Peralatan I/O (Berdasarkan sifat aliran datanya) Block devices Data dikirim atau diterima dalam bentuk Block ( Disk, Pita magnetik). Peralatan ini menyimpan informasi dalam Block yang berukuran tetap, dan setiap block memiliki alamat sendiri. Contoh: disk, tape, CDROM, optical disk, dsb. Character devices Data dikirim atau diterima dalam bentuk karakter ( Seperti : Line printer, Pita kertas, Punched card, Mouse, Network interface, dsb). Data pada peralatan ini tidak memiliki alamat, juga tidak ada operasi seek terhadap data. Contoh: Terminal, Line printer, Pita kertas, puch card, interface jaringan, mouse, dll.
PRINSIP PERANGKAT KERAS INPUT / OUTPUT Berdasarkan sasaran komunikasi Perangakat yang terbaca oleh manusia (human readable devices) Perangkat yang terbaca oleh mesin (machine readable devices) Untuk Komunikasi
PRINSIP PERANGKAT KERAS INPUT / OUTPUT Perangkat yang Terbaca oleh Manusia Perangkat yang cocok untuk komunikasi dengan manusia, contonya: monitor, keyboard, mouse, dll. Perangkat yang Terbaca oleh Mesin Perangkat yang cocok untuk komunikasi dengan perangkat elektronik, contonya: disk dan tape, sensor, controller, dll. Untuk Komunikasi Perangkat yang cocok untuk berkomunikasi dengan perangkat jarak jauh, contonya:modem
Principles of I/O Hardware Some network Some device Other Some typical device, network, and data base rates 6 6
Device Controller Komponen yang membentuk I/O Device Komponen mekanis Komponen Elektronik Device Controller (adapter) adalah komponen elektronik, yang dapat menangani beberapa peralatan yang sejenis. Tugas Controller Konversi rangakian bit serial menjadi Block data Koreksi Error jika diperlukan Menyediakan data di memory utama
MEMORY-MAPPED I/O (a). Separate I/O and memory space (b). Memory Mapped I/O (c). Hybrid
Single–bus Architecture (a) Dual–bus memory Architecture (b)
TEKNIK PEMROGRAMAN Terdapat tiga teknik berhubungan dengan pemrograman perangkat masukan / keluaran, yaitu : Masukan/keluaran terprogram (programming I/O) atau polling system Masukan/keluaran dikendalikan interupsi (interupt driven I/O) Dengan DMA (Direct Memory Access)
DIRECT MEMORY ACCESS (DMA) Cara kerja DMA : Controller membaca block data dari drive secara serial, bit per bit, hingga block tersebut berada dalam buffer internal dari controller Dilakukan perhitungan checksum untuk verifikasi bahwa tidak terjadi kesalahan pembacaan Controller melakukan transfer data byte per byte dari buffer controller ke memory dengan menaikkan nilai address dan mengurangi nilai count dengan 1 Controller menyebabkan interupsi Pada saat Sistem Operasi mulai running, ia dapat langsung membaca data dari memory, tanpa harus mengeksekusi loop untuk membaca dari buffer controller
Cara kerja DMA
INTERRUPT Interupsi terjadi dengan koneksi antara peralatan I/O dengan Interrupt controller menngunakan interrupt line di bus, dan bukan dedicated wires
Interrupt processing hardware on a 32-bit Intel PC Interrupts Interrupt processing hardware on a 32-bit Intel PC 14 14
Programmed I/O Contoh : Mencetak string ke printer, dengan programmed I/O
Interrupt driven I/O Mencetak string ke printer dengan interrupt-driven I/O Code dieksekusi saat print system call dibuat. Interrupt service procedure
I/O Using DMA Code dieksekusi saat print system call dibuat Interrupt service procedure
PRINSIP PERANGKAT LUNAK INPUT/OUTPUT Goals of I / O Software Device independence programs can access any I/O device without specifying device in advance (floppy, hard drive, or CD-ROM) Uniform naming name of a file or device : a string or an integer not depending on which machine Error handling handle as close to the hardware as possible Synchronous vs asynchronous transfer blocked transfers vs interrupt-driven Buffering data coming off a device cannot be stored in final destination Sharable vs. dedicated devices disks are sharable tape drives would not be
Layers of the I/O Software System I/O Software Layers Layers of the I/O Software System 19 19
Logical position of device drivers All communications between drivers and device controllers goes over the bus 20 20
User-Space I/O Software Example: Count = write(fd, buffer, nbytes) Library routine write will be linked with the program and contained in the binary program present in memory at run time Other I/O functions in user space include, Format: Scanf and printf Spooling: Spooling daemon runs as a user process
Device-Independent I/O Software Uniform interfacing for device drivers Buffering Error reporting Allocating and releasing dedicate devices Providing a device-independent block size Functions of the device-independent I/O software 22 22
Device-Independent I/O Software a) Without a standard driver interface b) With a standard driver interface 23 23
Device-Independent I/O Software a) Unbuffered input b) Buffering in user space c) Buffering in the kernel followed by copying to user space d) Double buffering in the kernel 24 24
User-Space I/O Software Layers of the I/O system and the main functions of each layer 25 25