Co oznacza procent procesora?

11

Obserwuję proces procentowy wykorzystania mojego procesora. W jaki sposób proces wykorzystuje tylko 50% procesora? Czy proces nie wykorzystuje 100%, a następnie 0%, a następnie 100%? To nie tak, jak każda inna instrukcja to inny program.

Anthony D.
źródło
1
Czy przypadkiem masz podwójny procesor?
Zdecydowanie pytanie dla SuperUser.
Noldorin

Odpowiedzi:

16

Sonduje wyniki łącznie tylko raz na sekundę. Patrzysz, ile z ostatniej sekundy wykorzystał.

Jeśli widzisz procesor siedzący przez chwilę na poziomie 50%, prawdopodobnie dzieje się tak, że używa 100% jednego procesora w systemie z podwójną jednostką centralną.

Joel Coehoorn
źródło
4
„jeden rdzeń dwurdzeniowego systemu” - ... lub nawet pojedynczy procesor z „hyperthreading”.
@ChrisW: naprawiono.
Joel Coehoorn,
Procentowe użycie procesora jest często zgłaszane na 100% dla każdego procesora osobno, więc łączna ilość mocy procesora do wykorzystania w systemie dwurdzeniowym wynosi 200%, w czterordzeniowym 400% itd.
David Z
Nie ma ich w menedżerze zadań systemu Windows.
Joel Coehoorn,
11

Technicznie masz rację. W danym momencie procesor jest albo używany, albo nieużywany. Ale wyświetlenie tego na wykresie nie byłoby bardzo pomocne, więc wykres uśrednia użycie procesora przez pewien okres czasu, prawdopodobnie co sekundę.

Eric Petroelje
źródło
3

System operacyjny planuje proces na określony czas. Więc jeśli proces jest zaplanowany na (powiedzmy) 1ms na 10ms, wtedy będzie on zużywał 10% procesora.

Jest to trochę sprzeczne z intuicją, ponieważ (w systemie jednowątkowym, z pojedynczym procesorem) proces jest uruchomiony lub nie. tzn. używa 100% lub 0%. Wyświetlany procent jest mierzony w oknie czasowym i jest miarą przydzielania przedziałów czasowych przez system operacyjny do uruchomienia.

Pamiętaj, że twój proces nie przyczyni się do tego, jeśli uzyskujesz dostęp do I / O. Więc jeśli wykonujesz ogromne obliczenia, zarejestrujesz się w 100% (zakładając, że nic więcej nie działa). Jeśli następnie zaczekasz na dostęp do pakietu sieciowego / dysku itp., Twój procesor spadnie, mimo że proces nadal działa.

Brian Agnew
źródło
2

Na bardzo niskim poziomie masz rację. W dowolnym momencie procesor albo wykonuje instrukcję dla danego procesu, albo tak nie jest.

Ale Twój system operacyjny znajduje się pomiędzy procesami a procesorem, dzięki czemu dzielą się czasem. Wyświetlany procent to procent czasu ostatniego przetwarzania, jaki system operacyjny przyznał temu procesowi.

tim
źródło
1

Opiera się na średnim czasie. Mimo że wszystkie wątki mogą mieć tę samą paczkę czasu procesora (na podstawie priorytetu), wątki mogą po prostu powiedzieć „dziękuję, ale jestem bezczynny” i przekazać swoją kolej do następnego wątku. Właśnie dlatego programy nie zawsze używają tego samego% czasu, a większość programów zużywa 0% procesora, a programy, które naprawdę potrzebują procesora, mogą same sobie zająć prawie 100% czasu.

Dlaczego ogranicza się do 50%? Prawdopodobnie masz dwa rdzenie procesora i używa tylko jednego.

Lub, jak sugeruje, wykorzystuje hipertekst, ale nie wiem, jak ten zachowuje się dokładnie.

Havenard
źródło
0

Twój program może wykonywać wiele operacji we / wy (dyskowe lub sieciowe operacje odczytu / zapisu). Dzięki temu program byłby zajęty, ale nie wymagałby czasu procesora.

Mike Two
źródło
0

Wykorzystanie systemu jest próbkowane i uśredniane, co jest jedyną rozsądną rzeczą do zrobienia.

Np. Zapis czasu, przez jaki przechowywany jest proces / wątek uruchomiony przez 1 sekundę. Jeśli spędził 1 sekundę na procesorze, to 100% procesora (lub 50%, jeśli masz 2 procesory itd.), Jeśli spędził 100 ms, to 10% wykorzystania procesora.

nos
źródło