Операционная система UNIX: Курсы
Анонс программы
Данный курс предназначен для ознакомления слушателей с основами построения и функционирования операционной системы UNIX. Задача курса — изучение архитектуры UNIX, моделей и алгоритмов реализованных в различных ее подсистемах сред исполнения прикладных программ, а также получение практических навыков пользовательской работы и программирования в UNIX.Описание Программы
Необходимая подготовка
· Знание языка программирования C.
· Общие знания об архитектуре вычислительных систем.
· Общие знания об архитерктуре операционных систем.
Аудитория
Специалисты различного профиля, которым по роду своей деятельности необходимы навыки работы в операционной системе UNIX.
Содержание
Лекции
- Введение. (История UNIX, версии, причины популярности. Требования к аппаратному обеспечению. Архитектура UNIX).
- UNIX с точки зрения пользователя. (Общие вопросы работы в UNIX: Особенности многопользовательской среды. Пользователи и группы; Файловая система UNIX. Стандарт на файловую систему. Типы объектов файловой системы. Атрибуты файлов, права доступа; Процессы UNIX. Типы процессов, атрибуты процессов, жизненный цикл и состояния процессов. Сигналы; Пользовательская среда UNIX. Командный интерпретатор: Назначение и роль командного интерпретатора; Программирование на языке Bourne shell; Основные утилиты работы с файлами и процессами. Системные процессы: Важнейшие демоны: init, cron, inetd; Сетевые демоны).
- Функционирование некоторых подсистем UNIX. (Элементы архитектуры ЭВМ: Память вычислительной системы. Модели адресации; Уровни привилегий центрального процессора. Задачи и переключение задач; Обработка прерываний. Управление памятью в UNIX: Описание физической памяти; Структура адресного пространства процесса. Операции с регионами; Замещение страниц. Алгоритм, используемыйв Linux; Распределение ресурса «время центрального процессора»: Планирование. Критерии оценки алгоритмов планирования. Вытесняющее и невытесняющее планирование. Приоритетное планирование. Планирование в различных UNIX-системах. Жизненный цикл процесса. Действия UNIX в вызовах fork(), exec*(), exit().)
- Взаимодействие процессов в UNIX. (Синхронизация. Задача взаимного исключения и е решения.Тупики. Средства межпроцессного взаимодействия в UNIX: Неименованные и именованные каналы; Сигналы; System V IPC (очереди сообщений, семафоры, разделяемая память); POSIX IPC (очереди сообщений, семафоры, разделяемая память); Файлы, отображаемые в память; Работа с потоками в библиотеке pthread; Мьютексы и их реализация в библиотеке pthread; Conditional variables и их реализация в библиотеке pthread; Удаленный вызов процедур. DOORs; Решение задачи «Писатели-читатели»).
- Подсистема управления файлами UNIX. (Индексный дескриптор (i-node). Назначение и атрибуты i-node. Структуры, используемые в ядре для обеспечения работы процессов с файлами; Размещение файловых систем на устройствах блочного типа. Структура файловой системы; Архитектура виртуальной файловой системы. Стандартные операции над объектами файловой системы и их реализации в VFS. Драйвера файловых систем и монтирование; Устройства символьного и блочного типа, драйвера устройств и их место в подсистеме управления файлами; Драйверы терминалов и строковые интерпретаторы).
- Стек сетевых протоколов TCP/IP. (Архитектура TCP/IP; Межсетевой уровень архитектуры и протокол IP. IP-адреса, маршрутизация, фрагментация. Протоколы ARP, DHCP; Уровень хост-хост, протоколы UDP, TCP. Алгоритм окна, надежность, мультиплексирование, логические соединения между процессами; Обзор сервисов прикладного уровня: DNS, FTP, SMTP, POP3, IMAP, NFS, TELNET; Программный интерфейс сокетов.
Лабораторные занятия
· Работа в командном интерпретаторе bash. Утилиты работы и управления документацией, пользователями, объектами файловой системы, процессами.
· Структура файловой системы UNIX. Загрузка ОС UNIX; процессы, работающие при загрузке, и используемые файлы.
· Утилиты создания и управления файловыми системами.
· Программирование на языке командного интерпретатора bash (Bourne again shell).
· Средства разработки программ на языке C. Утилита make и структура Makefile? ов. Написание программ, создающих процессы и использующих неименованные каналы и переменные окружения.
· Разработка программ, использующих System V IPC (разделяемая память и очереди сообщений).
· Создание многопоточных приложений.