Czy przechodzą przez nie wszystkie kopiowane dane, czy istnieje inny, bardziej bezpośredni sposób?
cpu
file-transfer
Felix Dombek
źródło
źródło
Odpowiedzi:
Podstępny! Dane tak naprawdę nie przechodzą przez procesor.
Dane oraz krytyczne jedynki i jedynki przechodzą przez mikroukład lub dedykowane układy I / O i pamięć, jednak podczas kopiowania plików procesor uruchamia polecenie wykonania kopii.
Wyobraź sobie, że masz przed sobą przedmiot (dane), twoje ramiona (chipset / układ we / wy) i mózg (procesor). W rzeczywistości nie używasz mózgu do poruszania obiektem, mózg uruchamia „rozkaz” na twoich ramionach, aby poruszać przedmiotem.
źródło
interrupt
każdym razem, gdy polecenie IO dlablock device
, na przykład pamięci USB, zostanie zakończone . Następnie procesor kontynuuje kopiowanie. W rzeczywistości procesor wykonujeioctl
kod jądra, który współpracuje ze sterownikami urządzeń, aby skopiowaćchunks
(rzeczywistą nazwę)DMA
. Procesor obsługuje takżeasynchronous IO
isync IO
nieco różni się od perspektywy wykonywania kodu jądra.Procesor musi uruchomić program, który czyta plik źródłowy, a następnie zapisuje plik docelowy.
Dane, które są odczytywane (zwykle) będą wczytywane do głównej pamięci fragmentami, ale tak naprawdę nie przechodzą przez procesor.
źródło
Na komputerze mainframe z inteligentnymi kanałami procesor po prostu kazałby kanałom wykonać kopię. Bardzo wydajny i pozwala na szybkie tworzenie dużych kopii zapasowych przy niewielkim obciążeniu procesora.
Niestety nie mamy inteligentnych kanałów, więc procesor kończy się w pętli podobnej do:
Obciążenie procesora nie jest tak wysokie, chyba że w tym samym katalogu znajduje się wiele małych plików, zwłaszcza wiele plików. Operacja tworzenia pliku zwykle ma najwyższy narzut. Kopiowanie z dysku na dysk traktuj każdy dysk jako wcześniej istniejący plik.
źródło