Sekilas Tentang Sistem Komputer
Disini kita akan membahas mengenai mata kuliah sistem operasi dengan pembahasan tentang sistem komputer.
I. Skema Dasar Sistem Komputer
Pada sistem komputer, terdapat 2 macam sumber daya. Pengertian sumber daya itu sendiri adalah semua komponen yang ada pada sistem komputer yang dapat memberi manfaat. Sumber daya tsb antara lain :
- Sumber Daya Fisik, yaitu semua komponen yang ada pada sistem komputer yang memberi manfaat dan secara fisik dapat terlihat.
- Sumber Daya Abstrak, terdiri atas data dan program.
- Contoh dari data adalah Process Control Block (PCB) yang berfungsi untuk mencatat dan mengendalikan proses, berkas (file) sebagai penyimpan data atau program, semaphore untuk pengendalian sinkronisasi proses-proses, serta tabel segmen, table page,i-node, FAT untuk pengendalian memori.
- Sedangkan program merupakan kumpulan instruksi yang dapat dijalankan oleh sistem komputer. Contoh bentuk program dapat berupa utillitas atau aplikasi untuk mencapai tujuan komputasi (pengolahan) tertentu.
Empat komponen Pokok pada sistem komputer :
- Pemroses
- Memori Utama
- Perangkat Masukan dan Keluaran
- Interkoneksi antar komponen
II. Pemroses
Pemrosesan data dalam sebuah perangkat komputer dikerjakan oleh CPU (Central Processing Unit / Unit Pengolah Pusat). Hasil dari pemrosesan disimpan dalam media penyimpanan data.
Pemroses/ CPU merupakan jantungnya komputer dan berfungsi melakukan pengolahan data pengendalian operasi komputer. CPU adalah perangkat keras komputer yang memahami dan melaksanakan instruksi dan data dari perangkat lunak. Jadi, CPU berperan sebagai pusat pengolahan data dan alat proses. Pemroses melakukan operasi komputasi dan operasi logik, serta mengendalikan aliran data berdasarkan instruksi-instruksi.
Eksekusi pada pemroses dituntun clock yang bertugas mensinkronisasi seluruh elemen komputer. Sebagaimana dirijen memimpin suatu konser musik, clock membangkitkan pulsa/ detak ke pemroses. Pada tiap pulsa/ detak clock, pemroses melakukan kerja. Pemroses melakukan kerja dengan urutan langkah sbb :
- Mengambil instruksi yang dikodekan secara biner dari memori utama
- Men-dekode instruksi menjadi aksi-aksi sederhana
- Melaksanakan aksi-aksi ini.
Operasi-operasi di pemroses dapat dikategorikan menjadi 3 tipe, yaitu :
- Operasi aritmatika, contoh : penambahan, pengurangan, perkalian dll.
- Operasi logika, contoh : operasi OR, AND, X-OR dll.
- Operasi pengendalian, contoh : operasi percabangan, lompat dll.
Pemroses terdiri dari 3 komponen, yaitu :
- Control Unit (CU), berfungsi mengendalikan operasi yang dilaksanakan sistem komputer
- Aritmetic Logic Unit (ALU), berfungsi melakukan operasi aritmatika dan logika.
- Register-register, untuk membantu pelaksanaan operasi pemroses. Register berfungsi sebagai memori sangat cepat yang antara lain berfungsi sebagai tempat operan-operan dari operasi yang akan dilakukan oleh pemroses.
Register dapat dikategorikan menjadi 2, yaitu
- Register yang terlihat pemakai, pemrogram dapat memeriksa isi register tipe ini. Pada register yang bersifat read-only pemakai hanya dapat melihat isi register. Sementara register yang bersifat read-write, beberapa instruksi disediakan untuk mengisi (memodifikasi) register tipe ini. Register yang terlihat pemakai terdiri dari 2 jenis, yaitu :
- Register Data, menyimpan suatu nilai. Berdasarkan maksud/keperluannya, register ini terdiri dari 2 macam, yaitu
- General Purpose Register, difungsikan untuk banyak ragam keperluan pada instruksi yang melakukan suatu operasi terhadap data.
- Special Purpose Register, register yang dibatasi untuk suatu keperluan tertentu, seperti menampung operasi floating point, menampung limpahan (carry) operasi penjumlahan atau perkalian dsb.
- Register Alamat, register ini untuk keperluan pengalamatan atau menunjuk ke alamat tertentu. Register ini dapat berisi alamat data di memori utama, alamat instruksi di memori utama, dan bagian alamat yang digunakan dalam perhitungan alamat lengkap. Contoh register alamat adalah : Register indeks (Index Register), Register Penunjuk Segmen (Segment Pointer Register) dan Register Penunjuk Stack (Stack Pointer Register)
- Register untuk kendali dan status, untuk mengendalikan operasi/ pemroses. Register untuk keperluan ini biasanya tidak terlihat oleh pemakai. Sebagiannya dapat diakses dengan instruksi mesin yang dieksekusi di mode kernel. Register ini terdiri dari :
- Register untuk alamat dan buffer, register ini terdiri dari MAR (Memory Address Register), MBR (Memory Buffer Register), I/O AR (I/O Address Register), dan I/O BR (I/O Buffer Register).
- Register untuk eksekusi instruksi, register ini terdiri dari Program Counter (PC), Instruction Register (IR), dan Register untuk informasi status.
- Register Data, menyimpan suatu nilai. Berdasarkan maksud/keperluannya, register ini terdiri dari 2 macam, yaitu
Register-register diatas adalah jenis-jenis yang biasa terdapat di pemroses. Jumlah dan ragam register masing-masing pemroses berbeda sesuai organisasi dan arsitektur pemroses.
III. Memori
Memori utama berfungsi untuk menyimpan data dan program.
Program dan data harus disimpan di memori utama sebelum dapat dieksekusi atau dimanipulasi oleh pemroses. Memori utama biasanya bersifat volatile, yaitu tidak dapat mempertahankan data dan program yang disimpan apabila sumber daya energi (listrik) dihentikan.
Terdapat beberapa tipe memori, mulai yang tercepat aksesnya sampai yang terlambat. Hirarki memori berdasarkan kecepatan akses adalah sbb
Tercepat : Register, Chace Memory, Main Memory, Disk Chace, Magnetic Disk
Terlambat : Magnetic Tape.
Register dapat dipandang sebagai memori. Register adalah memori yang terletak pada pemroses.
Setiap kali pemroses melakukan eksekusi, pemroses harus membaca instruksi dan data dari memori utama. Agar eksekusi dapat dilakukan secara cepat, maka instruksi dan data tsb harus berada di memori yang berkecepatan aksesnya lebih tinggi. Kecepatan pengambilan dari memori ini akan meningkatkan kinerja sistem.
Oleh karena itu terdapat konsep memori dua level yang terbukti dapat meningkatkan kinerja komputer, yaitu data atau instruksi sebaiknya ditampung terlebih dahulu di memori yang berkecepatan lebih tinggi.
Konsep dua level ini biasa diimplementasikan berupa :
- Chace Memory, memori yang berada diantara memori utama dan register pemroses. Memori ini berkapasitas terbatas, berkecepatan tinggi, dan berharga lebih mahal dibanding memori utama. Dengan adanya chace memory, pemroses tidak langsung mengacu ke memori utama, tetapi mengacu ke chace memory yang kecepatan aksesnya lebih tinggi.
- Buffering, adalah bagian memori utama yang difungsikan untuk menampung data yang akan ditransfer dari/ ke perangkat masukan/keluaran dan penyimpan sekunder. Buffering dapat mengurangi frekuensi pengaksesan dari/ke perangkat masukan/keluaran dan penyimpan sekunder sehingga meningkatkan kinerja sistem.
Kedua teknik ini meningkatkan kinerja sistem secara signifikan (berarti).
IV. Perangkat Masukan/Keluaran
Perangkat masukan/keluaran digunakan sistem komputer untuk berinteraksi dengan lingkungan luar, baik ke pemakai maupun lingkungan secara umum. Perangkat ini berfungsi memindahkan data antara komputer dan lingkungan eksternal sehingga komputer dipengaruhi dan mempengaruhi lingkungannya dan memberi manfaat bagi penggunanya. Lingkungan eksternal dapat di antarmuka (interface) beragam perangkat, seperti Perangkat penyimpanan sekunder, perangkat komunikasi, terminal dll.
Perangkat ini berfungsi menghubungkan komputer dengan lingkungan luar Perangkat masukan/keluaran terdiri dari 2 bagian, yaitu :
- Komponen mekanis, yaitu perangkat itu sendiri.
- Komponen elektronis, yaitu pengendali perangkat berupa chip controller.
Perangkat masukan/keluaran adalah perangkat nyata yang dikendalikan perangkat elektronis chip controller di board sistem atau card. Controller dihubungkan dengan pemroses dan komponen lain lewat bus. Controller berbeda-beda mekanismenya. Controller mempunyai register-register untuk memerintahkan atau mengendalikannya, serta untuk mengetahui status. Register tsb akan diacu sebagai port-port. Masing-masing register dialamati sebagai port tertentu. Identifikasi controller berdasarkan port-port yang mengacu ke register-register yang dimiliki controller.
Terhadap perangkat masukan/keluaran, sistem operasi lebih berkepentingan dengan pengendali dibanding dengan mekanisme fisik mekanisnya.
Controller juga disebut device adapter (pengendali). Umumnya satu pengendali (device adapter) dapat menangani dua, empat bahkan sampai delapan perangkat masukan/keluaran yang identik sekaligus. Antarmuka perangkat masukan/keluaran biasanya mengikuti standar tertentu, baik standar resmi badan standar seperti ANSI, IEEE, ISO, CCITT, EIA atau standar de-facto seperti R2 232.
V. Interkoneksi Antar Komponen
Interkoneksi antar komponen adalah struktur dan mekanisme untuk menghubungkan ketiga komponen (pemroses, memori utama dan perangkat masukan/keluaran). Secara fisik berupa perkawatan baik perkawatan logam atau cara koneksi fisik lainnya, dan cara atau aturan komunikasi diantara elemen-elemen terhubung yang berkomunikasi agar tidak kacau sehingga dapat mencapai tujuannya.
Interkoneksi antar komponen disebut bus yang berkaitan dengan cara hubungan antar komponen-komponen sistem komputer. Terdapat banyak sistem bus, yang popular diantaranya ISA, VESA dan PCI. Bus terdiri dari 3 macam, yaitu :
- Bus alamat (address bus), jalur ini bersifat satu arah yang bertugas memberikan alamat dari memori atau port yang hendak diakses.
- Bus data (data bus), jalur ini bersifat dua arah yang digunakan CPU untuk membaca dan mengirim data dari/ke memori atau port.
- Bus kendali (control bus). Jalur ini bersifat dua arah. CPU mengirim sinyal pada bus kendali untuk memerintahkan memori atau port, serta CPU menerima status dan sinyal balik memori atau port. Sinyal bus kendali antara lain :
- Memory Read, untuk memerintahkan melakukan pembacaan memori
- Memory Write, untuk memerintahkan melakukan penulisan memori
- I/O Read, untuk memerintahkan melakukan pembacaan port
- I/O Write, untuk memerintahkan melakukan penulisan port dsb
Untuk membaca data suatu lokasi memori, CPU mengirim alamat memori dikehendaki (disimpan didalam MAR) melalui bus alamat kemudian mengirim sinyal memory read pada bus kendali. Sinyal memory read memerintahkan ke perangkat memori untuk mengeluarkan data pada lokasi tsb ke bus data agar dibaca CPU. Interkoneksi antar komponen ini membentuk satu sistem sendiri.
VI. Eksekusi Instruksi
Fungsi utama komputer adalah mengeksekusi program. Tahap-tahap pengolahan insntruksi berisi 2 tahap, yaitu :
- Pemroses membaca instruksi dari memori (fetch). Dapat melibatkan beberapa instruksi lebih dasar dan bergantung sifat instruksinya.
- Pemroses mengeksekusi instruksi (execute). Eksekusi program berisi pengulangan fetch dan execute. Pemrosesan satu instruksi disebut satu siklus instruksi (instruction cycle).
Multiprogramming dan timesharing meningkatkan utilisasi sistem komputer. Sumberdaya komputer dipakai bersama di antara banyak proses berbeda. Pemakaian bersama ini harus memungkinkan sistem operasi mengelola kendali sistem komputer. Kendali harus dikelola agar menyediakan operasi benar yang berlanjut dan konsisten. Untuk mengelola kendali, pembuat pemroses menyediakan pemroses mempunyai beragam mode eksekusi.
Mode eksekusi berkaitan dengan kewenangan jenis program yang dijalankan, yaitu :
- Mode eksekusi untuk program bagian dari sistem operasi
- Mode eksekusi untuk program pemakai, atau program yang bukan bagian dari kernel sistem operasi.
Instruksi tertentu hanya dapat dieksekusi di mode berkewenangan tinggi. Instruksi yang memerlukan kewenangan tinggi, misalnya :
- Membaca atau memodifikasi register kendali (bit-bit dari register PSW)
- Instruksi-instruksi primitif perangkat masukan/keluaran
- Instruksi-instruksi untuk manajemen memori
- Bagian memori tertentu hanya dapat diakses dalam mode kewenangan tinggi
Mode Pemakai dan Mode Sistem
Mode dengan kewenangan rendah yaitu beberapa instruksi pemroses tidak dapat dijalankan pada mode ini. Mode disebut mode pemakai (user mode) karena program pemakai (aplikasi) dieksekusi dalam mode ini.
Mode dengan kewenangan tinggi yaitu seluruh instruksi pemroses dapat dieksekusi pada mode ini. Mode ini disebut Mode Sistem (System Mode) atau Mode Kendali (control mode), mode supervisor (supervisor mode) atau mode kernel (kernel mode). Rutin sistem operasi (kernel) dieksekusi dengan mode ini.
Alasan adanya dua mode eksekusi adalah untuk memberikan keamanan. Misalnya tabel yang dimiliki oleh sistem operasi seperti tabel proses (PCB – Process Control Block) harus dicegah dari intervensi program pemakai. Modifikasi tabel proses hanya dapat dilakukan oleh sistem operasi. Karena hanya sistem operai yang bekerja pada mode sistem maka hanya sistem operasi yang dapat memodifikasi tabel proses. Program pemakai yang bermode pemakai tidak akan mampu mengubah tabel proses sehingga tidak merusak sistem. Pencegahan ini dilakukan oleh pemroses.
Pada mode sistem, perangkat lunak mempunyai kendali penuh terhadap pemroses instruksi, register dan memori. Tingkat kendali ini tidak tersedia bagi program pemakai agar sistem operasi tidak dapat diintervensi program pemakai. Pemroses mengetahui mode eksekusi dari bit di PSW. Terdapat bit di PSW yang menyatakan mode eksekusi.
Apabila program pemakai meminta layanan sistem operasi dengan cara memanggil system call di programnya. Pemanggilan system call menyebabkan suatu mekanisme jebakan (trap). Sistem operasi segera mengubah mode eksekusi menjadi mode sistem. Di mode sistem, sistem operasi memenuhi yang diminta program pemakai. Begitu selesai,sistem operasi segera mengubah mode eksekusi menjadi mode pemakai dan mengembalikan kendali ke program pemakai.
Dengan dua mode dan teknik penjebakan (trap) diperoleh manfaat
- Mencegah program pemakai mengacau tabel-tabel yang dimiliki sistem operasi
- Mencegah program pemakai mengacau mekanisme pengendalian yang dilakukan sistem operasi.
Program pemakai dapat mengganggu operasi normal sistem dengan membuat instruksi I/O illegal. Untuk mencegah pemakai melakukan I/O illegal maka semua instruksi I/O sebagai instruksi berkewenangan tinggi. Pemakai tidak dapat memberikan instruksi I/O secara langsung. Program pemakai harus melakukannya lewat sistem operasi.
Komputer selalu dilengkapi oleh timer atau real time clock. Clock ini biasanya berupa PIT (Programmable Interval timer) yang dapat diprogram untuk melakukan interupsi setelah satu periode tertentu. Sistem operasi melakukan konfigurasi agar timer melakukan interupsi pada satu periode tertentu. Saat timer melakukan interupsi, kendali dialihkan secara otomatis ke sistem operasi. Dengan demikian, sistem operasi akan selalu mempunyai waktu untuk mengendallikan sistem komputer, memeriksa proses yang sedang dijalankan dsb agar sistem komputer tidak berjalan tidak terkendali.
Penggunaan timer yang lain adalah untuk mengomputasi waktu. Sebagian besar komputer dilengkapi dengan lebih dari satu timer. Dengan demikian, timer yang digunakan untuk mengomputasi waktu berbeda dengan timer yang digunakan untuk mengendalikan sistem komputer membuat interupsi agar mengalihkan kendali ke sistem operasi.



