Получите статистику загрузки ЦП из программы C

Мы можем отличить UNIX товарный знак от Unix кодовая база.

AT&T

Unix был первоначально разработан в Bell Labs, принадлежавшей AT&T. Эта команда Unix стала Unix System Laboratories (USL) AT&T и произвела System V Unix (Римская цифра для пять) или SysV, если коротко. Калифорнийский университет в Беркли (UCB) также лицензировал Unix для академического использования, их Computer Systems Research Group (CSRG) позже внесла много важных изменений и дополнений (особенно TCP/IP) в их Распределении программного обеспечения Беркли (BSD), которые были позже включены во многих потомков продвижения Unix к BSD по сравнению с разделением SysV. В конечном счете много изменений BSD было бэкпортировано в SysV (который мы можем считать основной "наследственный Unix" кодовой базой).

По пути многие различные компании лицензировали эту кодовую базу (на различных этапах в, он - разработка), и использовал его в качестве основания их собственных операционных систем Unix - AIX, HPUX, IRIX, Солярис, Ultrix и десятки других.

Novell (Attachmate)

USL был куплен Novell. В это время наследственный код Unix был известен как выпуск 4 System V Unix - или SVR4, если коротко. Novell назвал их продукт Unixware для дополнения названия их традиционной сети Сетевое обеспечение ОС. Novell был Приобретен Attachmate.

Операция Санта-Круза

Novell в конечном счете продал их бизнес Unix старому лицензиату SVR3.2 Операция Санта-Круза (SCO), основной бизнес которой до той точки продавал продукт под названием OpenServer, который был основан на Unix SVR3.2. Novell (так как купленный Attachmate) все еще владеет некоторыми правами ‡ к Unix, но не делает никакой работы над исходным кодом.

Кальдера / Группа Sco / TSG Group Inc

Операция Санта-Круза позже продала их бизнес Unix компании Linux Кальдера, кто позже переименовал себя к SCO Group (иногда называемый новой SCO или SCOG) и у кого был катастрофический отказ продвижения лидерства к банкротству главы 11 и продажи бизнеса Unix к UnXis, бизнес, сформированный с этой целью. Впоследствии SCO Group была реорганизована в TSG Group Inc и TSG Operations Inc. У них нет роли относительно обслуживания наследственной кодовой базы Unix. В августе 2012 TSG Group Inc преобразовала в банкротство главы 7.

UnXis / Xinuos

Таким образом, теперь UnXis ответственны за маркетинг и разработку/поддержание Unixware - наследственная кодовая база Unix AT&T. Поскольку Операция Санта-Круза (старый SCO) первоначально портированный † Unix на x86 платформу, я верю x86, и x86_64 являются единственными целевыми платформами, которые непосредственно поддерживают UnXis.

12 июня 2013 UnXis объявил, что был переименован в Xinuos.

Microsoft лицензировала Unix и портировала его к 16-разрядному Zilog Z8000 - старая SCO купила Xenix от них и портировала его к 16-разрядным 8 086 архитектуре (используемый IBM для их исходного IBM PC). Старый SCO позже портировал SVR3.2 к x86, поскольку 32-разрядный SCO-Unix позже переименовал OpenServer

права Novell оспаривались, несколько бесполезно, SCO Group (теперь названный TSG Group Inc), несостоятельные остатки старой компании Linux Кальдера. Еще не ясно, прекратила ли TSG Group Inc наконец этот и связала тяжбу в результате 30 августа 2011 решений суда против них

8
08.08.2015, 11:25
2 ответа

Вы хотите считать первые несколько строк /proc/stat. Необходимо будет считать его дважды, измеренное время независимо, и вычесть первый набор чисел от второго. Строки похожи на это:

cpu  1526724 408013 600675 541100340 2861417 528 14531 0 0 0
cpu0 344507 77818 251244 134816146 1119991 324 13283 0 0 0
cpu1 502614 324065 179301 133991407 1631824 136 906 0 0 0
cpu2 299080 3527 79456 136144067 103208 59 255 0 0 0
cpu3 380521 2602 90672 136148719 6393 7 86 0 0 0
intr 2111239193 344878476 16943 ...

Первая строка является совокупной для всех ядер. Следующие строки показывают каждое ядро. Когда Вы видите строку, которые запускаются с intr, Вы знаете, чтобы прекратить анализировать.

Каждое число является количеством времени, которое ЦП провел в конкретном состоянии. Единицы обычно являются сотыми частями секунды. Поля user, nice, system, idle, iowait, irq, softirq, steal, guest, и guest_nice.

Авторитетная документация является, конечно, исходным кодом. Если у Вас есть копия удобного источника ядра Linux, посмотрите на fs/proc/stat.c, особенно show_stat функция.

5
27.01.2020, 20:12
  • 1
    Вы знаете, в какой частоте обновляется proc/stat? как один раз в 1 мс или что-то, спасибо. –  0xFF 29.09.2011, 23:19
  • 2
    Они не реальные файлы. Их содержание вычисляется при открытии их. –  David Schwartz 30.09.2011, 03:13

Существует некоторый пример в сети, которая показывает, как читать /proc/pid/stat в C.

Вы могли читать utime или stime значения в два отличных момента и вычисляют желаемую статистику загрузки ЦП. (Я предполагаю top использование это необработанные данные также.)

(Я забыл: это - конкретный Linux.)

3
27.01.2020, 20:12

Теги

Похожие вопросы