- •1.Классификация программного обеспечения(по). Базовый уровень по. Системный уровень по. Драйверы. Служебный уровень по. Утилиты. Прикладной уровень по.
- •2.Операционная система(ос). Классификация ос. Эволюция ос. Функции ос. Разновидности ос.
- •Современный этап развития ос
- •3. Обобщенная модель иерархической ос(13 уровней).
- •5. Понятие процесса и потока(нити). Классификация процессов. Многозначность и многопоточность. Проблемы разработки приложений для многопоточной среды.
- •6. Состояния процесса. Многоуровневые модели состояний (5,6,7) процесса. Причины переходов из одного состояния в другое. Причины возникновения и завершения процессов.
- •Модель с пятью состояниями
- •7.Трехуровневое планирование. Оптимизация работы системы: буферизация, кэширование, свопинг.
- •Алгоритм трёхуровневое планирование
- •8.Ресурсы компьютерной системы. Классификация ресурсов. Распределение и управление ресурсами. Управление памятью.
- •9. Планирование в однопроцессорных системах. Планирование в системах пакетной обработки, системах реального времени и интерактивных системах. Алгоритмы планирования. Планировщики.
- •10.Взаимодействующие процессы. Определение и уровни взаимодействия. Классификация средств обмена информацией.
- •11. Программно-аппаратные решения проблем взаимодействующих процессов (posix, монитор Хоара, алгоритм Деккара, примитивы Дейкстра, семафоры, мьютексы и др.).
- •12. Проблемы взаимодействующих процессов: "Обедающие философы", "Читатели и писатели", "Спящий брадобрей". Описание и решения задач.
- •13. Пользовательский интерфейс ос. Классификация, примеры.
- •Текстовые ос
- •Графические ос
- •Речевые ос
- •14.Файловые системы. Файловая система fat (таблица размещения, структура загрузочной записи). Примеры файловых систем: fat32, vfat, ntfs и hpfs.
- •Корневой каталог root
- •15.Типовые средства аппаратной поддержки операционных систем, bios.
Современный этап развития ос
В 90е годы практически все ОС стали сетевыми, эти функции включались в ядро. Полная совместимость с основными технологиями локальных и глобальных сетей. Особое внимание в течении всего последнего десятилетия уделялось корпоративным сетевым ОС. Их дальнейшее развитие представляет одну из наиболее важных задач и в обозримом будущем. Для таких сетей важно наличие средств централизованного администрирования и управления. Для них так же важно в силу их гетерогенности наличие и следование множеству стандартов. Так же на современном этапе развития ОС на первый план вышли средства обеспечения безопасности. Огромное значение имеет многоплатформенность (переносимость). Повышается удобство работы человека с компьютером
Функции ОС.
1. ОС как посредник. Заключается в предоставлении интерфейсов:
- пользователя. Неграфические - используют интерфейс командной строки, основным устройством управления которого является клавиатура. Графические - работа основана на взаимодействии активных и пассивных экранных элементов управления.
-между программным и аппаратным обеспечением
- между разными видами программного обеспечения
2. Обеспечение автоматического запуска.
3. Организация файловой системы. Все дисковые ОС обеспечивают создание файловой системы, предназначенной для хранения данных на дисках и обеспечения доступа к ним.
4.Обслуживание файловой структуры. К ним относятся: создание файлов, создание каталогов, навигация по файловой структуре; переименование файлов и каталогов; копирование и перемещение файлов и каталогов; управление атрибутами файлов.
5. Управление приложениями. Многозадачные ОС управляют распределением ресурсов между задачами и обеспечивают:
- возможность одновременной или поочередной работы приложений;
- возможность обмена данными между приложениями;
- возможность совместного использования ресурсов несколькими приложениями.
6.Взаимодействие с аппаратным обеспечением. Управление взаимодействием прикладных программ с драйверами.
7. Обслуживание компьютера.
Кроме основных функций ОС могут предоставить дополнительные, например, возможность поддерживать локальную компьютерную сеть, обеспечение доступа в Интернет и т.д.
Разновидности ОС.
На сегодняшний момент в мире насчитывается много видов ОС. Такое разнообразие объясняется различными целями и задачами, которые ставили перед собой разработчики. Кроме того, каждая ОС, как правило, принадлежит к какому-то определённому семейству, которое развивалось уже продолжительное время.Основные операционные системы на сегодняшний момент это Windows и Linux, именно они чаще всего встречаются на ПК. Также стоит отметить MacOS, использующуюся на компьютерах компании Apple.В последние годы с развитием мобильных устройств и повышения их возможностей мобильные платформы становятся более популярными и актуальными для современных пользователей.
3. Обобщенная модель иерархической ос(13 уровней).
В иерархической структуре современной операционной системы различные функции находятся на разных уровнях в зависимости от их сложности, временных характеристик и степени абстракции. Систему можно рассматривать как набор уровней, каждый из которых выполняет свой ограниченный круг заданий, входящий в комплекс задач операционной системы. Работа компонентов определенного уровня основывается на работе компонентов, находящихся на более низком уровне. Функции более высокого уровня используют примитивы нижнего по отношению к нему уровня. В идеале уровни должны быть определены так, чтобы при изменении одного из них не изменялись остальные.
В каждой отдельно взятой операционной системе перечисленные принципы применяются по-разному, но для учебных целей можно представить обобщенную модель иерархической операционной системы.
|
Название |
Объекты |
Операции |
1 |
электронные схемы |
регистры, шлюзы и т.д. |
очистка, пересылка, активация |
2 |
набор команд |
стек вычислений, интерпретатор команд, данные |
пересылка, сложение, вычитание, ветвление |
3 |
процедуры |
Процедуры, стеки вызова |
вызов, возврат |
4 |
прерывания |
процедуры обработки прерываний |
вызов, маскирование, повтор |
5 |
примитивные процессы |
примитивные процессы, семафоры, список процессов |
приостановка, возобновление выполнения, ожидание, передача сигнала |
6 |
локальная память |
блоки данных, каналы, устройства |
чтение, запись, распределение, выборка |
7 |
виртуальная память |
сегменты, страницы |
чтение, запись, выборка |
8 |
коммуникации |
конвейеры |
создание, удаление, открытие, закрытие, чтение, запись |
9 |
файловая система |
файлы |
создание, удаление, открытие, закрытие, чтение, запись |
10 |
устройства |
внешние устройства |
открытие, закрытие, чтение, запись |
11 |
каталоги |
каталоги |
создание, подключение, поиск |
12 |
Процессы пользователя |
процессы пользователя |
завершение, приостановка, возобновление процесса |
13 |
оболочка |
мреда программирования пользователя |
инструкции командного языка оболочки |
- В первый уровень абстракции входят электронные схемы. Объектами данного уровня являются регистры, ячейки памяти и логические элементы, составляющие схему компьютера. Над этими объектами выполняются различные действия, такие, как очистка содержимого регистра или считывание ячейки памяти.
- Второй уровень содержит набор команд процессора. В число операций, выполняемых на этом уровне, входят операции, которые допускаются набором команд машинного языка, например сложение, вычитание, загрузка значения из регистра или сохранение в нем.
- Третий уровень абстракции вводит понятие программы, а также операции вызова и возврата.
- Четвертый уровень определяет прерывания, которые заставляют процессор сохранить текущий контекст и выполнить подпрограмму обработки прерывания.
Следует заметить, что на самом деле первые четыре уровня не являются частями операционной системы, они составляют аппаратное обеспечение процессора. Однако на этих уровнях уже появляются некоторые элементы операционной системы, такие, как программы обработки прерываний.
- На пятом уровне абстракции вводится понятие процесса, под которым подразумевается работающая программа. В число фундаментальных требований к операционной системе, способной поддерживать одновременную работу нескольких процессов, входят способность приостанавливать процессы и возобновлять их выполнение. Для этого необходимо сохранять содержимое регистров аппаратного обеспечения, чтобы можно было переключаться с одного процесса на другой. Кроме того, если процессы должны взаимодействовать между собой, необходим механизм их синхронизации. Одной из важнейших концепций устройства операционных систем является семафор — простейший способ передачи сигналов, который рассмотрен в следующих главах данной книги.
- Шестой уровень определяет компоненты операционной системы, которые взаимодействуют со вспомогательными запоминающими устройствами компьютера. На этом уровне происходит периферийными устройствами и собственно передача данных. Отметим, что для планирования работы и уведомления процесса о завершении запрошенной операции шестой уровень обычно использует компоненты пятого уровня абстракции.
- Седьмой уровень определяет логическое адресное пространство процессов. Организуется виртуальное адресное пространство в виде блоков, которые могут перемещаться между основной памятью и вспомогательным запоминающим устройством.
- Восьмой уровень иерархии отвечает за обмен информацией и сообщениями между процессами. На этом уровне происходит более богатый обмен информацией, чем на пятом уровне, обеспечивающем первичный сигнальный механизм для синхронизации процессов. Одним из наиболее мощных инструментов подобного типа является канал передачи данных между процессами.
На девятом уровне обеспечивается долгосрочное хранение файлов. Данные, хранящиеся на вспомогательном запоминающем устройстве, рассматриваются как абстрактные объекты переменной длины, в противоположность интерпретации внешней памяти на шестом уровне, как набору дорожек, секторов и блоков данных.
- На десятом уровне абстракции предоставляется доступ к внешним устройствам с помощью стандартных интерфейсов.
- Одиннадцатый уровень поддерживает связь между внешними и внутренними идентификаторами системных ресурсов и объектов. Внешний идентификатор представляет собой имя, а внутренний идентификатор – это адрес, используемый системой для определения объекта и управления им. Эта связь поддерживается с помощью системных таблиц, которые включают в себя не только взаимное отображение внешних и внутренних идентификаторов, но и такие характеристики, как, например, права доступа.
На двенадцатом уровне предоставляется полнофункциональные средства поддержки процессов. Возможности этого уровня намного превосходят возможности пятого уровня, на котором поддерживается только содержимое регистров процессора, имеющее отношение к процессу, и логика диспетчеризации процессов. На двенадцатом уровне эта информация используется для упорядоченного управления процессами. Сюда же относится и виртуальное адресное пространство процессов, список объектов и процессов, с которыми оно может взаимодействовать, и правила, ограничивающие это взаимодействие.
Тринадцатый уровень иерархии является самым верхним и обеспечивает взаимодействие операционной системы с пользователем. Этот уровень часто называется оболочкой (shell), так как он отделяет пользователя от деталей внутреннего устройства операционной системы и представляет ее пользователю как набор сервисов. Оболочка принимает команды пользователя, интерпретирует их, создает необходимые процессы и управляет ими. На этом уровне, например, может быть реализован графический интерфейс, предоставляющий пользователю возможность выбора команды с помощью меню и отображающий результаты работы на экране.
Описанная гипотетическая модель операционной системы дает представление об ее структуре и может, служить прототипом при реализации конкретной операционной системы.
4. Принципы построения ОС: принцип модульности, принцип независимости программ от внешних устройств, принцип совместимости, принцип открытой и наращиваемой ОС, принцип мобильности, принципы обеспечения безопасности (Orange Book).
Принцип модульности. Под модулем в общем случае понимают функционально законченный элемент системы, выполненный в соответствии с принятыми межмодульными интерфейсами. По своему определению модуль предполагает возможность без труда заменить его на другой при наличии заданных интерфейсов. Способы обособления составных частей ОС в отдельные модули могут существенно различаться, но чаще всего разделение происходит именно по функциональному признаку. В значительной степени разделение системы на модули определяется используемым методом проектирования ОС (восходящее или нисходящее проектирование). Особо важное значение при построении ОС имеют привилегированные, повторно входящие и реентерабельные модули, так как позволяют более эффективно использовать ресурсы вычислительной системы. Достижение реентерабельности реализуется различными способами. В некоторых системах реентерабельность программы получается автоматически, благодаря неизменяемости кодовых частей программ при исполнении (из-за особенностей системы команд машины), а также автоматическому распределению регистров, автоматическому отделению кодовых частей программ от данных и помещению последних в системную область памяти. Естественно, что для этого необходима соответствующая аппаратная поддержка. В других случаях это достигается программистами за счет использования специальных системных модулей.
Принцип модульности отражает технологические и эксплуатационные свойства системы. Наибольший эффект от его использования достижим в случае, когда принцип распространен одновременно на операционную систему, прикладные программы и аппаратуру.
Принцип независимости программ от внешних устройств.
Суть его в том, что связь программы с внешним устройством устанавливается не на этапе трансляции, а в период планирования её исполнения. Программа общается не с устройствами, а с ОС, сообщая ей о потребности в ресурсах для выполнения данной работы. Конкретное устройство, на котором эта работа будет выполнена, программу не интересует, это задача ОС. Принцип позволяет одинаково осуществлять операции управления внешними устройствами независимо от их конкретных физических характеристик. Например, программе, содержащей операции обработки последовательного набора данных, безразлично, на каком носителе эти данные будут располагаться. Смена носителя и данных, размещаемых на них (при неизменности структурных характеристик данных), не принесет каких-либо изменений в программу, если в системе реализован принцип независимости.
Принцип совместимости. Суть принципа – в обеспечении способности ОС выполнять программы, написанные для других ОС или под другие аппаратные платформы. Различают совместимость на уровне исходных текстов (текстовая совместимость) и на уровне кодов (двоичная совместимость). Первая требует наличия транслятора, совместимость на уровне библиотек и системных вызовов. При этом требуется повторная компиляция исходных текстов в новый исполняемый модуль. Вторая требует совместимость на уровне архитектуры процессоров и систем команд. Для реализации такой совместимости используются эмуляторы (прикладные среды). Гораздо сложнее достичь двоичной совместимости между процессорами, основанными на разных архитектурах. Одним из средств обеспечения совместимости программных и пользовательских интерфейсов является соответствие стан-дартам POSIX, использование которого позволяет создавать программы в стиле UNIX, легко переносимых впоследствии из одной системы в другую.
Принцип открытой и наращиваемой ОС. Открытая операционная система доступна для анализа как пользователям, так и системным специалистам, обслуживающим вычислительную систему. Наращиваемая (модифицируемая, развиваемая) ОС позволяяет не только использовать возможности генерации, но и вводить в ее состав новые модули, совершенствовать существующие и т.д. Другими словами, следует обеспечить возможность легкого внесения дополнений и изменений в необходимых случаях без нарушения целостности системы. Прекрасные возможности для расширения предоставляет подход к структурированию ОС по типу клиент-сервер с использованием микроядерной технологии. В соответствии с этим подходом ОС строится как совокупность привилегированной управляющей программы и набора непривилегированных услуг (серверов). Основная часть ОС остается неизменной, и в то же время могут быть добавлены новые серверы или улучшены старые. Этот принцип иногда трактуют как расширяемость системы. К открытым ОС, прежде всего, следует отнести UNIX-системы и, естественно, ОС Linux.
Принцип мобильности. Операционная система относительно легко должна переноситься с процессора одного типа на процессор другого типа и с аппаратной платформы (которая включает наряду с типом процессора и способ организации всей аппаратуры компьютера, иначе говоря, архитектуру вычислительной системы) одного типа на аппаратную платформу другого типа. Заметим, что принцип переносимости очень близок принципу совместимости, хотя это и не одно и то же. Написание переносимой ОС аналогично написанию любого переносимого кода — нужно следовать некоторым правилам. Во-первых, большая часть ОС должна быть написана на языке, который имеется на всех системах, на которые планируется в дальнейшем ее переносить. Это, прежде всего, означает, что ОС должна быть написана на языке высокого уровня, предпочтительно стандартизованном, например на языке С. Программа, написанная на ассемблере, не является в общем случае переносимой. Во-вторых, важно минимизировать или, если возможно, исключить те части кода, которые непосредственно взаимодействуют с аппаратными средствами. Зависимость от аппаратуры может иметь много форм. Некоторые очевидные формы зависимости включают прямое манипулирование регистрами и другими аппаратными средствами. Наконец, если аппаратно-зависимый код не может быть полностью исключен, то он должен быть изолирован в нескольких хорошо локализуемых модулях. Аппаратно-зависимый код не должен быть распределен по всей системе. Например, можно спрятать аппаратно-зависимую структуру в программно задаваемые данные абстрактного типа. Другие модули системы будут работать с этими данными, а не с аппаратурой, используя набор некоторых функций. Когда ОС переносится, то изменяются только эти данные и функции, которые ими манипулируют. Введение стандартов POSIX преследовало цель обеспечить переносимость создаваемого программного обеспечения.
Принцип безопасности вычислений Правила безопасности защищают ресурсы одного пользователя от других и устанавливают квоты на ресурсы для предотвращения захвата всех ресурсов одним пользователем. Основы стандартов в области безопасности вычислений были заложены в документе под названием «Критерии оценки наземных компьютерных систем» и изданном Национальным центром компьютерной безопасности США (NCSC – National Computer Security Center) в 1983 г. В соответствии с ним безопасной считается система, посредством специальных механизмов контролирующая доступ к информации так, что доступ к ней получают только лица с соответствующими полномочиями или процессы, выполняющиеся от их имени. Определено 4 уровня безопасности А (высший) – D (низший). При этом в класс D попадают системы, у которых выявлено несоответствие всем трём высшим классам. Класс С делится на два уровня: С1 обеспечивает защиту данных от ошибок пользователя, но не от злоумышленников, а С2 защищает данные в обоих ситуациях. На уровне С2 должны присутствовать:
– секретность входа (идентифицируя пользователей по уникальному имени и паролю);
– контроль доступа (информирование владельца данных о лицах, имеющих доступ к данным и их правах на пользование ими);
– наблюдение и учет за ситуацией с безопасностью (фиксация попыток получить доступ, создать или удалить системные реестры);
– защита памяти (удаление содержимого памяти предыдущего сеанса работы перед началом нового).
Системы уровня В реализуют контроль доступа (каждый пользователь имеет рейтинг защиты и доступ только в соответствии с этим рейтингом). Эти системы защищены от ошибочного поведения пользователя. Уровень А требует дополнительно формального, математически доказанного соответствия системы требованиям безопасности. Однако А-уровень занимает своими управляющими механизмами до 90% процессорного времени. Более безопасные системы не только снижают продуктивность, но и ограничивают число доступных приложений. Различные коммерческие структуры, например банки, поддерживают безопасность своих систем, как правило на уровне С2.