Kamis, 18 Juni 2020

Main Memory


Pengertian Main Memory
        Memori utama merupakan media penyimpanan dalam bentuk array yang disusun word atau byte, kapasitas daya simpannya bisa jutaan susunan. Setiap word atau byte mempunyai alamat tersendiri. Data yang disimpan pada memori utama ini bersifat volatile, artinya data yang disimpan bersifat sementara dan dipertahankan oleh sumber-sumber listrik, apabila sumber listrik dimatikan maka datanya akan hilang.Memori utama digunakan sebagai media penyimpanan data yang berkaitan dengan CPU atau perangkat I/O.

PERANAN MEMORY UTAMA
       Address bus pertama kali mengontak computer yang disebut memori. Yang dimaksud dengan memori disini adalah suatu kelompok chip yang mampu untuk menyimpan instruksi atau data. CPU sendiri dapat melakukan salah satu dari proses berikut terhadap memori tersebut, yaitu membacanya (read) atau menuliskan/menyimpannya (write) ke memori tersebut. Memori ini diistilahkan juga sebagai Memori Utama. Tipe chip yang cukup banyak dikenal pada memori utama ini DRAM ( Dinamic Random Access Memory ). Kapasitas atau daya tampung dari satu chip ini bermacam-macam, tergantung kapan dan pada computer apa DRAM tersebut digunakan.

     Memori dapat dibayangkan sebagai suatu ruang kerja bagi komputer dan memori juga menentukan terhadap ukuran dan jumlah program yang bias juga jumlah data yang bias diproses. Memori terkadang disebut sebagai primary storage, primary memory, main storage, main memory, internal memory.

       Sebagian besar komputer memiliki hirarki memori yang terdiri atas tiga level, yaitu: Register di CPU, berada di level teratas. Informasi yang berada di register dapat diakses dalam satu clock cycle CPU. Primary Memory (executable memory), berada di level tengah. Contohnya, RAM. Primary Memory diukur dengan satu byte dalam satu waktu, secara relatif dapat diakses dengan cepat, dan bersifat volatile (informasi bisa hilang ketika komputer dimatikan). CPU mengakses memori ini dengan instruksi single load dan store dalam beberapa clock cycle. Secondary Memory, berada di level bawah. Contohnya, disk atau tape. Secondary Memory diukur sebagai kumpulan dari bytes (block of bytes), waktu aksesnya lambat, dan bersifat non-volatile (informasi tetap tersimpan ketika komputer dimatikan). Memori ini diterapkan di storage device, jadi akses meliputi aksi oleh driver dan physical device.

CARA KERJA MEMORI
       Pada saat kita menyalakan komputer, Processor adalah device yang pertama kali bekerja. Processor ini berfungsi sebagai pengolah data dan meminta data dari storage, yaitu Hard Disk (HDD). Artinya data tersebut dikirim dari Hard Disk setelah ada permintaan dari Processor. Processor sendiri adalah komponen digital murni, dan akan memproses data dengan sangat cepat (Bandwidth tertinggi P4 saat ini 6,4 GB/s dengan FSB 800MHz). Sedangkan Hard Disk sebagian besar teknologinya merupakan mekanis yang tentu cukup lambat dibandingkan digital (Bandwidth atau Transfer Rate HDD Serial ATA berkisar 150 MB/s). Secara teoritis kecepatan data Processor berkisar 46x lebih cepat dibanding HDD. Artinya, apabila Processor menunggu pasokan data dari HDD akan terjadi “Bottle-Neck” yang sangat parah. Untuk mengatasinya, diperlukan device Memory Utama (Primary Memory) atau disebut RAM. RAM berfungsi untuk membantu Processor dalam penyediaan data “super cepat” yang dibutuhkan. RAM berfungsi layaknya seperti HDD Digital, karena seluruh komponen RAM sudah menggunakan teknologi digital. Dengan RAM, maka Processor tidak perlu menunggu kiriman data dari HDD. Saat ini RAM DDR2 mempunyai bandwidth 3,2 GB/s (PC400), agar tidak menganggu pasokan maka saat ini Motherboard menggunakan teknologi Dual Channel yang dapat melipatgandakan bandwidth menjadi 2x dengan memperbesar arsitektur menjadi 128-bit. Itu artinya, 2 keping DDR2 dalam mode Dual Channel dapat memasok data dalam jumlah yang pas ke Processor (3,2 GB/s x Dual Channel = 6,4 GB/s).

TIPE-TIPE MEMORI PADA KOMPUTER 
       Ada beberapa macam tipe dari memori komputer, yaitu : Random Access Memory( RAM),Read Only Memory ( ROM ).

1. RAM (RANDOM ACCESS MEMORY

RAM


RAM adalah sebuah perangkat yang berfungsi untuk menyimpan data.RAM bersifat sementara atau data yang tersimpan dapat dihapus.lain halnya dengan ROM.ROM mempunyai fungsi yang sama dengan RAM tetapi ROM bersifat permanent atau data yang tersimpan tidak dapat dihapus. Fungsi RAM adalah sebagai pengingat, dan juga sebagai berikut : Menyimpan data yang berasal dari piranti masuk sampai data dikirim ke ALU untuk diproses. Menyimpan data hasil pemrosesan ALU sebelum dikirim ke piranti keluaran. Menampung program atau intruksi yang berasal dari piranti masuk atau dari piranti pengingat sekunder. Secara konseptual RAM terbagi menjadi 4 (empat) partisi :
  1. Input strorage, digunakan untuk menampung input yang dimasukan lewat alat input.
  2. Program storage, digunakan untuk menyimpan semua instruksi yang akan diproses.
  3. Working storage, digunakan untuk menyimpan data yang akan diproses dan hasilnya.
  4. Output storage, digunakan untuk menampung hasil akhir dari pemrosesan data yang akan ditampilkan ke alat output. RAM terdiri dari sekumpulan chip. Chip-chip ini mampu untuk menampung: Data untuk diproses. Instruksi atau program, untuk memproses data. Data yang telah diproses dan menunggu untuk dikirim ke output device, secondary storage atau juga communication device. Instruksi sistem operasi yang mengontrol fungsi-fungsi dasar dari sistem Komputer. Semua data dan program yang dimasukkan lewat alat input akan disimpan terlebih dahulu di main memory, khususnya di RAM yang merupakan memori yang dapat di akses, artinya dapat diisi dan diambil isinya oleh programmer.
JENIS-JENIS RAM (Random Access Memory)

1. SRAM (Static Random Access Memory)
    RAM yang digunakan sebagai memori tambahan yang tersembunyi.
SRAM

2. EDORAM ( Extended Data Out Dynamic Random Accses Memory )
     Yaitu, RAM yang kepingannya terdiri dari 72 pin dan umumnya pada PC yang menggunakan prosesor intel Pentium 1 dan AMD ke- 5 dan ke- 6.RAM jenis ini harus dipasang pada socketnya dalam jumlah genap ( minimal terdiri dari 2 keping ).Dan memiliki Bus Speed sebesar 66 Mhz atau PC 66.

EDORAM

3. SDRAM ( Synchronous Random Acces Memory)
       RAM yang kemampuan kecepatannya lebih cepat daripada EDORAM dan kepingannya terdiri dari 168 pin.PC denganprosesor intel Pentium 1, Pentium II, Pentium III, AMD ke- 5, AMD ke- 6, AMD ke- 7.Dengan memiliki Bus Speed sebesar 66 Mhz ( PC 66 Mhz ) dan PC 100 Mhz.
SDRAM

4. DDRAM ( Double Data Rate Random Acces Memory)
       RAM yang hampir sama dengan SDRAM, namun memiliki kemampuan kerja yang lebih tinggi.Dengan Bus Speed sebesar 133 Mhz atau PC 133 Mhz.Umumnya digunakan pada PC dengan prosesorintel Pentium III, Pentium IV, AMD Duron, AMD Athlon.


ddrram
5. RDRAM ( Rambus Dynamic Random Acces Memory )

       RAM yang menggunakan RIMM ( Rambus In Line Memory Module ) sebagai socketnya dengan ukuran yang lebih kecil dari DIMM ( Socket yang digunakan untuk SDRAM dan DDRAM ).Dengan Bus Speed sebesar 800 Mhz.Umumnya digunakan pada PC dengan prosesor intel Pentium 1.

RDRAM
6. VGRAM ( Video Graphic Random Acces Memory )
      RAM yang digunakan secara khusus pada video adapter atau video card.Yang berfungsi untuk mendukung video adapter dalam menghasilkan tampilan proses yang sedang atau yang telah berlangsung pada computer.Besarnya kapasitas VGRAM akan menentukan kualitas gambar atau tampilan yang dihasilakan oleh video adapter tersebut.


VGARAM

ROM (READ ONLY MEMORY)
      ROM kependekan dari Read Only Memory, yaitu perangkat keras pada komputer berupa chip memori semikonduktor yang isinya hanya dapat dibaca. ROM tidak dapat digolongkan sebagai RAM, walaupun keduanya memiliki kesamaan yaitu dapat diakses secara acak (random) Fungsi ROM : Seperti telah diungkapkan sebelumnya bahwa umumnya ROM digunakan untuk menyimpan firmware. Pada perangkat komputer, sering ditemukan untuk menyimpan BIOS. Pada saat sebuah komputer dinyalakan, BIOS tersebut dapat langsung dieksekusi dengan cepat, tanpa harus menunggu untuk menyalakan perangkat media penyimpan lebih dahulu seperti yang umum terjadi pada alat penyimpan lain selain ROM. Umumnya, pada media simpan lain, jika dieksekusi untuk dibaca isi atau datanya, media simpan tersebut harus dinyalakan lebih dahulu sebelum dibaca, yang tentu saja membutuhkan waktu agak lama. Hal seperti ini tidak terjadi pada ROM. Pada komputer (PC) modern, BIOS disimpan dalam chip ROM yang dapat ditulisi ulang secara elektrik yang dikenal dengan nama Flash ROM. Itulah sebabnya istilah flash BIOS lebih populer daripada ROM BIOS.


rom
JENIS-JENIS ROM (Read Only Memory)

1. PROM (Programmable Read Only Memory)
adalah ROM yang dapat deprogram sekali oleh programmer, selanjutnya tidak dapat diubah kembali.
Programmable rom

2. EPROM (Erasble Programmable Read Only Memory)
adalah ROM yang dapat dihapus dengan sinar ultra violet (dijemur dengan sinar matahari) dan dapat di program kembali berulangkali.

EPROM


3. EEPROM (Electrically Erasable Programable Read Only Memory)
adalah ROM yang dapat dihapus secara elektronik dan dapat deprogram kembali.

EEPROM

Virtual Memory

Virtual Memory
        Selama bertahun-tahun, pelaksanaan manajemen memori pada intinya adalah dengan menempatkan semua bagian proses yang akan dijalankan ke dalam memori sebelum proses dapat mulai dieksekusi. Dengan demikian semua bagian proses tersebut harus memiliki alokasi sendiri di dalam memori fisik.Pada kenyataannya tidak semua bagian dari program tersebut akan diproses, misalnya:
  • Ada pernyataan-pernyataan atau pilihan yang hanya akan dieksekusi jika kondisi tertentu dipenuhi
  • Terdapat fungsi-fungsi yang jarang digunakan
  • Pengalokasian memori yang lebih besar dari yang sebenarnya dibutuhkan.
Pada memori berkapasitas besar, hal-hal ini tidak akan menjadi masalah. Namun pada memori dengan kapasitas yang sangat terbatas, hal ini akan menurunkan optimalisasi utilitas dari ruang memori fisik (memori utama).

       Memori virtual adalah suatu teknik yang memisahkan antara memori logis dan memori fisiknya. Memori logis merupakan kumpulan keseluruhan halaman dari suatu program. Tanpa memori virtual, memori logis akan langsung dibawa ke memori fisik (memori utama). Disinilah memori virtual melakukan pemisahan dengan menaruh memori logis ke secondary storage (disk sekunder) dan hanya membawa halaman yang diperlukan ke memori utama (memori fisik). Teknik ini menempatkan keseluruhan program di disk sekunder dan membawa halaman-halaman yang diperlukan ke memori fisik sehingga memori utama hanya akan menyimpan sebagian alamat proses yang sering digunakan dan sebagian lainnya akan disimpan dalam disk sekunder dan dapat diambil sesuai dengan kebutuhan. Jadi jika proses yang sedang berjalan membutuhkan instruksi atau data yang terdapat pada suatu halaman tertentu maka halaman tersebut akan dicari di memori utama. Jika halaman yang diinginkan tidak ada maka akan dicari ke disk sekunder.

      Pada gambar diatas ditunjukkan ruang sebuah memori virtual yang dibagi menjadi bagian-bagian yang sama dan diidentifikasikan dengan nomor virtual pages. Memori fisik dibagi menjadi page frames yang berukuran sama dan diidentifikasikan dengan nomor page frames. Bingkai (frame) menyimpan data dari halaman. Atau memori virtual memetakan nomor virtual pages ke nomor page framesMapping (pemetaan) menyebabkan halaman virtual hanya dapat mempunyai satu lokasi alamat fisik.

     Dalam sistem paging, jika sebuah ruang diperlukan untuk proses dan halaman yang bersangkutan tidak sedang digunakan, maka halaman dari proses akan mengalami paged out (disimpan ke dalam disk) atau swap out, memori akan kosong untuk halaman aktif yang lain. Halaman yang dipindah dari disk ke memori ketika diperlukan dinamakan paged in (dikembalikan ke memori) atau swap in. Ketika sebuah item dapat mengalami paging, maka item tersebut termasuk dalam item yang menempati ruang virtual, yang diakses dengan alamat virtual dan ruangan yang ada dialokasikan untuk informasi pemetaan. Sistem operasi mengalokasikan alamat dari item tersebut hanya ketika item tersebut mengalami paging in.

Keuntungan yang diperoleh dari penyimpanan hanya sebagian program saja pada memori fisik adalah:
  • Berkurangnya proses M/K yang dibutuhkan (lalu lintas M/K menjadi rendah)
  • Ruang menjadi lebih leluasa karena berkurangnya memori fisik yang digunakan
  • Meningkatnya respon karena menurunnya beban M/K dan memori
  • Bertambahnya jumlah pengguna yang dapat dilayani. Ruang memori yang masih tersedia luas memungkinkan komputer untuk menerima lebih banyak permintaan dari pengguna.
 Teknik memori virtual akan memudahkan pekerjaan seorang programmer ketika besar data dan programnya melampaui kapasitas memori utama. Sebuah multiprogramming dapat mengimplementasikan teknik memori virtual sehingga sistem multiprogramming menjadi lebih efisien. Contohnya: 10 program dengan ukuran 2 MB dapat berjalan di memori berkapasitas 4 MB. Tiap program dialokasikan 256 Kbyte dan bagian – bagian proses (swap in) masuk ke dalam memori fisik begitu diperlukan dan akan keluar (swap out) jika sedang tidak diperlukan.Prinsip dari memori virtual adalah bahwa “Kecepatan maksimum ekseskusi proses di memori virtual dapat sama, tetapi tidak akan pernah melampaui kecepatan eksekusi proses yang sama di sistem yang tidak menggunakan memori virtual”.

Memori virtual dapat diimplementasikan dengan dua cara:
  1. Demand Paging yaitu dengan menerapkan konsep pemberian halaman pada proses
  2. Demand segmentation, lebih kompleks diterapkan ukuran segmen yang bervariasi.
1. Virtual Memory Di Windows
     Pada komputer kita, jumlah memory yang tersedia adalah jumlah antara memory fisik/RAM dengan virtual memory. Virtual memory adalah sebuah porsi pada hard disk yang di-set menyerupai RAM oleh system. Virtual memory merupakan ruang penyimpanan sementara yang digunakan untuk menjalankan program yang membutuhkan memory yang lebih besar dari memory fisik.

      Virtual memory berupa file yang bernama pagefile.sys yang di-set hidden oleh Windows. File ini disebut paging file, yang digunakan untuk menampung program dan data yang tidak cukup di memory fisik. Virtual memory lebih lambat daripada memory fisik, dan penggunaan yang terlalu banyak dapat menurunkan kinerja sistem. Sehubungan dengan itu, windows memindahkan proses yang tidak terlalu sering ke virtual memory, dan membiarkan proses yang sering digunakan di memory fisik. Jadi ini sangat efisien.

    Ukuran dari virtual memory dapat kita rubah, Windows merekomendasikan ukuran minimal dari vitual memory adalah 1.5 kali dari memory fisik kita. Jika anda memiliki beberapa harddisk, misal hardisk pertama adalah C: dan harddisk kedua adalah D: dan anda jarang menggunakan drive D:, anda dapat memindahkan virtual memory ke drive D:. Memindahkan virtual memory ke harddisk yang jarang digunakan akan sedikit meningkatkan performa. Alasannya adalah, pada harddisk pertama biasanya head dari harddisk sangat sibuk untuk membuka program, dokumen, menyimpan file dan masih banyak lagi. Tetapi ingat, cara ini tidak akan berguna bila drivenya terletak pada harddisk yang sama atau dengan kata lain sebuah partisi.

Cara Kerja Virtual Memory :
          Virtual Memory digunakan dengan membuat suatu file khusus yang disebut swapfile atau paging file. Virtual memory digunakan pada saat operating system kehabisan memory, dimana o.s. akan memindahkan data yang paling terakhir diakses ke dalam swapfile di hardisk. Hal ini mengosongkan/ membebaskan beberapa ruang kosong pada memory untuk aplikasi yang akan digunakan selanjutnya. Operating system akan melakukan hal ini secara terus menerus ketika data baru diisi pada ram. Kemudian, pada saat data yang tersimpan di swapfile diperlukan, data tersebut ditukar (swap) dengan data yang paling terakhir dipakai di dalam memory (ram). Hal ini mengakibatkan swapfile bersifat seperti ram, walaupun program tidak dapat secara langsung dijalankan dari swapfile. Satu hal yang perlu dicatat bahwa karena operating system tidak dapat secara langsung menjalankan program dari swapfile, beberapa program mungkin tidak akan berjalan walau dengan swapfile yang besar jika kita hanya memiliki ram yang kecil.

2. Virtual Memory Di Linux

A. Managemen Memori di Linux
  • Managemen Memori Fisik
       Memori managemen merupakan salah satu bagian terpenting dalam sistem operasi. Karena adanya keterbatasan memori, diperlukan suatu strategi dalam menangani masalah ini. Jalan keluarnya adalah dengan menggunakan memori virtual. Dengan memori virtual, memori tampak lebih besar daripada ukuran yang sebenarnya.

Dengan memori virtual kita dapat:

1. Ruang alamat yang besar
    Sistem operasi membuat memori terlihat lebih besar daripada ukuran memori sebenarnya. Memori virtual bisa beberapa kali lebih besar daripada memori fisiknya.

 2. Pembagian memori fisik yang adil
      Managemen memori membuat pembagian yang adil dalam pengalokasian memori antara proses-proses.

3. Perlindungan
      Memori managemen menjamin setiap proses dalam sistem terlindung dari proses-proses lainnya. Dengan demikian, program yang crash tidak akan mempengaruhi proses lain dalam sistem tersebut.

4. Penggunaan memori virtual bersama
     Memori virtual mengizinkan dua buah proses berbagi memori diantara keduanya, contohnya dalam shared library. Kode library dapat berada di satu tempat, dan tidak dikopi pada dua program yang berbeda.

B. Memori Virtual
        Memori fisik dan memori virtual dibagi menjadi bagian-bagian yang disebut page. Page ini memiliki ukuran yang sama besar. Tiap page ini punya nomor yang unik, yaitu Page Frame Number (PFN). Untuk setiap instruksi dalam program, CPU melakukan mapping dari alamat virtual ke memori fisik yang sebenarnya. Penerjemahan alamat di antara virtual dan memori fisik dilakukan oleh CPU menggunakan tabel page untuk proses x dan proses y. Ini menunjukkan virtial PFN 0 dari proses x dimap ke memori fisik PFN 1. Setiap anggota tabel page mengandung informasi berikut ini:
  1. Virtual PFN
  2. PFN fisik
  3. informasi akses page dari page tersebut
Untuk menerjemahkan alamat virtual ke alamat fisik, pertama-tama CPU harus menangani alamat virtual PFN dan offsetnya di virtual page. CPU mencari tabel page proses dan mancari anggota yang sesuai degan virtual PFN. Ini memberikan PFN fisik yang dicari. CPU kemudian mengambil PFN fisik dan mengalikannya dengan besar page untuk mendapat alamat basis page tersebut di dalam memori fisik. Terakhir, CPU menambahkan offset ke instruksi atau data yang dibutuhkan. Dengan cara ini, memori virtual dapat dimap ke page fisik dengan urutan yang teracak.

C. Demand Paging
           Cara untuk menghemat memori fisik adalah dengan hanya meload page virtual yang sedang digunakan oleh program yang sedang dieksekusi. Tehnik dimana hanya meload page virtual ke memori hanya ketika program dijalankan disebut demand paging. Ketika proses mencoba mengakses alamat virtual yang tidak ada di dalam memori, CPU tidak dapat menemukan anggota tabel page. Contohnya, dalam gambar, tidak ada anggota tabel page untuk proses x untuk virtual PFN 2 dan jika proses x ingin membaca alamat dari virtual PFN 2, CPU tidak dapat menterjemahkan alamat ke alamat fisik. Saat ini CPU bergantung pada sistem operasi untuk menangani masalah ini. CPU menginformasikan kepada sistem operasi bahwa page fault telah terjadi, dan sistem operasi membuat proses menunggu selama sistem operasi menagani masalah ini. CPU harus membawa page yang benar ke memori dari image di disk. Akses disk membutuhkan waktu yang sangat lama dan proses harus menunggu sampai page selesai diambil. Jika ada proses lain yang dapat dijalankan, maka sistem operai akan memilihnya untuk kemudian dijalankan. Page yang diambil kemudian dituliskan di dalam page fisik yang masih kosong dan anggota dari virtual PFN ditambahkan dalam tabel page proses. Proses kemudian dimulai lagi pada tempat dimana page fault terjadi. Saat ini terjadi pengaksesan memori virtual, CPU membuat penerjemahan dan kemudian proses dijalankan kembali.Demand paging terjadi saat sistem sedang sibuk atau saat image pertama kali diload ke memori. Mekanisme ini berarti sebuah proses dapat mengeksekusi image dimana hanya sebagian dari image tersebut terdapat dalam memori fisik.

D. Swaping
      Jika memori fisik tiba-tiba habis dan proses ingin memindahkan sebuah page ke memori, sistem operasi harus memutuskan apa yang harus dilakukan. Sistem operasi harus adil dalam mambagi page fisik dalam sistem diantara proses yang ada, bisa juga sistem operasi menghapus satu atau lebih page dari memori untuk membuat ruang untuk page baru yang dibawa ke memori. Cara page virtual dipilih dari memori fisik berpengaruh pada efisiensi sistem. Linux menggunakan tehnik page aging agar adil dalam memilih page yang akan dihapus dari sistem. Ini berarti setiap page memiliki usia sesuai dengan berapa sering page itu diakses. Semakin sering sebuah page diakses, semakin muda page tersebut. Page yang tua adalah kandidat untuk diswap. Pengaksesan Memori Virtual Bersama Memori virtual mempermudah proses untuk berbagi memori saat semua akses ke memori menggunakan tabel page. Proses yang akan berbagi memori virtual yang sama, page fisik yang sama direference oleh banyak proses. Tabel page untuk setiap proses mengandung anggota page table yang mempunyai PFN fisik yang sama.

E. Efisiensi
Desain dari CPU dan sistem operasi berusaha meningkatkan kinerja dari sistem.Disamping membuat prosessor, memory semakin cepat, jalan terbaiknya adalah menggunakan Cache.Berikut ini adalah beberapa cache dalam managemen memori di linux.:

1. PageCache
       Digunakan untuk meningkatkan akses ke image dan data dalam disk. Saat dibaca dari disk, page dicache di page cache. Jika page ini tidak dibutuhkan lagi pada suatu saat, tetapi dibutuhkan lagi pada saat yang lain, page ini dapat segera diambil dari page cache.

2. BufferCache
      Page mungkin mengandung buffer data yang sedang digunakan oleh kernel, device driver dan lain-lain. Buffer cache tampak seperti daftar buffer. Contohnya, device driver membutuhkan buffer 256 bytes, adalah lebih cepat untuk mengambil buffer dari buffer cache daripada mengalokasikan page fisik lalu kemudian memecahnya menjadi 256 bytes buffer-buffer.

3.SwapCache
     Hanya page yang telah ditulis ditempatkan dalam swap file. Selama page ini tidak mengalami perubahan setelah ditulis ke dalam swap file, maka saat berikutnya page di swap out tidak perlu menuliskan kembali jika page telah ada di swap file. Di sistem yang sering mengalami swap, ini dapat menghemat akses disk yang tidak perlu. Salah satu implementasi yang umum dari hardware cache adalah di CPU, cache dari anggota tabel page. Dalam hal ini, CPU tidak secara langsung membaca tabel page, tetap mencache terjemahan page yang dibutuhkan.


F. Load dan Eksekusi Program

1.Penempatan program dalam memori
      Linux membuat tabel-tabel fungsi untuk loading program, memberikan kesempatan kepada setiap fungsi untuk meload file yang diberikan saat sistem call exec dijalankan. Pertama-tama file binari dari page ditempatkan pada memori virtual. Hanya pada saat program mencoba mengakses page yang telah diberikan terjadi page fault, maka page akan diload ke memori fisik.

2. Linking statis dan linking dinamis
a. Linking statis:

      librari-librari yang digunakan oleh program ditaruh secara langsung dalam file binari yang dapat dieksekusi. Kerugian dari linking statis adalah setiap program harus mengandung kopi library sistem yang umum.

b. Linking dinamis:
hanya sekali meload librari sistem menuju memori. Linking dinamis lebih efisien dalam hal memori fisik dan ruang disk.

Mass-Storage Structure

Overview Tentang Struktur Mass Storage
        Terdapat berbagai macam mass storage, diantaranya magnetic disk, optical disk, solid state disk, dll. Disk bersifat removable, dan oleh karenanya membutuhkan interface yang disebut I/O BUS untuk dapat di-attach ke dalam sistem. Beberapa jenis I/O BUS diantaranya adalah: EIDE, SATA, ATA, USB, SCSI, SAS.

Disk Structure
Terdapat beberapa komponen yang menyusun sebuah harddisk, diantaranya:
  • Spindle: yakni sumbu piringan, letaknya berdiri di tengah piringan. Spindle berfungsi memutar platter disk.
  • Platter: piringan disk. Bisa berupa satu layer ataupun dua layer atas dan bawah.
  • Track: lintasan tempat menyimpan sector
  • Sector: wilayah di dalam track tempat menyimpan data
  • Silinder: kumpulan dari beberapa track yang memiliki posisi sama diantara platter yang berbeda
struktur harddisk
Selain itu, terdapat beberapa istilah penting di dalam struktur harddisk tersebut, yakni:
  • Satu harddisk terdiri atas beberapa platter
  • Satu platter terdiri atas banyak track
  • Satu track terdiri atas banyak sector
  • Satu harddisk terdiri atas banyak silinder
Beberapa penjelasan untuk Hardisk tipe Magnetic Disk :
  • Rata-rata motor Magnetic Disk pada Hardisk berputar,sebanyak 60-200 kali setiap detiknya.
  • Positioning Time (random Access Time) adalah waktu yang digunakan untuk menggerakan Actuator Arm untuk silinder yang dinginkannya dan waktu yang diperlukan untuk membawa sektor yang akan diputar di bawah Read-Write Heads.
  • Kerusakan dari Disk Head dapat melakukan kontak terhadap permukaan Disk Head
  • Disk dapat dilepas.
  • Drive dapat terpasang menggunakan I/O bus.


Disk Scheduling
      Sistem operasi bertanggung jawab dalam menggunakan hardware dengan efisien. Artinya, harddisk harus memiliki akses yang cepat dan bandwidth yang cukup. Salah satu cara untuk meningkatkan efisiensi adalah dengan meminimalisir seek time. Beberapa sumber yang merequest disk diantaranya: OS, system processes, dan user processes.

Terdapat beberapa algoritma untuk melaksanakan tugas scheduling dari semua request yang ditujukan ke disk, diantaranya:
  • FCFS (First Come First Served)
  • SSTF (Shortest Seek Time First)
  • Scan
  • C-Scan (Circular Scan)
  • Look
  • C-Look
Disk Management
Beberapa istilah dalam disk management diantaranya:
  • Low level formatting: membagi disk menjadi sector-sektor yang yang dapat dibaca dan ditulis
  • Partition: satu buah harddisk dikelompokkan menjadi beberapa silinder yang masing-masing dianggap sebagai logical disk.
  • Logical formatting: membuat sebuah file system

Swap-Space Management

       Sebagian disk space digunakan sebagai virtual memory sebagai extension dari main memory. Virtual memory ini digunakan sebagai swap space.

RAID Structure

      RAID singkatan dari redundant array of inexpensive disk. Terdapat istilah disk striping dan disk mirroring. Disk striping adalah menggunakan beberapa harddisk sebagai satu buah unit penyimpanan data. Disk mirroring adalah melakukan duplikasi data dari satu buah disk ke disk lainnya.

Terdapat 6 level RAID:
  • RAID 0: hanya melakukan striping, namun tidak melakukan mirroring
  • RAID 1: melakukan mirroring disk
  • RAID 2: menggunakan memory-style error-correcting code
  • RAID 3: menggunakan parity bit
  • RAID 4: menggunakan block-interleaved parity
  • RAID 5: menggunakan parity yang terdistribusi
  • RAID 6: menggunakan dua buah parity
RAID dapat dikombinasikan antara RAID satu dengan lainnya.

Stable-Storage Implementation

Stable-storage berarti data tidak akan pernah loss. Untuk mengimplementasikannya, dapat dengan dua cara:
  • Replikasi informasi dari sebuah disk ke disk lainnya
  • Melakukan update informasi dengan teknik tertentu yang terkontrol sehingga dapat diakukan recovery data.

Input Output Sistem

Pengertian Menejeman I/O
      Sering disebut device manager. Menyediakan “device driver” yang umum sehingga operasi I/O dapat seragam (membuka, membaca, menulis, menutup). Contoh: pengguna menggunakan operasi yang sama untuk membaca file pada hard-disk, CD-ROM dan floppy disk.

Komponen Sistem Operasi untuk sistem I/O : 
  • Buffer : menampung sementara data dari/ke perangkat I/O. 
  • Spooling : melakukan penjadwalan pemakaian I/O sistem supaya lebih efisien (antrian dsb.)
  • Menyediakan “driver” untuk dapat melakukan operasi “rinci” untuk perangkat keras I/O tertentu.
Manajemen perangkat masukan/keluaran merupakan aspek perancangan sistem operasi terluas dan kompleks karena sangat beragamnya perangkat dan  aplikasinya.Dalam sistem komputer manajemen i/o sangat diperlukan karena i/o adalah sarana user untuk bisa berkomunikasi dengan komputer. Contoh perangkat i/o seperti keyboard, mice, audio controllers, video controllers, disk drives, networking ports, dll. Manajemen i/o pun diperlukan agar user dapat langsung menggunakan perangkat i/o tanpa harus menginialisasi terlebih dahulu. Oleh karena itu, dalam setiap system operasi selalu terdapat i/o manager.i/o manager memungkinkan perangkat i/o untuk bisa berkomunikasi dengan subsistem user-mode. i/o manager menerjemahkan perintah read dan write menjadi read dan write IRP (i/o request packets) yang dilanjutkan oleh driver perangkat. Atau bahasa mudahnya i/o manager menyediakan “device driver” yang umum sehingga operasi i/o dapat seragam (membuka, membaca, menulis, menutup). Contoh: pengguna menggunakan operasi yang sama untuk membaca file pada hard-disk, CD-ROM dan floppy disk.


MANAJEMEN I/O PADA WINDOWS
        Dalam windows sistem i/o menyediakan model driver berlapis yang dinamakan stack. Biasanya IRP akan berpindah dari satu driver ke driver lain dalam satu stack yang sama ke fasilitas komunikasi. Misalkan mouse ketika digunakan harus berkomunikasi dengan USB hub, kemudian USB hub harus berkomunikasi dengan USB Host Controller, selanjutnya USB Host Controller harus berkomunikasi melalui PCI bus ke seluruh hardware computer. Maka stack akan berisi mouse driver, USB hub, USB Host Controller, dan PCI bus. Pada windows semua kelas perangkat berbagi driver umum yang disebut “port driver”. Port driver mengimplementasikan operasi standard untuk suatu kelas dan “calls device-spesific routine” yang kemudian mengimplementasikan fungsi “device-spesific”. I/o manager pada windows mempunyai 2 sub component yaitu: Plug and Play manager and power manager. PnP manager adalah teknologi PnP milik Microsoft yang berfungsi untuk mengenali dan mengadaptasi perubahan pada konfigurasi hardware. Agar Pnp bekerja maka perangkat dan drivernya harus memenuhi standar PnP. Pnp manager secara otomatis mengenali perangkat yang dipasang dan mendeteksi perubahan pada perangkat seiring sistem beroperasi. Pnp manager pun tetap mengawasi sumber daya yang digunakan oleh perangkat, dan juga potensi jika sumber daya tersebut digunakan serta menangani “loading” driver tersebut. Dilain sisi, power manager ikut berperan dalam mengurangi komsumsi tenaga pada perangkat. Sehingga suatu perangkat dapat diset dalam mode “low-power”(sleep mode) ketika tidak digunakan, dan dapat langsung dipakai ketika diperlukan.

MANAJEMEN I/O PADA LINUX
       Dalam Linux system i/o kurang lebih mirip dengan yang terdapat pada Unix. User dapat membuka saluran akses ke perangkat sama seperti membuka file-perangkat lain yang tampak sebagai objek dalam file sistem. Linux membagi semua perangkat i/o menjadi 3 kelas: “block devices”, “character devices”, dan “network devices”. “Block devices” yaitu menyimpan, menerima, dan mengirim informasi sebagai blok-blok berukuran tetap yang berukuran 128 sampai 1024 byte dan memiliki alamat tersendiri, sehingga memungkinkan membaca atau menulis blok-blok secara independen, yaitu dapat membaca atau menulis sembarang blok tanpa harus melewati blok-blok lain. Contoh : disk, tape, CD ROM, optical disk. Fungsi “block devices” sendiri didukung oleh 2 sistem component, block buffer cache dan request manager. Block buffer cache bertugas sebagai pool dari buffer i/o aktif dan cache dari “completed i/o”. “Request manager” adalah lapisan software yang mengelola konten read dan write buffer dari dan menuju block-device driver.

    “Character devices” yaitu perangkat yang menerima, dan mengirimkan aliran karakter tanpa membentuk suatu struktur blok. Contoh : terminal, line printer, pita kertas, kartu-kartu berlubang, mouse. Perangkat ini tidak memerlukan random access untuk sebuah block data. Akan tetapi, tiap perangkat telah memiliki berbagai fungsi yang telah terdaftar pada kernel yang diimplementasikan pada file operasi i/o. Sedangkan “network devices” berbeda dengan block atau character devices, user harus berkomunikasi secara tidak langsung dengan cara harus membuka sambungan dengan subsistem jaringan kernel.

FUNGSI MANAJEMEN I/O
  • Mengirim perintah ke perangkat I/O agar menyediakan layanan.
  • Menangani interupsi perangkat I/O.
  • Menangani kesalahan perangkat I/O.
  • Menyediakan interface ke pemakai.
KLASIFIKASI PERANGKAT I/O

Perangkat I/O dapat dikelompokkan berdasarkan :

a. Sifat aliran datanya, yang terbagi atas :

1. Perangkat berorientasi blok.
       Yaitu menyimpan, menerima, dan mengirim informasi sebagai blok-blok berukuran tetap yang berukuran 128 sampai 1024 byte dan memiliki alamat tersendiri, sehingga memungkinkan membaca atau menulis blok-blok secara independen, yaitu dapat membaca atau menulis sembarang blok tanpa harus melewati blok-blok lain. Contoh : disk,tape,CD ROM, optical disk.

2. Perangkat berorientasi aliran karakter.

       Yaitu perangkat yang menerima, dan mengirimkan aliran karakter tanpa membentuk suatu strukturblok Contoh: terminal, line printer, pita kertas,kartu-kartu berlubang, interface jaringan, dan mouse.

b. Sasaran komunikasi, yang terbagi atas :

1. Perangkat yang terbaca oleh manusia       Perangkat yang digunakan untuk berkomunikasi dengan manusia.Contoh : VDT (video display terminal) : monitor, keyboard, mouse.

2. Perangkat yang terbaca oleh mesin


        Perangkat yang digunakan untuk berkomunikasi dengan perangkat elektronik. Contoh : Disk dan tape, sensor, controller.

3. Perangkat komunikasi

     Perangkat yang digunakan untuk komunikasi dengan perangkat jarak jauh. Contoh : Modem.

Faktor-faktor yang membedakan antar perangkat :
  • Kecepatan transmisi data (data rate).
  • Jenis aplikasi yang digunakan.
  • Tingkat kerumitan dalam pengendalian.
  • Besarnya unit yang ditransfer.
  • Representasi atau perwujudan data.
  • Kondisi-kondisi kesalahan.
TEKNIK PEMOGRAMAN PERANGKAT I/O
1. I/O terprogram atau polling system.        Ketika perangkat I/O menangani permintaan, perangkat men-set bit status di register status perangkat. Perangkat tidak memberitahu ke pemroses saat tugas telah selesai dilakukan sehingga pemroses harus selalu memeriksa register tersebut secara periodik dan melakukan tindakan berdasar status yang dibaca. Software pengendali perangkat (driver) dipemroses harus mentransfer data ke/dari pengendali. Driver mengekseksui perintah yang berkomunikasi dengan pengendali (adapter) di perangkat dan menunggui sampai operasi yang dilakukan perangkat selesai. Driver berisi kumpulan instruksi : 
a. Pengendalian
    Berfungsi mengaktifkan perangkat eksternal dan memberitahu yang perlu dilakukan. Contoh: unit tape magnetik diinstruksikan untuk kembali ke posisi awal, bergerak ke record berikut, dan sebagainya.

b. Pengujian
      Berfungsi memeriksa status perangkat keras berkaitan dengan perangkat I/O.

c. Pembacaan/penulisan
     Berfungsi membaca/menulis untuk transfer data antara register pemroses dan perangkat eksternal.Masalah utama I/O terprogram adalah pemroses diboroskan untuk menunggu dan menjagai operasi I/O. Diperlukan teknik lain untuk meningkatkan efisiensi pemroses.

2.  I/O dikendalikan interupsi.

Teknik I/O dituntun interupsi mempunyai mekanisme kerja sebagai berikut :
  • Pemroses memberi instruksi ke perangkat I/O kemudian melanjutkan melakukan pekerjaan lainnya.
  • Perangkat I/O akan menginterupsi meminta layanan saat perangkat telah siap bertukar data dengan pemroses.
  • Saat menerima interupsi perangkat keras (yang memberitahukan bahwa perangkat siap melakukan transfer), pemroses segera mengeksekusi  transfer data.
Keunggulan :
  • Pemroses tidak disibukkan menunggui dan menjaga perangkat I/O untuk  memeriksa status perangkat.
Kelemahan :
  • Rate transfer I/O dibatasi kecepatan menguji dan melayani operasi perangkat.
  • Pemroses terikat ketat dalam mengelola transfer I/O. Sejumlah intruksi harus dieksekusi untuk tiap transfer I/O.
3. Dengan DMA (direct memory access)
    DMA berfungsi membebaskan pemroses menunggui transfer data yang dilakukan perangkat I/O. Saat pemroses ingin membaca atau menulis data, pemroses memerintahkan DMA controller dengan mengirim informasi berikut :
  • Perintah penulisan/pembacaan.
  • Alamat perangkat I/O.
  • Awal lokasi memori yang ditulis/dibaca.
  • Jumlah word (byte) yang ditulis/dibaca.
Setelah mengirim informasi-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 mengirim sinyal interupsi ke pemroses. Sehingga 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.

Keunggulan :
  • Penghematan waktu pemroses.
  • Peningkatan kinerja I/O
EVOLUASI PERANGKAT I/O
      Sistem komputer mengalami peningkatan kompleksitas dan kecanggihan komponen-komponennya, yang sangat tampak pada fungsi-fungsi I/O sebagai berikut :

 A. Pemroses mengendalikan perangkat I/O secara langsung.
     Masih di gunakan sampai saat ini untuk perangkat sederhana yang dikendalikan mikroprosessor sehingga menjadi perangkat berintelejen (inteligent device).

B. Pemroses dilengkapi pengendali I/O (I/O controller)
   Pemroses menggunakan I/O terpogram tanpa interupsi, sehingga tak perlu memperhatikan rincian-rincian spesifik antarmuka perangkat.

C. Perangkat dilengkapi fasilitas interupsi
       Pemroses tidak perlu menghabiskan waktu menunggu selesainya operasi I/O, sehingga meningkatkan efisiensi pemroses.

D.  I/O controller mengendalikan memori secara langsung lewat DMA.
     Pengendali dapat memindahkan blok data ke/dari memori tanpa melibatkan pemroses kecuali diawal dan akhir transfer.

 E. Pengendali I/O menjadi pemroses terpisah
   Pemroses pusat mengendalikan.memerintahkan pemroses khusus I/O untuk mengeksekusi program I/O di memori utama. Pemroses I/O mengambil dan mengeksekusi intruksi-intruksi ini tanpa intervensi pemroses pusat. Dimungkinkan pemroses pusat menspesifikasikan barisan aktivitas I/O dan hanya diinterupsi ketika seluruh barisan intruksi diselesaikan.

F. Pengendali I/O mempunyai memori lokal sendiri.
   Perangkat I/O dapat dikendalikan dengan keterlibatan pemroses pusat yang minimum.Arsitektur ini untuk pengendalian komunikasi dengan terminal-terminal interaktif. Pemroses I/O mengambil alih kebanyakan tugas yang melibatkan pengendalian terminal. Evolusi bertujuan meminimalkan keterlibatan pemroses pusat, sehingga pemroses tidak disibukkan dengan tugas I/O dan dapat meningkatkan kinerja sistem.

PRINSIP MENEJEMEN PERANGKAT I/O
Terdapat dua sasaran perancangan I/O, yaitu :

A. Efisiensi
Aspek penting karena operasi I/O sering menimbulkan bottleneck.

B. Generalitas (device independence)


     Manajemen perangkat I/O selain berkaitan dengan simplisitas dan bebas kesalahan, juga menangani perangkat secara seragam baik dari cara proses memandang maupun cara sistem operasi mengelola perangkat dan operasi I/O.Software diorganisasikan berlapis. Lapisan bawah berurusan menyembunyikan kerumitan perangkat keras untuk lapisan-lapisan lebih atas. Lapisan lebih atas berurusanmemberi antar muka yang bagus, bersih, nyaman dan seragam ke pemakai.

MASALAH-MASALAH DALAM MENEJEMEN I/O

A. Penamaan yang seragam (uniform naming)     Nama berkas atau perangkat adalah string atau integer, tidak bergantung pada perangkat sama sekali.

B. Penanganan kesalahan (error handling)
Umumnya penanganan kesalahan ditangani sedekat mungkin dengan perangkat keras.

C. Transfer sinkron vs asinkron
     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, program kemudian ditunda secara otomatis sampai data tersedia di buffer. 


D. Sharable vs dedicated      
         Beberapa perangk dapat dipakai bersama seperti disk, tapi ada juga perangkat yang hanya satu pemakai yang dibolehkan memakai pada satu saat. Contoh : printer.

Hirarki manajemen perangkat I/O:
  • Interrupt handler
     Interupsi harus disembunyikan agar tidak terlihat rutin berikutnya. Device driver di blocked saat perintah I/O diberikan dan menunggu interupsi. Ketika interupsi terjadi, prosedur penanganan interupsi bekerja agar device driver keluar dari state blocked.

  • Device drivers
    Semua kode bergantung perangkat ditempatkan di device driver. Tiap device driver menangani satu tipe (kelas) perangkat dan bertugas menerima permintaan abstrak perangkat lunak device independent diatasnya dan melakukan layanan permintaan.
Mekanisme kerja device driver :

  • Menerjemahkan perintah abstrak menjadi perintah konkret.
  • Setelah ditentukan perintah yang harus diberikan ke pengendali, device driver mulai menulis ke register-register pengendali perangkat.
  • Setelah operasi selesai dilakukan perangkat, device driver memeriksa  status kesalahan yang terjadi.
  • Jika berjalan baik, device driver melewatkan data ke perangkat lunak  device independent.
  • Kemudian device driver melaporkan status operasinya ke pemanggil.
Perangkat lunak device independent
        Bertujuan me
mbentuk fungsi-fungsi I/O yang berlaku untuk semua perangkat  dan memberi antarmuka seragam ke perangkat lunak tingkat pemakai.

Fungsi-fungsi lain yang dilakukan : 
  • Sebagai interface seragam untuk seluruh device driver
  • Penamaan perangkat.
  • Proteksi perangkat
  •  Memberi ukuran blok perangkat agar bersifat device independent.
  • Melakukan buffering.
  • Alokasi penyimpanan pada block devices.
  • Alokasi dan pelepasan dedicated devices.
  • Pelaporan kesalahan.
Perangkat lunak level pemakai
      Kebanyakan perangkat lunak I/O terdapat di sistem operasi. Satu bagian kecil berisi pustaka-pustaka yang dikaitkan pada program pemakai dan berjalan diluar kernel. System calls I/O umumnya dibuat sebagai prosedur-prosedur pustaka. Kumpulan prosedur pustaka I/O merupakan bagian sistem I/O. Tidak semua perangkat lunak I/O level pemakai berupa prosedur- prosedur pustaka. Kategori penting adalah sistem spooling. Spooling adalah cara khusus berurusan dengan perangkat I/O yang harus didedikasikan pada sistem multiprogramming.

BUFFERING I/O
       Buffering adalah melembutkan lonjakan-lonjakan kebutuhan pengaksesan I/O, sehingga meningkatkan efisiensi dan kinerja sistem operasi.

Terdapat beragam cara buffering, antar lain :

a. Single buffering.
        Merupakan teknik paling sederhana. Ketika proses memberi perintah untuk perangkat I/O, sistem operasi menyediakan buffer memori utama sistem untuk operasi.Untuk perangkat berorientasi blok.Transfer masukan dibuat ke buffer sistem. Ketika transfer selesai, proses memindahkan blok ke ruang pemakai dan segera meminta blok lain. Teknik ini disebut reading ahead atau anticipated input. Teknik ini dilakukan dengan harapan blok akan segera diperlukan. Untuk banyak tipe komputasi, asumsi ini berlaku. Hanya di akhir pemrosesan maka blok yang dibaca tidak diperlukan.


Keunggulan :
      Pendekatan in umumnya meningkatkan kecepatan dibanding tanpa buffering. Proses pemakai dapat memproses blok data sementara blok berikutnya sedang dibaca. Sistem operasi dapat menswap keluar proses karena operasi masukan berada di memori sistem bukan memori proses pemakai.

Kelemahan :
  • Merumitkan sistem operasi karena harus mencatat pemberian buffer-buffer sistem ke proses pemakai.
  • Logika swapping juga dipengaruhi. Jika operasi I/O melibatkan disk  untuk swapping, maka membuat antrian penulisan ke disk yang sama yang digunakan untuk swap out proses. Untuk menswap proses dan melepas memori utama tidak dapat dimulai sampai operasi I/O selesai, dimana waktu swapping ke disk tidak bagus untuk dilaksanaka Buffering keluaran serupa buffering masukan. Ketika data transmisi, data lebih dulu dikopi dari ruang pemakai ke buffer sistem. Proses pengirim menjadi bebas untuk melanjutkan eksekusi berikutnya atau di swap ke disk Jika perlu.
Untuk perangkat berorientasi aliran karakter.

1. Single buffering dapat diterapkan dengan dua mode, yaitu :
  • Mode line at a time
       Cocok untuk terminal mode gulung (scroll terminal atau dumb terminal). Masukan pemakai adalah satu baris per waktu dengan enter menandai akhir baris. Keluaran terminal juga serupa, yaitu satu baris per waktu. Contoh mode ini adalah printer. Buffer digunakan untuk menyimpan satu baris tunggal. Proses pemakai ditunda selama masukan, menunggu kedatangan satu baris seluruhnya.Untuk keluaran, proses pemakai menempatkan satu baris keluaran pada buffer dan melanjutkan pemrosesan. Proses tidak perlu suspend kecuali bila baris kedua dikirim sebelum buffer dikosongkan.
  • Mode byte at a time.
       Operasi ini cocok untuk terminal mode form, dimana tiap ketikan adalah penting dan untuk peripheral lain seperti sensor dan pengendali. 

2.Double buffering
       Peningkatan dapat dibuat dengan dua buffer sistem.Proses dapat ditransfer ke/dari satu buffer sementara sistem operasi mengosongkan (atau mengisi) buffer lain. Teknik ini disebut double buffering atau buffer swapping. Double buffering menjamin proses tidak menunggu operasi I/O. Peningkatan ini harus dibayar dengan peningkatan kompleksitas. Untuk berorientasi aliran karakter, double buffering mempunyai 2 mode alternatif, yaitu :
  • Mode line at a time
      Proses pemakai tidak perlu ditunda untuk I/O kecuali proses secepatnya mengosongkan buffer ganda.
  • Mode byte at a time.
     Buffer ganda tidak memberi keunggulan berarti atas buffer tunggal. Double buffering mengikuti model producer-consumer.

3. Circular buffering
     Seharusnya melembutkan aliran data antara perangkat I/O dan proses. Jika kinerja proses tertentu menjadi fokus kita, maka kita ingin agar operasi I/O mengikuti proses. Double buffering tidak mencukupi jika proses melakukan operasi I/O yang berturutan dengan cepat. Masalah sering dapat dihindari denga menggunakan lebih dari dua buffer. Ketika lebih dari dua buffer yang digunakan, kumpulan buffer itu sendiri diacu sebagai circulat buffer. Tiap bufferindividu adalah satu unit di circular buffer.