Sistem Komputer: Perspektif Programmer (Edisi Global)
Kajian mendalam tentang bagaimana sistem komputer mengeksekusi program dan menyimpan informasi. Kursus ini menghubungkan pemrograman tingkat tinggi dengan perangkat keras di bawahnya, mencakup representasi tingkat mesin, arsitektur prosesor, hierarki memori, dan pemrograman konkuren.
Gambaran Umum Kursus
Ringkasan Konten
Garis besar mendalam tentang bagaimana sistem komputer mengeksekusi program dan menyimpan informasi. Kursus ini menghubungkan pemrograman tingkat tinggi dengan perangkat keras di bawahnya, mencakup representasi tingkat mesin, arsitektur prosesor, hierarki memori, dan pemrograman konkuren.
Kuasai seni pemrograman sistem dengan memahami antarmuka perangkat keras-perangkat lunak.
Pengarang: Randal E. Bryant, David R. O'Hallaron
Ucapan Terima Kasih: Didukung oleh mahasiswa dan instruktur dari kursus 15-213 di Universitas Carnegie Mellon. Ucapan terima kasih mencakup kontribusi dari Manasa S. dan Mohit Tahiliani.
Tujuan Pembelajaran
- Mengidentifikasi bagaimana informasi direpresentasikan menggunakan bit dan konteks dalam suatu sistem.
- Melacak empat tahap sistem kompilasi dari kode sumber hingga eksekusi.
- Mendeskripsikan struktur organisasi perangkat keras dan sifat hierarkis perangkat penyimpanan.
- Mengkonversi antara notasi desimal, biner, dan heksadesimal serta menjelaskan pengalamatan tingkat mesin (Endianness).
- Melakukan operasi tingkat bit dan logika dalam C serta memprediksi hasil geser aritmetika.
- Menganalisis enkoding bilangan bulat untuk mengidentifikasi kerentanan overflow dan kesalahan casting.
- Analisis pemetaan antara konstruksi C (loop, percabangan, prosedur) dan instruksi assembly x86-64.
- Dekonstruksi tumpukan runtime untuk menjelaskan bagaimana parameter dilewatkan, variabel lokal disimpan, dan pemanggilan rekursif dikelola.
- Evaluasi tata letak memori untuk struktur data heterogen dan menerapkan aturan penyesuaian untuk menghitung kebutuhan penyimpanan total.
- Menjelaskan Keadaan yang Dapat Dilihat Pemrogram Y86-64 dan mengkodekan/dekodekan instruksi menjadi urutan byte.