ข้อมูลทั้งหมดที่ฉันคัดลอกจะผ่านหรือมีวิธีอื่นที่ตรงกว่าหรือไม่
ข้อมูลทั้งหมดที่ฉันคัดลอกจะผ่านหรือมีวิธีอื่นที่ตรงกว่าหรือไม่
คำตอบ:
หนึ่งหากิน! ข้อมูลไม่ได้ผ่านซีพียูจริงๆ
ข้อมูลและข้อมูลสำคัญ 1 และ 0 ผ่านชิปเซ็ตหรือชิป I / O และหน่วยความจำเฉพาะอย่างไรก็ตามเมื่อคุณกำลังคัดลอกไฟล์คำสั่งในการทำสำเนาจะดำเนินการโดยตัวประมวลผล
ลองนึกภาพว่ามีวัตถุอยู่ข้างหน้าคุณ (ข้อมูล) แขนของคุณ (ชิปเซ็ต / ชิป I / O) และสมองของคุณ (ซีพียู) คุณไม่ได้ใช้สมองในการเคลื่อนย้ายวัตถุสมองของคุณจะวิ่ง "สั่ง" ไปที่แขนของคุณเพื่อเคลื่อนย้ายวัตถุ
interrupt
เมื่อใดก็ตามที่คำสั่ง IO ไปblock device
เช่นติด USB ได้เสร็จสมบูรณ์ CPU จะดำเนินการคัดลอกต่อไป ในความเป็นจริงสิ่งที่ซีพียูจะทำคือการทำงาน kernel- ioctl
รหัสที่เชื่อมต่อกับโปรแกรมควบคุมอุปกรณ์ในการคัดลอกchunks
(ชื่อจริง) DMA
มากกว่า ซีพียูยังจัดการasynchronous IO
และsync IO
แตกต่างจาก kernel-code-executing-perspective เล็กน้อย
ซีพียูต้องเรียกใช้โปรแกรมที่อ่านไฟล์ต้นฉบับแล้วเขียนไฟล์ปลายทาง
ข้อมูลที่อ่านจะ (ปกติ) อ่านในหน่วยความจำหลักเป็นหน่วย แต่ไม่ผ่านซีพียู
บนเมนเฟรมที่มีช่องอัจฉริยะซีพียูจะบอกช่องให้ทำสำเนา มีประสิทธิภาพมากและช่วยให้สามารถสำรองข้อมูลขนาดใหญ่ได้อย่างรวดเร็วด้วยค่าใช้จ่ายของ CPU เพียงเล็กน้อย
น่าเสียดายที่เราไม่มีช่องทางที่ชาญฉลาดดังนั้น CPU จึงมีลักษณะคล้ายกับ:
สำหรับแต่ละไฟล์ (dev1); ทำ CreateFile (dev2); copyfilecontent (dev1, dev2); จบ;
โอเวอร์เฮดของ CPU ไม่สูงมากเว้นแต่ว่าจะมีไฟล์ขนาดเล็กจำนวนมากโดยเฉพาะไฟล์จำนวนมากในไดเรกทอรีเดียวกัน การสร้างไฟล์มักจะมีค่าใช้จ่ายสูงสุด การคัดลอกดิสก์ไปยังดิสก์เพียงแค่ถือว่าดิสก์แต่ละไฟล์เป็นไฟล์ที่มีอยู่แล้ว