
К9-12В. Вопросы и ответы к ГОСам 2013 / Операционные системы / 09. Средства и способы обеспечения многопользовательского режима в ОС
.docx09. Средства и способы обеспечения многопользовательского режима в ОС
Для этого в UNIX имеется:
* Система разделения времени
* Многотерминальная система
* Единая структура задач
* Древовидная файловая система и защита файлов и каталогов пользователя
Исторически ОС UNIX является системой разделения времени, т.е. система должна прежде
всего «справедливо» разделять ресурсы процессора(ов) между процессами, относящимися к разным пользователям, причем таким образом, чтобы время реакции каждого действия интерактивного пользователя находилось в допустимых пределах. Однако в последнее время возрастает тенденция к использованию ОС UNIX в приложениях реального времени, что повлияло и на алгоритмы планирования. Ниже описана общая схему планирования разделения ресурсов процессора(ов) между процессами в ОС UNIX.
Наиболее распространенным алгоритмом планирования в системах разделения времени является кольцевой режим (round robin). Основной смысл алгоритма состоит в том, что время процессора делится на кванты фиксированного размера, а процессы, готовые к выполнению, выстраиваются в кольцевую очередь. У этой очереди имеются два указателя - начала и конца. Когда процесс, выполняющийся на процессоре, исчерпывает свой квант процессорного времени, он снимается с процессора, ставится в конец очереди, а ресурсы процессора отдаются процессу, находящемуся в начале очереди. Если выполняющийся на процессоре процесс откладывается (например, по причине обмена с некоторым внешнем устройством) до того, как он исчерпает свой квант, то после повторной активизации он становится в конец очереди (не смог доработать - не вина
системы). Это прекрасная схема разделения времени в случае, когда все процессы одновременно помещаются в оперативной памяти.
Однако ОС UNIX всегда была рассчитана на то, чтобы обслуживать больше процессов, чем можно
одновременно разместить в основной памяти. Другими словами, часть процессов, потенциально готовых выполняться, размещалась во внешней памяти (куда образ памяти процесса попадал в результате своппинга). Поэтому требовалась несколько более гибкая схема планирования разделения ресурсов процессора(ов). В результате было введено понятие приоритета. В ОС UNIX значение приоритета определяет, во-первых, возможность процесса пребывать в основной памяти и на равных конкурировать за процессор. Во-вторых, от значения приоритета процесса, вообще говоря, зависит размер временного кванта, который предоставляется процессу для работы на процессоре при достижении своей очереди. В-третьих, значение приоритета, влияет на место процесса в общей очереди процессов к ресурсу процессора(ов).
Файловая система.
Наиболее полный контроль за параллельной работой многих пользователей в системе обеспечивает иерархическая древовидная структура файловой системы. В отличие от однопользовательской MS-DOS у ОС UNUX единое дерево. Все дерево файлов разделяется на отдельные поддеревья и каждому пользователю предоставляется возможность собственное поддерево файлов. Кроме того файловая система поддерживает доступ к файлам и каталогам в соответствии с правами конкретного пользователя или группы пользователей.
Учетные записи пользователей.
В системе UNIX есть понятие учетной записи пользователя. Каждому пользователю системы администратором назначается входное имя (login) и пароль (password). Пользователь может являться членом в одной или нескольких групп. Пользователю также назначается начальный или домашний каталог, который становится текущим после входа пользователя в систему. Каждому пользователю также может быть назначен свой SHELL-оболочка для обработки команд. Система проверяет входное имя и пароль, которые записаны в системном файле /etc/passwd. Если входное имя и пароль введены верно, то система определяет с какого терминала произведен запрос, запускает процесс этого терминала, назначает текущий домашний каталог пользователя.
После чего выводит приглашение к работе.
Поддержка терминального входа.
Зарегистрированный в системе пользователь имеет возможность со своего терминала осуществить вход в систему на удаленном компьютере, после чего работать, используя ресурсы удаленного компьютера в соответствии со своими правами доступа. Для этого ОС UNIX существует команды telnet и rlogin.
Помимо механизмов защиты работы и данных одного пользователя от разрушающих воздействий со стороны другого пользователя существуют также механизмы защиты системных ресурсов самой ОС на уровне ядра.
В ОС UNIX это достигается за счет того, что ядро системы работает в собственном «ядерном» виртуальном пространстве, к которому не может иметь доступа ни один пользовательский процесс.