- •Оглавление
- •1 Создание и конфигурирование системы в среде Oracle Virtual Box
- •2 Изучение процессов и потоков в Linux
- •2.4 Контрольные вопросы
- •3 Изучение возможности командной оболочки и способы применения основных команд и утилит ос Windows
- •3.3.5. Изучение команды Copy
- •3.3.6. Изучение команды Xсopy
- •3.3.7. Изучение команды Move
- •Move [{/y|/-y}] [источник] [результат], где
- •3.3.8. Изучение команды Replace
- •Replace [диск1:][путь1] имя_файла [диск2:][путь2] [/a] [/p] [/r] [/w] Replace [диск1:][путь1] имя_файла [диск2:][путь2] [/p] [/r] [/s] [/w] [/u],
- •3.3.9. Изучение команды Ren (Rename)
- •Ren [диск:][путь] имя_файла1 имя_файла2,
- •3.3.10. Изучение команд Del (Delete) и Erase
- •Del [диск:][путь] имя_файла [...] [/p] [/f] [/s] [/q] [/a[:атрибуты]] Erase [диск:][путь] имя_файла [...] [/p] [/f] [/s] [/q] [/a[:атрибуты]]
- •3.3.11. Изучение команды Dir
- •Dir [диск:][путь][имя_файла] [...] [/p] [/q] [/w] [/d] [/a[[:]атрибуты]][/o[[:]порядок_сортировки]] [/t[[:]поле_сортировки]] [/s] [/b] [/l] [/n] [/X] [/c] [/4]
- •3.3.12. Изучение команды Cd (ChDir)
- •Cd [[/d] [диск:][путь] [..]] [[/d] [диск:][путь] [..]], Chdir [[/d] [диск:][путь] [..]] [[/d] [диск:][путь] [..]],
- •3.3.13. Изучение команды Md (MkDir)
- •Mkdir [диск:]путь, Md [диск:]путь,
- •3.3.14. Изучение команды Rd (RmDir)
- •Rmdir [диск:]путь [/s] [/q], Rd [диск:]путь [/s] [/q],
- •3.4 Практические навыки
- •4 Основы работы в среде Windows xp
- •4.4 Контрольные вопросы:
- •4.5 Практические навыки:
- •5 Сетевая установка ос Windows
- •Контрольные вопросы
- •6 Создание и управление учетными записями пользователей
- •6.3.1 Активация гостевой учетной записи
- •6.3.2 Отключение гостевой учетной записи
- •6.3.3 Настройка консоли ммс
- •6.3.4 Создание локальной учетной записи пользователя
- •Контрольные вопросы
- •6.5 Практические навыки
- •7 Использование реестра
- •7.4 Контрольные вопросы
- •8 Управление дисковыми квотами
- •8.4 Контрольные вопросы
- •8.5 Практические навыки
- •9 Использование дисковых утилит
- •9.3.1. Дефрагментация дисков
- •9.3.2. Использование утилиты Проверка диска
- •9.3.3. Использование утилиты Очистка диска
- •9.4 Контрольные вопросы
- •9.5 Практические навыки
- •10 Установка и настройка сетевых протоколов
- •10.4 Контрольные вопросы
- •10.5 Практические навыки
- •11 Настройка параметров безопасности системы
- •11.4 Контрольные вопросы
- •12 Архивация и восстановление данных
- •12.4 Контрольные вопросы
- •Архив в формате zip
- •Архив в формате rar
- •13 Изучение возможностей утилиты cmd
- •14.4 Практические навыки
- •14 Создание командных файлов
- •15 Изучение графического интерфейса Linux. Работа с поисковой системой
- •15.4 Контрольные вопросы
- •Внешний вид
- •Главное меню kde
- •Центр управления kde
- •Настройка панели и значков на рабочем столе
- •16 Основные команды работы с каталогами и файлами
- •16.1 Цель работы
- •16.2 Приборы и оборудование
- •16.2.1 Пэвм типа ibm pc
- •16.3 Порядок выполнения работы
- •16.4 Контрольные вопросы
- •16.5 Практические навыки
- •Основные команды работы с каталогами
- •Управление файлами
- •Генерация имен файлов и каталогов (Pathname Expansion)
- •17 Создание ссылок на файлы
- •17.4 Контрольные вопросы
- •17.5 Практические навыки
- •Ссылки на файлы
- •18 Назначение и изменение прав доступа к файлам
- •18.4 Контрольные вопросы
- •18.5 Практические навыки
- •19 Управление пользователями и группами
- •19.4 Контрольные вопросы
- •14.5 Практические навыки
- •20 Менеджер архивов ark
- •20.4 Контрольные вопросы
- •Утилита ark
- •21 Изучение текстового редактора VI
- •21.4 Контрольные вопросы
2 Изучение процессов и потоков в Linux
2.1 Цель работы
2.1.1 Изучить основные процессы, запускаемые OC Linux
2.1.2 Научиться управлять приоритетами запускаемых процессов
2.2 Приборы и оборудование
2.2.1 ПЭВМ типа IBM PC
2.2.2 ОС Linux
2.3 Порядок выполнения работы
2.3.1. Изучите теоретические сведения.
2.3.2. Запустите утилиту Монитор производительности (K/Система/KSysGuard).
2.3.3. Просмотрите запущенные процессы. Отсортируйте процессы по степени загрузки ЦП от наибольшего. Назовите этот процесс, определите его PID. Опишите его по следующей схеме:
- количество нитей исполнения;
- количество потомков процесса;
- общее время работы процесса в пользовательском режиме и в режиме ядра;
- определите UID и GID пользователя, создавшего процесс.
2.3.4. Отфильтруйте процессы, оставив «только системные». Дайте характеристику одному системному процессу (выбор процессов осуществляется на панели Таблица процессов в списке) по следующей схеме:
- идентификатор процесса и его название
- идентификатор пользователя и группы пользователя, запустившего процесс;
- приоритет процесса;
- размер виртуальной и физической памяти, занимаемой процессом;
- используя идентификатор породившего процесса, определите какой процесс являлся процессом-предком этого процесса (посмотрев, РРID описывающего процесса, найдите это число в PID и, тем самым определите процесс, который является процессом-предком данного процесса).
2.3.5. Отфильтруйте процессы, оставив «только пользовательские». Опишите только системные характеристики любого пользовательского процесса, относящие к дескриптору процесса.
2.3.6. Запустите программу Терминал (K\Система\Терминал). Обновите сведения в окне. Таблица процессов. Посмотрите, какой процесс был порожден и каков его приоритет. Имя процесса – konsole.
2.3.7. Уменьшите численное значение приоритета запущенного процесса, воспользовавшись контекстным меню процесса и, выбрав пункт меню Изменить приоритет процесса. Повлияло ли данное изменение на производительность приложения?
2.3.8. Запустите на выполнение программу Терминал.
2.3.9. Вывести информацию обо всех выполняющихся процессах с помощью команды ps aux:
Оставить в выводе предыдущей команды только системные процессы с помощью команды ps aux | grep -v user (часть процессов, выведенные в квадратных скобках, — это потоки ядра, исполняющие специальные функции. Можно выделить демонов — в столбце терминала они имеют символ «?». Например, системный журнал (syslog) или планировщик задач (cron))
2.3.11. Вывести иерархию процессов с помощью команды pstree. Какой процесс стоит в вершине иерархии?
2.3.12. Рассмотреть поведение процессов интерактивно с помощью команды top.
2.3.13. Отобразите все существующие в системе процессы командой ps aux. Приведите листинг команды и расшифруйте значение столбцов.
2.3.14. Определите nice-фактор процессов системы. Уменьшите nice-фактор процессов системы. Измените nice-фактор уже запущенного процесса. Листинг приведите в отчете.
2.3.15. Посмотрите перечень сигналов системы командой kill -l.
2.3.16. Наберите в терминале команду sleep 1000 &.
Затем проверьте, что процесс находится в состоянии ожидания, о чем нам говорит буква S в столбце STAT:
igor@ubuntu:~$ ps x | grep [s]leep PID TTY STAT TIME COMMAND 6301 pts/1 S 0:00 sleep 1000
Теперь пошлем процессу сигнал STOP. Для этого используем команду kill (kill -название процесса PID процесса):
igor@ubuntu:~$ kill -STOP 6301 [1]+ Stopped sleep 1000
Проверяем статус процесса: igor@ubuntu:~$ ps x | grep [s]leep PID TTY STAT TIME COMMAND 6301 pts/1 T 0:00 sleep 1000
Видим, что процесс действительно находится в состоянии “остановленный” (символ T в столбце STAT).
2.3.17. Теперь отправим процессу сигнал продолжения работы (CONT) и проверим состояние: igor@ubuntu:~$ kill -CONT 6301 igor@ubuntu:~$ ps x | grep [s]leep PID TTY STAT TIME COMMAND 6301 pts/1 S 0:00 sleep 1000
Если необходимо корректно завершить процесс, то необходимо послать ему сигнал TERM: igor@ubuntu:~$ kill -TERM 6301 igor@ubuntu:~$ ps x | grep [s]leep [1]+ Terminated sleep 1000 igor@ubuntu:~$ ps x | grep [s]leep
Если сразу же после посылки сигнала TERM выполнить команду ps x | grep [s]leep, то можно успеть увидеть сообщение о том, что процесс завершает работу, в при следующей попытке вывести информацию о нашем процессе sleep мы уже ничего не увидим - процесс прекратил существование. Команда kill без указания сигнала, по умолчанию передает процессу именно сигнал TERM. Поэтому можно было написать просто kill 6301.
2.3.18. Если необходимо срочно завершить процесс, или процесс не завершается по сигналу TERM, то тогда необходимо послать процессу сигнал KILL: igor@ubuntu:~$ sleep 1000 & [1] 6348 igor@ubuntu:~$ kill -KILL 6348 igor@ubuntu:~$ ps x | grep [s]leep [1]+ Killed sleep 1000
Если необходимо послать один и тот же сигнал нескольким процессам, то можно перечислить их через пробел: kill -TERM 2345 3456 4567.
Команда kill довольно ограничена в возможностях и не позволяет выполнять более сложные действия. Поэтому рассмотрим еще одну команду - killall. Основное преимущество этой команды, то что она умеет посылать сигналы всем процессам с одинаковым именем или всем процессам одного пользователя. Запустите несколько раз подряд команду sleep 1000 &:
igor@ubuntu:~$ ps x | grep [s]leep 6460 pts/1 S 0:00 sleep 1000 6461 pts/1 S 0:00 sleep 1000 6462 pts/1 S 0:00 sleep 1000 6463 pts/1 S 0:00 sleep 1000 6464 pts/1 S 0:00 sleep 1000 6465 pts/1 S 0:00 sleep 1000 6466 pts/1 S 0:00 sleep 1000
Теперь, чтобы завершить все процессы с именем sleep, достаточно набрать команду killall sleep: igor@ubuntu:~$ killall sleep [1] Terminated sleep 1000 [2] Terminated sleep 1000 [3] Terminated sleep 1000 [4] Terminated sleep 1000 [6]- Terminated sleep 1000 [7]+ Terminated sleep 1000 [5]+ Terminated sleep 1000
Выполните команду sleep 1000 & еще несколько раз, а затем зарегистрируйтесь в другой консоли от имени другого пользователя (например, test) и также от его имени выполните команду sleep 1000 &. Теперь вернитесь в свою консоль и просмотрите процессы sleep всех пользователей:
igor@ubuntu:~$ ps aux | grep [s]leep igor 6540 0.0 0.0 2952 628 pts/1 S 22:30 0:00 sleep 1000 igor 6541 0.0 0.0 2952 632 pts/1 S 22:30 0:00 sleep 1000 igor 6542 0.0 0.0 2952 628 pts/1 S 22:30 0:00 sleep 1000 test 6543 0.0 0.0 2952 632 pts/3 S 22:30 0:00 sleep 1000 test 6544 0.0 0.0 2952 628 pts/3 S 22:30 0:00 sleep 1000 test 6545 0.0 0.0 2952 628 pts/3 S 22:30 0:00 sleep 1000 test 6546 0.0 0.0 2952 632 pts/3 S 22:30 0:00 sleep 1000
2.3.19. Теперь для того, чтобы удалить процессы только пользователя test необходимо выполнить (от имени пользователя root) команду killall -u test: igor@ubuntu:~$ sudo killall -u test igor@ubuntu:~$ ps aux | grep [s]leep igor 6540 0.0 0.0 2952 628 pts/1 S 22:30 0:00 sleep 1000 igor 6541 0.0 0.0 2952 632 pts/1 S 22:30 0:00 sleep 1000 igor 6542 0.0 0.0 2952 628 pts/1 S 22:30 0:00 sleep 1000
Команда выше удалит не только процессы sleep, но вообще все процессы пользователя test. Если необходимо удалить конкретно процессы sleep, то тогда команду нужно было записать так: killall -u test sleep.
2.3.20. Если запустить команду killall c ключом -i, то перед посылкой сигнала будет запрашиваться подтверждение:
igor@ubuntu:~$ killall -i sleep Прибить sleep(6540) ? (y/N) n Прибить sleep(6541) ? (y/N) n Прибить sleep(6542) ? (y/N) n
2.3.21. Завершите сеанс работы c Linux.
2.3.22. Оформите отчет и сдайте его преподавателю.
