Computer System Structures SISTIM OPERASI (Operating System) IKI-20230 Johny Moningka (
[email protected]) Fakultas Ilmu Komputer Universitas Indonesia Semester 2000/2001
Chapter 2: Computer-System Structures n
Review: n n n n
Computer System Operation I/O Structure Hardware Protection General System Architecture
JM-2000/v1.1/2
1
Computer-System Architecture
JM-2000/v1.1/3
Review: Multiprogramming Beberapa jobs disimpan di memori pada saat bersamaan , d a n C P U m e l a k u k a n multiplexing k e jobs-jobs tersebut
JM-2000/v1.1/4
2
OS Features: multiprog. n n
n n
I/O rutin dikendalikan dan diatur oleh sistim Memory management – sistim harus mengalokasikan memori untuk beberapa jobs sekaligus CPU scheduling – sistim harus memilih jobs mana yang telah siap akan dijalankan Alokasi dari I/O devices untuk jobs dan proteksi bagi I/O devices tersebut Sistim menjadi => complex n
Bagaimana kalau program “loops terus menerus”, going mad etc. => proteksi JM-2000/v1.1/5
I/O Devices n
Address bus: n
n
CPU untuk menentukan alamat memori atau target device (I/O)
Controller: n
Menerjemahkan perintah CPU => sekumpulan instruksi untuk I/O device tertentu • Contoh: membaca dari sektor tertentu pada disk
n
Menampung data dan menyesuaikan format data yang dikenal oleh CPU • Contoh: mengirim data dalam bentuk blok
n
Buffer: tempat penyimpanan data untuk di proses oleh controller (1 karakter, 1 blok data) JM-2000/v1.1/6
3
I/O System Operations n
CPU devices dan I/O dapat beroperasi secara serentak (concurrent) n
n
Semua request ke I/O dikendalikan oleh I/O systems: n
n
n
Setiap device terdapat controller yang mengendalikan device tertentu, misalkan video display => video card, disk => disk controller. Setiap device controller mempunyai local buffer.
CPU memindahkan data dari/ke memory ke/dari local buffer. n
n
Efisiensi pemakaian CPU
Setelah itu controller akan mengirimkan data dari buffer ke device.
Bagaimana mekanisme I/O supaya CPU dapat melakukan switch dari satu job ke job lain? JM-2000/v1.1/7
I/O Operations n
Ilustrasi: n n n
Instruksi CPU dalam orde: beberapa mikro-detik Operasi read/write dari disk: 10 – 15 mili-detik Ratio: CPU ribuan kali lebih cepat dari operasi I/O • Jika CPU harus menunggu (idle) sampai data transfer selesai, maka utilisasi CPU sangat rendah (lebih kecil 1%).
n
Solusi: operasi CPU dan I/O harus overlap n
n
n
Concurrent: CPU dapat menjalankan beberapa I/O device sekaligus CPU tidak menunggu sampai operasi I/O selesai tapi melanjutkan tugas yang lain Bagaimana CPU mengetahui I/O telah selesai? JM-2000/v1.1/8
4
Programmed I/O (1) n
Programmed I/O n
n
CPU bertanggung jawab untuk jenis operasi I/O n
n
Transfer data dari/ke buffer
Controller melakukan detil operasi I/O n
n
Mekanisme CPU yang bertanggung jawab memindahkan data dari/ke memori ke/dari controller
Jika telah selesai memberikan informasi ke CPU => flag
Bagaimana CPU mengetahui operasi telah selesai? n
Apakah menguji flag? Seberapa sering? JM-2000/v1.1/9
Programmed I/O (2) n n
CPU harus mengetahui jika I/O telah selesai => hardware flag (controller) Polling: CPU secara periodik menguji flag (true or false) n n
n
Menggunakan instruksi khusus untuk menguji flag Masalah: seberapa sering? “wasted CPU time !”? Antar I/O device berbeda “speed”!
Interrupt: n
Bantuan hardware – melakukan interupsi pada CPU jika flag tersebut telah di-set (operasi I/O telah selesai) JM-2000/v1.1/10
5
Interrupt n
Interrupt: n
n
n
Struktur interrupt harus menyimpan address dari instruksi yang sedang dikerjakan oleh CPU (interrupted). n
n
n
CPU transfer control ke “interrupt service routine”, => address dari service routine yang diperlukan untuk device tsb. Interrupt handler: menentukan aksi/service yang diperlukan
CPU dapat resume ke lokasi tersebut jika service routine telah selesai dikerjakan
Selama CPU melakukan service interrupt, maka interrupt selanjutnya tidak akan dilayani “disabled”, karena CPU tidak dapat melayani interrupt (lost). An operating system is interrupt driven. JM-2000/v1.1/11
Interrupt Handling n
Interrupt Vector: n
n
n
Hardware dapat membedakan devices mana yang melakukan interupsi. Berdasarkan jenis interupsi maka transfer control dapat dilakukan sesuai dengan vektor (pointer) lokasilokasi instruksi di memori.
Tugas sistim operasi harus menyimpan status CPU (program counter, register dll) n
n
Jika service routine telah selesai => CPU dapat melanjutkan instruksi terakhir yang dikerjakan Sistim operasi akan “load” kembali status CPU tersebut. JM-2000/v1.1/12
6
I/O Structure n
User request I/O: n n
n
CPU: load instruksi ke register controller Controller: menjalankan instruksi
Setelah I/O mulai, control kembali ke user program jika operasi I/O telah selesai n n n n
Instruksi khusus: wait => CPU menunggu sampai ada interrupt berikutnya dari I/O tersebut. Paling banyak hanya mempunyai satu I/O request. Keuntungan: CPU mengetahui secara pasti device mana yang melakukan interrupt (operasi I/O selesai). Kerugian: operasi I/O tidak dapat serentak untuk semua device JM-2000/v1.1/13
I/O Interrupts n n
Pilihan lebih baik: asynchronous I/O Setelah I/O mulai, kendali langsung kembali ke user program tanpa menunggu I/O selesai n n n
n
CPU dapat melanjutkan operasi I/O untuk device yang lain User program dapat menjalankan program tanpa menunggu atau harus menunggu sampai I/O selesai. System call – request ke OS untuk operasi I/O dan menunggu sampai I/O selesai.
Potensi lebih dari satu device n n n
User hanya dapat menggunakan I/O melalui system call Device-status table memuat informasi untuk setiap I/O device: tipe, alamat, status dll OS mengatur tabel ini dan mengubah isinya sesuai dengan status device (interrupt) JM-2000/v1.1/14
7
Two I/O methods Synchronous
Asynchronous
JM-2000/v1.1/15
Device-Status Table
JM-2000/v1.1/16
8
Direct Memory Access (DMA) n
n
Jika I/O devices sangat cepat (“high-speed”), beban CPU menjadi besar harus mengawasi transfer data dari controller ke memory dan sebaliknya. Hardware tambahan => DMA controller dapat memindahkan blok data dari buffer langsung ke memory tanpa menggangu CPU. n
n
CPU menentukan lokasi memory dan jika DMA controller telah selesai => interrupt ke CPU Hanya satu interrupt ke CPU untuk sekumpulan data (blok). JM-2000/v1.1/17
Hardware Protection n
Pemakaian bersama sistim resources n n
n
n
OS menjamin dan melindungi resources tersebut Program user tidak secara bebas dapat mengakses atau menjalankan instruksi ke device/resources. Bagaimana membatasi user ? Terdapat dua jenis/tingkat “privilege”/hak menggunakan sistim.
Hardware harus mendukung/membedakan dua jenis operasi dalam sistim: 1.User mode – execution done on behalf of a user. 2.Monitor mode (also supervisor mode or system mode) – execution done on behalf of operating system. JM-2000/v1.1/18
9
Dual-Mode Operation (Cont.) Mode bit ditambahkan pada computer hardware (CPU) untuk indikasi mode sekarang: monitor (0) atau user (1). Jika terjadi interrupt/fault/error => hardware mengubah mode ke monitor
n
n
Interrupt/fault monitor
user set user mode
Privileged instructions can be issued only in monitor mode. JM-2000/v1.1/19
I/O Protection n
Semua instruksi I/O adalah instruksi privileged: n n
n
Hanya dapat dilakukan melalui OS OS dapat mencegah “request” ke I/O dengan melihat mode saat ini.
OS menjaga supaya program user tidak dapat menjadi “monitor mode” untuk mencegah user program melakukan: n
n
Menangani interrupt: dengan mengubah alamat interrupt vector. Mengubah status dan data pada “device table”
JM-2000/v1.1/20
10
Memory Protection n
Melindungi memori terutama untuk isi: n
n
Cara umum adalah setiap user program hanya dapat mengakses lokasi memori yang telah dibatasi (disediakan untuk program tsb). n n
n
n
interrupt vector and the interrupt service routines.
Range address – alamat yang valid Base register – holds the smallest legal physical memory address. Limit register – contains the size of the range
Memori diluar range tersebut tidak dapat diakses oleh user program tsb. JM-2000/v1.1/21
Logical Address: protection
JM-2000/v1.1/22
11
Protection Hardware
n n
When executing in monitor mode, OS dapat mengakses semua lokasi memori. The load instructions for the base and limit registers are privileged instructions. JM-2000/v1.1/23
CPU Protection n
Timer : n
n
n
n n
n
Bagaimana jika program “stuck” dan job menggunakan CPU terus menerus? Interupsi secara berkala oleh hardware: => transfer control ke OS. Nilai timer akan berkurang sesuai “clock tick” dari hardware komputer. Saat nilai timer menjadi 0, interrupt terjadi Housekeeping: melakukan CPU scheduling (jatah CPU), status device table dll.
Timer digunakan untuk system time. JM-2000/v1.1/24
12
General-System Architecture n n
Given the I/O instructions are privileged, how does the user program perform I/O? System call – the method used by a process to request action by the operating system. n
n
n
Usually takes the form of a trap to a specific location in the interrupt vector. Control passes through the interrupt vector to a service routine in the OS, and the mode bit is set to monitor mode. The monitor verifies that the parameters are correct and legal, executes the request, and returns control to the instruction following the system call. JM-2000/v1.1/25
Use of A System Call to Perform I/O
JM-2000/v1.1/26
13