Ожидаемые результаты: В результате изучения данного курса студент должен иметь
представление об архитектуре ОС Linux, об основных процессах, связанных с управлением
ресурсами, уметь решать простейшие задачи администрирования.
Постреквизиты: «Проектирование информационных систем», «Информационная
безопасность и защита информации».
OS3216.2 Операционные системы, 3 кредита
Пререквизиты: "Информатика", «Алгоритмы, структуры данных и программирования»,
«Технология программирования», любой из языков программирования высокого уровня для
написания программ.
Цель изучения: Этот курс является вводным курсом в понимании дизайна и реализации
операционной системы. Операционная система обеспечивает хорошо известный, удобный и
эффективный интерфейс между пользовательскими программами и аппаратными средствами
компьютера, на котором они работают. Операционная система несет ответственность за то,
чтобы ресурсы (например, диски, сети и процессоры) использовались совместно,
предоставляя общие услуги, необходимые многими различными программами (например,
обслуживание файлов, возможность запускать или останавливать процессы, а также доступ к
принтеру) и защищать индивидуальные программы друг от друга. Курс начнется с краткой
исторической эволюции развития операционных систем за последние пятьдесят лет, а затем
покроет основные компоненты большинства операционных систем. Это обсуждение будет
охватывать такие важные темы, как взаимные уступки, которые могут быть сделаны между
производительностью и функциональностью при проектировании и реализации
операционной системы. Особое внимание будет уделено трем основным подсистемам ОС:
управление процессами (процессами, потоками, планирования ЦП, синхронизации и
тупиковых ситуаций), управление памятью (сегментация, страничная сегментация, свопинг),
файловые системы и поддержка операционной системы для распределенных систем.
Краткое содержание: Введение, история Операционных систем. Процессы, потоки и
диспетчеризация. Управление процессами. Одновременные потоки. Планирование ЦП.
Синхронизация: Блокировки и переменные условия. Реализация блокировок. Семафоры.
Тупиковая ситуация. Связывание и динамическое связывание. Мониторы и переменные
условия. Проблема «Читатели и писатели». Проблема «Кушающие философы». Управление
памятью. Переселение. Управление памятью: подкачки. Сегментированные подкачки. Спрос
выгружаемой виртуальной памяти. Файловые системы. Реализация файловой системы.
Дополнительное хранение, диски. Системы ввода/вывода, драйверы устройств. Связь и сети.
Распределенные системы и Удаленный вызов процедур - RPC. NFS, защита.
Ожидаемые результаты: У вас будет возможность получить много практической
информации о том, как языки программирования, операционные системы и архитектуры
взаимодействуют и как эффективно использовать каждый из данных сегментов. Этот курс в
первый раз, когда вы узнаете о том, как параллелизм и распределенные системы общаются и
работают правильно. Эти знания помогут вам более эффективно использовать и управлять
компьютерами и компьютерными программами. Письменные и задания программирования
предназначены для практического построения и повышения знаний, полученных на лекциях.
Вы услышите понятия на лекциях, будете читать их на презентациях и/или из раздаточных
материалов/PDF-файлов, анализировать их в письменном домашнем задании и используете
их на практике в заданиях программирования. Вы поймете более подробно основные
принципы того, как работают ОС, и как процессы общаются друг с другом, планированию
ресурсов и процессов, тупиковых ситуаций, и предотвращению подобных ситуаций.
Постреквизиты: «Защита и безопасность информации», «Компьютерные сети»,
«Проектирование клиент-серверных приложений».