MODUL PRAKTIKUM SISTEM OPERASI
PENGENALAN CPU-OS SIMULATOR
A. Tujuan
Pada akhir praktikum ini, peserta dapat:
1. Melakukan instalasi CPU-OS Simulator
2. Memahami struktur dan bagian-bagian dari simulator
3. Memahami komponen arsitektur komputer tingkat bawah.
4. Menggunakan simulator untuk membuat dan mengeksekusi instruksi dasar CPU
B. Dasar Teori
CPU-OS Simulator adalah sebuah simulator yang dikembangkan oleh Besim Mustafa
dari Department of Computing, Edge Hill University di Inggris. Aplikasi ini secara
interaktif dapat merepresentasikan secara visual tentang mekanisme-mekanisme yang
terjadi dalam sebuah arsitektur komputer. Praktikum dilakukan untuk mendukung
pembelajaran dimana mahasiswa dapat mengamati apa yang sebenarnya terjadi di
dalam sebuah komputer saat melakukan suatu pekerjaan tertentu.
Model pemrograman arsitektur komputer mendefinisikan komponen-komponen
arsitektur pada tingkat bawah (low level architectural components) yang mencakup:
- Set instruksi
- Register-register
- Mode pengalamatan data di dalam instruksi
Ketiga hal di atas saling berinteraksi sehingga memungkinkan komputer untuk dapat
melakukan proses komputasi.
C. Instalasi CPU-OS Simulator
Link Download simulator: https://teach-sim.com/
Langkah-langkah instalasi:
1. Unduh simulator dalam format ZIP File
2. Ekstrak ZIP File
3. Ganti nama file dari .pkg menjadi .exe
4. Jalankan file .exe untuk memulai instalasi
D. Struktur CPU-OS Simulator
Jendela utama terdiri dari beberapa tampilan, yang merepresentasikan beberapa bagian
fungsional prosesor yang disimulasikan, yaitu:
- CPU Instruction memory
- Special registers
- Register set
- Program stack
Tampilan Instruction Memory
Tampilan ini berisi instruksi-instruksi dari program.
Instruksi ditampilkan dalam urutan instruksi mnemonik
low-level (format assembler), tidak dalam bentuk kode
biner. Hal ini bertujuan untuk memperjelas dan
membuat kode lebih mudah dibaca.
Tiap instruksi mempunyai dua alamat: alamat fisik
(PAdd) dan alamat logika (LAdd). Tampilan ini juga
menyajikan alamat dasar (Base) terhadap tiap instruksi.
Urutan instruksi pada program yang sama akan
mempunyai alamat dasar yang sama.
Tampilan Special Registers
Tampilan ini menyajikan register-register dengan
fungsi-fungsi khusus yang telah ditentukan:
PC : Program Counter, berisi alamat instruksi
berikutnya yang akan dieksekusi.
IR : Instruction Register, berisi instruksi yang
sedang dieksekusi saat ini.
SR : Status Register, berisi informasi yang memberikan
hasil dari instruksi yang dieksekusi terakhir.
SP : Stack Pointer, register menunjuk ke nilai yang berada
pada bagian atas stack.
BR : Base Register, berisi alamat dasar saat ini.
MAR : Memory Address Register, berisi alamat memori
yang sedang diakses.
Status Bits : OV: Overflow; Z: Zero; N: Negative
Tampilan Register Set
Tampilan register set menunjukkan isi dari semua
register-register tujuan umum (general-purpose), yang
digunakan untuk menampung nilai sementara ketika
instruksi program dieksekusi.
Arsitektur ini mendukung 8 hingga 64 register. Register-
register ini sering digunakan untuk menyimpan nilai
variabel program pada bahasa tingkat tinggi.
Tidak semua arsitektur memiliki register sebanyak ini.
Beberapa lebih banyak (misalnya 128 register) dan
beberapa lainnya lebih sedikit ( misalnya 8 register). Pada
semua kasus, register-register ini bekerja untuk tujuan
yang sama.
Bagian ini menampilkan nama tiap register (Reg), nilai
(Val), dan beberapa informasi lainnya untuk keperluan
debug program. Kita juga dapat melakukan reset
(RESET) atau mengisikan nilai register (CHANGE)
secara manual.
Tampilan Program Stack
Program Stack menampung nilai sementara ketika instruksi
dieksekusi. Stack menggunakan struktur data LIFO (last-In-First-
Out). Stack sering digunakan untuk efisiensi interrupt handling dan
sub-routine call.
Instruksi PUSH dan POP digunakan untuk menyimpan dan
mengambil nilai pada bagian teratas stack.
D. Membuat Program pada CPU-OS Simulator
Pertama-tama kita perlu menempatkan sejumlah instruksi pada tampilan instruction memory
(menggambarkan RAM pada mesin yang nyata) sebelum melakukan eksekusi instruksi.
Berikut adalah cara menempatkan instruksi ke instruction memory :
Pada tampilan program instruction, masukkan
nama program (misal: program1), dan juga alamat
dasar (untuk praktikum ini beri alamat dasar nilai
100). Klik tombol ADD. Maka program baru
dengan namanya akan dimasukkan ke tampilan
Program List. Tombol SAVE.../ LOAD...
digunakan untuk menyimpan dan mengambil
instruksi dari file.
Tombol REMOVE PROGRAM digunakan untuk
menghapus program yang disorot.
Tombol REMOVE ALL PROGRAMS digunakan untuk
menghapus semua program yang ada pada daftar.
Sebagai catatan, ketika program dihapus maka instruksi-
instruksi yang terkait dengannya juga akan dihapus dari
tampilan instruction memory.
Untuk memasukkan instruksi ke CPU, klik tombol
ADD NEW... yang akan menampilkan jendela Instructions:
CPU0.
Jendela Instructions: CPU0 digunakan untuk
memasukkan instruksi. Pada jendela ini
disediakan instruksi-instruksi yang terbagi
dalam beberapa kategori dan terdapat pula
penjelasan fungsi dari instruksi tersebut.
PRAKTIKUM:
Program menghitung nilai (4+6)/2
1. Tambahkan instruksi Data Transfer untuk memindahkan (MOV) angka 4 ke register R00
2. Tambahkan instruksi Data Transfer untuk memindahkan (MOV) angka 6 ke register R01
3. Tambahkan instruksi Arithmetic untuk menambahkan (ADD) angka R00 dan R01 dan disimpan
ke register R01
4. Tambahkan instruksi Arithmetic untuk membagi (DIV) angka di register R01 dengan angka 2
5. Tambahkan instruksi Data Transfer untuk menyimpan hasil perhitungan pada memori (STB)
6. Tambahkan instruksi Control Transfer untuk menyelesaikan simulasi (HLT)
7. Jalankan instruksi program satu per satu dengan menekan tombol STEP pada tab Program
Control
8. Amati perubahan yang terjadi pada tampilan CPU instruction memory dan Special CPU Register
9. Amati perubahan nilai di R00 dan R01 pada tampilan Register Set
10. Tekan tombol RESET PROGRAM pada tab Program Control untuk memulai kembali program
dari instruksi yang pertama
11. Tekan tombol RESET ALL pada tampilan Register Set untuk menghapus isian nilai pada
Register
LATIHAN:
Program menghitung nilai (x*y)+z
1. Nilai xyz adalah tiga digit terakhir NIM mahasiswa
2. Buatlah sebuah program pada CPU-OS Simulator dan tambahkan instruksi-instruksi yang
diperlukan
3. Jalankan instruksi program satu per satu dengan menekan tombol STEP pada tab Program
Control
4. Amati setiap perubahan yang terjadi
5. Screenshot hasil perhitungan pada langkah terakhir serta jelaskan hasil pengamatan yang telah
dilakukan