Добавил:
ИВТ Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лабачетыре

.docx
Скачиваний:
24
Добавлен:
19.10.2023
Размер:
353.68 Кб
Скачать

Задание 1.

  1. Посчитайте количество процессов, имеющих несколько потоков выполнения.

ps -eo nlwp,comm - выводит информацию о количестве потоков выполнения (поле nlwp) и имени команды (поле comm) для всех процессов.

awk '$1 > 1 { count++ } - использует awk для подсчета процессов, у которых количество потоков выполнения больше 1.

END { print "Количество процессов с несколькими потоками выполнения:", count }' - выводит общее количество таких процессов.

  1. Запустите top и настройте вывод полей с информацией о процессе следующим образом:

    • удалите поля VIRT, RES, SHR;

    • добавьте поле RUSER и сделайте так, чтобы это поле было показано после поля USER;

    • Нажмите клавишу f для перехода в режим настройки полей.

Для удаления полей VIRT, RES и SHR, установите курсор на соответствующем поле и нажмите клавишу d.

Для добавления поля RUSER, установите курсор на свободное поле, нажмите клавишу a и введите "RUSER" (без кавычек).

Переместите поле RUSER после поля USER, используя клавиши k (вверх) и j (вниз).

Нажмите клавишу q для выхода из режима настройки полей

Задание 2.

  1. В другом терминальном окне выполните команду passwd и оставьте ее в состоянии запроса текущего пароля.

  2. Перейдите в терминальное окно с top и выполните следующие действия:

    • выведите все процессы, для которых реальным пользователем является пользователь, которым Вы вошли в сеанс;

    • найдите процесс, запущенный командой passwd;

    • отправьте этому процессу сигналы 15 (SIGTERM), 2 (SIGINT), 3(SIGQUIT), 9(SIGKILL).

    • a. Чтобы вывести все процессы, для которых реальным пользователем является текущий пользователь, выполните команду top и нажмите клавишу U, затем введите имя пользователя. Ваш список процессов будет отфильтрован по имени пользователя.

b. Чтобы найти процесс, запущенный командой passwd, просто найдите его в списке процессов. Вы можете прокручивать список процессов с помощью клавиш k (вверх) и j (вниз).

c. Для отправки сигналов процессу, выделите его, нажмите клавишу k (если это необходимо) для установки маркера "Kill", а затем нажмите клавишу 15 (SIGTERM), 2 (SIGINT), 3 (SIGQUIT) или 9 (SIGKILL), в зависимости от того, какой сигнал вы хотите отправить.

Задание 3.

  1. Выполните команду vim ~/file.txt и нажмите Ctrl-Z.

  2. Выполните команду sleep 600, нажмите Ctrl-Z и выполните команду jobs

.

  1. Последнее задание (sleep 600) сделайте фоновым

.

Для выполнения команды sleep 600 в фоновом режиме, вы можете добавить амперсанд & в конце команды

Задание 4.

  1. Измените число NICE у задания (sleep 600), сделав его равным 10.

sudo renice 10 -p $(pidof sleep)

sudo: sudo - это команда, которая используется для выполнения другой команды с повышенными (администраторскими) правами. В данном случае, она используется, чтобы убедиться, что изменение приоритета процесса будет разрешено и выполнено с правами администратора.

renice: Это команда, используемая для изменения приоритета (числа NICE) процесса.

10: Это новое значение приоритета, которое вы устанавливаете для процесса sleep. В данном случае, приоритет равен 10.

-p: Это опция команды renice, которая указывает, что вы хотите изменить приоритет конкретного процесса. Следующим аргументом после -p должен идти PID (идентификатор процесса) процесса, для которого вы хотите изменить приоритет.

$(pidof sleep): Это выражение используется для получения PID процесса sleep. pidof - это команда, которая возвращает PID процесса по его имени (в данном случае, sleep). $(...) - это механизм командной подстановки, который выполняет команду pidof sleep и вставляет результат (PID процесса sleep) в команду renice.

Таким образом, вся команда выполняет следующее: она запускает renice с приоритетом 10 для процесса sleep, PID которого был определен с помощью pidof sleep. Это позволяет изменить при

  1. Проверьте, что число NICE у этого задания изменилось.

ps: Это утилита в Unix-подобных операционных системах, используемая для вывода информации о процессах.

pid,nice,cmd: Это список полей, которые мы хотим видеть в выводе. Каждое поле разделено запятой. В данном случае, мы просим вывести PID (идентификатор процесса), приоритет NICE и команду.

-C sleep: Это опция ps, которая фильтрует вывод, оставляя только процессы с определенным именем команды. В данном случае, мы фильтруем только процессы с именем команды "sleep".

-o: Это опция ps, которая позволяет настроить формат вывода информации о процессах. В данном случае, мы указываем формат вывода, который включает PID, приоритет NICE и команду.

Задание 5.

  1. Сделайте задание vim ~/file.txt активным и выйдите из редактора.

Нажмите клавишу Esc, чтобы перейти в режим команд.

Введите :wq и нажмите клавишу Enter. Это сохранит изменения и выйдет из Vim.

Для отправки сигнала 15 (SIGTERM) процессу sleep 600 и выполнения команды jobs,

  1. Отправьте сигнал 15 (SIGTERM) заданию sleep 600 и выполните команду jobs

sleep 600 &

.

Затем отправьте сигнал SIGTERM процессу sleep с использованием команды kill и PID процесса. Вы можете узнать PID процесса sleep, выполнив команду jobs:

jobs

kill -15 %1

Здесь %1 означает, что мы отправляем сигнал SIGTERM процессу, который имеет индекс 1 в списке задач (т.е., процессу sleep 600).

  1. Создайте перехватчик сигналов SIGINT и SIGQUIT внутри командного интерпретатора, который выводит сообщение «Сигнал заблокирован». (Используйте встроенную команду trap)

Затем отправьте сигнал SIGTERM процессу sleep с использованием команды kill и PID процесса. Вы можете узнать PID процесса sleep, выполнив команду jobs:

jobs

kill -15 %1

Здесь %1 означает, что мы отправляем сигнал SIGTERM процессу, который имеет индекс 1 в списке задач (т.е., процессу sleep 600).

работает

Соседние файлы в предмете Операционные системы