Pembahasan
Operasi Sistem Komputer Struktur I/O Struktur Storage Hirarki Storage Proteksi Perangkat Keras Sistem Arsitektur Umum
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.
CPU Memory Disk Printer Tape drive Device controller System bus Memory controller
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
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
(a)
(b)
(a) Tahapan eksekusi I/O device dan generate interrupt (b) Bagaimana proses CPU di-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
Device-Status Table
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)
Magnetic disk : permukaan disk dibagi dalam track dan sector Magnetic tape
Caching : copy informasi ke sistem storage yang lebih cepat; main memory dapat dipandang sebagai cache terakhir dari secondary storage
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
Proteksi Hardware
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
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
user
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)
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
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
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.