uzluga.ru
добавить свой файл
1





САРАТОВСКИЙГОСУДАРСТВЕННЫЙУНИВЕРСИТЕТимениН. Г. ЧЕРНЫШЕВСКОГО

____________________________________________________________________________


Кафедра

Дискретнойматематикииинформационныхтехнологий




Специальность

Вычислительныемашины, комплексы, системыисети




Дисциплина

Операционныесистемы




Экзаменационныевопросы.

№ Дата

 / 17.06.2011





Весна2011. Очноеотделение.




Зав. кафедрой

Тяпаев Л. Б.


Экзаменатор

Синельников Е. А.


Студент / Группа




Баллы

8

4

9

12

7

6

8

12

12

12

10










100




Оценка





















































1.[8 баллов]: Истина или Ложь?

  1. И / Л : В файловых системах с поддержкой прав доступа к файлам в метаданных каждого файла содержится строка с именем владельца файла

  2. И / Л : Чем меньше интервал квантования, используемый для планирования задач, тем больше общая пропускная способность вычислительной системы управляемой операционной системной

  3. И / Л : Для организации системных вызовов в операционных системах используются аппаратные прерывания

  4. И / Л : Файловый дескриптор, открытый в неблокируемом режиме, при попытке чтения и отсутствии готовых данных для чтения возвращает соответствующий код ошибки.

Ответ:

  1. ЛОЖЬ (в метаданных не хранятся строки, а хранятся идентификаторы пользователей)

  2. ЛОЖЬ (чем больше интервал квантования, тем больше общая пропускная способность вычислительной системы )

  3. ЛОЖЬ (Для организации системных вызовов в операционных системах (используются программные прерывания)

  4. ИСТИНА (так как файловый дескриптор в не блокируемом режиме)



2.[4 баллов]: Укажите заданный системный вызов.

  1. Укажите системный вызов, позволяющий получить код завершения завершившегося процесса по идентификатору:__________

  2. Укажите системный вызов, позволяющий удалить файл:__________

Ответ:

  1. Выполнение системного вызова wait приводит к приостановке выполнения процесса до тех пор, пока не завершится выполнение какого-либо из процессов, являющихся его потомками.

  2. Системный вызов unlink служит для удаления имени, на которое указывает параметр pathname, из файловой системы.

3.[9 баллов]: Определите вывод команды. Вы вводите следующую команду:

$ echo cat echo > echo && sh echo || echo echo

Поясните какие варианты вывода, и при каких условиях, могут быть для этой команды

Ответ: Первая часть выражения пытается создать файл echo с записью cat echo в него. sh echo запускает только что созданный файл echo, и в консоль выводится содержимое файла echo т.е. cat echo. В случае если файл не создался, например нет прав на создание директории, выполняется условие «или» и в консоль выводится echo.

4.[12 баллов]: Поясните чем отличается оптимальная реализация функции перемещения файла в рамках одной файловой системы от реализации функции перемещения файла из одной файловой системы в другую. Укажите также отличия между перемещением и переименованием файла.

Ответ: В рамках одной файловой системы для перемещения файла необходимо поменять на него ссылку, а при перемещении файла из одной файловой системы в другую необходимо копирование этого файла.(копирование данных) Отличия между перемещением и переименованием нету.

5.[7 баллов]: Укажите свойства процесса, влияющие на предоставляемые ему возможности и права доступа во время выполнения системных вызовов. Укажите варианты действий процесса, в которых операционная система выполняет соответствующую проверку возможностей и прав доступа.

Ответ: Свойствами процесса, влияющие на предоставляемые ему возможности и права доступа во время выполнения системных вызовов являются uid, guid. То, что пользователя идентифицирует UID, значит, что операционная система различает пользователей именно по UID (а не например, по логину). Во многих системах существует возможность создать две записи пользователя с разными логинами, но одинаковыми UID; в результате оба логина будут иметь одинаковые права, так как с точки зрения системы они неотличимы (так как имеют одинаковый UID). GUID  — статический уникальный 128-битный идентификатор. Его главная особенность — уникальность, которая позволяет создавать расширяемые сервисы и приложения без опасения конфликтов, вызванных совпадением идентификаторов. Хотя уникальность каждого отдельного GUID не гарантируется, общее количество уникальных ключей настолько велико , что вероятность того, что в мире будут независимо сгенерированы два совпадающих ключа, достаточно мала.Операционная система выполняет соответствующую проверку возможностей и прав доступа при системном вызове, обращение по адресу, выполнение привилегированных инструкций

6.[6 баллов]: Поясните каким образом планировщик ввода-вывода позволяет увеличить общую пропускную способность вычислительной системы. Укажите для каких задач этот механизм наиболее эффективен.

Ответ: Планировщики ввода/вывода выполняют две основные операции: слияние и сортировка. Слияние представляет собой процесс принятия двух или нескольких смежных запросов ввода/вывода и объединения их в один запрос. Сортировка, более важная из этих двух операций,- это процесс упорядочивания запросов ввода/вывода в восходящем порядке номеров блоков. Например, если есть операции ввода/вывода с блоками номер 52, 109, и 7, то планировщик ввода/вывода будет сортировать эти запросы в порядке 7, 52 и 109. Если запрос был выдан на блок 81, он будет вставлен между запросами на блоки 52 и 109. Планировщик ввода/вывода направит запросы к диску в том порядке, в котором они стоят в очереди: 7, затем 52, затем 81, и, наконец, 109.

7.[8 баллов]: Объясните для каких задач применяются файловые блокировки. Приведите виды файловых блокировок. Укажите принципиальную разницу между вынужденными и не вынужденными блокировками.

Ответ: Файловые блокировки применяются для того чтобы заблокировать файл пока он занят каким-то процессом. Вынужденные блокировки применяется в операционных системах семейства Windows. При вынужденной файловой блокировки файл блокируется «намертво», не один процесс не может не прочитать или записать что в этот файл. При не вынужденных блокировках, который применяется в семействе Linux,файл или часть файла может быть прочтен или записан другим процессом.

8.[12 баллов]: Перечислите механизмы, позволяющих процессу, управляемому операционной системой, увеличить объём оперативной памяти, используемой для исполняемого процессом кода.

Ответ: Загрузка библиотеки, стек, системный вызов malloc ().

9.[12 баллов]: Поясните какие механизмы синхронизации доступны в обработчике аппаратного прерывания, управляемого операционной системой.

Ответ: В обработчике аппаратного прерывания доступен механизм - спин блокировка, при этом нужно запретить прерывания на локальном процессоре. Спин-блокировка - простейший механизм синхронизации. Спин-блокировка может быть захвачена, и освобождена. Если спин-блокировка была захвачена, последующая попытка захватить спин-блокировку любым потоком приведет к бесконечному циклу с попыткой захвата спин-блокировки (состояние потока busy-waiting). Цикл закончится только тогда, когда прежний владелец спин-блокировки освободит ее. Использование спин-блокировок безопасно на мультипроцессорных платформах, то есть гарантируется, что, даже если ее запрашивают одновременно два потока на двух процессорах, захватит ее только один из потоков.

10.[12 баллов]: Объясните каким образом применяются приоритеты при планировании задач. Укажите для каких задач применяются алгоритмы планирования со статическими приоритетами, а для каких — с динмаическими.

Ответ: При выполнении процессов, сначала выполняются процессы с большим приоритетом , а далее с меньшим приоритетом. Статический приоритеты применяются в случае если процессы не будут занимать слишком много процессорного времени. Динамические приоритеты применяется для того чтобы уменьшать приоритет процессов с высоким приоритетом и увеличивать приоритет процессов с малым приоритетом, в случае не хватки процессорного времени процессам с малым приоритетом.

11.[10 баллов]: Вы запускаете приложение /bin/tst, код которого приведён ниже. Поясните какой вывод даст запуск данного приложения.

int main (int argc, char *argv[])
{
if (execl("/bin/tst", "tst", NULL) < 0)
return 1
;

printf("Process %s is running\n", argv[0]);
return 0;
}


Найдите и укажите на ключевую ошибку в данном приложении. Опишите логику данного приложения и предложите вариант исправления найденной ошибки.

Ответ: Данное приложение запускает само себя бесконечно.Ошибкой является место расположения строки printf, её нужно переместить выше

int main (int argc, char *argv[])
{


printf("Process %s is running\n", argv[0]);
if (execl("/bin/tst", "tst", NULL) < 0)
return 1
;

return 0;
}