
- •Основные понятия операционных систем.
- •Основные понятия, концепции ос
- •2. Классификация ос.
- •3. Функции операционных систем, сравнительный анализ операционных систем.
- •4. Ядро операционной системы, понятие, состав.
- •5.Архитектура ос. Преимущества и недостатки различных архитектур.
- •4 Преимущества и недостатки архитектуры ос с микроядром
- •Эволюция развития операционных систем.
- •Серверные операционные системы. Особенности.
- •Логическая организация файловой системы Linux. Структура и назначение каталогов.
- •Информация о группах и пользователях.
- •10.Разделы диска и таблица разбиения диска. Имена разделов в Linux.
- •Первичный (основной) раздел
- •Расширенный (дополнительный) раздел
- •Этапы загрузки операционных систем. Mbr.
- •Виды совместимостей операционных систем
- •Загрузчики. Оболочки. Утилиты. Репозиторий.
- •Классификация прикладного и системного программного обеспечения.
- •Процессы. Состояния процессов. Операции над процессами. Контекст и дескриптор процесса. Команды управления процессами.
- •Состояние процессов
- •Процесс init и файл /etc/inittab. Жизненный цикл процесса, приоритеты
- •Фоновый режим в Linux. Демоны. Запуск демонов.
- •Нити. Семафоры. Потоки. Жизненный цикл потока. Операции над потоками.
- •Перенаправление команд. Понятие конвейера.
- •Распределение памяти.
- •22. Критерии планирования
- •23. Классификация методов распределения памяти.
- •24. Схема с фиксированными разделами
- •Перемещаемые разделы
- •Свопинг
- •26. Управление ресурсами. Освобождение дискового пространства.
- •29. Монтирование и демонтирование файловой системы
- •30. Основные типы файлов. Права доступа к файлу. Операции над файлами
- •31. Перенаправление ввода-вывода, каналы и фильтры. Категории средств обмена информацией
- •32.Работа в командном режиме.Скрипты. Среда переменных.
- •33.Параметры и переменные. Окружение оболочки. История команд.
- •34.Квотирование. Особенности квотирования в Linux.
- •35. Основные конфигурационные файлы. Конфигурационный файл.
- •36.События, системные вызовы, прерываний, исключительные ситуации.
- •37. Команды управления сетью.
- •39.Безопасность в Linux. Администрирование системы Linux.Взлом Linux
- •40.Защитные механизмы ос.
Процессы. Состояния процессов. Операции над процессами. Контекст и дескриптор процесса. Команды управления процессами.
Процесс характеризует некоторую совокупность набора исполняющихся команд, ассоциированных ресурсов (выделенная для исполнения память или адресное пространство, стеки, используемые файлы, устройства ввода-вывода и т. д.)
процесс может находиться как минимум в двух состояниях: процесс исполняется, и процесс не исполняется. Процесс, находящийся в состоянии процесс исполняется, через некоторое время может быть завершен операционной системой или приостановлен и снова переведен в состояние процесс не исполняется. Приостановка процесса происходит по двум причинам: для его дальнейшей работы потребовалось какое-либо событие (например, завершение операции ввода-вывода) или истек временной интервал, отведенный операционной системой для работы данного процесса. После этого операционная система по определенному алгоритму выбирает для исполнения один из процессов, находящихся в состоянии процесс не исполняется, и переводит его в состояние процесс исполняется. Новый процесс, появляющийся в системе, первоначально помещается в состояние процесс не исполняется.
Состояние процессов
В многозадачной (многопроцессной) системе процесс может находиться в одном из трех основных состояний:
ВЫПОЛНЕНИЕ - активное состояние процесса, во время которого процесс обладает всеми необходимыми ресурсами и непосредственно выполняется процессором;
ОЖИДАНИЕ - пассивное состояние процесса, процесс заблокирован, он не может выполняться по своим внутренним причинам, он ждет осуществления некоторого события, например, завершения операции ввода-вывода, получения сообщения от другого процесса, освобождения какого-либо необходимого ему ресурса;
ГОТОВНОСТЬ
- также пассивное состояние процесса,
но в этом случае процесс заблокирован
в связи с внешними по отношению к нему
обстоятельствами: процесс имеет все
требуемые для него ресурсы, он готов
выполняться, однако процессор занят
выполнением другого процесса.
ОС должна иметь возможность выполнять определенные операции над процессами:
создание процесса
уничтожение
возобновление
изменение приоритета
блокирование
пробуждение
запуск
Создание нового процесса состоит из нескольких подопераций:
присвоение имени
включение этого имени в список имен процессов, известных ОС
присвоение начального приоритета
формирование БУП
выделение процессу начальных ресурсов
Новый процесс
может породить дочерние процессы.
Уничтожение процесса - удаление его из системы. Ресурсы, выделенные ему, возвращаются ОС, а имя стирается из всех системных списков и таблиц, БУП освобождается, но не удаляется. При удалении родительского процесса в одних ОС удаляются и дочерние процессы, в других - они работают самостоятельно.
Возобновление - операция подготовки процесса к повторному запуску с той точки, в которой он был приостановлен (БУП, область сохранения регистров).
Изменение приоритета - это изменение значения приоритета в БУП.
Прерывания в ОС. Прерывание - это событие, при котором меняется нормальная последовательность команд, выполняемых ЦП. Если произошло прерывание, то:
Управление передается ОС
ОС запоминает состояние прерванного процесса
ОС анализирует тип прерывания и передает управление соответствующей программе по обработке данного типа прерывания.
Состояние операционной среды отображается состоянием регистров и программного счетчика, режимом работы процессора, указателями на открытые файлы, информацией о незавершенных операциях ввода-вывода, кодами ошибок выполняемых данным процессом системных вызовов и т.д. Эта информация называется контекстом процесса.
Кроме этого, операционной системе для реализации планирования процессов требуется дополнительная информация: идентификатор процесса, состояние процесса, данные о степени привилегированности процесса, место нахождения кодового сегмента и другая информация. В некоторых ОС (например, в ОС UNIX) информацию такого рода, используемую ОС для планирования процессов, называют дескриптором процесса.
Команда ps
Предназначена для вывода информации о выполняемых процессах. Данная команда имеет много параметров, лишь наиболее часто используемые:
Параметр |
Описание |
-a |
отобразить все процессы, связанных с терминалом (отображаются процессы всех пользователей) |
-e |
отобразить все процессы |
-t список терминалов |
отобразить процессы, связанные с терминалами |
-u идентификаторы пользователей |
отобразить процессы, связанные с данными идентификаторыми |
-g идентификаторы групп |
отобразить процессы, связанные с данными идентификаторыми групп |
-x |
отобразить все процессы, не связанные с терминалом |
Программа top
Предназначена для вывода информации о процессах в реальном времени. Процессы сортируются по максимальному занимаемому процессорному времени, но вы можете изменить порядок сортировки (см. man top). Программа также сообщает о свободных системных ресурсах.
Изменение приоритета процесса - команда nice
nice [-коэффициент понижения] команда [аргумент]
Команда nice выполняет указанную команду с пониженным приоритетом, коэффициент понижения указывается в диапазоне 1..19 (по умолчанию он равен 10). Суперпользователь может повышать приоритет команды, для этого нужно указать отрицательный коэффициент, например --10. Если указать коэффициент больше 19, то он будет рассматриваться как 19.
nohup - игнорирование сигналов прерывания
nohup команда [аргумент]
nohup выполняет запуск команды в режиме игнорирования сигналов. Не игнорируются только сигналы SIGHUP и SIGQUIT.
kill - принудительное завершение процесса
kill [-номер сигнала] PID
где PID - идентификатор процесса, который можно узнать с помощью команды ps.
Команды выполнения процессов в фоновом режиме - jobs, fg, bg
Команда jobs выводит список процессов, которые выполняются в фоновом режиме, fg - переводит процесс в нормальные режим ("на передний план" - foreground), а bg - в фоновый. Запустить программу в фоновом режиме можно с помощью конструкции <команда> &