Тема OS01асу. Назначение и функции операционных систем. Основные термины и понятия. Ресурс, процесс (задача, поток), ядро, оболочка, среда (системное окружение), команда, утилита, командный файл, драйвер, файл, каталог, протокол, стек, системная служба, сервер, клиент, редиректор, объект (агент), сетевая служба, онтология; Генезис ОС (предпосылки, этапы, сотояние и перспективы); Концепция виртуальной машины. Архитектура (надсистема) Структура ОС (монолитные, слоевые, ядерные и микроядерные, экзоядерны); Экзо... (от греч. exo - вне, снаружи), часть сложных слов, означающая: внешний, наружный, посторонний, указывающая на связь с внешней средой (например, экзогенный, экзосфера, экзотика: Структуры подсистем ОС (объектные модели); ОС - комплекс системных программ, которые вызываются или явно, посредством директив, или неявно, посредством деклараций. Эти два класса представляют большую часть ОС и включают: Планировщики для назначения центрального обрабатывающего устройства (устройств) заданиям, частям задания и системным процессам. Стандартные программы управления памятью, которые управляют распределением основной памяти. Контроллеры ввода-вывода, которые обслуживают запросы ввода-вывода для всех пользователей системы. Процедуры связывания и загрузки для настройки адресов программ загрузки и связывания набора программ. Программы файловых систем для управления доступом, накоплением и перемещением файлов данных в запоминающей среде ЭВМ. Обработчики прерываний для обслуживания внешних и внутренних прерываний. Основные функции современных ОС 1. ОС обеспечивает предоставление аппаратных и программных-информационных средств ВС (расширенную виртуальную машину) через многоуровневый интерфейс к ресурсам "дружественные пользовательские интерфейсы", для различных пользователей: специалистов различных специальнорстей (конечных пользователей) администраторов сетей и операторов средств ВТ; прикладных программистов и системных программистов технический (обслуживающий) персонал администраторов сетей и средств ВТ. 2. ОС управляет выделением и использованием физических и фиртуальных ресурсов: процессорного времени, памяти, дискового пространства, устройств в/в . 3. Обеспечивает безопасность всей системы и защищенный доступ к данным и периферийным устройствам. Кроме этого, сетевая ОС связывает все компьютеры и периферийные устройства в сеть, координирует их сетевое взаимодействие и сетевые функции (службы). Кроме этого, распределенные ОС оранизуют функции локальных ОС и служб таким образом, что формируют единую аппаратно-программную и информационную среду для кластера ВС, локальной или глобальной сети. Операционная система (ОС) - это комплекс аппаратно-программного обеспечения, предназначенный для снижения стоимости применения (программирования), упрощения доступа к ресурсам, повышения эффективности работы системы. Цель создания операционной системы - получить экономический выигрыш при использовании системы, путем увеличения производительности труда программистов и эффективности работы оборудования. Функции операционной системы: - связь с пользователем в реальном времени для подготовки устройств к работе, переопределение конфигурации, изменения режимов работы и состояния системы (выполняет BIOS+LOGIN+REESTR). - выполнение операций ввода-вывода; в частности, в состав операционной системы входят программы обработки прерываний от устройств ввода-вывода, обработки запросов к устройствам ввода-вывода и распределения этих запросов между устройствами (выполняет драйверы ядра и подсистема в/в ОС). - управление памятью, связанное с распределением оперативной памяти между прикладными программами (выполняет ядро ОС). - управление файлами; основными задачами при этом являются обеспечение защиты, управление выборкой и сохранение секретности хранимой информации (выполняет ядро ОС + драйверы верхнего уровня + файловые системы). - управление процессами и процессорами; планирование вычислительных процессов, заданий и потоков, оперативное управление очередями процессов и потоков в целях эффективного использования ресурсов; - обработка исключительных условий во время выполнения задачи, обработки арифметических или машинных ошибок и сбоев, прерываний, связанных с неправильной адресацией или выполнением привилегированных команд. - вспомогательные функции, обеспечивающие организацию сетей, использование служебных программ и языков высокого уровня. 02 Мультипрограммирование. 03 Режим разделения времени. 04 Многопользовательский режим работы. 05 Режим работы и ОС реального времени. 06 Универсальные операционные системы и ОС специального назначения. 07 Классификация операционных систем. 08 Модульная структура построения ОС и их переносимость. 09 Управление процессором. 10 Понятие процесса и ядра. 11 Сегментация виртуального адресного пространства процесса. 12 Структура контекста процесса. 13 Идентификатор и дескриптор процесса. 14 Иерархия процессов. 15 Диспетчеризация и синхронизация процессов. 16 Понятия приоритета и очереди процессов. 17 Средства обработки сигналов. 18 Понятие событийного программирования. 19 Средства коммуникации процессов. 20 Способы реализации мультипрограммирования. 21 Понятие прерывания. 22 Многопроцессорный режим работы. 23 Управление памятью. 24 Совместное использование памяти. 25 Защита памяти. 26 Механизм реализации виртуальной памяти. 27 Стратегия подкачки страниц. 28 Принципы построения и защита от сбоев и несанкционированного доступа. Назначение и функции операционной системы При изучении операционных систем очень важно из всего многообразия выделить те функции, которые присущи всем операционным системам как классу продуктов. Операционные системы для автономного компьютера Операционная система компьютера представляет собой комплекс взаимосвязанных программ, который действует как интерфейс между приложениями и пользователями с одной стороны, и аппаратурой с другой стороны. В соответствии с этим определением ОС выполняет две группы функций. - предоставление пользователю или программисту вместо реальной аппаратуры компьютера расширенной виртуальной машины, с которой удобней работать и которую легче программировать; - повышение эффективности использования компьютера путем рационального управления его ресурсами в соответствии с некоторыми критерием. ОС как виртуальная машина Для того чтобы успешно решать свои задачи, современный пользователь или даже прикладной программист может обойтись без досконального знания аппаратного устройства компьютера. Ему не обязательно быть в курсе того, как функционируют различные электронные блоки и электромеханические узлы компьютера. Более того, очень часто пользователь может не знать даже системы команд процессора. Пользователь-программист привык иметь дело с мощными высокоуровневыми функциями, которые ему предоставляет операционная система. Так, например, при работе с диском программисту, пишущему приложение для работы под управлением ОС, или конечному пользователю ОС достаточно представлять его в виде некоторого набора файлов, каждый из которых имеет имя. Последовательность действий при работе с файлом заключается в его открытии, выполнение одой или нескольких операций чтения или записи частотная модуляция или текущее состояние двигателя механизма перемещения магнитных головок чтения/записи, не должны волновать программиста. Если бы программист работал непосредственно с аппаратурой компьютера, без участия ОС, то для организации чтения блока данных с дика программисту пришлось бы использовать более десятка команд с указанием множества параметров: номера блока на диске, номера сектора на дорожке и. т. п. После завершения операции обмена с диском он должен был бы предусмотреть в своей программе анализ результата выполненной операции. Учитывая, что контроллер диска способен распознать более двадцати различных вариантов завершения операции, можно считать программирование обмена с диском на уровне аппаратуры не самой тривиальной задачей. Не менее обременительной выглядит и работа пользователя, если бы ему для чтения файла с терминала потребовалось задавать чистовые адреса дорожек и секторов. Операционная система избавляет программистов не только от необходимости напрямую работать с аппаратурой дискового накопителя, предоставляя им простой файловый интерфейс, но и берет на себя все другие рутинные операции, связанные с управлением другими аппаратными устройствами компьютера: физической памятью, таймерами, принтерами и т.д. В результате реальная машина, способная выполнять только небольшой набор элементарных действий, определяемых ее системой команд, превращается в виртуальную машину, выполняющую широкий набор гораздо более мощных функций. ОС как система управления ресурсами Операционная система не только предоставляет пользователям и программистам удобный интерфейс к аппаратным средствам компьютера, но и является механизмом, распределяющим ресурсы компьютера. К числу основных ресурсов современных вычислительных систем могут быть отнесены такие ресурсы, как процессоры, основная память, таймеры, наборы данных, диски, накопители на магнитных лентах, принтеры, сетевые устройства и некоторые другие. Ресурсы распределяются между процессами. Процесс (задача) представляет собой базовые понятие большинства современных ОС и часто кратко определяется как программа в стадии выполнения. Программа - это статический объект, представляющий собой файл с кодами и данными. Процесс - это динамический объект, который возникает в операционной системе после того, как пользователь или сама операционная система решает "запустить программу на выполнение", то есть создать новую единицу вычислительной работы. Например, ОС может создать процесс в ответ на команду пользователя run prg1. exe, где prg1. exe - это время файла, в котором хранится код программы. ПРИМЕЧАНИЕ Во многих современных ОС для обозначения минимальной единицы работы ОС используют термин "нить", или "поток", при этом изменяется суть термина "процесс". Именно управление ресурсами вычислительной системы с целью наиболее эффективного их использования является назначением операционной системы. Управление ресурсами включает решение следующих общих, не зависящих от типа ресурса задач: - планирование ресурса - то есть определение, какому процессу, когда и в каком количестве ( если ресурс может выделятся частями) следует выделить данный ресурс; - удовлетворение запросов на ресурсы; - отслеживание состояния и учет использования ресурса - то есть поддержание оперативной информации о том, занят или свободен ресурс и какая доля ресурса уже распределена; - разрешение конфликтов между процессами. Для решения этих общих задач управления ресурсами разные ОС используют различные алгоритмы, особенности которых в конечном счете и определяют облик ОС в целом, включая характеристики производительности, область применения и даже пользовательский интерфейс. Например, применяемый алгоритм управления процессором в значительной степени определяет, может ли ОС использоваться как система разделения времени, система пакетной обработки или система реального времени. Функциональные компоненты ядра операционной системы автономного компьютера Наиболее важными подсистемами управлениями ресурсами являются подсистемы: 1. Управление процессами 2. Управление памятью 3. Управление файлами и внешними устройствами 4. Общие подсистемы пользовательского интерфейса, защиты данных и администрирования (оболочки) 5. Защита данных от сбоев и несанкционированного доступа. Управление процессами Важнейшей частью ОС является подсистема управления процессами(процессорами). Для каждого процесса ОС генерирует системную информацию о потребностях в ресурсах, а также о фактически выделенных ресурсах. Для выполнения процесса, ОС назначает ему ресурсы: 1. область оперативной памяти (физической и виртуальной для кодов и данных); 2. необходимое количество процессорного времени (или кванты или монопольно); 3. файлы и устройства ввода-вывода (при необходимости). В информационные структуры включаются также: - история пребывания процесса в системе - текущее состояние - значение приоритета процесса Мультипрограммирование В мультипрограммной ОС одновременно могут существовать несколько процессов. Часть процессов, пользовательские, порождается по инициативе пользователей, другие, системные, инициализируются самой ОС. Процессы могут одновременно претендовать на одни и те же ресурсы. В этом случае ОС поддерживает обслуживание очередей заявок к ресурсам. Важной задачей ОС является защита ресурсов, выделенных одному процессу, от остальных процессов. Особенно тщательно защищаемых ресурсом является память. Память отведенная под коды и данные процесса называется адресным пространством. На протяжении периода существования процесса его выполнение может быть многократно прервано и продолжено. Для возобновления выполнения процесса, необходимо восстановить его среду. Эта информация называется контекстом процесса (состояние регистров, коды ошибок, указатели на открытые файлы и пр.). ОС берет на себя функции синхронизации процессов, позволяющие приостанавливать или продолжать процессы при наступлении некоторых событий. Для реализации сложных программных комплексов, часто необходимо организовать его выполнение в виде параллельных процессов и как следствие, ОС должна предоставить средства для межпроцессного взаимодействия. Управление памятью Процесс может выполнятся только в том случае, если его коды и данные (не обязательно все) находятся в оперативной памяти. Управление памятью включает: 1. Распределение физически существующей памяти, между процессами. 2. Настройку логических и виртуальных адресов на физические адреса 3. Загрузка кодов и данных процессов в отведенные области памяти 4. Организации виртуального пространства и защита областей памяти каждого процесса Существует большое разнообразие алгоритмов распределения памяти (оверлеи, базовая, перемещаемые разделы, страничная, сегментна и др.). Одним из наиболее популярных способов управления памятью является виртуальная память. Наличие механизма виртуальной памяти позволяет программисту писать программы так, как будто в его распоряжении имеется оперативная память большого объема, часто существенно превышающего объем имеющейся физической памяти. При размещении такой программы в памяти подсистема виртуальной памяти производит трансляцию виртуальных адресов, в физические. Защита памяти - это способность предохранять выполняемую задачу от ошибочного обращения к памяти, назначенной другим. Управление файлами и внешними устройствами ОС "экранирует" сложность реальной аппаратуры от программиста. Особенно это ярко проявляется в файловой системе. ОС организует представление о данных, хранящихся на внешнем накопителе, в виде файла - неструктурированной последовательности байтов, имеющей символьное имя. Для удобства работы файлы группируются в каталоги. Пользователь может с помощью ОС выполнять поиск файла по имени, удаление, вывод, изменение и сохранение. Файловая система выполняет преобразование символьных имен файлов, в физические адреса на диске (цилиндр, поверхность, сектор). При выполнении своих функций файловая система тесно взаимодействует с подсистемой управления внешними устройствами (часто называется подсистемой ввода-вывода). Диски, принтеры, сканеры, мониторы, модемы, сетевые адаптеры и пр. Программа, управляющая конкретной моделью внешнего устройства, называется драйвером. Созданием драйверов занимаются как разработчики ОС, так и специалисты компаний, выпускающих внешние устройства. Защита данных и администрирование Безопасность данных вычислительной системы обеспечивается средствами отказоустойчивости ОС, направленными на защиту от сбоев отказов аппаратуры и ошибок программного обеспечения, а также средствами защиты от несанкционированного доступа. В последнем случае ОС защищает данные от ошибочного или злонамеренного поведения пользователя системы. Функции защиты ОС вообще очень тесно связаны с функциями администрирования, так как именно администратор определяет права пользователей при их обращение к разным ресурсам системы - файлам, каталогам, принтерам, сканерам и т. п. Важным средством защиты данных являются функции аудита ОС, заключающиеся в фиксации всех событий, от которых зависит безопасность системы. Например попытки неудачного входа. Поддержка отказоустойчивости реализуется ОС на основе, как правило, на основе резервирования. Особым случаем резервирования является использование нескольких процессоров. Оболочки и интерфейсы программирования Программисты используют в своих приложениях обращения к ОС, когда для выполнения тех или иных действий им требуется особый статус, которым обладает только ОС. Например, управление аппаратными средствами. Возможности ОС доступны программисту в виде набора функций, называющегося интерфейсом программирования приложений (Application Programming Interface, API). Для разработчика приложений все особенности конкретной ОС представлены особенностями ее API. Поэтому разные ОС с одинаковым набором API, кажутся им одной и той же ОС. Это упрощает стандартизацию ОС. Например стандартом API UNIX является стандарт Posix. Пользовательский интерфейс ОС должен обеспечивать удобный интерфейс не только для прикладных программ, но и для человека, работающего за терминалом (оператора, пользователя). Современные ОС поддерживают развитые функции пользовательского интерфейса разных типов: - алфавитно-цифровой; графический; мультимедийные. Команды могут вводится в интерактивном режиме и считываться из командного файла, содержащего некоторую последовательность команд. Программный модуль обрабатывающий команды называется командным интерпретатором. Ввод команды упрощен, если ОС поддерживает графический пользовательский интерфейс. Сетевые операционные системы. Операционная система сети во многом аналогична ОС автономного компьютера - она тоже представляет комплекс взаимосвязанных программ, которые обеспечивают удобство работы пользователя и программиста путем предоставления им некоторой виртуальной вычислительной системы, и реализует эффективный способ разделения ресурсов между процессами выполняемыми в сети. Компьютерная сеть - это набор компьютеров, связанных коммуникационной системой и снабженных соответствующим программным обеспечением, позволяющим пользователям сети получать доступ к ресурсам этого набора компьютеров. Коммуникационная система может включать кабели, повторители, коммутаторы, маршрутизаторы и другие устройства, обеспечивающие передачу сообщений в сети. Сетевые и распределенные ОС. В зависимости от того, какой виртуальный образ создает ОС для того, чтобы подменить им реальную аппаратуру, различаются сетевые и распределенные ОС. Сетевая ОС не полностью скрывает распределенную природу сети, то есть является виртуальной сетью. Работая в сетевой ОС, пользователь хотя и может запустить задание на любой машине, всегда знает, на какой машине выполняется его задание. По умолчанию задание выполняется на той машине, на которой пользователь сделал логический вход. Часто под сетевой ОС понимается набор ОС отдельных компьютеров сети. Магистральным направлением развития сетевых ОС является прозрачности сетевых ресурсов. В идеальном случае сетевая ОС должна предоставить пользователю сетевые ресурсы в виде ресурсов единой централизованной виртуальной машины. Для такой ОС используют специальное название - распределенная ОС. Пользователь распределенной ОС, вообще говоря, не имеет сведений о том, на какой машине выполняется его работа. В настоящее время все сетевые ОС еще далеки от идеала истинной распределенности (метакомпьютинга). Функциональные компоненты сетевой ОС. 1) Средства управления локальными ресурсами - реализуют все функции автономного компьютера a. Распределение памятью b. Планирование и диспетчеризацию процессов c. Управление внешней памятью d. Интерфейс с пользователем и пр. 2) Сетевые средства можно разделить на три компонента: a. Серверная часть ОС - предоставляет локальные ресурсы в общее пользование. b. Клиентская часть ОС - средства доступа к удаленным ресурсам и услугам. c. Транспортные средства ОС, которые совместно с коммуникационной системой обеспечивает передачу сообщений в сети Выводы ОС - это комплекс взаимосвязанных программ, предназначенный для повышения эффективности аппаратуры компьютера путем рационального управления его ресурсами ему расширенной виртуальной машины. К числу основных ресурсов, управление которыми осуществляет ОС, относятся процессоры, основная память, таймеры, наборы данных, диски, накопители на магнитных лентах, принтеры, сетевые устройства и некоторые другие. Ресурсы распределяются между процессами. Для решения задач управления ресурсами разные ОС используют различные алгоритмы, особенности которых в конечном счете и определяют облик ОС. Наиболее важными подсистемами ОС являются подсистемы управления процессами, памятью, файлами и внешними устройствами, а также подсистемы пользовательского интерфейса, защиты данных и администрирования. Прикладному программисту возможности ОС доступны в виде функций, составляющих интерфейс прикладного программирования (API) в виде библиотек (динаических, статических, разделяемых). Термин ''сетевая операционная система " используется в значениях: 1) как совокупность ОС всех компьютеров сети и , 2) как ОС отдельного компьютера, способного работать в сети. 3) как специализированная ОС для сложного сетевого устройства (маршрутизатор). К основным функциональным компонентам сетевой ОС относятся средства управления локальными ресурсами и сетевые средства (стеки сетевых протоколов). Последние, в свою очередь, можно разделить на три компонента: 1) средства предоставления локальных ресурсов и услуг в общее пользование - серверная часть ОС, 2) средства запроса доступа к удаленным ресурсам и услугам - клиентская часть ОС (редиректор ) и 3) транспортные средства ОС, которые совместно с коммуникационной системой обеспечивают перечу сообщений между компьютерами сети. Совокупность серверной и клиентской частей, предоставляющих доступ к конкретному типу ресурса компьютера через сеть, называется сетевой службой (internet-, web-службой). Сетевая служба связана с определенным типом сетевых ресурсов и/ или определенным способом доступа к этим ресурсам. Наиболее важными для пользователей сетевых ОС являются файловая служба и служба печати. Сетевые службы могут быть либо глубоко встроены в ОС либо объединены в виде некоторой оболочки, либо поставляться в виде отдельного продукта. В зависимости от того, как распределены функции между компьютерами сети, они могут выступать в трех разных ролях. Компьютер занимающий исключительно обслуживанием запросов других компьютеров, играет роль выделенного сервера сети. Компьютер, обращающийся с запросами к ресурсам другой машины, исполняет роль клиентского узла. Компьютер, совмещающий функции клиента и сервера, является одноранговым узлом. Одноранговые сети состоят только из одноранговых узлов. При этом все компьютеры в сети имеют потенциально равные возможности. Одноранговые ОС включают как серверные, так и клиентские компоненты сетевых служб. Одноранговые сети проще в организации и эксплуатации, по этой схеме организуется работа в небольших сетях, в которых количество компьютеров не превышает 10 - 20. В сетях выделенными серверами используются специальные варианты сетевых ОС, оптимизированные для работы в роли либо серверов, либо клиентов. Для серверных ОС характерны поддержка мощных аппаратных платформ, в том числе мультипроцессорных, широкий набор сетевых служб, поддержка большого числа одновременно выполняемых процессов и сетевых соединений, наличие развитых средств защиты и средств централизованного администрирования сети. Клиентские ОС, в общем случае являясь более простыми, должны обеспечивать удобный пользовательский интерфейс и набор редиректоров, позволяющий получать доступ к разнообразным сетевым ресурсам. В число требований, предъявляемых сегодня к сетевым ОС, входят: функциональная полнота эффективность управления ресурсами, модульность и расширяемость, переносимость и многоплатформенность, совместимость на уровне приложений и пользовательских интерфейсов, надежность и отказоустойчивость Вопросы: 1. Предмет и содержание темы; 2. История развития операционных систем; 3. Назначение и функции ОС; 4. Операционная система как виртуальная машина; 5. Операционная система как система управления ресурсами;