Czy przechodzą przez nie wszystkie kopiowane dane, czy istnieje inny, bardziej bezpośredni sposób?
Czy przechodzą przez nie wszystkie kopiowane dane, czy istnieje inny, bardziej bezpośredni sposób?
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.
interrupt
każdym razem, gdy polecenie IO dla block device
, na przykład pamięci USB, zostanie zakończone . Następnie procesor kontynuuje kopiowanie. W rzeczywistości procesor wykonuje ioctl
kod jądra, który współpracuje ze sterownikami urządzeń, aby skopiować chunks
(rzeczywistą nazwę) DMA
. Procesor obsługuje także asynchronous IO
i sync IO
nieco różni się od perspektywy wykonywania kodu jądra.
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:
dla każdego pliku (dev1); robić createfile (dev2); copyfilecontent (dev1, dev2); koniec;
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.