- •5. Процессы и потоки
- •Мультипрограммирование
- •Мультипрограммирование в системах пакетной обработки
- •Мультипрограммирование в системах разделения времени
- •Мультипрограммирование в системах реального времени
- •Мультипроцессорная обработка
- •Планирование процессов и потоков
- •Понятие «процесс» и «поток»
- •Создание процессов и потоков
- •Планирование и диспетчеризация потоков
- •Состояния потока
- •Вытесняющие и невытесняющие алгоритмы планирования
- •Алгоритмы планирования, основанные на квантовании
- •Алгоритмы планирования, основанные на приоритетах
- •Планирование с абсолютными и относительными приоритетами
- •Смешанные алгоритмы планирования
- •Планирование в системах реального времени
- •Моменты перепланировки
- •6. Мультипрограммирование на основе прерываний Назначение и типы прерываний
- •Механизм прерываний
- •Программные прерывания
- •Диспетчеризация и приоритезация прерываний в ос
- •Функционирование централизованного диспетчера прерываний на примере Windows nt
- •Системные вызовы
- •7. Процессы в ос unix Введение
- •Компоненты процесса
- •Атрибуты процесса Идентификатор процесса (pid)
- •Идентификатор родительского процесса (ррid)
- •Идентификатор пользователя (uid) и эффективный идентификатор пользователя (euid)
- •Идентификатор группы (gid) и эффективный идентификатор группы (egid)
- •Приоритет и значение nice
- •Жизненный цикл процесса
- •Сигналы
- •Дамп памяти
- •Список процессов: ps
- •Версия bsd
- •Версия System V
- •Установка приоритета процесса при запуске: nice
- •Изменение приоритета запущенного процесса: renice
- •Отправка сигнала: kill
- •Отправка сигналов командам: killall
- •Прекращение процесса
- •Временная приостановка процесса
- •Список заданий: jobs
- •Фоновый режим работы
- •Перевод задания на передний план: fg
- •Отправка задания на задний план: bg
- •Список литературы
- •ОГлавление
7. Процессы в ос unix Введение
Процесс – это фундаментальное понятие в UNIX . С помощью процессов происходит управление памятью и ресурсами ввода-вывода, используемыми для выполнения программы.
Системный администратор имеет возможность контролировать статус процессов, управлять выделением времени центрального процессора каждому из них, посылать в процессы различные сигналы, приостанавливать и завершать их выполнение.
Существующие в UNIX типы процессов приведены в табл.7.1.
Типы процессов
Таблица 7.1
Тип процесса |
Описание |
Интерактивный (interactive) |
Запускается из системной оболочки и работает в фоновом режиме или на переднем плане |
Пакетный (batch) |
Обычно представляет собой набор процессов, запускаемых в определенное время (аналог командного файла MS-DOS). |
Демон (daemon) |
Обычно запускается во время загрузки, необходим для выполнения ОС своих системных функций. |
Ядро ОС осуществляет контроль над всей системой. Только оно имеет доступ к ресурсам компьютера (памяти, машинному времени или дискам).
Из ядра запускаются и закрываются пользовательские и системные программы, называемые процессами. Они не имеют прямого доступа к ресурсам и получают его только через ядро. Таким образом, во-первых, данные защищаются от несанкционированного доступа, во-вторых, гарантируется однозначное представление ресурсов. Если два процесса попытаются использовать, например, одну и ту же область памяти, каждый для своих целей, то это приведет к беспорядку в данных или даже к падению системы.
Демон – это фоновый процесс, который выполняет системную задачу. В полном соответствии с господствующим в UNIX принципом модульности демоны являются процессами, похожими на пользовательские процессы, а не частями ядра. Многие демоны запускаются во время начальной загрузки и продолжают работать все время, пока система включена. Остальные демоны запускаются при необходимости и работают столько, сколько предусмотрено их функциями.
Компоненты процесса
Процесс состоит из адресного пространства и набора структур данных, содержащихся внутри ядра. Адресное пространство представляет собой совокупность страниц памяти, которые ядро выделило для выполнения процесса. Адресное пространство содержит сегменты для кода программы, которую выполняет процесс, используемые процессом переменные, стек процесса и различную вспомогательную информацию, необходимую ядру во время работы процесса.
В структурах данных ядра хранится различная информация о каждом процессе. К наиболее важным сведениям относятся:
-
таблица распределения памяти процесса;
-
текущий статус процесса;
-
приоритет выполнения процесса;
-
информация о ресурсах, которые использует процесс;
-
маска обработки процесса;
-
владелец процесса.
Многие характеристики процесса непосредственно влияют на его выполнение. Это, например, выделяемое ему время процессора, перечень файлов, к которым он имеет доступ, и так далее. В следующих разделах мы рассмотрим наиболее интересные с точки зрения системного администратора характеристики процессов.