SISTEM OPERASI Pertemuan 22
Topik Manajemen Perangkat Masukan/Keluaran (Manajemen Device)
Fungsi Manajemen Perangkat Masukan/Keluaran Mengirim perintah ke perangkat masukan/keluaran agar menyediakan layanan. Menangani interupsi perangkat masukan/keluaran. Menangani kesalahan pada perangkat masukan /keluaran. Menyediakan interface ke pemakai
ORGANISASI SISTEM I/O PADA SISTEM KOMPUTER Peranti I/O (Device) Peranti I/O yg terkoneksi ke komputer memiliki karakteristik khas sesuai dengan fungsi dan teknologi yg digunakannya. Peranti I/O dapat berupa komponen elektris maupun mekanik . Contoh peranti I/O seperti monitor, keyboard, mouse, printer, scanner Device Controller (Adapter) Antarmuka antara peranti I/O dengan sistem internal komputer. Device controller ini merupakan sirkuit digital yg berfungsi mengotrol kerja komponen mekanik ataupun elektris lainnya dari peranti I/O Bus I/O Bus I/O terdiri atas bus data, alamat dan kontrol yg berfungsi menghubungkan device controller dengan elemen internal komputer seperti prosessor dan memori
Organisasi Fisik dari Sistem Komputer
LAPISAN PADA PERANGKAT LUNAK I/O Lapisan Intterupt Handler Lapisan perangkat lunak ini menangani terjadinya interupsi dan pengalihan eksekusi ke rutin penanganan interupsi, interrupt handler, yg bersesuaian Lapisan Device Driver Lapisan device driver mengimplementasikan secara khusus rincian operasi dari masing-masing jenis pengendali peranti I/O atau device controller. Lapisan device driver merupakan abstraksi terhadap operasi peranti I/O yg sangat beragam dan menyediakan antarmuka yg seragam u/ peranti I/O yg sejenis Lapisan Subsistem I/O (Kernel I/O) Lapisan ini menyediakan antarmuka atau fungsi I/O yg generik bagi komponen lain sistem operasi maupun aplikasi Lapisan Pustaka I/O aplikasi Lapisan ini mengimplementasikan pustaka pengaksesan I/O atau API (Application Programming Interface) bagi aplikasi untuk melakukan operasi I/O
Pengelompokkan Peranti I/O Berdasarkan Karakteristik Aspect Variation Example DATA TRANSFER MODE CHARACTER BLOCK TERMINAL DISK ACCESS METHOD SEQUENTIAL RANDOM MODEM CD ROM TRANSFER SCHEDULE SYNCHRONOUS ASYNCHRONOUS TAPE KEYBOARD SHARING DEDICATED SHARABLE DEVICE SPEED LATENCY SEEK TIME TRANSFER RATE DELAY BETWEEN OPERATIONS I/O DIRECTION READ ONLY WRITE ONLY READ WRITE GRAPHICS CONTROLLER
KARAKTERISTIK PEMBEDA ANTAR PERANTI I/O Modus transfer data Metode akses Jadwal transfer Sharing Kecepatan akses Modus Operasi I/O
Modus Transfer Data Berdasarkan kategori ini, peranti I/O dapat dibedakan sebagai peranti I/O dengan modus transfer per karakter ataupun per blok. Pada peranti I/O karakter, unit terkecil transfer data peranti I/O adalah perkarakter. Pada peranti I/O blok, unit terkecil transfer data peranti I/O adalah per blok data. Contoh peranti I/O per karakter adalah terminal keyboard, sedangkan contoh peranti I/O per blok adalah disk magnetik.
Metode Akses Berdasarkan kategori ini, peranti I/O dpt dibedakan sebagai peranti I/O dengan metode akses sekuensial dan metode akses acak. Pada peranti I/O dengan metode akses sekuensial, pengaksesan, baik baca ataupun tulis harus dilakukan secara berurutan .Saat membaca suatu data yg terletak pada akhir harus melewati seluruh bagian data dari awal sampai posisi akhir tersebut. Pada peranti I/O dengan metode akses acak, pengaksesan dapat langsung melompat ke posisi yg dikehendaki. Modem merupakan contoh peranti I/O dengan metode akses sekuensial, sedangkan CD ROM dan disk merupakan contoh peranti dengan akses acak.
Jadwal Transfer Berdasarkan kategori ini, peranti I/O dapat dibedakan atas peranti I/O sinkron dan peranti I/O asinkron. Peranti I/O sinkron berarti transfer data hanya dapat dilakukan pada interval waktu tertentu, seperti pada tape disk. Peranti I/O asinkron dapat melakukan transfer data sewaktu-waktu dan kapan saja seperti pada peranti keyboard.
Sharing berdasarkan kategori ini, peranti I/O dpt dibedakan atas peranti I/O terdedikasi(dedicated) dan peranti I/O yg dpt digunakan bersama(shared). Peranti I/O terdedikasi berarti peranti I/O tersebut hanya dapat digunakan oleh suatu proses pada suatu waktu seperti tape disk. Peranti I/O shared dpt digunakan bersama oleh sejumlah proses atau aplikasi secara bersamaan seperti peranti keyboard.
Kecepatan Akses Berdasarkan kategori ini, peranti I/O dapat dibedakan berdasarkan spektrum atau jangkauan kecepatan akses peranti I/O tersebut. Kecepatan peranti I/O tergantung pada sejumlah aspek seperti : Latency, yg meliputi waktu tunggu di antrian, waktu u/ menunggu kesiapan peranti I/O. Seek time, yaitu waktu untuk mencari lokasi data. Transfer rate, yaitu kecepatan transmisi data dari/ke memori, serta waktu tunda antara operasi yg satu dgn lainnya
Modus operasi I/O Berdasarkan kategori ini, peranti I/O dapat dibedakan sebagai : Peranti I/O read only Peranti I/O write only Peranti I/O read write Peranti I/O read only hanya dapat melakukan operasi input saja seperti CDROM. Peranti I/O write only dpt melakukan operasi output saja seperti graphic controller. Peranti I/O read write dpt melakukan operasi input dan output seperti peranti penyimpanan atau disk.
KATEGORI PERANTI I/O BERDASARKAN FUNGSIONALITAS Peranti antar muka pengguna Yaitu peranti yg menjembatani interaksi langsung antara pengguna, umumnya manusia dgn sistem komputer, yg dpt dibedakan menjadi peranti input seperti keyboard, mouse, scanner, dan peranti output seperti monitor, dan printer Peranti Transmisi Yaitu peranti yg berfungsi u/ mentransmisikan data secara internal maupun eksternal ke perangkat komputasi lainnya. Contohnya adalah NIC (network Interface card) Peranti penyimpanan data Yaitu peranti yg berfungsi u/ penyimpanan data. Contohnya adalah piringan magnetis(hardisk), flash memori, CDROM,DVDROM,floppy disk
Klasifikasi Perangkat Masukan/Keluaran Perangkat masukan/keluaran merupakan komponen yg paling banyak jenisnya dan dapat dikelompokkan dengan beragam kriteria, yaitu : Berdasarkan sifat aliran datanya Berdasarkan sasaran komunikasi
PERANGKAT MASUKAN/KELUARAN BERDASARKAN SIFAT ALIRAN DATA PERANGKAT BERORIENTASI BLOK (Block oriented devices) Menyimpan informasi dan menukarkan(menerima/mengirim) informasi sebagai blok berukuran tetap. Contoh : disk, tape, CD ROM, optical disk PERANGKAT BERORIENTASI ALIRAN KARAKTER (Character stream-oriented devices) Perangkat yg mengantarkan atau menerima aliran karakter tanpa peduli membentuk suatu struktur blok. Contoh : terminal, line printer, interface jaringan
PERANGKAT MASUKAN/KELUARAN BERDASARKAN SASARAN KOMUNIKASI Perangkat yang Terbaca oleh Manusia (human readable devices) Contoh : VDT(Video Display Termina) yg terdiri dari monitor, keyboard, mouse Perangkat yang Terbaca oleh Mesin (machine readable devices) Contoh : disk dan taoe, sensor, controller, dan aktuator Perangkat untuk Komunikasi Contoh : modem
Teknik Pemrograman Perangkat Masukan/Keluaran Masukan/Keluaran terprogram (programmed I/O) atau polling system. Masukkan/keluaran dikendalikan interupsi (interupt driven I/O). Dengan DMA (Direct Memory Access)
Programmed I/O atau Pooling Prosessor bertanggung jawab atas pemeriksaan selesainya operasi transfer data yg dilakukan oleh device controller serta bertanggung jawab atas pemindahan data dari atau ke memori utama. Prosessor memberikan instruksi transfer data ke device controller dan harus memeriksa terus menerus status device controller untuk mengetahui kesiapan transfer data ke memori utama. Jika data telah siap ditransfer maka prosessor akan memindahkan data ke memori. Pemindahan data ke memori perlu dikendalikan oleh prosesor karena device controller tidak punya kendali dan hak akses langsung terhadap jalur ke memori utama
Interrupt Driven I/O Prosesor hanya bertanggung jawab atas pemindahan data ke atau dari memori utama. Jadi prosesor memberikan instruksi transfer data ke device controller dan melanjutkan instruksi proses lainnya. Prosessor tidak perlu memeriksa ketersediaan data ke device controller, justru device controller yg akan mengeluarkan sinyal interupsi ke prosessor jika data sudah tersedia u/ disalinkan ke memori utama. Begitu menerima sinyal interupsi dari device controller, prosessor akan menunda eksekusi proses yg sedang berlangsung dan mengalihkan eksekusi ke rutin penanganan interupsi yg selanjutnya akan memindahkan data ke memori utama
DMA (Direct Memory Access) Metode transfer ini membebaskan prosessor sepenuhnya dari pengontrolan transfer data I/O. Perangkat keras DMA controller yg memiliki kendali atas bus internal dan jalur ke memori utama. Jika data sudah ditransfer ke memori utama, DMA controller akan menginterupsi prosessor sbg informasi bahwa data I/O yg diminta oleh proses sebelumnya telah tersedia di memori utama
Langkah-langkah Transfer data dari disk dengan teknik DMA Suatu proses yg sedang berjalan melakukan operasi I/O dengan memanggil salah satu fungsi device driver untuk melakukan transfer data dari disk ke buffer x di memori utama. Device driver menginstruksikan disk controller u/ transfer data sebesar C byte dari disk ke lokasi bufer X di memori utama. Disk controller akan menginisialisasi transfer DMA. Langkah ini meliputi DMA controller mengirimkan DMA request ke prosessor. Selanjutnya prosessor akan mengisi DMA controller dengan informasi transfer data, dan DMA akan mengirimkan sinyal DMA acknowledge, sebagai ijin u/ memakai bus sistem (prosessor-memory bus). Selanjutnya DMA controller akan mengatur pemindahan setiap word data dari disk controller ke lokasi buffer X di memori utama. Perhatikan, dalam aktivitas ini terjadi kompetisi pemakaian bus sistem dengan proses yg sedang menggunakan prosessor. Jika sudah selesai, DMA mengeluarkan sinyal interrupt kepada prosessor dan mengembalikan hak pemakaian bus sistem ke prosessor.
Mekanisme Transfer Data DMA
Prinsip Manajemen Perangkat Masukan/Keluaran Dua sasaran perancangan manajemen perangkat masukan/keluaran, yaitu : Efisiensi (eficiency) Efisiensi merupakan aspek penting karena operasi masukan/keluaran merupakan operasi yg menimbulkan bottleneck. Generalitas (generality) Manajemen perangkat masukan/keluaran selain berkaitan dengan simplisitas dan bebas kesalahan, juga menangani perangkat secara seragam baik dipandang dari cara proses memandang maupun cara sistem operasi mengelola perangkat dan operasi masukan/keluaran.
Topik Manajemen Disk
Komponen di dalam Harddisk
Struktur Disk Silinder Track Sector
Secara fisik, disk cakram magnetis terdiri atas cakram yg tersusun secara vertikal. Kedua sisi atas dan bawah dapat ditulisi data, kecuali permukaan cakram paling atas dan paling bawah. Setiap sisi cakram terdiri atas alur melingkar atau track. Makin ke dalam sisi cakram, alurnya makin kecil. Setiap track terbagi atas sektor-sektor.Setiap sektor terdiri atas sejumlah byte yg sama besarnya. Pada setiap sisi cakram terdapat head pembaca. Head-head pembaca ini bergerak radial secara bersamaan, sedangkan cakram-cakram berputar pada sumbu pusatnya.
Pengalamatan Disk Disk dialamati secara logika sebagai senarai atau array satu dimensi berukuran besar dengan setiap elemennya seukuran satu blok logika. Satu blok logika merupakan unit terkecil untuk transfer data, baik untuk penulisan ataupun pembacaan. Biasanya satu blok logika adalah satu atau lebih sektor fisik. Ukuran blok ditentukan pada saat dilakukan pengorganisasian atau istilahnya pemformatan disk. Misalnya jika suatu disk diformat dgn ukuran blok sebesar 4 Kb maka jika suatu berkas memiliki data berukuran 10 byte, maka ruang disk yg dialokasikan tetap minimal 1 blok, yaitu 4 Kb. Jadi disk menyimpan banyak berkas berukuran kecil, maka alokasi disk menjadi tidak efisien.
Aturan Urutan Penomoran Alamat Logika Disk Alamat paling awal, yaitu sektor 0 adalah sektor pertama dari track pertama pada silinder yg paling luar. Alamat berikutnya mengikuti urutan sektor lainnya pada track pertama tersebut. Setelah itu pindah ke track lainnya pada silinder pertama (terluar) pada sisi cakram lainnya. Setelah silinder pertama pada semua sisi cakram lainnya telah dialamati maka alamat berikutnya adalah kembali ke sisi cakram pertama pada track yg letaknya lebih dekat ke titik pusat cakram. Urutan pengalamatan yg mendahulukan silinder yg sama sebelum berpindah ke track berikutnya bertujuan mengurangi perpindahan head pembacaan pada setiap sisi cakram.
Mekanisme Penanganan Disk Request Operasi disk merupakan operasi khusus yg hanya dapat dilakukan oleh rutin sistem operasi. Aplikasi atau proses pengguna melakukan operasi disk dengan melakukan system call terhadap sistem operasi . Pemanggilan ini akan menghasilkan disk request. Berikut ini adalah mekanisme penanganan permintaan operasi disk : Ketika suatu proses membutuhkan transfer data dari atau ke disk maka proses akan memanggil system call sistem operasi. System call akan memicu sistem operasi memblok proses bersangkutan karena operasi I/O disk akan memakan waktu. Disk request akan ditangani oleh device driver yg sesuai dengan peranti I/O yg hendak diakses. Device driver disk akan memeriksa status disk. Jika disk sedang sibuk maka disk request akan diantrikan pada antrian disk bersangkutan. Jika disk sedang tidak digunakan maka disk request tersebut akan dilayani dan alamat disk dikirmkan ke disk controller. Pada operasi penulisan (write), data akan disalinkan oleh DMA controller ataupun prosessor dari memori utama ke buffer disk controller untuk selanjutnya disalinkan ke piringan disk. Sementara pada operasi pembacaan (read), data yg dibaca akan disalinkan ke buffer disk controller lebih dahulu dan selanjutnya disalinkan ke memori utama.
Waktu untuk Penanganan Disk Request Permintaan operasi disk oleh suatu proses akan menimbulkan waktu tunda bagi proses. Selama suatu disk request ditangani maka proses akan berstatus blocked sampai data yg diminta telah dipindahkan ke memori utama. Waktu yg dibutuhkan untuk memproses suatu disk request terdiri atas : Overhead time Queuing time Latency(random access time) Seek time Rotational latency Transfer time
Waktu untuk Penanganan Disk Request Overhead time, yaitu total waktu yg dihabiskan sistem operasi untuk menangani disk request, termasuk mengantrikan disk request. Queuing time, yaitu waktu yg dihabiskan di antrian disk untuk menunggu disk tersedia untuk digunakan. Latency (random access time), yaitu waktu yg dihabiskan di antrian disk untuk menempatkan head ke lokasi yg hendak diakses. Latency terdiri atas 2 komponen : Seek time, yaitu waktu yg dibutuhkan disk u/ memindahkan head ke silinder yg berisi sektor yg dituju. Rational latency, adalah waktu tambahan yg dibutuhkan untuk menunggu putaran disk sehingga head berada tepat di bawah sektor yg hendak diakses. Transfer time, yaitu waktu untuk mentransfer data dari atau ke lokasi disk.
Algoritma Penjadwalan Disk FCFS (First come first serve) SSTF (Shotest seek time first) Elevator/SCAN One way elevator/C-SCAN C-LOOK
Secara fisik, ruang di disk ibaratnya adalah ruang tanpa sekat Secara fisik, ruang di disk ibaratnya adalah ruang tanpa sekat. Untuk memudahkan penyimpanan dan pembacaan data maka ruang penyimpanan ini butuh diorganisasi dalam unit-unit. Berikut adalah hierarki pengorganisasian ruang disk. Pemformatan fisik (low level formatting) Pemartisian Pemformatan secara logika Alokasi blok booting Manajemen blok atau sector yg rusak(bad sector)
Hierarki Pengorganisasian Ruang Disk Pemformatan fisik, yaitu membagi disk ke dalam setor-sektor sehingga disk controller dapat membaca dan menulisinya dengan cara menandai awal setiap sektor dengan header dan akhir setiap sektor dengan trailer. Operasi ini umunya dilakukan dari pabrik pembuat disk atau dapat dilakukan dengan program utilitas BIOS. Pemartisian, yaitu membagi disk menjadi satu atau lebih partisi dimana masing-masing partisi dapat dipandang secara logika sebagai disk yg terpisah. Pemformatan secara logika, yaitu membangun struktur pengelolaan berkas. Hal ini butuh dilakukan sebelum sembarang data atau berkas dapat disimpan ke suatu partisi disk atau disk logika. Contoh : pembuatan struktur tabel isi alokasi berkas yg disebut FAT (File Allocation Table) Alokasi blok booting, yaitu membangun struktur untuk melakukan operasi booting. Yaitu membangun struktur untuk melakukan operasi booting. Jika berkas-berkas sistem operasi disimpan dan dibaca dari disk, maka haruslah dibuat pada bagian awal disk suatu blok yg berisi bootstrap, yaitu program kecil untuk menginisialisasi booting sistem operasi. Bootstrap loader, yaitu program untuk mengaktifkan bootstrap itu sendiri biasanya disimpan di ROM bios pada motherboard. Manajemen blok atau sector yg rusak, yaitu mengelola, mencatat atau mengalihkan bad block, yaitu satu atau lebih sektor yg rusak pada disk.