Одним из главных принципов уникальной «системы Физтеха», заложенной в основу образования в МФТИ, является тщательный отбор одаренных и склонных к творческой работе представителей молодежи. Абитуриентами Физтеха становятся самые талантливые и высокообразованные выпускники школ всей России и десятков стран мира.

Студенческая жизнь в МФТИ насыщенна и разнообразна. Студенты активно совмещают учебную деятельность с занятиями спортом, участием в культурно-массовых мероприятиях, а также их организации. Администрация института всячески поддерживает инициативу и заботится о благополучии студентов. Так, ведется непрерывная работа по расширению студенческого городка и улучшению быта студентов.

Адрес e-mail:

Информатика

ПРОГРАММА

По курсу: ИНФОРМАТИКА И ПРИМЕНЕНИЕ КОМПЬЮТЕРОВ В НАУЧНЫХ ИССЛЕДОВАНИЯХ (системное программирование обеспечение) для специальности: 511600 факультеты: ФРТК, ФОПФ, ФАКИ, ФМБФ, ФФКЭ, ФПМЭ кафедра: ВЫЧИСЛИТЕЛЬНОЙ МАТЕМАТИКИ курс: II семестр: 3                  прием двух занятий диф. зачет лекции: 34 часа         учебно-исследовательская работа Лабораторные занятия: 34 часов ВСЕГО ЧАСОВ: 68

Программу составили:

чл. корр., РАН В.П. Иванников доцент К.А. Коньков ст. пр. В.Е. Карпов

Программа обсуждена на заседании кафедры вычислительной математики 17 апреля 2002 г.

Заведующий кафедрой:  А.С. Холодов


1. Введение. Цели и задачи курса. Понятие о вычислительном комплексе. Системное программное обеспечение и операционные системы. Краткая история эволюции вычислительных систем. Взаимное влияние software и hardware. Автономные, сетевые и распределенные операционные системы. Классификация автономных операционных систем по их назначению и структуре.

Знакомство с операционной системой UNIX. Системные вызовы и библиотека libc. Понятия login и password. Упрощенное устройство файловой системы в UNIX. Полные имена файлов. Текущая директория. Относительные имена файлов. Домашняя директория пользователя. Команда man – универсальный справочник. Команды cd и ls. Перенаправление стандартного ввода и стандартного вывода. Простейшие команды работы с файлами – cat, cp, mkdir, mv, rm. Шаблоны имен файлов. Пользователь и группа. Системные вызовы getuid () и getgid (). Команды chown и chgrp. Права доступа к файлу. Команда chmod. Маска создания файлов. Команда umask. Редактирование файлов, компиляция и запуск программ.

2. Процессы и их планирование в операционной системе. Понятие процесса. Процесс и программа. Состояния процесса. Управляющий блок процесса и его контекст. Операции над процессами. Переключение контекста. Уровни планирования процессов. Критерии планирования и требования к алгоритмам планирования. Параметры планирования. Вытесняющее и невытесняющее планирование. Алгоритмы планирования: FCFS, RR, SJF, гарантированное планирование, приоритетное планирование, многоуровневые очереди, многоуровневые очереди с обратной связью.

Понятие процесса в UNIX, его контекст. Идентификация процесса. Краткая диаграмма состояний процессов в UNIX. Иерархия процессов. Системные вызовы getpid () и getppid (). Создание процесса в UNIX. Системный вызов fork (). Завершение процесса. Функция exit (). Параметры функции main () в языке С. Переменные среды и аргументы командной строки. Изменение пользовательского контекста процесса. Семейство функций для системного вызова exec ().

3. Кооперация процессов. Взаимодействующие и независимые процессы. Категории средств связи. Установление и завершение связи. Прямая и косвенная адресация. Информационная валентность процессов и средств коммуникации. Дуплексная и полудуплексная связь. Потоки ввода-вывода и сообщения. Буферизация данных. Надежность обмена информацией. Нити исполнения и их отличие от процессов. Interleaving, race condition и взаимоисключения. Условия Бернстайна. Понятие критической секции процесса. Программные алгоритмы организации взаимодействия процессов и предъявляемые к ним требования. Аппаратная поддержка взаимоисключений. Семафоры, мониторы Хора и сообщения. Эквивалентность мониторов, семафоров и сообщений.

Понятие потока ввода-вывода в операционной системе UNIX. Работа с файлами через системные вызовы и через функции стандартной библиотеки. Файловый дескриптор. Наследование файловых дескрипторов при системных вызовах fork () и ехес(). Системные вызовы оре n(), read(), write(), close(). FIFO и pipe. Системные вызовы pipe(), mknod(), функция mkfifo(). Особенности системных потоковых вызовов при работе с FIFO и pipe. Преимущества и недостатки потокового обмена данными. IРС в UNIX. Пространство имен. Адресация в System V IPC. Функция ftok (). Дескрипторы System V IPC. Разделяемая память. Системные вызовы shmget (), shmat (), shmdt (), shmctl (). Команды ipcs и ipcrm. Нить исполнения (thread) в UNIX, ее идентификатор. Функция pthread_self(). Создание и завершение нити исполнения. Функции pthread_create(), pthread_exit(), pthreadjoin(). Семафоры в UNIX. Отличие операций над UNIX семафорами от классических операций. Системные вызовы semget (), semop (), semctl (). Понятие о POSIX семафорах. Очереди сообщений в UNIX. Системные вызовы msgget (), msgsnd, msgrcv (), msgctl (). Понятие мультиплексирования. Мультиплексирование сообщений. Модель взаимодействия процессов клиент-сервер. Неравноправность клиента и сервера.

4. Управление памятью. Связывание адресов. Простейшие схемы управления памятью: схема с фиксированными разделами, своппинг, мультипрограммирование с переменными разделами. Проблема размещения больших программ. Понятие виртуальной памяти. Страничная память. Сегментная и сегментно-страничная организации памяти. Таблица страниц. Ассоциативная память. Иерархия памяти. Размер страницы. Исключительные ситуации при работе с памятью. Стратегии управления страничной памятью: выборки, размещения и замещения страниц. Алгоритмы замещения страниц: FIFO, OPT, LRU и другие. Thrashing. Свойство локальности. Модель рабочего множества. Аппаратно-независимая модель памяти процесса.

5. Файловые системы. Имена, структура, типы и атрибуты файлов. Операции над файлами. Директории. Операции над директориями. Защита файлов. Интерфейс файловой системы и ее общая структура. Методы выделения дискового пространства: непрерывная последовательность блоков, связный список, связный список с индексацией, индексные узлы. Управление свободным и занятым дисковым пространством: битовый вектор, связный список. Размер блока на диске. Реализация директорий. Монтирование файловых систем. Надежность и целостность файловых систем.

Разделы носителя информации (partitions) в UNIX. Логическая структура файловой системы и типы файлов в UNIX. Организация файла на диске в UNIX на примере файловой системы s5fs. Понятие индексного узла (mode). Организация директорий (каталогов) в UNIX. Понятие суперблока. Указатель текущей позиции в файле. Системная таблица файлов и таблица индексных узлов открытых файлов. Операции над файлами и директориями. Понятие жестких и мягких связей. Системные вызовы и команды для выполнения операций над файлами и директориями: chmod, chown, chgrp, open (), creat (), read (), write (), close (), stat (), fstat (), lstat (), ftruncate (), lseek (), link (), symlink (), unlink (). Функции для изучения содержимого директорий opendir (), readdir (), rewinddir (), dosedir (). Понятие о файлах, отображаемых в память (memory mapped файлах). Системные вызовы mma р(), munmap (). Понятие виртуальной файловой системы. Монтирование файловых систем в UNIX.

6. Система управления вводом-выводом. Общие сведения об архитектуре компьютера. Структура контроллера устройства. Опрос устройств и прерывания. Исключительные ситуации и системные вызовы. Прямой доступ к памяти (Direct Memory Access - DMA). Структура системы ввода-вывода. Систематизация внешних устройств и интерфейс между базовой подсистемой ввода-вывода и драйверами. Функции базовой подсистемы ввода-вывода. Блокирующиеся, не блокирующиеся и асинхронные системные вызовы. Буферизация и кэширование. Spooling и захват устройств. Обработка прерываний и ошибок. Планирование запросов. Алгоритмы планирования запросов к жесткому диску: FCFS, SSTF, SCAN, C-SCAN, LOOK, C-LOOK.

Блочные и символьные устройства в UNIX. Понятие драйвера. Блочные, символьные драйверы, драйверы низкого уровня. Файловый интерфейс к драйверам. Коммутатор устройств. Старший и младший номер устройства. Понятие сигнала в UNIX. Способы возникновения сигналов и виды их обработки. Понятия группы процессов, сеанса, лидера группы, лидера сеанса, управляющего терминала сеанса, текущей и фоновой групп процессов. Системные вызовы getpgrp (), setpgrp (), getpgid (), setpgid (), getsid (), setsid (). Системный вызов kill () и команда kill (). Особенности получения терминальных сигналов текущей и фоновой группой процессов. Получение сигнала SIGHUP процессами при завершении лидера сеанса. Системный вызов signal (). Установка собственного обработчика сигнала.

Сигналы SIGUSR1 и SIGUSR2. Использование сигналов для синхронизации процессов. Завершение порожденного процесса.

Системный вызов waitpid (). Сигнал SIGCHLD. Возникновение сигнала SIGPIPE при попытке записи в pipe или FIFO, который никто не собирается читать. Понятие о надежности сигналов. POSIX функции для работы с сигналами.

7. Сети и сетевые операционные системы. Причины объединения компьютеров в сети. Сетевые и распределенные операционные системы. Взаимодействие удаленных процессов как основа работы вычислительных сетей. Локальные и глобальные вычислительные сети. Топология компьютерных сетей. Взаимная синхронизация вычислительных комплексов: обнаружение коллизий (CSMA/CD), метод передачи эстафетной палочки (token passing), использование слотов для данных. Удаленная адресация и разрешение адресов. Понятие о DNS. Локальная адресация. Понятие порта. Полные адреса. Понятие сокета (socket). Фиксированная, виртуальная и динамическая маршрутизация. Сети, коммутируемые цепями, сообщениями и пакетами данных. Связь с установлением логического соединения и передача данных с помощью сообщений. Многоуровневая модель построения сетевых вычислительных систем. Семейства и стеки протоколов. Эталонная модель OSI/ISO.

Краткая история семейства протоколов TCP/IP. Общие сведения об архитектуре семейства протоколов TCP/IP. Уровень сетевого интерфейса. Уровень Internet. Протоколы IP, ICMP, ARP, RARP. Internet адреса. Транспортный уровень. Протоколы TCP и UDP. Понятие порта. Понятие encapsulation. Уровень приложений/процессов. Использование модели клиент-сервер для взаимодействия удаленных процессов. Понятие socket в UNIX. Организация связи между удаленными процессами с помощью датаграмм. Организация связи между процессами с помощью установки логического соединения. Сетевой порядок байт. Функции htons (), htonl (), ntohs (), ntohl (). Функции преобразования IP адресов inet _ ntoa (), inet _ aton (). Функция bzero (). Системные вызовы socket(), bind(), sendto(), recvfrom(), accept(), listen(), connect().

8. Проблемы безопасности операционных систем. Классификация угроз. Формализация подхода к обеспечению информационной безопасности. Классы безопасности. Политика безопасности. Криптография как одна из базовых технологий безопасности ОС. Шифрование с симметричными и ассиметричными ключами. Правило Кирхгофа. Алгоритм RSA. Идентификация и аутентификация. Пароли, уязвимость паролей. Авторизация. Разграничение доступа к объектам ОС. Домены безопасности. Матрица доступа. Недопустимость повторного использование объектов. Аудит, учет использования системы защиты.

 

СПИСОК ЛИТЕРАТУРЫ

Bach M.J. The design of the UNIX Operating System.-Prentice-Hall, 1986. Department of Defense. Trusted Computer System Evaluation Criteria. DoD 5200.28STD. 1993. Ritchie DM. The Evolution of the Unix Time-sharing System. AT&T Bell Laboratories Technical Journal 63 No. 6. Part 2, October 1984, pp. 1577-93. Silberschatz A., P.B.Galvin. Operating System Concepts. -John Willey & Sons, 1997. Stevens R.W. Unix Network Programming, Prentice Hall, Inc., 1990, First edition. Stevens R.W. Unix Network Programming. Prentice Hall, Inc., volume 1-2, 1998, Second edition. Tanenbaum A.S. odem Operating Systems. - Prentice Hall, 1992. Беляков М.И., Рабовер Ю.И., Фридман А.Л. Мобильная операционная система, - М.: Радио и связь, 1991. Дейтел Г. Введение в операционные системы. - М.: Мир, 1987. Керниган Б.В. Пайк P. UNIX - универсальная среда программирования. - М.: Финансы и статистика. 1992. Олифер В.Г., Олифер Н.А. Сетевые операционные системы. - Издательский дом <Питер>, 2001. Снейдер И. Эффективное программирование TCP/IP. Питер, 2001. Робачевский Андрей. Операционная система UNIX. -BHV, 1999. Цикритис Д., Бернстайн Ф. Операционные системы. -М.: Мир. 1977.
Если вы заметили в тексте ошибку, выделите её и нажмите Ctrl+Enter.

© 2001-2016 Московский физико-технический институт
(государственный университет)

Техподдержка сайта

МФТИ в социальных сетях

soc-vk soc-fb soc-tw soc-li soc-li
Яндекс.Метрика