Системні процеси

    From KDE UserBase Wiki
    Revision as of 12:30, 2 February 2013 by Yurchor (talk | contribs)
    (diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

    Вступ

    Системні процеси — це щось схоже на Task Manager у Microsoft Window, Activity Monitor у Apple Mac OS або Монітор системи у Gnome. Вікно цієї програми відкривається у відповідь на натискання комбінації клавіш Ctrl+Esc або піктограми «Системних процесів», , у вікні KRunner (Alt-F2).

    У вікні буде показано список поточних запущених процесів, а також дані щодо використання процесора, пам’яті та іншими даними.



    Загальні зауваження

    Майже для всіх елементів графічного інтерфейсу передбачено підказки. Достатньо навести вказівник миші на елемент інтерфейсу і програма покаже вікно з докладними відомостями. Крім того, використано функціональні можливості підказки «Що це?». Задіяти її можна натисканням кнопки . На панелі підказки буде показано потрібні вам дані.

    Наприклад, якщо ви наведете вказівник та стовпчик використання процесора, ви побачите дані щодо різних аспектів процесу, зокрема загального часу виконання програми.



    Чому моя система працює так повільно?

    Робота системи може значно сповільнитися через те, що певний процес (програма) потребує всіх обчислювальних можливостей комп’ютера або всього об’єму пам’яті комп’ютера.

    За типових налаштувань процеси, власником яких є поточний користувач системи і які використовують найбільше потужностей процесора або об’єму пам’яті, перебуватимуть на верхівці списку. Це означає, що всі програми з помилковою поведінкою можна буде легко помітити у списку. Ось приклад:



    У нашому прикладі, Firefox припинив відповідати на запити системи і використовує 99% процесора. Щоб завершити роботу процесу з помилковою поведінкою, клацніть на позначці процесу, щоб вибрати його, а потім натисніть кнопку Завершити процес…. У відповідь система надішле програмі запит на припинення роботи.

    Не можу вбити процес — він просто відмовляється припиняти роботу!

    На щастя, такі ситуації виникають не часто, але все ж іноді ви можете з ними зустрітися. Якщо робота процесу перейшла у помилковий режим, він може відмовитися відповідати на запити, отже доведеться зупинити його роботу у примусовому режимі негайно. Виконання цієї операції може призвести до того, що будь-які документи, які було відкрито у програмі, але не збережено, буде втрачено. Щоб надіслати подібний запит, наведіть вказівник миші на відповідний пункт, клацніть правою кнопкою миші і скористайтеся пунктом Надіслати сигнал, потім Вбити (KILL).

    Іноді не вдається припинити роботу процесу навіть у наведений вище спосіб або система не надає вам такої можливості. Таке трапляється, наприклад, для процесу vuze з певними версіями ядра. Якщо процес або одна з його ниток спричинила до вияву вади ядра, програмі не вдасться виконати певну операцію ядра, а завершити її роботу буде неможливо. Часто у такої проблеми немає жодного простого рішення, окрім перезавантаження системи.

    Процеси-зомбі

    Процеси, які перейшли у стан зомбі, вже мертві, отже їх не можна вбити. Система виконує їх, доки їх не припинить батьківський процес (зазвичай для цього потрібно небагато часу). Поява процесу-зомбі, зазвичай, означає, що батьківський процес припинив відповідати на запити.

    Визначення вікна процесу, який слід вбити

    Якщо вам потрібно вбити певне вікно, програма якого не відповідає на запити, просто натисніть комбінацію клавіш Ctrl+Alt+Esc. Вказівник миші має перетворитися на зображення черепа з перехрещеними кістками. Наведіть його на вікно програми, роботу якої слід завершити, і клацніть лівою кнопкою, щоб вбити програму. Зауважте, що роботу програми буде припинено негайно, отже ви можете втратити всі незбережені дані.

    Чим відрізняється вміст стовпчиків «Пам’ять» і «Спільна пам’ять»?

    У стовпчику «Пам’ять» показано об’єм оперативної пам’яті (RAM), яку процес використовує лише для власних потреб. У стовпчику «Спільна пам’ять» показано об’єм пам’яті, яку програма поділяє або може поділяти з іншими програмами. Наприклад, бібліотеки KDE використовуються всіма програмами KDE, отже завантажуються у пам’ять лише один раз.

    Технічні відомості

    У стовпчику «Пам’ять» показано значення для VmRSS - Shared, отже, загалом кажучи, ці значення менші за значення, які показує програма top. До цього значення не включено пам’ять зарезервовану для сторінок вводу-виводу і не включає пам’ять, використану сервером X, для зберігання будь-яких растрових зображень, використаних програмою. Це значення часто називають розміром Unique RSS або URSS.

    Значення стовпчика «Спільна пам’ять» збігається зі значенням стовпчика SHR у top, отже є дещо неточним. Значення є наближенням значення, показаного у полі використання спільної пам’яті у вікні Докладні відомості щодо пам'яті.

    Під час побудови списку процесів дані видобуваються з /proc/pid/stat, а під час визначення даних Докладних відомостей щодо пам'яті/proc/pid/smaps.

    Як переглянути докладніші відомості щодо використання процесом пам’яті?

    У KDE 4.4 можна вибрати процесу у списку, навести на його пункт вказівник, клацнути правою кнопкою миші і вибрати пункт Докладні відомості щодо пам’яті. У відповідь буде показано таке:



    Чому значення у вікні «Докладні відомості щодо пам’яті» не збігаються зі значеннями у списку процесів?

    Для визначення значень у «Системних процесах» використано наближені дані. У вікні Докладні відомості щодо пам’яті вказано точніші дані.

    Чому процес «Xorg» використовує так багато пам’яті?

    Це процес, який містить всі інші процеси програм. Дані про використання ним пам’яті включають дані щодо використання пам’яті для зберігання всіх растрових зображень (зображень) з програм.

    Загалом кажучи, вам не слід перейматися щодо використання пам’яті процесом xorg.

    Як мені визначити PID процесу?

    Якщо вам потрібно визначити PID певного процесу, наведіть вказівник миші на пункт назви процесу. Значення PID буде показано на панелі підказки.

    Якщо ви бажаєте переглянути PID всіх процесів, наведіть вказівник миші на заголовок стовпчиків таблиці процесів, клацніть правою кнопкою миші і побачите таке меню:


    Позначте пункт Показати стовпчик «PID».

    Чи можна у «Системних процесах» переглянути дані щодо використання жорсткого диска, подібно до iotop?

    Наведіть вказівник миші на рядок заголовків стовпчиків, клацніть правою кнопкою миші і виберіть пункт Показати колонку ВВ читання, а потім зробіть те саме для Показати колонку ВВ запису. Програма покаже об’єм даних, які надсилаються з оперативної пам’яті на диск або вивантажуються з диска в оперативну пам’ять.

    Клацанням правою кнопкою миші на заголовку стовпчика ви можете вказати програмі, слід показувати справжній об’єм даних, які записуються на диск або читаються з диска (типова поведінка), чи слід показувати об’єм даних, які програма надсилає або отримує з певного файла.

    Дані запитів та справжні дані можуть не збігатися. Наприклад, якщо дві програми виконують читання даних з одного файла, операційна система не виконуватиме читання з диска двічі: дані буде прочитано один раз з незначним періодом зберігання їх у операційній пам’яті. Подібна ж ситуація виникає, коли один процес записує дані до файла, але інший процес потім переписує той самий файл: немає сенсу записувати першу версію файла на диск, — записується лише остання версія.

    Чому пункти деяких процесів показано сірим кольором?

    Для прикладу, розглянемо процес xclock:



    Це означає, що процес вже завершив роботу. Його показано як вимкнений просто для зручності, щоб ви могли бачити процеси, які завершили роботу. Дані щодо використання процесора, пам’яті тощо відповідають останнім даним на час, коли було розпочато дію з завершення роботи процесу. Завершений процесор не використовує жодних ресурсів (ні процесора, ні пам’яті тощо).

    У списку показано процеси, власником яких є root і які зовсім не споживають пам’яті. Для чого вони?

    Це потоки виконання ядра. Вони існують лише в межах ядра для уможливлення одночасного виконання декількох завдань.

    У списку їх показано, оскільки вони можуть спричиняти значне навантаження на процесор. Наприклад, у разі значного навантаження та помилок у драйверах мережева картка може створювати багато переривань, що призведе до високого навантаження на процесор у потоці ядра ksoftirqd.

    Крім того, високе навантаження на процесор у kjournald може означати те, що для диска не увімкнено передавання даних DMA.

    Чому у списку так багато процесів?

    У звичайній системі працює від 150 до 200 процесів з назвами, які можуть видатися дивними. Варто було б створити сторінку вікі з коротким описом кожного з таких процесів, але цього ніхто ще не зробив.

    Чому OpenOffice.org не показано у списку програм з графічним інтерфейсом?

    До версії 3.3 у OpenOffice.org не було належним чином реалізовано стандарти роботи з вікнами. Зокрема програма не встановлювала для власних вікон атрибут _NET_WM_PID, який пов’язував вікна з процесами. Цю ваду виправлено у OpenOffice.org 3.3.

    Чому дані gvim, як графічної програми, такі дивні?

    Це помилка у програмі GVim. У GVim стандарти побудови вікон реалізовано з неналежним чином. Зокрема, програма під час запуску створює новий процес, щоб уникнути блокування оболонки, звідки її було запущено, але встановлює властивість _NET_WIN_PID до процесу з попереднім ідентифікатором PID. Розробники програми знають про цей недолік, але досі його не виправили.