Основы операционных систем. Практикум
Настоящий курс практических занятий является одной из первых известных авторам попыток систематически проиллюстрировать лекционный курс "Основы операционных систем" на примере конкретной операционной системы, а именно – операционной системы UNIX.
Необходимость связывания систематического изложения материала семинарских и практических занятий с материалом лекций возникла в процессе становления базового четырехсеместрового набора курсов по информатике в МФТИ. Новизна излагаемого материала для многих преподавателей заставила лекторов для соблюдения некоторого стандарта обучения готовить по каждой теме методические указания для участников семинаров, и эти указания, как показал опыт, могут с успехом использоваться и студентами, в том числе для самостоятельного обучения. Обкатанная версия этих методических указаний, расширенная, дополненная и модифицированная по результатам многочисленных обсуждений предлагается сейчас вашему вниманию.
Введение в курс практических занятий
Понятие процесса в UNIX. Его контекст
Понятие о потоке ввода-вывода
Преимущества и недостатки потокового обмена данными.
Семафоры в UNIX. Отличие операций над UNIX-семафорами от классических операций
Сообщения как средства связи и средства синхронизации процессов
Разделы носителя информации (partitions) в UNIX
Понятие виртуальной файловой системы
Краткая история семейства протоколов TCP/IP
Сетевые операционные системы
Использование большинства компьютеров на уровне машинного языка затруднительно, особенно это касается ввода-вывода. Например, для организации чтения блока данных с гибкого диска программист может использовать 16 различных команд, каждая из которых требует 13 параметров, таких как номер блока на диске, номер сектора на дорожке и т. п. Когда выполнение операции с диском завершается, контроллер возвращает 23 значения, отражающих наличие и типы ошибок, которые, очевидно, надо анализировать. Даже если не входить в курс реальных проблем программирования ввода-вывода, ясно, что среди программистов нашлось бы не много желающих непосредственно заниматься программированием этих операций. При работе с диском программисту-пользователю достаточно представлять его в виде некоторого набора файлов, каждый из которых имеет имя. Работа с файлом заключается в его открытии, выполнении чтения или записи, а затем в закрытии файла. Вопросы подобные таким, как следует ли при записи использовать усовершенствованную частотную модуляцию или в каком состоянии сейчас находится двигатель механизма перемещения считывающих головок, не должны волновать пользователя. Программа, которая скрывает от программиста все реалии аппаратуры и предоставляет возможность простого, удобного просмотра указанных файлов, чтения или записи - это, конечно, операционная система. Точно также, как ОС ограждает программистов от аппаратуры дискового накопителя и предоставляет ему простой файловый интерфейс, операционная система берет на себя все малоприятные дела, связанные с обработкой прерываний, управлением таймерами и оперативной памятью, а также другие низкоуровневые проблемы. В каждом случае та абстрактная, воображаемая машина, с которой, благодаря операционной системе, теперь может иметь дело пользователь, гораздо проще и удобнее в обращении, чем реальная аппаратура, лежащая в основе этой абстрактной машины.
Определение операционной системы
Основные подходы к реализации взаимодействия сетей
Коммуникации в ядре Mach
Совместимость с NetWare