Apakah semua data yang saya salin akan melalui itu atau ada cara lain yang lebih langsung?
cpu
file-transfer
Felix Dombek
sumber
sumber
Jawaban:
Yang rumit! Data tidak benar-benar melalui CPU per se.
Data dan 1's kritis dan 0's pergi melalui chipset, atau chip I / O dan memori khusus, namun, ketika Anda menyalin file, perintah untuk melakukan copy dijalankan oleh prosesor.
Bayangkan memiliki objek di depan Anda (data), lengan Anda (chipset / chip I / O), dan otak Anda (CPU). Anda tidak benar-benar menggunakan otak Anda untuk memindahkan objek, otak Anda menjalankan "perintah" ke lengan Anda untuk memindahkan objek.
sumber
interrupt
kapan saja perintah IO keblock device
, seperti USB stick, telah selesai . CPU kemudian melanjutkan eksekusi penyalinan. Faktanya, apa yang dilakukan CPU adalah menjalankanioctl
kode- kernel yang berinteraksi dengan driver perangkat untuk menyalinchunks
(nama sebenarnya)DMA
. CPU juga menanganiasynchronous IO
dansync IO
sedikit berbeda dari perspektif kernel-code-executing.CPU harus menjalankan program yang membaca file sumber dan kemudian menulis file tujuan.
Data yang dibaca akan (biasanya) dibaca ke dalam memori utama dalam potongan, tetapi tidak benar-benar melewati CPU.
sumber
Pada mainframe dengan saluran cerdas, cpu hanya akan memberitahu saluran untuk melakukan penyalinan. Sangat efisien dan memungkinkan untuk backup besar cepat dengan sedikit overhead CPU.
Sayangnya, kami tidak memiliki saluran cerdas sehingga CPU berakhir dalam satu lingkaran yang mirip dengan:
Overhead CPU tidak setinggi itu kecuali ada banyak file kecil, terutama banyak file dalam direktori yang sama. Operasi pembuatan file biasanya memiliki overhead tertinggi. Salinan ke disk hanya memperlakukan setiap disk sebagai file yang sudah ada sebelumnya.
sumber