
- •Билет 1 – (4) 1. Основы ос Unix, возможности, стандартизация
- •1.1 Отличительные черты ос unix
- •1.2 Основы архитектуры операционной системы unix
- •1.3 Ядро системы
- •2. Взаимодействие процессов. Задача взаимного исключения. Вариант 4 (1, 16, 18) – 146
- •3. Последовательность действий по преобразованию адреса в защищенном режиме:
- •1.8 Обработка ошибок
- •2. Взаимодействие процессов. Задача взаимного исключения. Вариант 2 (2, 6, 15, 27) – 143
- •3. Особенности современных операционных систем (2, 28) – 122
- •Характеристики современных ос
- •2. Взаимодействие процессов. Задача взаимного исключения. Вариант 3 (3, 28) – 144
- •3. Концепция слоистой операционной системы и системы на основе микроядра.
- •6.Подход на основе микроядра хорошо функционирует среди объектно-ориентированных ос (object-oriented operating system).
- •Билет 4
- •1. Владельцы файлов. Права доступа к файлам. Атрибуты файлов (4, 18) – 23
- •2. Взаимодействие процессов. Задача взаимного исключения. Вариант 1 (4, 26) – 142
- •3. Функции микроядра (4, 12, 15, 27) – 126
- •1. Неименованные каналы в ос unix (5) – 77
- •2. Взаимодействие процессов. Задача взаимного исключения. Алгоритм Деккера (5) – 147
- •3. Понятие процесса, модели процессов (5) – 132
- •1. Метаданные файлов в ос unix (7) – 36
- •2. Взаимодействие процессов. Задача взаимного исключения. Вариант 2 (2, 6, 15, 27) – 143
- •3. Описание процесса, таблица процесса (6) – 136
- •1. Процессы в ос unix. Типы процессов. (7, 23) – 56
- •2. Синхронизирующие примитивы. Решение задачи взаимного исключения с использованием семафоров (7, 8, 19, 20) - 152
- •3. Принципы построения ос (7, 19, 26) – 128
- •2. Синхронизирующие примитивы. Решение задачи взаимного исключения с использованием семафоров (7, 8, 19, 20) - 152
- •3. Концепция потока, как составной части процесса (8) – 139
- •1. Разработка программ в ос unix. Обработка ошибок, переменные окружения (9) – 11
- •2. Применение двоичных семафоров для решения задачи «производитель» - «потребитель» (буфер неограниченный) (9, 21)
- •3. Концепция виртуализации (9, 17)
- •1. Файлы, отображаемые в память (10) – 33
- •2. Применение семафоров для решения задачи «производитель» - «потребитель» с неограниченным буфером. Решение «спящий парикмахер». (10, 22) – 155
- •3. Подсистема управления памятью, требования, предъявляемые к ней (10)
- •Билет 11
- •1. Процессы в ос unix. Порождение процесса (11, 25) – 57
- •2. Применение общих семафоров для решения задачи «производитель-потребитель» с ограниченным буфером (11, 23) – 157
- •3. Виртуальная память. Задачи управления виртуальной памятью (11, 25)
- •1. Сигналы в ос unix. Их назначение и обработка (12) – 70
- •2. Взаимодействие процессов через переменные состояния. Пример приоритетного правила (12) – 157
- •3. Функции микроядра (4, 12, 15, 27) – 126
- •1. Функции для работы с сигналами (13) – 70
- •2. Проблема тупиков. Алгоритм банкира (13)
- •3.Задача замещения
- •1. Файлы и файловая система в ос unix. Права доступа (3, 14) – 18
- •2. Задача взаимного исключения. Алгоритм Петерсона (14) – 148
- •3. Схемы распределения памяти
- •1. Файловая система в ос unix ext2 (15) – 51
- •2. Взаимодействие процессов. Задача взаимного исключения. Вариант 2 (2, 6, 15, 27) – 143
- •3. Функции микроядра (4, 12, 15, 27) – 126
- •Билет 16
- •1. Каналы в ос unix (16) – 80
- •2. Взаимодействие процессов. Задача взаимного исключения. Вариант 4 (1, 16, 18) – 146
- •3. Организация защиты в процессорах ia32
- •1. Процессы в ос unix, системные вызовы wait, exit (17) – 60, 63
- •2. Монитороподобные средства синхронизации для решения задачи взаимного исключения (17) – 160
- •3. Концепция виртуализации (9, 17)
- •1. Владельцы файлов. Права доступа к файлам. Атрибуты файлов (4, 18) – 23
- •2. Взаимодействие процессов. Задача взаимного исключения. Вариант 4 (1, 16, 18) – 146
- •3. Схемы распределения памяти (18, 24)
- •1. Взаимодействие процессов в ос unix, очереди сообщений (19) – 83
- •2. Синхронизирующие примитивы. Решение задачи взаимного исключения с использованием семафоров (7, 8, 19, 20) - 152
- •3. Принципы построения ос (7, 19, 26) – 128
- •1 Взаимодействие процессов в ос unix с применением семафоров (20) – 93
- •2. Синхронизирующие примитивы. Решение задачи взаимного исключения с использованием семафоров (7, 8, 19, 20) - 152
- •Механизмы поддержки многозадачности в процессорах ia32 (20)
- •1. Работа с файлами в ос unix. Системные вызовы (21) – 25
- •2. Применение двоичных семафоров для решения задачи «производитель» - «потребитель» (буфер неограниченный) (9, 21)
- •3. Страничная организация памяти в процессоре ia32
- •Билет 22
- •1. Взаимодействие процессов в ос unix. Разделяемая память (22) – 100
- •2. Применение семафоров для решения задачи «производитель» - «потребитель» с неограниченным буфером. Решение «спящий парикмахер». (10, 22) – 155
- •3. Организация защиты в процессорах ia32
- •Билет 23
- •1. Процессы в ос unix. Типы процессов. (7, 23) – 56
- •2. Применение общих семафоров для решения задачи «производитель-потребитель» с ограниченным буфером (11, 23) – 157
- •3.Задача замещения
- •1. Понятие потока в ос unix. Создание потока, завершение потока (24) – 106
- •2. Синхронизирующие примитивы. Решение задачи взаимного исключения с использованием семафоров (7, 8, 19, 20, 24) - 152
- •3. Схемы распределения памяти (18, 24)
- •1. Процессы в ос unix. Порождение процесса (11, 25) – 57
- •2. Задача взаимного исключения. Алгоритм Петерсона
- •3. Виртуальная память. Задачи управления виртуальной памятью (11, 25)
- •Билет 26
- •1. Создание потока
- •2. Взаимодействие процессов. Задача взаимного исключения. Вариант 1 (4, 26) – 142
- •3. Принципы построения ос (7, 19, 26) – 128
- •2. Взаимодействие процессов. Задача взаимного исключения. Вариант 2 (2, 6, 15, 27) – 143
- •3. Функции микроядра (4, 12, 15, 27) – 126
- •2. Взаимодействие процессов. Задача взаимного исключения. Вариант 3 (3, 28) – 144
- •3. Особенности современных операционных систем (2, 28) – 122
2. Взаимодействие процессов. Задача взаимного исключения. Вариант 2 (2, 6, 15, 27) – 143
int flag[2];
void P0()
{
while (1)
{
while (flag[1]);
flag[0]=1;
критический интервал 1;
flag[0]=0;
….
}
}
void P1()
{
while (1)
{
while (flag[0]);
flag[1]=1;
критический интервал 2;
flag[1]=0;
….
}
}
void main()
{
flag[0]=0;
flag[1]=0;
parbegin(P0,P1);
}
3. Особенности современных операционных систем (2, 28) – 122
Операционная система (ОС) – это упорядоченная последовательность системных управляющих программ, совместно с необходимыми информационными массивами, предназначенных для планирования, исполнения пользовательских программ и управления всеми ресурсами вычислительной машины (программами, данными, аппаратурой и другими распределяемыми и управляемыми объектами) с целью предоставления возможности пользователям эффективно, в некотором смысле, решать задачи, сформулированные в терминах вычислительной машины.
ОС – это программа, которая контролирует работу прикладных программ и системных приложений и выполняет роль интерфейса между приложениями и аппаратным обеспечением ЭВМ.
ОС предоставляют следующий перечень услуг:
Разработка программ.
Исполнение программ.
Доступ к устройствам ввода-вывода.
Контролируемый доступ к файлам.
Системный доступ.
Обнаружение ошибок и их обработка.
Учет использования ресурсов.
ОС управляет ресурсами компьютера, контролирует его основные функции, но при этом есть важная особенность: ОС – это набор компьютерных программ. Как и любая другая программа, она состоит из команд, выполняемых процессором, при этом работа ОС перемежается (чередуется) с работой других прикладных программ.
ОС указывает процессору, как исполнять другие системные ресурсы и как распределять время работы других программ. Но для реализации действий, предписанных ОС, процессор должен приостановить его работу и перейти к выполнению других программ, таким образом, ОС уступает работу управления процессору, чтобы тот смог выполнить некоторую полезную работу.
Часть ОС, куда входит ядро, расположено в основной памяти вычислительной машины. В основной памяти находится и основная, используемая в данный момент утилита. Оставшаяся часть основной памяти содержит программы и данные пользователя. Их размещением управляет ОС.
Процессор также является ресурсом, поэтому ОС определяет, сколько времени он выполнять ту или иную программу. Основная часть ОС находится на внешней памяти, и по мере необходимости составная части ОС загружается в основную память для выполнения.
Характеристики современных ос
В экспериментальных коммерческих ОС были опробованы различные подходы и структурные элементы, большинство из которых можно объединить в следующие категории:
– архитектура микроядра; – многопоточность;– симметричная многопроцессорность; – распределенные ОС; – объектно-ориентированный дизайн.
Многопоточность – это технология, при которой процесс, выполняющий приложения, разделяется на несколько одновременно выполняющихся потоков.
Поток – это единица работы, включающая контекст процессора (куда входит счетчик команд и указатель на вершину стека), а также свою собственную область стека. Команды потока выполняется последовательно, и поток может быть прерван при переключении процессора на обработку другого потока. У потоков как правило общее адресное пространство, в отличии от процессов. Потоки иногда называют облегченными процессами.
Процесс – это набор из одного или нескольких потоков, а также связанных с этими потоками системными ресурсами, такими как область памяти для хранения кода и данных, открытые файлы, различные устройства.
Концепция процесса близка к концепции выполняющейся программы. Разбивая приложения на несколько потоков, программист получает преимущество модульности приложения и возможность управления связанными с приложением временными событиями.
Симметричная многопроцессорность определяется следующими характеристиками:
В системе имеется несколько процессоров;
Процессоры соединены меду собой коммуникационной шиной и совместно используют одну и ту же основную память и одни и те же устройства ввода-вывода;
Все процессоры могут выполнять одни и те же функции.
Считается, сто многопроцессорные системы имеют несколько потенциальных преимуществ по сравнению с однопроцессорными:
- производительность; - надежность; - наращивание; - масштабирование.
В действительности эти преимущества не всегда реализуются. В частности, если задача строго линейна (т.е. не распараллеливается), то и выигрыша никакого не будет.
Распределение ОС: Сущность этой концепции состоит в том, что создается так называемый кластер, состоящий из нескольких отдельных компьютеров, каждый из которых обладает собственной основной и вторичной памятью и своими устройствами ввода-вывода. Распределенные ОС создают видимость единого пространства основной и вторичной памяти и единой файловой системы.
БИЛЕТ 3 1. Файлы и файловая система в ОС UNIX. Права доступа (3, 14) – 18
Файл – это самая простая и фундаментальная абстракция в операционных системах Unix, в которых как бы придерживаются такого предположения, что всё есть файл. Это значит, что большая часть взаимодействий реализована через запись и чтение в файл. Даже в тех случаях, когда интересующий нас объект нельзя назвать файлом в общепринятом смысле этого слова.
Файлы в этой системе также определяют привилегии пользователя, так как права пользователя в большинстве случаев контролируются с помощью прав доступа к файлу.
Файлы обеспечивают доступ к периферийным устройствам. Все программы, которые выполняются в системе, включая прикладные задачи пользователя, системные процессы, ядро системы являются исполнительными файлами.
Файлы в Unix системах организуются в древовидной структуре называемой Файловой системой. Говорят что файловая система это набор файлов и каталогов в формальном виде и допустимой иерархии. Каждый файл имеет имя, определяющее его расположение в файловой системе.
Корнем этого дерева является корневой каталог. Его имя ‘ / ’
Все файлы имеют имена, которые представляют собой путь (список каталогов который необходимо пройти, чтобы достигнуть файла).
Пример:
/home/stud/prog1.c
Имя, начинающееся с / называют полным именем файла. Можно указать относительное имя файла тогда поиск будет начат от текущего каталога.
Важно, что имя файла является атрибутом файловой системы, а не набора данных, на каком- то носителе. Каждый файл имеет метаданные для связи с ним.
Метаданные – набор данных определяющих характер файла.
Они хранятся в индексных дескрипторах, и имя файла в файловой системе является указателем на индексный дескриптор inode.
Все файлы в Unix имеют двух владельцев (пользователь и группа пользователей). Пользователь владеющий файлом может не принадлежать к группе владеющей файлом.
>ls -l
Выводит полную информации о каталоге.
Права на файл назначаются владельцем файла. Владельцем созданного файла назначается идентификатор пользователя того процесса который создал файл. Правило назначения группы: в большинстве ОС группой владельцем становится первичная группа пользователя, которая инициировала создание файла. Владение файлом определяют набор операций, которые пользователь может совершить с файлом. Некоторые действия над файлом (изменение прав доступа или изменение владельца файла) может определять только владелец файла или root. Но ряд других операций (чтение, запись) отдельно определены для разных категорий пользователей.
В ОС Unix существует три базовых класса доступа к файлу:
- пользователь, владеющий файлом;
- пользователь, относящийся к группе владеющей файлом;
- остальные (остальные кроме root).
И для каждого класса устанавливаются 3 типа прав доступа:
- чтение; - запись; - выполнение.
Пример:
- rwx r-x rw- Владелец группа остальные
Пример:
>chmod a+w text1.t
>chmod g+x-w file1.c; prog2.c
>chmod u+w,og+r-w prog1.c
>chmod 755 file3.t
где d - каталог
Для просмотра содержимого необходимо w. Для изменения - r. Для выполнения - x.
Право чтения каталога позволяет получить только имена файлов находящихся в этом каталоге. Для подробной информации необходимо обращаться к метаданным файла, а это требует права на выполнение по отношению к каталогу. Права на запись по отношению к каталогу необходимо при создании и удалении файла. При этом не учитываются права доступа к самому файлу.
Порядок действия ОС при проверке прав доступа. При инициализации действий над файлом выполняется проверка прав доступа:
Если это root действие разрешается и дополнительной проверки не производится.
Если действие запрашивается владельцем файла, то проверяется наличие права на запрашиваемое действие.
Если действие запрашивается пользователем, входящим в группу владеющую файлом, то проверяется наличие права на запрашиваемое действие.
Если действие запрашивается другим пользователем, то проверяется наличие права на запрашиваемое действие.