Apa yang terjadi saat kita menjalankan program "Hello World", banyak detail harus dihilangkan di sini, dan akan ditambahkan nanti, tetapi untuk saat ini kita akan puas dengan uraian keseluruhan ini.
Awalnya, program shell menjalankan instruksinya, menunggu kita memasukkan perintah. Saat kita memasukkan string "./hello" pada keyboard, program shell membaca karakter ke register satu per satu, dan kemudian menyimpannya di memori, seperti yang ditunjukkan pada Gambar 1-5.
Saat kita menekan tombol Enter pada keyboard, program shell mengetahui bahwa kita telah selesai mengetik perintah tersebut. Kemudian shell menjalankan serangkaian instruksi untuk memuat file hello yang dapat dieksekusi. Instruksi ini menyalin kode dan data dalam file hello target dari disk ke memori utama. Data tersebut menyertakan string karakter "hello, world \ n" yang nantinya akan menjadi output.
Dengan menggunakan teknologi direct memory access (DMA), data dapat langsung masuk dari disk ke memori utama tanpa melalui prosesor. Langkah ini ditunjukkan pada Gambar 1-6.
Setelah kode dan data dalam file target hello dimuat ke dalam memori utama, prosesor mulai menjalankan instruksi bahasa mesin dalam program utama program hello. Petunjuk ini menyalin byte dalam string "hello, world \ n" dari memori utama ke file register, lalu dari file register ke perangkat tampilan, dan terakhir ditampilkan di layar. Langkah ini ditunjukkan pada Gambar 1-7.
Contoh sederhana ini mengungkapkan masalah penting, yaitu sistem menghabiskan banyak waktu untuk memindahkan informasi dari satu tempat ke tempat lain. Instruksi mesin dari program hello awalnya disimpan di disk. Ketika program dimuat, mereka disalin ke memori utama; ketika prosesor menjalankan program, instruksi disalin dari memori utama ke prosesor. Demikian pula, string data "hello, world / n" awalnya ada di disk, kemudian disalin ke memori utama, dan terakhir disalin dari memori utama ke perangkat tampilan. Dari sudut pandang programmer, duplikasi ini berlebihan, memperlambat pekerjaan "sebenarnya" dari program. Oleh karena itu, salah satu tujuan utama perancang sistem adalah membuat operasi penyalinan ini selesai secepat mungkin.
Menurut prinsip mekanis, perangkat penyimpanan yang lebih besar bekerja lebih lambat daripada perangkat penyimpanan yang lebih kecil, dan biaya perangkat cepat jauh lebih tinggi daripada perangkat kecepatan rendah serupa. Misalnya, disk drive pada sistem tipikal mungkin 1.000 kali lebih besar dari memori utama, tetapi untuk prosesor, biaya waktu membaca kata dari disk drive 10 juta kali lebih besar daripada biaya membaca dari memori utama. .
Demikian pula, file register pada umumnya hanya menyimpan beberapa ratus byte informasi, sedangkan memori utama dapat menyimpan miliaran byte. Namun, prosesor membaca data dari file register hampir 100 kali lebih cepat daripada membaca dari memori utama. Yang lebih merepotkan adalah dengan kemajuan teknologi semikonduktor selama bertahun-tahun, jarak antara prosesor ini dan memori utama terus meningkat. Mempercepat prosesor jauh lebih mudah dan lebih murah daripada mempercepat memori utama.
Menanggapi perbedaan antara prosesor dan memori utama, perancang sistem mengadopsi perangkat penyimpanan yang lebih kecil dan lebih cepat, yang disebut memori cache (memori cache, disebut sebagai cache atau cache berkecepatan tinggi), sebagai area perakitan sementara untuk menyimpan. Informasi yang mungkin dibutuhkan prosesor dalam waktu dekat. Gambar 1-8 menunjukkan memori cache dalam sistem tipikal.
Kapasitas cache L1 pada chip prosesor bisa mencapai puluhan ribu byte, dan kecepatan aksesnya hampir secepat file register. Cache L2 yang lebih besar dengan kapasitas ratusan ribu hingga jutaan byte dihubungkan ke prosesor melalui bus khusus. Waktu proses untuk mengakses cache L2 adalah 5 kali lebih lama dari waktu untuk mengakses cache L1, tetapi ini masih 5 hingga 10 kali lebih cepat daripada waktu untuk mengakses memori utama. Cache L1 dan L2 diimplementasikan menggunakan teknologi perangkat keras yang disebut memori akses acak statis (SRAM). Sistem yang lebih baru dan lebih kuat bahkan memiliki tiga tingkat cache: L1, L2, dan L3. Sistem dapat memperoleh memori yang besar, dan kecepatan aksesnya juga sangat cepat, alasannya adalah prinsip lokalitas cache yang digunakan, yaitu program memiliki kecenderungan untuk mengakses data dan kode di area lokal. Dengan mengizinkan data yang sering diakses disimpan di cache, sebagian besar operasi memori dapat diselesaikan di cache cepat.
Salah satu kesimpulan penting yang diambil dari buku ini adalah bahwa pemrogram aplikasi yang menyadari keberadaan memori cache dapat menggunakan cache untuk meningkatkan kinerja program mereka dengan urutan besarnya. -Artikel ini dikutip dari "Pemahaman mendalam tentang sistem komputer (edisi ke-3 dari buku asli)"
Buku yang direkomendasikan
"Pemahaman mendalam tentang sistem komputer"
(Edisi ketiga dari buku asli)
ISBN : 978-7-111-54493-7
Penulis : Randall E. Bryant
David R. O'Halaron
Penetapan harga : 139.00
tanggal penerbitan : 2016/11
- BDTC2016 Big Data Security and Privacy Protection Forum 6 dosen mengumumkan, siapa yang paling Anda nantikan?
- 9 ruas jalan rawan kabut massal dan 3 ruas jalan berbahaya menuruni bukit-bagian jalan rawan kecelakaan musim dingin Beijing 12 diumumkan
- Dunia ini kompleks, apakah rasa memiliki Anda menjadi semakin spesifik? | 100 masalah besar dalam hidup
- 93,6% hunian layar! Layar ganda Nubia X dirilis: sidik jari di kedua sisi, kamera depan dan belakang menjadi satu