
Гордеев А.В. Системное По
Олифер В.Г. Сетевые ОС
Молчанов. А.Ю. Системные ПО
Тененбаум Э. Современные ОС
Бэкон Дж. ОС. Параллельные и распределенные системы
Тема 1. Введение в курс.
Структуры вычислительной системы.
Любая вычислительная система включает в себя 2 составляющих – 1)Техническое обеспечение(HardWare) – Процессор, память, монитор, накопительные диски ; 2)Программнная часть
Делится на 2 части – прикладное и системное
Прикладным называется ПО, которое нацелено на решение профессиональных задач пользователя(Текстовые процессоры, графические редакторы, СУБД и другое)
К системному ПО относятся средства, которые служат для организации работы компьютера и управление его ресурсами. Иногда к системному ПО также относят программы, предназначенные для разработки
Отобразим структуры вычислительной системы в виде последовательности слоев
Пользователь
Прикладное ПО
ОС Драйверы, утилиты, языки программирование
Техническая часть
ОС и ее функции
Существует несколько трактовок понятия операционной системы, и каждая из них рассматривает ОС с определенной стороны, поэтому ни одно из них не может претендовать на универсальность и полноту.
1)ОС как виртуальная машина – на уровне машинных команд архитектура большинства компьютеров крайне неудобна для использования прикладными программами. Например, работа с жестким диском требует знания его внутреннего устройства и его контроллера. Программисту нужно вводить команды вращения диска, поиска и форматирования дорожек, чтения и записи секторов и т.д. Очевидно, что обычный программист не в состоянии учитывать все особенности работы оборудования(заниматься разработкой драйверов), поэтому он должен иметь простую высокоуровневую абстракцию, которая упрощает работу оборудования, например, представляет пространство диска как набор файлов. Работать с файлами значительно проще, чем заботиться о перемещении головок диска или организации работы мотора. Аналогичным образом, с помощью простых абстракций от программиста скрываются все ненужные ему подробности организации прерываний, работы таймера, управления памятью и т.д. Кроме того, на современных вычислительных комплексах может быть создана иллюзия неограниченного размера оперативной памяти и количество процессоров. Всем этим занимается ОС. Таким образом, для пользователя ОС является виртуальной машиной, с которой проще иметь дело, чем с оборудованием непосредственно.
2)ОС как менеджер ресурсов.
ОС предназначена для управления всеми частями сложной архитектуры компьютера. Для многопользовательских систем управление ресурсами является одной из важнейших задач. ОС как менеджер ресурсов осуществляет упорядоченное и контролируемое распределение процессоров, памяти и других ресурсов между различными программами и пользователями.
3)ОС как защитник пользователей и программ
Если вычислительная система допускает совместную работу, то возникает проблема организации безопасной деятельности пользователя. ОС должна обеспечить сохранность информации, чтобы никто не мог удалить или повредить чужие файлы. Нельзя разрешать программам одних пользователей произвольно вмешиваться в работу программ других пользователей. Нужно пресекать попытки несанкционированного использования ресурсов, чем и занимается ОС.
4)ОС как постоянно функционирующее ядро
ОС - программа, постоянно работающая на компьютере и взаимодействующая со всеми прикладными программами
ОС – комплекс специальных программных средств, предназначенных для управления загрузкой, запуском и выполнения программ, а также для планирования и управления вычислительными ресурсами. Этот комплекс программ динамичен по своему составу. Та часть программ, которая взаимодействует с аппаратными средствами напрямую и постоянно хранится в памяти компьютера, составляет ядро ОС. В частности ПО, входящее в состав ядра, отвечает за проверку работоспособности компьютера и выполнение базовых операций, связанных с работой дисплея, дискового накопителя, клавиатуры и т.д. ОС образует автономную среду, не связанную ни с одним языком программирования. Любая прикладная программа связана с ОС и может эксплуатироваться только на тех компьютерах, где имеется аналогичная системная среда . ОС должна храниться на внешнем запоминающем устройстве, к которому должен быть обеспечен быстрый доступ . При включении компьютера ОС автоматически загружается в оперативную память.
Ос реализует множество различных функций, в том числе:
1.Определяет интерфейс пользователя
2.Обеспечивает разделение аппаратных ресурсов между пользователями
3. Дает возможность работы с общими данными в режиме коллективного пользования
4.Планирует доступ пользователей к общим ресурсам
5.Обеспечивает эффективное выполнение операций ввода-вывода
6.Осуществляет восстановление информации и вычислительного процесса в случае ошибок
Основные функции ОС можно классифицировать по 2 признакам
1.Функции, реализуемые виртуальными машинами
-1.1 Управление информацией - структурирование, использование имен и адресов, передача, ввод и вывод
-1.2 Выполнение – последовательное и параллельное выполнение программ, компоновка, адресное размещение и т.д.
-1.3 Дополнительные услуги – помощь при отладке, обработка аварийных ситуаций, измерение времени выполнения и т.д.
2.Функции контроля и распределения ресурсов
-2.1 Управление физическими ресурсами – выделение оперативной памяти, внешней памяти, устройств ввода –вывода
-2.2 Распределение и обмен информации между пользователями.
-2.3 Защита от несанкционированного доступа
-2.4 Управление процессами
-2.5 Дополнительные услуги: сбор статистической информации, измерение производительности и т.д.
1.3. Организация ОС
ОС условно делится на несколько уровней:
1)Ядро ОС – выполняет роль интерфейса системы с аппаратурой и включает основной набор утилит ОС, которая составляет виртуальную машину
2)Системный уровень управления устройствами ввода –вывода – обеспечивает согласованную работу устройств ввода-вывода
3)Уровень системных программ – предназначен для работы пользовательских программ и программ-комуникаций
4)Пользовательский уровень
1 уровень – графическая оболочка, программы
2 уровень – драйверы сети, компилятор интерпретатор
3 уровень – драйверы устройств, ассемблер, связывающий загрузчик
4 уровень – аппаратный интерфейс, ядро ОС
5 уровень – Техническое обеспечение, абсолютный загрузчик,RAM
При рассмотрении ОС целесообразно выделить в ней следующие функциональные составляющие:
1.Пользовательский интерфейс, содержащий программу-интерпретатор с набором команд, которые могут использоваться прикладными программами
Command com, интерфейс Windows, KDE Gnome, XFCE в Linux
2.Прикладной интерфейс - директивы, которые могут использоваться прикладными программами для доступа к функциям ОС
API
3.Интерфейс устройств – позволяет периферийным устройствам ввода-вывода осуществлять операции ввода-вывода с использованием набора команд операционной системы
4.Интерфейс среды связи, делающий возможным использование различных средств коммуникации для обмена информацией с вычислительными системами
1.4. Основные понятия ОС
1.Системные вызовы – в любой ОС поддерживается механизм, который позволяет пользовательским программам обращаться за услугами к ядру ОС. Подобные средства называются системными вызовами – System Calls. Механизм системных вызовов – интерфейс между ОС и пользовательской программой. С помощью системных вызовов создаются, уничтожаются и функционируют различные базовые объекты, главные из которых - процессы и файлы. Пользовательская программа выполняет запрос к ОС, осуществляя системный вызов. Для этого в ОС предусмотрены библиотеки процедур, которые загружают машинные регистры определенными параметрами и осуществляют прерывание процессора, после чего управление передается обработчику данного вызова, входящему в ядро ОС. Цель таких библиотек – сделать системный вызов похожим на обычный вызов подпрограмм. Отличие состоит в том, что при системном вызове задача переходит в привилегированный режим или режим ядра – kernel mode. В этом режиме работает код ядра операционной системы, причем он исполняется в адресном пространстве и в контексте вызвавшей его задачи. Таким образом ядро операционной системы имеет полный доступ к памяти пользовательской программы и при системном вызове достаточно передать адреса одной или нескольких областей памяти с параметрами вызова и для результатов вызова.
2.Прерывания – hardware interruption – события, генерируемые внешним по отношению процессору устройством. Посредством аппаратных прерываний аппаратура либо информирует центральный процессор о том, что возникло какое либо событие, требующее немедленной реакции (нажатие кнопки), либо сообщает о завершении асинхронной операции ввода-вывода (окончание чтения данных с диска в оперативную память). Еще один важный тип аппаратных прерываний - прерывание таймера, который генерируется периодически через фиксированный промежуток времени. Прерывания таймера используются при планировании процесса. Каждый тип аппаратных прерываний имеет собственный номер, однозначно определяющий источник прерываний. Аппаратное прерывание, в отличие от программного, является асинхронным событием, т.е. возникает вне зависимости от того , какой код исполняется процессором в данный момент.
3.Исключительные ситуации – exception – событие, возникающее в результате попытки выполнения программой недопустимой команды, доступа к ресурсу при отсутствии достаточных привилегий или обращение к отсутствующей единице памяти. Исключительные ситуации, как и системные вызовы, являются синхронными событиями, возникающие в контексте задачи. Исключительные ситуации можно разделить на исправимые и неисправимые. К исправимым относится отсутствие нужной информации в оперативной памяти. После устранения причины исправимой ситуации программа может продолжить выполнение. Возникновение в процессе работы ОС исправимых исключительных ситуаций является нормальным явлением. Неисправимые исключительные ситуации возникают в результате программных ошибок. Как правило, на возникновение таких ситуаций ОС реагирует завершением программы.
4.Файлы – предназначены для хранения данных на внешних носителях. Любая структурированная информация, находящаяся, например, на HDD, должна быть отделена от другой информации и однозначно идентифицировано, т.е. заключена в поименованный контейнер, которым и является файл. Главная задача файловой системы – file system – скрыть особенности ввода-вывода и дать программисту или пользователю простую абстрактную модель файлов, не зависящую от устройств. Для операций с файлами (создание, удаление, запись, чтение и т.д.) имеется обширная категория системных вызовов. Простым пользователям хорошо знакомы такие понятия, связанные с организацией файловой системы, как каталог, текущий каталог, корневой каталог, путь и т.д. , для манипулирования которыми в ОС имеются соответствующие системные вызовы.
5.Процессы и нити.