Zawsze wiadomo, że operacje na dyskach są powolne i znamy powody ich powolności. Pytanie brzmi więc, dlaczego musimy czekać na We / Wy lub dlaczego istnieje coś takiego jak IOWait itp.?
Mam na myśli, że zauważyłem, że kiedy wykonujesz jakieś zadania we / wy w tle, twój komputer zasadniczo działa znacznie wolniej, szczególnie zauważyłem, że kiedy używasz Linuksa, jeśli wykonujesz dłuższe zadania we / wy , system operacyjny staje się prawie bezużyteczny, dopóki nie zostanie ukończony.
Rzeczywiście znalazłem ten temat w artykule, jest też fragment:
Oczekiwanie we / wy wynosi 12,1%. Ten serwer ma 8 rdzeni (przez cat / proc / cpuinfo). Jest to bardzo blisko (1/8 rdzeni = 0,125)
Zasadniczo oznacza to, że spowalnia dużo komputer, dlaczego? Mam na myśli OK, teraz normalny komputer ma co najmniej 2 rdzenie, czasem 4 lub czasami mają więcej z powodu hiperwątkowania lub coś w tym rodzaju. Ale teraz pytanie brzmi: dlaczego procesor tak naprawdę musi tam pozostać, praktycznie nie robiąc nic poza czekaniem na IO? Mam na myśli podstawową ideę lub architekturę zarządzania procesem, teraz nie wiem, czy to system operacyjny jest za to odpowiedzialny, czy sprowadza się do części sprzętowej, ale procesor powinien mieć możliwość oczekiwania lub sprawdzaj regularnie, jednocześnie wykonując wiele innych zadań i wracając do procesu IO, gdy będzie gotowy. Rzeczywiście, jeśli to takie trudne zadanie, a procesor musiałby poczekać, dlaczego nie czy to jest bardziej wydajnie zarządzane przez sprzęt? Na przykład może istnieć rodzaj mini procesora, który po prostu na niego poczeka i dostarczy niewielką część danych do rzeczywistej jednostki centralnej, gdy tylko wróci do procesu, a więc proces zostanie powtórzony i nie mielibyśmy praktycznie poświęcić cały rdzeń procesora procesowi kopiowania danych ... A może to ja wymyślę tego rodzaju rzeczy i dostanę za to nagrodę Nobla? : S
Teraz w porządku, naprawdę kładę to teraz z perspektywy obserwatorów i tak naprawdę nie zagłębiłem się w ten temat, ale naprawdę nie rozumiem, dlaczego procesor musi pracować z prędkością HDD, podczas gdy może po prostu zrób coś innego i wróć na HDD, gdy będzie gotowy. Chodzi o to, aby nie przyspieszyć aplikacji, która potrzebuje operacji IO lub procesu kopiowania itp., Ale chodzi o to, aby minimalnie wpływać na zużycie procesora podczas wykonywania tej operacji, aby system operacyjny mógł wykorzystać ją do innych procesów i użytkownika nie musiałbym odczuwać ogólnego opóźnienia komputera podczas wykonywania operacji kopiowania ...