kemungkinan, yaitu : 1. Synchronous – menunggu sampai proses I/O selesai • Sebuah thread memulai operasi I/O kemudian akan masuk ke state wait (tunggu) sampai operasi I/O selesai • Ketika dalam state wait, CPU idle 2. Asynchronous – proses lain dapat berjalan walaupun operasi I/O belum selesai • Sebuah thread mengirim permintaan I/O ke kernel dengan memanggil fungsi yang cocok, jika diterima oleh kernel, thread akan melanjutkan proses yang lain sampai kernel memberitahu bahwa operasi I/O sudah selesai. Kemudian thread tersebut akan melakukan interupsi terhadap proses yang sedang dikerjakannya dan memproses data operasi I/O Metode I/O Direct Memory Access ( DMA ) • Perangkat pengendali memindahkan data dalam blok-blok dari buffer langsung ke memory utama atau sebaliknya tanpa campur tangan prosesor. • Interupsi hanya terjadi tiap blok bukan tiap word atau byte data. • Seluruh proses DMA dikendalikan oleh sebuah controller bernama DMA Controller (DMAC). Direct Memory Access ( DMA ) • DMA Controller mengirimkan atau menerima signal dari memori dan I/O device. • Prosesor hanya mengirimkan alamat awal data, tujuan data, panjang data ke pengendali DMA. • Interupsi pada prosesor hanya terjadi saat proses transfer selesai. Proses DMA Device-Status Table BUS • Jalur komunikasi antara beberapa device yang berbeda • Terdiri 3 macam : – Bus alamat – jalur komunikasi alamat – Bus data – jalur komunikasi data – Bus kendali – jalur sinyal kendali (misal : read/write) Bus (Dahulu) Bus (Sekarang) • FSB – bus utama berkecepatan tinggi yang menghubungkan RAM, Prosesor, GPU(VGA AGP) • Bridge - Perangkat lain yang lebih lambat dihubungkan bus berkecepatan lebih rendah yang terhubung ke bus lain yang lebih cepat sampai ke bus utama INTERUPSI • Hardware atau software meminta layanan dari CPU dan CPU akan menghentikan sementara proses yang dilakukannya untuk melayani interupsi tersebut • Interupsi dari hardware biasanya dikirimkan melalui sinyal tertentu • Interupsi software dengan cara menjalankan system call. System call ini akan menyebabkan trap / exception (interupsi khusus yang dihasilkan software karena adanya masalah atau permintaan terhadap OS) Interupsi • Setiap interupsi terjadi, sekumpulan kode yang dikenal sebagai ISR (Interrupt Service Routine) akan menentukan tindakan yang akan diambil. • Untuk menentukan tindakan yang harus dilakukan, dapat dilakukan dengan dua cara yaitu : • polling yang membuat komputer memeriksa satu demi satu perangkat yang ada untuk menyelidiki sumber interupsi • menggunakan alamat-alamat ISR yang disimpan dalam array yang dikenal sebagai interrupt vector di mana sistem akan memeriksa Interrupt Vector setiap kali interupsi terjadi. PROTEKSI PERANGKAT KERAS • OS akan memproteksi perangkat keras disebabkan banyaknya penggunaan sumber daya di komputer • Supaya jika ada satu program yang tidak bekerja maka tidak akan menganggu kinerja OS maupun program lain yang sedang berjalan Proteksi Perangkat Keras • spooling - suatu program dapat dikerjakan walau pun I/O masih mengerjakan proses lainnya dan disk secara bersamaan menggunakan data untuk banyak proses. • multi programming adalah kegiatan menjalankan beberapa program pada memori pada satu waktu. • Masalah - jika terjadi kesalahan pada satu proses/ program akan berpengaruh pada proses lainnya – diperlukan proteksi Proteksi Perangkat Keras • Jika terjadi kesalahan program, perangkat keras akan meneruskan kepada sistem operasi dan sistem operasi akan menginterupsi dan mengakhirinya. • Pesan kesalahan disampaikan, dan memori dari program akan dibuang. Tapi memori yang terbuang biasanya tersimpan pada disk agar programmer bisa membetulkan kesalahan dan menjalankan program ulang. Proteksi Perangkat Keras • Dual-mode Operation • I/O Protection • Memory Protection • CPU Protection Operasi Dual Mode • Menyediakan dukungan perangkat keras untuk membedakan minimal dua mode operasi yaitu : – Mode Monitor/Kernel/System – eksekusi dikendalikan OS – Mode Pengguna – eksekusi dikendalikan user Operasi Dual Mode • Ketika interrupt atau kesalahan terjadi hardware di-switch ke monitor mode Proteksi I/O • Tidak bisa mengerjakan instruksi I/O secara langsung ke memori tapi harus lewat sistem operasi terlebih dahulu (privileged instructions). instructions) Proteksi I/O Proteksi Memori • Pembatasan penggunaan memori. • Prosedur proteksi memory, tambahkan dua register yang menentukan range legal address akses program : – Base Register - alamat memori fisik awal yang dialokasikan/ boleh digunakan oleh pengguna. – Limit Register - nilai batas dari alamat memori fisik awal yang dialokasikan/boleh digunakan oleh pengguna. • Memory diluar range yang didefinisikan diproteksi Penggunaan Base and Limit Register Penggunaan Base and Limit Register • Sebagai contoh pengguna dibatasi : – base register 1000 – limit register 500 – hanya diperbolehkan menggunakan alamat memori fisik antara 1000 hingga 1500 saja. Proteksi CPU
• Timer – interrupt komputer setelah periode
tertentu untuk memastikan OS memegang kendali, ketika nilai timer = 0, interrupt terjadi • Timer biasanya digunakan untuk implementasi time sharing (pembagian waktu)