
- •Билет 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
1. Метаданные файлов в ос unix (7) – 36
Далее приведены системные вызовы для получения значений метаданных файла:
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
int stat(const char *path, struct stat *buf);
int fstst(int fd, struct stat *buf);
int lstat(const char *path, struct stat *buf);
Где параметр path – это полный путь к файлу, а fd – открытый файловый дескриптор.
Следует заметить, что системный вызов lstat отличается от stat тем, что он позволяет получить информацию о файле типа символьная ссылка.
При успешном завершении вызовов возвращается 0 и в структуру stat (рассмотренную ниже) помещаются метаданные, а при ошибке возвращается значение -1 и устанавливаются коды ошибок.
struct stat
{
dev_t st_dev; //устройство, на котором хранится файл
ino_t st_ino; //номер inode (индексного дескриптора)
mode_t st_mode; //режимы использования файла
nlink_t st_nlink; //число жестких ссылок
uid_t st_uid; //идентификатор пользователя владельца
gid_t st_gid; //идентификатор группы владельца
dev_t st_rdev; //если этот файл – устройство, то описано устройство, которое файл представляет
off_t st_size; //размер файла в байтах
blksize_t st_blksize; //размер блока для эффективной реализации ввода/вывода
blkcnt_ st_blocks; //число блоков физической файловой системы, которое
занимает файл
time_t st_atime; //время последнего доступа к файлу
time_t st_mtime; //время последней модификации метаданных файла
time_t st_ctime; //время последней изменения файла
}
В случае успеха все три вызова возвращают значение 0 и записывают метаданные файла в предоставленную им структуру stat. В случае ошибки они возвращают -1 и присваивают переменной errno одно из следующих значений:
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. Описание процесса, таблица процесса (6) – 136
ОС можно представить как некий механизм, управляющий тем, как процессы используют системные ресурсы. И т.к. одна из задач ОС - управление процессами и ресурсами, то ОС должна располагать информацию о текущем состоянии каждого ресурса и процесса. Для этих целей ОС создает и поддерживает таблицы с информацией по каждому объекту управления. Общая структура таблиц:
Память
Устройства
Файлы
Процессы
Таблицы
памяти
Таблицы ввода-вывода
Таблицы файлов
Процесс1
Процесс2
…
Процесс N
Процесс1
Первичные
таблицы процессов
Образ процесса
Таблицы памяти используются для того, чтобы следить за основной и вторичной (виртуальной) памятью. Часть основной памяти резервируется для ОС, остальная доступна процессам.
Эти таблицы включают следующую информацию:
1) объем основной памяти, отведенной процессу;
2) объем вторичной или виртуальной памяти, отведенной процессу;
3) все атрибуты защиты блоков основной и виртуальной памяти;
4) всю информацию, необходимую для управления виртуальной памятью.
Таблицы ввода-вывода.
Используются для управления устройствами ввода-вывода и каналами компьютерной системы. В каждый момент времени устройство ввода-вывода может быть либо свободным, либо отданным в распоряжение какому-либо процессу. Если выполняется операция ввода-вывода, то должна быть информация о состоянии этой операции. Например, какие адреса ОП задействованы в этой операции, кто является отправителем и получателем отправляемой информации.
Таблицы файлов.
В них находится информация о существующих файлах, их расположение на магнитных носителях, текущем состоянии и других атрибутов. В ОС может быть специальная подсистема управления памятью.
Таблицы процессов.
Содержат сведения о процессах, располагая которыми ОС может управлять процессами.
Для эффективного управления информации, которая хранится в таблицах, должны иметься перекрестные ссылки и находится в определенном взаимодействии, особенно в таблицах процессов по отношению к таблицам ресурсам.
Для создания этих таблиц ОС должна иметь информацию о конфигурации вычислительной системы: объем основной памяти, количество и вид устройств ввода/вывода, отнесение портов ввода/вывода к устройствам, информация о внешних устройствах хранения данных и т.п. Эти данные могут создаваться с участием оператора или с помощью специальных программ определения конфигурации вычислительной системы.
БИЛЕТ 7