Selasa, 30 Mei 2017

Prinsip Perangkat Lunak

              Pemanfaatan perangkat lunak untuk mengelola I/O ini pada dasarnya adalah mengorganisasikan software dalam beberapa layer dimana level bawah menyembunyikan akses atau kerumitan hardware untuk level diatasnya. Level akan berfungsi sebagai antar muka atau interface ke pengguna. Adapun kriteria, karakteristik atau tujuan perangkat lunak I/O adalah :

a. Konsep dalam desain software I/O, merupakan device independence dan 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) dan Asynchronous (Interrupt Driver) transfer Kebanyakan I/O adalah asinkron. Pemroses memulai 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 ditunda secara otomatis sampai data tersedia di buffer.

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







Perangkat Berorientasi Blok

             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 : 

1) clock yang tidak teramati secara blok dan juga tidak menghasilkan / menerima aliran karakter. Clock menyebabkan interupsi pada interval-interval yang didefinisikan. 
2) Memory mapped screen dan 3) sensor.


Sedangkan berdasarkan sasaran komunikasi perangkat keras I/O dibedakan menjadi tiga yaitu : :

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. Perangkat Untuk komunikasi. Perangkat yang cocok untuk komunikasi dengan perangkat jarak jauh, seperti infrared, blutooth, wireless dll.

             Unit I/O meliputi dua komponen yaitu komponen elektronik dan komponen mekanik. Komponen elektronik berfungsi sebagai device controler atau adapter yang digunakan untuk untuk mengaktifkan perangkat eksternal dan memberitahukan kepada CPU yang perlu dilakukan oleh perangkat / driver. Suatu 

cntoh: unit tape megnetik diinstruksikan untuk kembali ke posisi awal atau bergerak ke record berikutnya dan sebagainya. Sementara itu teknik untuk mengoperasikan perangkat I/O meliputi tiga cara yaitu: 
1) Perangkat I/O terprogram atau programmed I/O. 
2) Perangkat berkendalikan interupsi atau Interrupt I/O dan 
3) DMA (Direct Memory Ad- dress). Programmed I/O merupakan teknik mengoperasikan perangkat I/O kom-puter yang dikontrol oleh program. Contohnya, perintah mesin in, out, move.

             Interrupt I/O merupakan teknik untuk mengkoordinasikan pengalihan dan mengoperasikan perangkat I/O. Konsep interupsi berguna di dalam sistem operasi dan beberapa aplikasi kontrol di mana pemrosesan rutin tertentu harus diatur dengan seksama dan secara relatif untuk peristiwa-peristiwa eksternal.

              DMA adalah suatu cara pemindahan data atau informasi dari memori ke perangkat I/O atau sebaliknya yang dilakukan secara langsung tanpa campur tangan dari prosesor. 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 beberapa informasi yaitu: 
1) perintah penulisan atau pembacaan. 
2) Alamat I/O device. 
3) awal lokasi memori yang ditulis atau dibaca dan 
4) 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 atau 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,pemroses hanya melakukan interupsi bila operasi telah selesai. Keuntungan penggunaan DMA ini ialah peningkatan kinerja prosesor atau I/O adan meminimasikan over head. Pada waktu data di tranfer dari controller ke memori, sektor berikut akan melewati dibawah head dan bits sampai ke controller. Controller tidak dapat melakukan akses ke I/O dalam waktu yang bersamaan, maka dilakukan inter-leaving (skip blok). Hal ini memberi waktu untuk tranfer data ke memori. Interleaving ini terjadi pada disk bukan pada memori.







Prinsip Perangkat Keras Input Output

          Ruang lingkup atau batasan dalam manajemen perangkat keras input/output adalah bagaimana perangkat keras input output itu dikelola dan diprogram agar dapat berjalan dengan baik. Manajemen perangkat I/O mempunyai beragam fungsi dan fungsi antara lain adalah sebagai berikut: :

 mengirimkan perintah ke perangkat I/O untuk menyediakan layanan akses.

 menangani interupsi perangkat I/O.

 menangani kesalahan pada perangkat I/O.

 menyediakan interface ke pemakai.







Virtual Memori

           Memori virtual adalah teknik manajemen memor yang dikembangkan untuk kerne multi-tuga. Teknik ini divirtualisasika dalam berbagai bentuk arsitektur kompute dari komputer penyimpanan dat (seperti memori akses aca dan cakram penyimpana), yang memungkinkan sebuah progra harus dirancang seolah-olah hanya ada satu jenis memori dan bertindak secara langsung (RAM). 

           Sebagian besar sistem operasi modern yang mendukung memori virtual menjalankan setiap prose di ruang alama khusus. Setiap program memiliki akses tunggal ke memori virtual. Namun, beberapa sistem operasi yang lebih tua (seperti OS/VS dan OS/VS2 SV) dan bahkan yang modern yang (seperti IBM ) memiliki ruang alamat tungga yang terdiri dari memori virtual untuk menjalankan semua proses.

           Memori virtual membuat pemrograman aplikasi lebih mudah untuk fragmentas persembunyian dari memori fisik. Dengan mendelegasikan ke kernel beban dalam mengelola hierarki memori. Sehingga menghilangkan keharusan program dalam mengatasi permasalahan secara eksplisit. 

           Ssetiap proses berjalan dalam ruang alamat khususnya, dengan menghindarkan kebutuhan untuk merelokas kode program atau untuk mengakses memori dengan pengalamatan relatif. Virtualisasi memor adalah generalisasi dari konsep memori virtual. 

           Melalui virtual memory sistem operasi menyimpan bagian-bagian proses yang sedang digunakan di memori utama (RAM) dan sisanya di disk (memory virtual) Virtual memory dapat diimplementasikan dengan tiga cara, yaitu: Paging Segmentasi Kombinasi paging dan segmentasi. 

           Sistem paging mengimplementasikan ruang alamat besar pada memori kecil menggunakan index register, base register, segment register, dll.
Dalam Segmentasi Alamat virtual dibagi menjadi dua bagian: Nomer Page (bit-bit awal) Offset (bit-bit akhir) Secara metematis: tabel page merupakan fungsi dgn nomer page sebagai argumen dan nomer frame sebagai hasil. 

           Dalam Kombinasi paging dan segmentasi komputer dilengkapi dengan komponen hardware kecil untuk pemetaan alamat virtual ke alamat fisik tanpa menelusuri seluruh tabel page. Komponen ini disebut memori asosiatif atau translation lookaside buffer, yang biasanya berada di dalam MMU, dan berisi beberapa entri. 







Ruang Alamat Logika Dan Ruang Alamat Fisik

            Alamat yang dibangkitkan oleh CPU disebut alamat logika (logical address) dimana alamat terlihat sebagai unit memory yang disebut alamat fisik (physical address). Tujuan utama manajemen memori adalah konsep meletakkan ruang alamat logika ke ruang alamat fisik. 

            Hasil skema waktu kompilasi dan waktu pengikatan alamat pada alamat logika dan alamat memori adalah sama. Tetapi hasil skema waktu pengikatan alamat waktu eksekusi berbeda. dalam hal ini, alamat logika disebut dengan alamat maya (virtual address).

           Himpunan dari semua alamat logika yang dibangkitkan oleh program disebut dengan ruang alamat logika (logical address space). Alamat memori yang digunakan oleh program / data berurutan / berjulat. Jika kita menggunakan alamat 1, maka kita pun menggunakan alamat 2,3, … dan untuk 1 informasi jika alamat awalnya 0 dan alamat lainnya relatif terhadap alamat awal 0 ini, maka dinamakan alamat relatif. 

           Dan alamat tersebut adalah logika dari untaian alamat yang menyimpan informasi maka dikenal alamat memori logika.
Himpunan dari semua alamat fisik yang berhubungan dengan alamat logika disebut dengan ruang alamat fisik (physical address space). Sel memori pada memori kerja adalah sumber daya berbentuk fisik, sehingga untuk mencapai sel memori ini digunakan kata pengenal. Maka disebutlah alamat fisik dan karena nomor alamat fisik ini bersifat mutlak (nomor setiap sel adalah tetap), maka disebut juga alamat mutlak.

          Memory Manajement Unit (MMU) adalah perangkat keras yang memetakan alamat virtual ke alamat fisik. Pada skema MMU, nilai register relokasi ditambahkan ke setiap alamat yang dibangkitkan oleh proses user pada waktu dikirim ke memori.
Contoh : alamat awal relatif 0, alamat awal fisik 14726, maka selisihnya = relokasinya = 14726-0 = 14726.
Tabel 3 Alamat relatif dan alamat mutlak memori 





Istilah Istilah Dalam Manajemen Memori

             Memori manajer adalah bagian dari sistem operasi yang mempunyai pengaruh dalam menentukan proses mana yang diletakkan pada antrian dan mengatur hirarki memori. Memory manager digunakan untuk mencegah satu proses dari penulisan dan pembacaan oleh proses lain yang dilokasikan di primary memory, mengatur swapping antara memori utama dan disk ketika memori utama terlalu kecil untuk memegang semua proses
             Swapping merupakan pemindahan proses dari memori utama ke disk dan kembali lagi. Sebuah proses harus berada di memori untuk dieksekusi. Proses juga dapat ditukar (swap) sementara keluar memori ke backing store dan kemudian dibawa kembali ke memori untuk melanjutkan eksekusi. 

             Backing store berupa disk besar dengan kecepatan tinggi yang cukup untuk meletakkan copy dari semua memory image untuk semua user, sistem juga harus menyediakan akses langsung ke memory image tersebut.

             Fragmentasi Eksternal terjadi pada situasi dimana terdapat cukup ruang memori total untuk memenuhi permintaan, tetapi tidak dapat langsung dialokasikan karena tidak berurutan. Fragmentasi eksternal dilakukan pada algoritma alokasi dinamis, terutama strategi first-fit dan best-fit. Fragmentasi Internal terjadi pada situasi dimana memori yang dialokasikan lebih besar dari pada memori yang diminta tetapi untuk satu partisi tertentu hanya berukuran kecil sehingga tidak digunakan.

            Paging merupakan kemungkinan solusi untuk permasalahan fragmentasi eksternal dimana ruang alamat logika tidak berurutan; mengijinkan sebuah proses dialokasikan pada memori fisik yang terakhir tersedia. Memori fisik dibagi ke dalam blok-blok ukuran tetap yang disebut frame. 

            paging diimplementasikan dalam suatu tabel page. Setiap sistem operasi mempunyai metode sendiri untuk untuk menyimpan tabel page. Tiga prinsip dasar dalam implementasi pageing yaitu: 
1)Tabel page diimplementasikan sebagai kumpulan dari “dedicated” register. 
2) Tabel page disimpan pada main memori dan menggunakan page table base registe” (PTBR) untuk menunjuk ke tabel page yang disimpan di main memori. 
3) Menggunakan perangkat keras cache yang khusus, kecil dan cepat yang disebut associative register atau translation look-aside buffers (TLBs).
Multilevel paging digunakan pada sistem yang mempunyai ruang alamat logika yang sangat besar yaitu antara 232 s/d 264. Pada sistem ini, tabel page akan menjadi sangat besar. Misalnya untuk sistem dengan ruang alamat logika 32 bit dan ukuran page 4K byte, maka tabel page berisi 1 juta entry (232 / 212). Solusinya yaitu dengan melakukan partisi tabel ke beberapa beberapa bagian yang lebih kecil.

            Segmentasi adalah skema manajemen memori yang memungkinkan user untuk melihat memori tersebut. Ruang alamat logika adalah kumpulan segmen. Setiap segmen mempunyai nama dan panjang. Spesifikasi alamat berupa nama segmen dan offset. Segment diberi nomor dan disebut dengan nomor segmen (bukan nama segmen) atau segment number. Segmen dibentuk secara otomatis oleh compiler.







Jenis - Jenis Memori

           Pada prinsipnya memori dalam sistem komputer dibedakan menjadi dua yaiyu memori kerja dan memori dukung atau backing store. Memori Kerja mempunyai tugas utaman untuk menampung pekerjaan pada saat sebelum dan sesudah pekerjaan itu dilaksanakan oleh prosesor dan menampung berbagai hal yang diperlukan prosesor, contohnya system operasi, system bahasa, catatan. Beberapa Contoh memori kerja untuk memori tetap adalah: :

 ROM (Read Only Memory), adalah memori yang hanya dapat baca saja.

 PROM (Programmable ROM), adalah memori yang dapat diprogram tetapi tidak dapat dihapus lagi

 EPROM (Electrically PROM), adalah memori yang dapat diisi melalui listrik, dan dapat dihapus.

 EEPROM (Erasable EPROM), adalah memori yang dapat diisi dan dihapus dengan listrik, maka ciri utamanya adalah isi tetap ada / tidak mudah dihapus meskipun daya listrik computer terputus.

 Registe mikroproseso. Memori yang memiliki ukurannya paling kecil tapi memiliki waktu akses paling cepat, umumnya hanya 1 siklus CPU saja.


Sementara itu Contoh memori kerja untuk memori bebas adalah :

 RAM (Random Access Memory): memori yang dapat diisi dan dapat dibaca. Ciri utamanya adalah mengenal asas pemuktahiran yaitu dapat diisi dengan informasi terbaru dan isi akan hilang jika catu daya padam.

 Cache memory. Memori berkapasitas kecil tetapi berkecepatan tinggi, yang dipasang diantara prosesor dan memori utama. Instruksi dan data yang sering diakses oleh prosesor ditempatkan dalam chace sehingga dapat lebih cepat diakses oleh prosesor. Jika data atau instruksi yang diperlukan tidak tersedia dalam chacce, prosesor akan mencari dalam memori utama. Cach memory disusun berdasarkan kedekatannya dengan prosesor (level-1, level-2, level-3, dan seterusnya). Level cache memori tersebut dibedakan berdasarkan kapasitasnya.
Memori kerja terdiri dari sel memori yang berisi 1 kata sandi, misalnya sistem 8 bit menggunakan 8 bit kata sandi, sistem 1 kbyte menggunakan 1024 byte kata sandi. Sementara itu yang termasuk dalam Memori Dukung / backing store adalah: Floppy, Harddisk, CD, tape magnetik, flash disk dll.