
- •Основные понятия операционных систем.
- •Основные понятия, концепции ос
- •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.Защитные механизмы ос.
Процесс init и файл /etc/inittab. Жизненный цикл процесса, приоритеты
Процесс init - это демон, который отвечает за инициализацию системы. Без него ни один другой процесс не сможет запуститься. Во время загрузки init выполняет две важные задачи: во-первых он запускает стартовые сценарии rc, а затем инициализирует терминалы, для того что бы в систему могли войти пользователи. (Де́мон (англ. daemon) — в системах класса UNIX — служба, работающая в фоновом режиме без прямого общения с пользователем)
Непосредственно после того, как система Linux загружается и ее ядро монтирует корневую файловую систему, она выполняет первую программу -- init. Эта программа отвечает за запуск стартовых системных скриптов и за изменение состояния системы с загрузочного на обычное многопользовательское. Программа init изготавливает копии оболочек login: для всех устройств "tty" в системе, а также устанавливает другие стартовые и заключительные процедуры.
После запуска программа init уходит в фоновый режим, следя за режимом работы системы и по необходимости изменяя его. Программа init должна следить за множеством вещей; все ее функции определены в файле /etc/inittab. Пример файла /etc/inittab дается ниже.
Неправильное изменение файла /etc/inittab может привести к тому, что войти в систему станет невозможно. Как самое меньшее средство безопасности при изменении файла /etc/inittab следует сохранять его предыдущую правильную версию и иметь загрузочную (корневую) дискету на случай, если будет сделана ошибка.
inittab Этот файл описывает, как процесс INIT конфигурирует
# систему на каждом уровне работы (run-level).
# Версия: @(#)inittab 2.04 17/05/93 MvS
# 2.10 02/10/95 PV
# Автор: Miquel van Smoorenburg, <miquels@drinkel.nl.mugnet.org>
# Переработано: Patrick J. Volkerding, <volkerdi@ftp.cdrom.com>
# Дополнительные изменения:
# Robert Kiesling, <kiesling@terracom.net>
#
# Уровень по умолчанию
id:3:initdefault:
# Инициализация системы (запускается при загрузке системы)
si:S:sysinit:/etc/rc.d/rc.S
# Скрипт, который запускается в режиме с одним пользователем
# (уровень 1)
su:1S:wait:/etc/rc.d/rc.K
# Скрипт, который запускается в многопользовательском режиме
rc:23456:wait:/etc/rc.d/rc.M
# Что делать при нажатии комбинации Ctrl-Alt-Del
ca::ctrlaltdel:/sbin/shutdown -t5 -rfn now
# При уровне 0 система останавливается
l0:0:wait:/etc/rc.d/rc.0
# При уровне 6 система перезагружается
l6:6:wait:/etc/rc.d/rc.6
# Что делать при перебое в питании (выгрузка системы в режиме с
# одним пользователем)
pf::powerfail:/sbin/shutdown -f +5 "THE POWER IS FAILING"
# Если питание успело восстановиться, прекратить выгрузку системы
pg:0123456:powerokwait:/sbin/shutdown -c "THE POWER IS BACK"
# Если питание восстановилось в режиме с одним пользователем,
# то вернуться к многопользовательскому режиму
ps:S:powerokwait:/sbin/init 5
# Команды getty в многопользовательском режиме на консолях,
# подключенных к последовательным портам
#
# ВНИМАНИЕ: приведите эти команды в соответствие с
# вашими командами getty, иначе вы не сможете
# войти в систему!!
#
# ВНИМАНИЕ: аргументы команды `agetty': скорость, порт
# аргументы команды `getty_ps': порт, скорость, `gettydefs'
c1:1235:respawn:/sbin/agetty 38400 tty1 linux
c2:1235:respawn:/sbin/agetty 38400 tty2 linux
c3:1235:respawn:/sbin/agetty 38400 tty3 linux
c4:1235:respawn:/sbin/agetty 38400 tty4 linux
c5:1235:respawn:/sbin/agetty 38400 tty5 linux
c6:12345:respawn:/sbin/agetty 38400 tty6 linux
# Последовательные порты (serial lines)
# s1:12345:respawn:/sbin/agetty -L 9600 ttyS0 vt100
s2:12345:respawn:/sbin/agetty -L 9600 ttyS1 vt100
# Подключения через модем (dialup lines)
d1:12345:respawn:/sbin/agetty -mt60 38400,19200,9600,2400,1200 ttyS0 vt100
#d2:12345:respawn:/sbin/agetty -mt60 38400,19200,9600,2400,1200 ttyS1 vt100
# Уровень 4 раньше использовался только для систем X Window.
# Потом было обнаружено, что этот уровень зацикливает скрипт init,
# так что load avg все время остается равным по меньшей мере 1.
# Таким образом, теперь есть один процесс getty, открытый на
# tty6. Надеемся, что этого никто не заметит. ;^)
# Кроме того, не так уж плохо иметь одну текстовую консоль
# на случай, если что-либо случится с X.
x1:4:wait:/etc/rc.d/rc.4
# Конец файла /etc/inittab
Жизненный цикл программного обеспечения (ПО) — период времени, который начинается с момента принятия решения о необходимости создания программного продукта и заканчивается в момент его полного изъятия из эксплуатации
Жизненный цикл процесса - последовательность стадий и фаз, определяющих динамику реализации и развития процесса.
Иногда жизненный цикл процесса воспринимают исходя из традиционного понятия жизненного цикла, пришедшего из биологии, рассматривая стадии от рождения до смерти. Однако в рамках процессного подхода и BPM, жизненный цикл процесса рассматривается с точки зрения управления процессом в терминах стандартного управленческого цикла, то есть как управление разработкой, внедрением, сопровождением и совершенствованием процесса.
Внимание ко всему жизненному циклу процесса отличает BPM от традиционного реинжиниринга, который, в основном, рассматривает исключительно стадию моделирования. Возможность поддержки BPM всех стадий жизненного цикла процесса обусловлена элементами BPM-систем (см. подробнее BPM).
Таким образом, жизненный цикл процесса можно трактовать как замкнутую последовательность следующих фаз:
Жизненный цикл управления процессами
Приоритеты процессов
Планирование процессов и UNIX основано на приоритете процесса. Планировщик всегда выбирает процесс с наивысшим приоритетом. Приоритет процесса не является фиксированным и динамически изменяется системой в зависимости от использования вычислительных ресурсов, времени ожидания запуска и текущего состояния процесса. Если процесс готов к запуску и имеет наивысший приоритет, планировщик приостановит выполнение текущего процесса (с более низким приоритетом), даже если последний не "выработал" свой временной квант.
Ядро UNIX является непрерываемым (nonpreemptive). Это означает, что процесс, находящийся в режиме ядра (в результате системного вызова или прерывания) и выполняющий системные инструкции, не может быть прерван системой, а вычислительные ресурсы переданы другому высокоприоритетному процессу. В этом состоянии выполняющийся процесс не может освободить процессор "по собственному желанию", в результате недоступности какого-либо ресурса перейдя в состояние сна. В противном случае система может прервать выполнение процесса только при переходе из режима ядра в пользовательский режим. Такой подход значительно упрощает решение задач синхронизации и поддержки целостности структур данных ядра.
Каждый процесс имеет два атрибута приоритета: текущий приоритет, на основании которого происходит планирование, и относительный приоритет, называемый также поправкой приоритета - nice number, который задается при порождении процесса и влияет на текущий приоритет.
Диапазон значений текущего приоритета различен, в зависимости от версии ОС UNIX и используемого планировщика. В любом случае, процессы, выполняющиеся в пользовательском режиме, имеют более низкий приоритет, чем работающие в режиме ядра.