Struktur Sistem Komputer Abdullah Sistem Informasi Universitas Binadarma Pembahasan Operasi Sistem Komputer Struktur I/O Struktur Storage Hirarki Storage Proteksi Perangkat Keras Sistem Arsitektur Umum Arsitektur Sistem Komputer Booting Bootstrap program Inisialisasi sistem, seperti : CPU register, device controllers, memory, dsb Load and run the OS Operating system: run init untuk inisialisasi sistem proses, seperti : various daemons, login processes, dsb. Operasi Sistem Komputer (1) CPU Memory Disk Printer Tape drive Device controller System bus Memory controller Operasi Sistem Komputer (2) CPU dan I/O device dapat dieksekusi secara bersamaan (concurrent) Masing-masing device controller memiliki spesifikasi yang sesuai dengan tipe device dan memiliki local buffer CPU memindahkan data dari main memory ke local buffer dan sebaliknya I/O dieksekusi dari device local buffer controller Device controller menginformasikan ke CPU apabila operasi yang dilakukan telah selesai dengan mekanisme interrupt Interrupt Interrupt mentransfer control ke interrupt service routine, melalui interrupt vector (berisi alamat service routine) Arsitektur interrupt harus menyimpan address (alamat) dari instruksi interrupt Interrupt yang datang di-disabled jika terdapat interrupt yang sedang diproses (menghindari lost interrupt) Trap adalah software yang men-generate interrupt, baik karena error atau karena request dari user Operating System merupakan interrupt driven Penyebab Terjadinya Interrupt Program : akibat eksekusi instruksi (division by zero, invalid memory access, dsb) – trap Timer : timer processor I/O controller, operasi I/O sudah selesai / terjadi error Hardware malfunction : kesalahan hardware (power failure, memory parity error, dsb) Interrupt Handling OS menjaga kondisi (state) dari CPU dengan menyimpan register dan program counter Menentukan tipe interrupt : Polling Vectored interrupt system Segmen-segmen kode yang terpisah menentukan action apa yang dilakukan untuk masing-masing tipe interrupt Contoh Interrupt Vector Table Abstraksi Interrupt I/O Device (a) (b) (a) Tahapan eksekusi I/O device dan generate interrupt (b) Bagaimana proses CPU di-interrupt Interrupt Time Line For a Single Process Doing Output Siklus Interrupt I/O (1) Siklus Interrupt I/O (2) Struktur I/O - Interrupt Synchronous I/O. Ketika I/O dijalankan, control dikembalikan ke user proses setelah proses I/O selesai Menunggu instruksi idle sampai instruksi berikutnya Menunggu loop (akses memory) Hanya satu permintaan I/O dijalankan, tidak ada pemrosesan I/O secara simultan Asynchronous I/O. Ketika I/O dijalankan, control dikembalikan ke user proses tanpa menunggu proses I/O selesai System call, permintaan ke OS dari user untuk menjalankan I/O Device status table, berisi entry I/O device : tipe, address dan status OS mengindeks I/O device table untuk menentukan status device dan memodifikasi table untuk interrupt Dua Metode I/O Synchronous Asynchronous Device-Status Table Struktur I/O - DMA I/O device dengan kecepatan tinggi tanpa memerlukan CPU Device controller mentransfer block data dari buffer storage langsung ke memory tanpa intervensi CPU Interrupt di-generate per-block, tidak per-byte Proses DMA Struktur Storage Main memory : media storage yang dapat diakses langsung oleh CPU, kapasitas kecil (volatile) Secondary storage : penyimpanan data dengan kapasitas besar (non-volatile) Volatile : isi data hilang jika power dimatikan Non-volatile : data masih tersimpan walaupun power dimatikan Magnetic disk : permukaan disk dibagi dalam track dan sector Magnetic tape Hirarkhi Storage (1) Hirarki sistem storage diorganisasikan berdasarkan : Speed Cost Volatility Caching : copy informasi ke sistem storage yang lebih cepat; main memory dapat dipandang sebagai cache terakhir dari secondary storage Hirarkhi Storage (2) Trade-off : cost & speed Caching Memory dengan kecepatan akses tinggi Membutuhkan aturan cache management Penggunaan caching mengharuskan data yang secara simultan tersimpan dalam lebih dari satu level hirarki storage konsisten Abstraksi Migrasi Data Proteksi Hardware Dual-mode Operation I/O Protection Memory Protection CPU Protection Operasi Dual-Mode (1) Sharing resource sistem membutuhkan OS untuk memastikan bahwa program yang error tidak mengakibatkan program lain dieksekusi juga error Hardware mendukung dua mode operasi : User mode – eksekusi dilakukan oleh user Monitor mode (kernel mode / system mode) – eksekusi dilakukan oleh OS Operasi Dual-Mode (2) Mode bit digunakan untuk mengindikasikan mode yang sedang dijalankan : monitor (0) atau user (1). Ketika interrupt atau kesalahan terjadi hardware diswitch ke monitor mode Interrupt/fault monitor user set user mode Privileged instructions hanya dapat dilakukan oleh monitor mode Proteksi I/O Semua instruksi I/O menggunakan privileged instructions Harus dipastikan bahwa user program tidak mendapat control komputer dalam kondisi monitor mode (dimana user program, sebagai bagian dari eksekusi, menyimpan alamat baru dalam interrupt vector) Prosedur Request I/O Instruksi I/O adalah privileged, bagaimana user program menjalankan I/O ? System call – Metode yang digunakan oleh proses untuk meminta suatu tindakan (action) oleh OS Biasanya memanfaatkan trap pada lokasi spesifik dalam interrupt vector Control dilewatkan melalui interrupt vector ke service routine OS, dan mode bit di-set menjadi monitor mode Monitor memeriksa apakah parameter benar & legal, kemudian mengeksekusi request, dan mengembalikan control ke instruksi system call berikutnya System Call untuk Menjalankan I/O Proteksi Memory Harus menyediakan proteksi memory untuk interrupt vector dan interrupt service routines (ISR) Prosedur proteksi memory, tambahkan dua register yang menentukan range legal address akses program : Base register – menyimpan alamat memory fisik terkecil Limit register – berisi ukuran range Memory diluar range yang didefinisikan diproteksi Penggunaan Base and Limit Register Proteksi Hardware Address Proteksi Hardware Ketika eksekusi pada kondisi monitor mode, OS memiliki akses bebas (monitor dan memory user) Instruksi yang di-load pada base & limit register adalah priviliged instruction Proteksi CPU Timer – interrupt komputer setelah periode tertentu untuk memastikan OS me-maintain control Timer diturunkan setiap clock tick Ketika nilai timer = 0, interrupt terjadi Timer biasanya digunakan untuk implementasi time sharing Time juga digunakan untuk menghitung waktu sekarang Load-timer adalah privileged instruction.