İşlemleri bir USB diskten diğerine kopyaladığımda işlemci ne yapıyor?


Yanıtlar:


31

Zor biri! Veriler gerçekte CPU'dan geçmiyor.

Veriler ve kritik 1'ler ve 0'lar yonga setinden veya özel G / Ç çiplerinden ve belleğinden geçer, ancak dosyaları kopyalarken, kopyalama yapma komutu işlemci tarafından çalıştırılır.

Önünüzde bir veri (veri), kollarınız (Chipset / I / O çipi) ve beyninizin (CPU) olduğunu hayal edin. Aslında nesneyi hareket ettirmek için beyninizi kullanmazsınız, beyniniz nesneyi hareket ettirmek için kollarınıza "komutu" uygular.


1
Güzel metafor, @Wil.
Shinrai

4
@Shinrai - her ne kadar psişiklerse ayağa kalkmazlar! Nesneyi beynimle hareket ettirmek isterim!
William Hilsum

DMA veya başka bir şey CPU'yu atlamadı mı?
o0 '.

2
DMA CPU'ya, vererek yardımcı interruptbir bir IO komut zaman block deviceböyle bir USB bellek gibi gelmiştir tamamlandı . CPU daha sonra kopyalamayı yürütmeye devam eder. Aslında, CPU'nun yaptığı şey ioctlkopyalanacak aygıt sürücülerine chunks(gerçek ad) arabirim oluşturan çekirdek kodunu çalıştırmaktır DMA. CPU ayrıca bir çekirdek kodu yürütme perspektifinden işler asynchronous IOve sync IObiraz farklıdır.
Henrik

1
Ben temsilcisi için yapmıyorum, sadece bu siteyi seviyorum ve insanlara yardım! Gerçekten iki cümle olarak daha iyi olduğunu sanmıyorum, ama umarım şimdi daha iyidir .... Eğer hoşlanmıyorsanız, daha düşük üyeler için yeni bir şey olduğunu düşünüyorum, kendiniz düzenlemeyi deneyin!
William Hilsum

5

CPU, kaynak dosyayı okuyan ve sonra hedef dosyayı yazan programı çalıştırmalıdır.

Okunan veriler (genellikle) parçalar halinde ana belleğe okunur, ancak aslında CPU'dan geçmez.


4

Akıllı kanallara sahip bir ana bilgisayarda cpu, kanallara sadece kopyayı yapmasını söylerdi. Çok verimlidir ve CPU ek yükü ile hızlı büyük yedeklemeler sağlar.

Ne yazık ki, akıllı kanallarımız yok, bu yüzden CPU aşağıdakine benzer bir döngüye giriyor:

her dosya için (dev1); yapmak
   CreateFile (dev2);
   copyfilecontent (dev1, dev2);
son;

Çok fazla küçük dosya, özellikle aynı dizinde çok fazla dosya olmadığı sürece CPU yükü o kadar yüksek değildir. Dosya oluşturma işlemi genellikle en yüksek ek yüke sahiptir. Diskten diske kopyalama, her diske önceden var olan bir dosya gibi davranır.


Akıllı kanallar nedir? Bunun için bir sahte kod snippet'i gösterebilir misiniz?
Henrik

Akıllı kanallar, ana karelerde G / Ç işleyen donanım aygıtlarıdır. Ben kendi başlarına sınırlı işlevsellik mikrobilgisayarlar bekliyoruz. Kodlarının neye benzediğini bilmiyorum. Ana bilgisayarlar 100'lerin çevrimiçi kullanıcılarını 8MB bellekle işlediğinde çok önemliydi. Commodore bilgisayarlarının disk sistemlerinde ikinci bir CPU'ya sahip olduğuna inanıyorum. Benzer bir işlevselliğe sahip olabilirler.
BillThor
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.