Операционные системы семейства Unix. История создания Начало. В 1965 году фирма Bell Telephone Laboratories, объединив свои усилия с компанией General.

Презентация:



Advertisements
Похожие презентации
1. Теоретические основы операционных систем (планирование заданий и использования процессора, обеспечение программ средствами коммуникации и синхронизации,
Advertisements

Лекция 6 Понятие операционных систем Учебные вопросы: 1. Характеристики ОС 2. Свободные и проприетарные ОС.
Операционные системы и среды. Схема устройства жесткого диска Дорожка N Сектор (блок) Пластина 1 Пластина 2 Цилиндр 0 сторона Диск – одна или несколько.
Операционные системы
Операционная система Назначение и состав. На IBM-совместимых персональных компьютерах используются операционные системы корпорации Microsoft Windows,
Сетевые службы Для конечного пользователя сеть это не компьютеры, кабели и концентраторы и даже не информационные потоки, для него сеть это, прежде всего,
Информатика в школе Операционная система Программное обеспечение.
Раздел 3 Сетевые модели. Тема 3.1 Понятие сетевой модели. Архитектура сети определяет основные элементы сети, характеризует ее общую логическую организацию,
Обзор операционных систем ВОУНБ им. М. Горького «Операционная система - это совокупность программ, обеспечивающих управление процессом обработки информации.
Дисциплина: Операционные системы § 7. Организация памяти компьютера План: 1.Физическая память компьютера. 2.Логическая память компьютера. 3.Функции системы.
1. Этапы развития вычислительной техники и программного обеспечения. 2.Структура вычислительной системы. Ресурсы ВС- физические ресурсы, виртуальные ресурсы.
Лекция 6 Лекция 6 Введение в обработку данных. Среда хранения и средства обработки информационных массивов. Эволюция и характеристика концепций обработки.
Шлюзы Итак, шлюз согласует коммуникационные протоколы одного стека с коммуникационными протоколами другого стека. Программные средства, реализующие шлюз,
Понятие об операционной системе (ОС). Что происходит сразу после включения питания ПК? При включении питания процессор обращается в микросхему ПЗУ (постоянное.
Операционная система. Операционная система – комплекс программ, обеспечивающих взаимодействие всех аппаратных и программных частей компьютера между собой.
ОПЕРАИОННАЯ СИСТЕМА. Операционная система комплекс программ, обеспечивающий управление аппаратными средствами компьютера, организующий работу с файлами.
Операционная система. 1.Общее понятие операционных системОбщее понятие операционных систем 2.Классификация ОСКлассификация ОС 3.Обзор наиболее популярных.
Операционная система Windows. Windows – графическая операционная система для компьютеров платформы IBM PC Предназначена для управления автономным компьютером.
Основные характеристики операционных систем. Операционная система базовый комплекс программ, обеспечивающий управление аппаратными средствами компьютера,
Управление памятью. В ИРТУАЛЬНАЯ ПАМЯТЬ Основная идея заключается в разбиении программы на части, и в память эти части загружаются по очереди. Программа.
Транксрипт:

Операционные системы семейства Unix

История создания Начало. В 1965 году фирма Bell Telephone Laboratories, объединив свои усилия с компанией General Electric и проектом MAC Массачусетского технологического института, приступили к разработке новой операционной системы, получившей название Multics. эта система основывалась на принципах многоуровневой защиты. Виртуальная память имела сегментно-страничную организацию, разделялись сегменты данных и сегменты программного кода, и с каждым сегментом связывался уровень доступа. в ОС Multics была спроектирована и реализована полностью централизованная файловая система. Основным недостатком ОС Multic, была ее чрезмерная сложность.

Возникновение и первые редакции ОС UNIX Исходным толчком к появлению ОС UNIX явилась работа Кена Томпсона по созданию компьютерной игры "Space Travel". Название придумал Брайан Керниган. Он предложил назвать эту двухпользовательскую систему UNICS (Uniplexed Information and Computing System). В ноябре 1971 года был опубликован первый выпуск документации по ОС UNIX ("Первая редакция"). Вторая редакция появилась в 1972 году. В 1973 году Томпсон и Ритчи переписали систему на языке Си. Это была "Четвертая редакция". История создания

Распространение Unix. В 1974 году началось распространение системы в американские университеты. Возможность бесплатного получения исходных текстов UNIX для использования в целях образования Одними из первых получили Калифорнийский университет г. Беркли и университет Нового Южного Уэльса г. Сидней (Австралия). В 1975 году компания Bell Labs выпустила "Шестую редакцию" ОС UNIX В процесс развития Unix вовлекались все больше людей… История создания

Версии Unix Фирма AT&T стремилась упорядочить процесс создания все новых версий ОС UNIX, с этой целью в 1982 году несколько существовавших версий были объединены в одну, которой было присвоено название System III. Другая линия ОС UNIX была связана с Калифорнийским университетом и получила название BSD (Berkley Software Distribution). SunOS, Solaris ОС фирмы Sun Microsystems. SunOS предназначена для станций SPARC и UltraSPARC, а также Intel, Pentium Pro и Power PC. AIX выпускается фирмой IBM и предназначена прежде всего для компьютеров серии RS/6000. Содержит черты System V, BSD и OSF/1, но заметно отличается от других версий UNIX. BSD/OS коммерческая версия BSD UNIX для IBM-совместимых ЭВМ. HP-UX выпускается фирмой Hewlett Packard. Для нее характерна поддержка симметричных мультипроцессорных систем, файловых систем большого объема. Последние версии являются 64-разрядными. IRIX выпускается фирмой Silicon Graphics. Данная ОС работает как на графических станциях, так и на мощных многопроцессорных суперкомпьютерах. Digital UNIX продукт фирмы DEC. Для этой ОС характерна поддержка практически всех сетевых интерфейсов, высокопроизводительные драйверы для работы с жесткими дисками, что делает систему оптимальной для использования на серверах. Сейчас изменилось название этой ОС и она стала называться Tru64 UNIX. SCO UNIX выпускается фирмой Santa Cruz Operation, а, также рядом других фирм. Поддерживает большое число аппаратных платформ и периферийных устройств.

Версии Unix

Бесплатные версии ОС семейства UNIX Существует большое количество бесплатных версий UNIX. FreeBSD, NetBSD, OpenBSD – варианты, разрабатываемые на основе ОС BSD. Наиболее популярное семейство бесплатных UNIX-систем – это системы семейства Linux. Первый вариант Linux был разработан Линусом Торвальдсом в 1991 г. В настоящее время существует несколько вариантов Linux: Red Hat, Mandrake, Slackware, SuSE, Debian.

Достоинства UNIX-систем К числу достоинств ОС семейства UNIX относят: –Переносимость; –Эффективная реализация многозадачности; –Открытость; –Наличие и строгое соблюдение стандартов; –Единая файловая система; –Мощный командный язык; –Наличие значительного числа программных продуктов; –Реализация стека протокола TCP/IP; –Возможность работы в роли сервера или рабочей станции.

Аппаратные платформы. DEC –PDP-11(Ultrix) –VAX-11(Ultrix-32) –Dec Station (MIPS R3000,R2000)(Ultrix) HP –9000/340/360/370 (Motorola 680X0)HP/UX –HP 9000/834 (HP-PA) HP/UX Data General –DG 32-bit original architectureDG-UX –Motorola DG-UX CDC (MIPS R3000, R6000) Unix Sun –(Motorola 680X0)SunOS –i386 SunOS –Sparc 1,2 SunOS Apollo (Motorolla 680X0) Apollo Domain IBM Power Station RS/6000AIX Amdahl (IBM370 - совместимая аpх.)- Convex - Cray- ICL, Tandem (MIPS)- Silicon Graphics- На компьютерах, совместимых с IBM РC 386 доступен целый спектр операционных систем: – Xenix 286, 386 (SCO) – Unix 3.2 Open Desкtop (SCO)- v 4.0 – Interactive system Unix v 4.0. – Intel 3.2. AT&T – Esix – Microport – Coherent Sys V

Основные идеи Unix файловая система в виде перевернутого дерева, отражающая естественный иерархический подход к структуризации данных; идея виртуальности: возможность видеть и одинаковыми средствами работать со всеми информационными структурами: данными, программами, командными процедурами, директориями и даже устройствами (как с файлами специального типа); представление любого файла как одномерного массива без какой-либо дополнительной внутренней структуризации; идея процесса, как единицы работы, управления и потребления ресурсов. Последовательность процесса. Развитые механизмы логического и информационного взаимодействия процессов. Конвейеры. мощность и гибкость языка пользователей оболочки (языка управления заданиями или интерпретатора команд).

Сферы применения Unix Разработка переносного программного обеспечения Машинная графика (рабочие станции) САПР. Основа для СУБД Orade, Informix, Unify, Ingress^ и др. в Т.Ч. распределение клиент-сервер. Unix - обеспечение среды для "сетевых" операционных систем 1.Netware 2.Lan/manager Коммуникационные: почтовые серверы, FAX-.... Супервычисления Обучение.

Интерфейсы системы UNIX

Структура UNIX

Основные функции ядра планирование и переключение процессов; управление памятью; обработку прерываний; низкоуровневую поддержку устройств (через драйверы); управление дисками и буферизация данных; синхронизацию процессов и обеспечение средств межпроцессного взаимодействия (IPC). Структура UNIX

Ядро традиционной системы Unix

Процессы и потоки Контекст пользовательского уровня Текст процессаВыполняемые машинные команды программы Данные процессаДанные, доступные программе этого процесса Пользовательский стекСодержит аргументы, локальные переменные и указатели функций, выполняющихся в пользовательском режиме Совместно используемая памятьОбласть памяти, используемая совместно с другими процессами; применяется для обмена информацией между процессами Контекст регистров Счетчик командАдрес очередной команды, которая будет выполняться; она может находиться как в пользовательском пространстве, так и в пространстве ядра Регистр состоянияСодержит данные по состоянию аппаратного обеспечения в момент процессора передачи управления; содержимое и формат этих данных зависят от конкретного аппаратного обеспечения Указатель стекаУказывает положение вершины стека ядра (или пользовательского стека, в зависимости от режима работы процессора) Регистры общего назначенияЗависят от используемого аппаратного обеспечения Контекст системного уровня Запись таблицы процессовОпределяет состояние процесса; эта информация всегда доступна операционной системе Пользовательская областьИнформация по управлению процессом, необходимая только в контексте данного процесса Таблица областей процессаЗадает отображение виртуальных адресов в физические; содержит также поле полномочий, в котором указывается тип доступа, на который процесс имеет право: только для чтения, для чтения и записи или для записи и выполнения Стек ядраСодержит кадр стека процедур ядра при работе процесса в режиме ядра

Процессы и потоки

Диаграмма переходов состояний процессов в системе UNIX

Планирование процессов

Имеются следующие группы приоритетов: программа свопинга; управление блочными устройствами ввода-вывода; управление файлами; управление символьными устройствами ввода-вывода; пользовательские процессы. Планирование процессов

Межпроцессорное взаимодействие неименованные каналы

Межпроцессорное взаимодействие неименованные каналы

Межпроцессорное взаимодействие неименованные каналы

Межпроцессорное взаимодействие неименованные каналы Неправильная реализация двустороннего канала Правильная реализация двустороннего канала

Межпроцессорное взаимодействие именованные каналы

Межпроцессорное взаимодействие именованные каналы

Управление памятью

Многими версиями Unix поддерживается отображение файлов на адресное пространство памяти

Управление памятью Страничная система – основные структуры данных

Управление памятью Страничная система – карта памяти

Управление памятью Страничная система – алгоритм замещения страниц

Распределение памяти ядра Ядро в процессе работы часто генерирует и уничтожает маленькие таблицы и буфера, память для каждого из которых выделяется динамически. Преобразование имени пути может запросить буфер для копирования имени из пользовательского пространства. Подпрограмма allocb () выделяет буфера произвольного размера. Ряд реализаций UNIX выделяют "зомби"-структуры для хранения информации о состоянии выхода и использовании ресурсов завершенными процессами. В SVR4 и Solaris ядро динамически распределяет множество объектов (таких, как структуры процессов, блоки дескрипторов файлов и др.). Управление памятью

Распределение памяти ядра – система двойников

Управление памятью в Linux Адресация виртуальной памяти Linux использует трехуровневую структуру таблицы страниц, состоящую из следующих типов таблиц (каждая отдельная таблица имеет размер, равный одной странице). Каталог страниц. Активный процесс имеет единый каталог страниц, размер которого равен одной странице. Каждая запись в каталоге страниц указывает на одну страницу промежуточного каталога страниц. Каталог страниц активного процесса должен находиться в активной памяти. Промежуточный каталог страниц. Промежуточный каталог страниц может охватывать несколько страниц. Каждая запись промежуточного каталога указывает на одну страницу таблицы страниц. Таблица страниц. Таблица страниц также может охватывать несколько страниц. Каждая запись таблицы страниц указывает на одну виртуальную страницу процесса.

Управление памятью в Linux

Распределение страниц Linux определяет механизм для работы со смежными блоками страниц, отображаемых на смежные блоки кадров страниц. С этой целью Linux использует систему двойников. При выделении и освобождении страниц в основной памяти доступные группы разделяются и объединяются с использованием алгоритма двойников. Алгоритм замещения страниц Алгоритм замещения страниц Linux основан на часовом алгоритме.

Ввод-вывод в системе UNIX Работа с сетью

Ввод-вывод в системе UNIX Работа с сетью Сокеты могут динамически создаваться и разрушаться. При создании сокета вызывающему процессу возвращается дескриптор файла, требующийся для установки соединения, чтения и записи данных, а также разрыва соединения. Каждый сокет поддерживает определенный тип работы в сети, указываемый при создании сокета. Наиболее распространенными типами сокетов являются: 1.Надежный, ориентированный на соединение байтовый поток. 2.Надежный, ориентированный на соединение поток пакетов. 3.Ненадежная передача пакетов.

Ввод-вывод в системе UNIX С каждым устройством ввода-вывода в операционной системе UNIX обычно связан специальный файл. Большую часть операций ввода-вывода можно выполнить при помощи соответствующего файла, что позволяет избежать необходимости использования специальных системных вызовов. Ввод-вывод в операционной системе UNIX реализуется набором драйверов устройств, по одному для каждого типа устройств. Функция драйвера заключается в изолировании остальной части системы от индивидуальных отличительных особенностей аппаратного обеспечения. Когда пользователь получает доступ к специальному файлу, файловая система определяет номера старшего и младшего устройств, а также выясняет, является ли файл блочным специальным файлом или символьным специальным файлом. Система ввода-вывода разделена на два основных компонента: обработку блочных специальных файлов и обработку символьных специальных файлов.

Ввод-вывод в системе UNIX Многие драйверы, например программы буферизации, управления потоком и сетевые протоколы, дублировали процедуры друг друга. Поэтому для структурирования драйверов символьных устройств и придания им модульности было разработано два решения. Решение, реализованное в системе BSD, основано на структурах данных, присутствующих в классических системах UNIX, называемых С-списками. Каждый С-список представляет собой блок размером до 64 символов плюс счетчик и указатель на следующий блок. Символы, поступающие с терминала или любого другого символьного устройства, буферизируются в цепочках таких блоков. Решение, реализованное в системе System V под называнием потоков данных, было разработано Деннисом Ритчи. Потоки данных основаны на возможности динамически соединять процесс пользователя с драйвером, а также динамически, во время исполнения, вставлять модули обработки в поток данных. В некотором смысле поток представляет собой работающий в ядре аналог каналов в пространстве пользователя.

Ввод-вывод в системе UNIX

Буфер кэша Для управления буфером кэша поддерживаются три списка. Список свободных слотов. Список всех слотов кэша (в UNIX слот рассматривается как буфер; каждый слот хранит один сектор диска), доступных для распределения. Список устройств. Список всех буферов, связанных в данный момент с каждым диском. Очередь драйвера ввода-вывода. Список буферов, участвующих в операциях ввода- вывода конкретного устройства (или находящихся в состоянии ожидания операций).

Буфер кэша

Файловая система UNIX характеризуется: иерархической структурой, согласованной обработкой массивов данных, возможностью создания и удаления файлов, динамическим расширением файлов, защитой информации в файлах, трактовкой периферийных устройств (таких как терминалы и ленточные устройства) как файлов. Файловая система ОС UNIX

Структура файловой системы UNIX Файловая система UNIX имеет иерархическую структуру, расширяемую до сетевой с помощью ссылок. В системе имеется единственный корневой каталог обозначаемый специальным символом /. Все прочие каталоги размещаются в нем или его подкаталогах. Некоторые каталоги системы: –/bin – содержит часто употребляемые команды; –/lib – содержит файлы библиотек Си; –/home – содержит домашние каталоги пользователей; –/usr – содержит подкаталоги с файлами совместного использования; –/var – содержит временные файлы; –/sbin – содержит системные утилиты; –/root – домашний каталог супервизора; –/etc – содержит конфигурационные файлы системы; –/dev – содержит специальные файлы устройств.

Файловая система ОС UNIX

Файл – именованная область на внешнем носителе данных, используемая для хранения некоторой информации. В UNIX файл имеет более общее толкование. Файл – источник данных, которые могут быть считаны, или объект, куда могут быть записаны данные. В качестве файлов могут выступать, например, клавиатура или принтер, подключенный к параллельному порту. Для упорядочивания операций с файлами используется понятие каталога – структуры, объединяющей группу файлов и других каталогов. Файловая система – иерархическая структура, описывающая схему подчинения файлов и каталогов, размещаемых на носителе.

Типы файлов Обычные файлы (ОС не контролирует содержимое этих файла) Каталоги (содержит системную информацию о наборе файлов) Специальные файлы (фиктивные файлы, соответствующие устройствам ввода-вывода) Символьные связи Именованные конвейеры Отображаемые в память файлы

Доступ к разделу на носителе информации обеспечивается монтированием раздела в общую файловую систему. Монтирование обозначается определением файла устройства и точкой монтирования. При старте системы программа mount запускается стартовым скриптом и автоматически монтирует системы указанные в файле /etc/fstab. Команда монтирования раздела: –mount файл_устройства точка_монтирования Монтирование файловой системы

Файловая система ОС UNIX Блок 0 не используется системой и часто содержит программу загрузки компьютера. Блок 1 представляет собой суперблок. В нем хранится критическая информация о размещении файловой системы, включая количество i-узлов, количество дисковых блоков, а также начало списка свободных блоков диска (обычно несколько сот записей). При уничтожении суперблока файловая система окажется нечитаемой. Следом за суперблоком располагаются i-узлы (i-nodes, сокращение от index-nodes индекс-узлы). Они нумеруются от 1 до некоторого максимального числа. Каждый i-узел имеет 64 байт в длину и описывает ровно один файл, i-узел содержит учетную информацию (включая всю информацию, возвращаемую системным вызовом stat, который ее просто берет в i-узле), а также достаточное количество информации, чтобы найти все блоки файла на диске.

СУПЕРБЛОК Суперблок состоит из следующих полей : размер файловой системы, количество свободных блоков в файловой системе, список свободных блоков, имеющихся в файловой системе, индекс следующего свободного блока в списке свободных блоков, размер списка индексов, количество свободных индексов в файловой системе, список свободных индексов в файловой системе, следующий свободный индекс в списке свободных индексов, заблокированные поля для списка свободных блоков и свободных индексов, флаг, показывающий, что в суперблок были внесены изменения.

Индексные узлы

Размещение файлов Размещение файлов выполняется поблочно, динамически, по мере необходимости. Для отслеживания файлов используется индексный метод; часть индекса хранится в узле файла. Первые 10 адресов указывают на первые 10 блоков данных файла. Если файл длиннее 10 блоков, то используется один или несколько уровней косвенности. Одиннадцатый адрес узла указывает на блок на диске (блок первого уровня косвенности), содержащий следующую часть индекса. Этот блок содержит указатели на последующие блоки файла. Если файл содержит еще большее количество блоков, то двенадцатый адрес узла укажет блок второго уровня косвенности. Этот блок содержит список адресов дополнительных блоков первого уровня косвенности. В свою очередь, каждый из них содержит указатели на файловые блоки. Если файл содержит еще больше блоков, для которых не хватает косвенности второго уровня, то тринадцатый адрес в узле указывает на блок третьего уровня косвенности. Этот блок указывает на дополнительные косвенные блоки второго уровня.

Файловая система Berkeley Fast Каждый каталог состоит из некоторого целого количества дисковых блоков, так что каталоги могут записываться на диск как единое целое. Внутри каталога записи файлов и каталогов никак не отсортированы, при этом каждая запись сразу следует за предыдущей записью. В конце каждого блока может оказаться несколько неиспользованных байтов, так как записи могут быть различного размера. Каждая каталоговая запись состоит из четырех полей фиксированной длины и одного поля переменной длины. Первое поле представляет собой номер i-узла. Следом за номером i-узла идет поле, сообщающее размер всей каталоговой записи в байтах, возможно, вместе с дополнительными байтами-заполнителями в конце записи. Это поле необходимо, чтобы найти следующую запись. Затем располагается поле типа файла, определяющее, является ли этот файл каталогом и т. д. Последнее поле содержит длину имени файла в байтах. Наконец, идет само имя файла, заканчивающееся нулевым байтом и дополненное до 32-битовой границы. Для увеличения производительности в BSD было добавлено кэширование имен. Прежде чем искать имя в каталоге, система проверяет кэш. Если имя файла есть в кэше, то в каталоге его уже можно не искать. Разбиение диска на группы цилиндров, у каждой из которых был собственный суперблок, i-узлы и блоки данных. Использование блоков не одного, а двух размеров. Для хранения больших файлов значительно эффективнее использовать небольшое количество крупных блоков, чем много маленьких блоков. Файловая система ОС UNIX

Файловая система Berkeley Fast Файловая система ОС UNIX

Файловая система Linux Lелит диск на группы блоков, независимо от того, где располагаются границы между цилиндрами. Каждая группа блоков начинается с суперблока, в котором хранится информация о том, сколько блоков и i- узлов находятся в данной группе, о размере группы блоков и т. д. Затем следует описатель группы, содержащий информацию о расположении битовых массивов, количестве свободных блоков и i-узлов в группе, а также количестве каталогов в группе. Эта информация важна, так как файловая система Ext2 пытается распространить каталоги равномерно по всему диску. Файловая система ОС UNIX

Файловая система NFS

Цель файловой системы NFS заключается в поддержке разнородных систем, в которых клиенты и серверы могут работать под управлением различных операционных систем и на различном оборудовании, существенно, чтобы интерфейс между клиентами и серверами был тщательно определен. В файловой системе NFS эта задача выполняется при помощи двух протоколов клиент-сервер. Протокол это набор запросов, посылаемых клиентами серверам, и ответов серверов, посылаемых клиентам. Первый протокол NFS управляет монтированием каталогов. Второй протокол NFS предназначен для доступа к каталогам и файлам.

Файловая система NFS