- •Понятие «Операционная система». (1-1)
- •Расположение ос в общей структуре компьютера
- •Функции ос
- •Блок управления процессом. Операции над процессом. (15-1, 28-1)
- •Машинные регистры
- •Ос поддерживает следующие операции над процессами:
- •Понятие прерывания. Схемы прерываний. (16-1)
- •Понятия файла, символьного набора, организации файлов. Средства файловой системы. (23-1, 26-1)
- •Блок управления файлом. (25-1)
- •Топология файловой системы. (26-1, 24-1)
- •Реализация файлов и каталогов. (9-1, 24-1)
- •Реализация файлов
- •Реализация каталогов
- •Стратегии управления памятью. Концепции распределения памяти. Алгоритмы замещения. (18-1)
- •Существует большое количество алгоритмов замещения:
- •Концепции распределения памяти:
- •Организация памяти при связном распределении. Оверлейные перекрытия. (19-1)
- •Организация памяти на основе мультипрограммирования. (20-1)
- •Организация памяти на основе мультипрограммирования с фиксированными разделами.
- •Организация памяти на основе мультипрограммирования с переменными разделами.
- •Организация памяти на основе свопинга. Битовые карты и связный список свободных и занятых блоков. (21-1) Свопинг
- •Битовые карты и связный список свободных и занятых блоков.
- •Концепция виртуальной памяти. (22-1)
- •Способы реализации вп
- •Преобразование V в ψ
- •Расслоение памяти. Регистр перемещений. Прерывания и опрос состояний. (2-1) Метод расслоения памяти (интерливинг)
- •Регистр перемещения
- •Прерывания и опрос состояний
- •Буферизация. Периферийные устройства. Защита памяти. (3-1) Буферизация
- •Периферийные устройства
- •Защита памяти
- •Таймер. Каналы ввода/вывода. Захват цикла. (4-1) Таймер и часы
- •Каналы ввода-вывода
- •Захват цикла
- •Относительная адресация. Режимы работы эвм. (5-1) Относительная адресация
- •Режим работы компьютера
- •Виртуальная память. Мультипроцессорная обработка. Прямой доступ к памяти. (6-1) Виртуальная память
- •Мультипроцессорная обработка
- •Прямой доступ к памяти
- •Программирование на машинном языке. Ассемблеры и макропроцессоры. Компиляторы. (7-1) Программирование на машинном языке
- •Ассемблеры и макропроцессоры
- •Компиляторы
- •Конвейеризация. Иерархия памяти. (8-1) Конвейеризация
- •Иерархия памяти
- •Система управления вводом/выводом. Спулинг. (10-1) Система управления вводом/выводом
- •По системы управления вводом/выводом (не надо)
- •Спулинг
- •Процедурно-ориентированные и проблемно-ориентированные языки. Интерпретаторы. (11-1) Процедурно-ориентированные и проблемно-ориентированные языки.
- •Интерпретаторы
- •Абсолютные и перемещающие загрузчики. Связывающие загрузчики и редакторы связей. (12-1) Абсолютные и перемещающие загрузчики
- •Связывающие загрузчики и редакторы связей
- •Микропрограммирование. Эмуляция. Горизонтальный и вертикальный микрокод. (13-1) Микропрограммы
- •Горизонтальный и вертикальный микрокод
- •Эмуляция
- •Основные характеристики ос unix. (27-2)
- •Достоинства Unix систем
- •Недостатки Unix систем
- •Структура ос unix. Ядро и процессы. (26-2)
- •Структура процесса ос unix. Состояние системы и виды взаимодействия в ос unix. (25-2) Состояние системы
- •Структура процесса
- •Дескриптор процесса в ос unix. Контекст процесса. (5-2)
- •Создание процессов в ос unix. (11-2)
- •Планирование процессов в ос unix. (13-2)
- •Информационные связи между процессами в ос unix. (10-2)
- •Управление памятью в ос unix на основе свопинга (1-2)
- •Управление памятью в ос unix на основе страничной подкачки. (2-2)
- •Алгоритм замещения страниц в ос unix. (3-2)
- •Типы файлов в файловой системе ос unix. Топология файловой системы. Последние изменения в файловой системе ос unix. (18-2)
- •Последние изменения в файловой системе ос unix
- •Индексный дескриптор файла в ос unix. Таблица файлов. (6-2)
- •Поддержка файлов ядром ос unix . (4-2)
- •Физическая и логическая организация файловой системы ос unix. (16-2)
- •Логическая и физическая организация системы управления вводом/выводом ос unix. (15-2)
- •Структурная организация системы управления вводом/выводом ос unix. (12-2)
- •Реализация системы управления вводом/выводом ос unix. (14-2)
- •Функционирование ос unix. (7-2, 19-2)
- •Начальная загрузка и выход на интерактивный режим в ос unix. (25-2)
- •Интерактивный режим работы в ос unix. (24-2)
- •Понятие системного вызова. Системные вызовы system и execl. (23-2)
- •Системныевызовыработысфайламиopen,creat,close,dup,dup2.(21-2, 19-2)
- •Системный вызов open
- •Системный вызов creat
- •Системные вызовы dup, dup2
- •Системные вызовы ввода/вывода. (20-2, 8-2)
- •Системный вызов read
- •Системный вызов write
- •Системный вызов close
- •Системный вызов pipe
- •Интерпретатор команд shell. (28-2)
- •Экранирование
- •Встроенные команды языка shell
- •Внешние команды
- •Сравнение чисел
Структура процесса
Структуру процесса в момент нахождения его в ОП можно представить следующим образом:
Контекст процесса – таблица, в которой храниться системная информация о процессе, при его нахождении в ОП.
Процедурный сегмент – машинные команды и константы.
Сегмент данных – проинициализированные данные, которые могут изменяться в процессе работы.
Динамический сегмент – выделяется при загрузке исполняемого файла в ОП и содержит данные, не инициализируемые при компиляции.
Процедурный сегмент и сегмент данных составляют область процесса, которая формируется при трансляции.
Дескриптор процесса в ос unix. Контекст процесса. (5-2)
Контекст процесса – таблица, в которой храниться системная информация о процессе, при его нахождении в ОП.
Доступ к контексту процесса имеет только ядро ОС. Область контекста не относиться к адресному пространству процесса, однако контекст подвергается свопингу совместно с процедурным сегментом и сегментом данных.
В целом контекст процесса – структура данных, включающая
Машинные регистры.
Состояние системного вызова – информация о текущем системном вызове, включающая параметры и результат.
Таблица пользовательских дескрипторов файлов – вся информация о файлах, открытых в данном процессе.
Учетная информация – указатель на таблицу, учитывающую процессорное время, использованное процессом.
Стек ядра – фиксированный стек для работы процесса в режиме ядра.
Кроме контекстов процессов ядро поддерживает также таблицу процессов, являющуюся резидентной (т.е. постоянно находиться в памяти), в которой отслеживаются все активные процессы. Некоторые из них инициируются ядром и являются системными процессами, остальные связаны с пользователями, называются пользовательскими процессами.
В таблице процессов содержатся дескрипторы процессов.
Дескриптор процесса в ОС UNIX содержит следующую информацию:
Идентификатор (PID).
Состояние.
Идентификатор родительского процесса (PPID).
Идентификатор пользователя (UID).
Идентификатор группы (GID).
События, ожидаемые процессом (если есть).
Время до истечения интервала будильника.
Маска сигналов, указывающая, какие сигналы 2игнорируются, какие перехватываются и какие заблокированы.
Приоритеты (3 поля).
Временной интервал, в течение которого процессу было выделено время ЦП.
Указатели на процедурный сегмент, сегмент данных и динамический сегмент (если используется страничная организация памяти, то указатели на соответствующие этим сегментам таблицы страниц).
Указатель внешней памяти (указатели как найти процесс во внешней памяти, если его нет в ОП).
Создание процессов в ос unix. (11-2)
Все процессы (кроме процесса с PID = 0) создаются при помощи системного вызова fork().
Когда выполняется системный вызов fork(), вызывающий процесс обращается в ядро ОС и ищет свободную строку в таблице процессов, в которую можно записать данные о дочернем процессе.
Если свободная строка находится, fork() копирует в нее информацию из родительского процесса. Затем он выделяет память для сегмента данных и динамического сегмента, куда копируется соответствующие сегменты родительского процесса. Контекст копируется вместе с динамическим сегментом.
Процедурный сегмент может либо копироваться, либо использоваться совместно (если он доступен только для чтения). Дочерний процесс получает идентификатор, затем настраивается его карта памяти и регистры. Кроме того, ему предоставляется доступ к файлам родительского процесса, посредством копирования дескрипторов файлов из контекста родительского процесса.
Карта памяти процесса сына настраивается по следующему принципу: сыну выделяются новые таблицы страниц, но эти таблицы указывают на страницы отца, помеченные, как доступные только для чтения. Когда процесс сын пытается что-то записать в такую странице, происходит прерывание; при этом ядро выделяет процессу сыну новую копию этой страницы, к которой сын получает доступ на запись. Копируются только те страницы, в которые сын пишет новые данные; при этом страницы с процедурным сегментом не копируются.