Secara umum, sistem komputer terdiri atas CPU dan sejumlah device
controller yang terhubung melalui sebuah bus yang menyediakan akses ke
memori. Umumnya, setiap device controller bertanggung jawab atas sebuah
hardware spesisfik. Setiap device dan CPU dapat beroperasi secara konkurenuntuk mendapatkan akses ke memori. Adanya beberapa hardware ini dapat menyebabkan masalah sinkronisasi. Karena itu untuk mencegahnya sebuah memory controller ditambahkan untuk sinkronisasi akses memori.
Pada sistem komputer yang lebih maju, arsitekturnya lebih kompleks.Untuk meningkatkan performa, digunakan beberapa buah bus . Tiap bus merupakan jalur data antara beberapa device yang berbeda. Dengan cara ini RAM, Prosesor, GPU (VGA AGP) dihubungkan oleh bus utama berkecepatan tinggi yang lebih dikenal dengan nama FSB (Front Side Bus) . Sementara perangkat lain yang lebih lambat dihubungkan oleh bus yang berkecepatan lebih rendah yang terhubung dengan bus lain yang lebih cepat sampai ke bus utama. Untuk komunikasi antar bus ini digunakan sebuah bridge.
Tanggung jawab sinkronisasi bus yang secara tak langsung jugamempengaruhi sinkronisasi memori dilakukan oleh sebuah bus controller atau dikenal sebagai bus master. Bus master akan mengendalikan aliran data hingga pada satu waktu, bus hanya berisi data dari satu buah device. Pada prakteknya bridge dan bus master ini disatukan dalam sebuah chipset.Jika komputer dinyalakan, yang dikenal dengan nama booting, komputer akan menjalankan bootstrap program yaitu sebuah program sederhana yang disimpan dalam ROM yang berbentuk chip CMOS (Complementary Metal Oxide Semiconductor). Chip CMOS modern biasanya bertipe EEPROM(Electrically Erasable Programmable Read Only Memory), yaitu memori non-volatile (tak terhapus jika power dimatikan) yang dapat ditulis dan dihapus dengan pulsa elektronik. Lalu bootsrap program ini lebih dikenal sebagai BIOS (Basic Input Output System).
Bootstrap program utama, yang biasanya terletak di Motherboard akan memeriksa hardware-hardware utama dan melakukan inisialisasi terhadapprogram dalam hardware yang dikenal dengan nama firmware. Bootstrap program utama kemudian akan mencari dan meload kernel sistem operasi ke memori lalu dilanjutkan dengan inisialisasi sistem operasi. Dari sini program sistem operasi akan menunggu kejadian tertentu. Kejadian ini akan menentukan apa yang akan dilakukan sistem operasi berikutnya ( event-driven ).
Kejadian ini pada komputer modern biasanya ditandai dengan munculnyainterrupt dari software atau hardware, sehingga Sistem Operasi ini disebut Interrupt-driven. Interrupt dari hardware biasanya dikirimkan melalui suatu signal tertentu, sedangkan software mengirim interrupt dengan cara menjalankan system call atau juga dikenal dengan istilah monitor call . System/Monitor call ini akan menyebabkan trap yaitu interrupt khusus yang dihasilkan oleh software karena adanya masalah atau permintaan terhadap layanan sistem operasi. Trap ini juga sering disebut sebagai exception.
Setiap interrupt 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 interrupt dan dengan cara menggunakan alamat-alamat ISR yang disimpan dalam array yang dikenal sebagai interrupt vector di mana sistem akan memeriksa Interrupt Vector setiap kali interrupt terjadi.
Arsitektur interrupt harus mampu untuk menyimpan alamat instruksi yang diinterrupt. Pada komputer lama, alamat ini disimpan di tempat tertentu yang tetap, sedangkan pada komputer baru, alamat itu disimpan di stack bersama-sama dengan informasi state saat itu.
No comments