Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Конспект лекций по курсу операционные системы 5 страница



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

4.9. Организация внешней памяти на магнитных дисках

Магнитные диски представляют собой пакеты магнитных пластин поверхностей, между которыми на одном рычаге двигается пакет магнитных головок рис. 1.1. Шаг движения пакета головок является дискретным, и каждому положению пакета головок логически соответствует цилиндр пакета магнитных дисков. На каждой поверхности цилиндр высекает дорожку, так что каждая поверхность содержит число дорожек, равное числу цилиндров. При разметке магнитного диска специальном действии, предшествующем использованию диска каждая дорожка размечается на одно и то же количество блоков; таким образом, предельная емкость каждого блока составляет одно и то же число байтов. Для задания обмена с магнитным диском на уровне аппаратуры нужно указать номер цилиндра, номер поверхности, номер блока на соответствующей дорожке и число байтов, которое нужно записать или прочитать от начала этого блока.

Рис. 1.1. Грубая схема дискового устройства памяти с подвижными головками
При выполнении обмена с диском аппаратура выполняет три основных действия: подвод головок к нужному цилиндру обозначим время выполнения этого действия как tпг, поиск на дорожке нужного блока время выполнения — tпб и собственно обмен с этим блоком время выполнения — tоб. Тогда, как правило, tпгtпбtоб, потому что подвод головок — это механическое действие, причем в среднем нужно переместить головки на расстояние, равное половине радиуса поверхности, а скорость передвижения головок не может быть слишком большой по физическим соображениям. Поиск блока на дорожке требует прокручивания пакета магнитных дисков в среднем на половину длины внешней окружности; скорость вращения диска может быть существенно больше скорости движения головок, но она тоже ограничена законами физики. Для выполнения же собственно чтения или записи нужно прокрутить пакет дисков всего лишь на угловое расстояние, соответствующее размеру блока. Таким образом, из всех этих действий в среднем наибольшее время занимает первое, и поэтому существенный выигрыш в суммарном времени обмена при считывании или записи только части блока получить практически невозможно.
С появлением магнитных дисков началась история систем управления данными во внешней памяти. До этого каждая прикладная программа, которой требовалось хранить данные во внешней памяти, сама определяла расположение каждой порции данных на магнитной ленте или барабане и выполняла обмены между оперативной и внешней памятью с помощью программно-аппаратных средств низкого уровня машинных команд или вызовов соответствующих программ операционной системы. Такой режим работы не позволял или очень затруднял поддержание на одном внешнем носителе нескольких архивов долговременно хранимой информации. Кроме того, каждой прикладной программе приходилось решать проблемы именования частей данных и структуризации данных во внешней памяти.

4.10. Кэширование операций ввода вывода при работе с накопителями на магнитных дисках

Как известно, накопители на магнитных дисках обладают крайне низкой скоростью по сравнению с быстродействием центральной части компьютера. Разница в быстродействии отличается на несколько порядков. Например, современные процессоры за один такт работы, а они работают уже с частотами в 1 ГГц и более, могут выполнять по две операции. Таким образом, время выполнения операции с позиции внешнего наблюдателя, не видящего конвейеризации при выполнении, машинных команд, благодаря которой производительность возрастает в несколько раз может составлять 0,5 нс!. В то же время переход магнитной головки с дорожки на дорожку составляет несколько миллисекунд. Такие же временные интервалы имеют место и при ожидании, пока под головкой чтения записи не окажется нужный сектор данных. Как известно, в современных приводах средняя длительность на чтение случайным образом выбранного сектора данных составляет около 20 мс, что существенно медленнее, чем выборка команды или операнда из оперативной памяти и уж тем более из кэша. Правда, после этого данные читаются большим пакетом сектор, как мы уже говорили, имеет размер в 512 байтов, а при операциях с диском часто читается или записывается сразу несколько секторов. Таким образом, средняя скорость работы процессора с оперативной памятью на 2-3 порядка выше, чем средняя скорость передачи данных из внешней памяти на магнитных дисках в оперативную память.

Для того чтобы сгладить такое сильное несоответствие в производительности основных подсистем, используется буферирование иили кэширование данных. Простейшим вариантом ускорения дисковых операций чтения данных можно считать использование двойного буферирования. Его суть заключается в том, что пока в один буфер заносятся данные с магнитного диска, из второго буфера ранее считанные данные могут быть прочитаны и переданы запросившей их задаче. Аналогичный процесс происходит и при записи данных. Буферирование используется во всех операционных системах, но помимо буферирования применяется и кэширование. Кэширование исключительно полезно в том случае, когда программа неоднократно читает с диска одни и те же данные. После того как они один раз будут помещены в кэш, обращений к диску больше не потребуется и скорость работы программы значительно возрастет.

Если не вдаваться в подробности, то под кэшем можно понимать некий пул буферов, которыми мы управляем с помощью соответствующего системного процесса. Если мы считываем какое-то множество секторов, содержащих записи того или иного файла, то эти данные, пройдя через кэш, там остаются до тех пор, пока другие секторы не заменят эти буферы. Если впоследствии потребуется повторное чтение, то данные могут быть извлечены непосредственно из оперативной памяти без фактического обращения к диску. Ускорить можно и операции записи: данные помещаются в кэш, и для запросившей эту операцию задачи можно считать, что они уже фактически и записаны. Задача может продолжить свое выполнение, а системные внешние процессы через некоторое время запишут данные на диск. Это называется операцией отложенной записи lazy write, ленивая запись. Если отложенная запись отключена, только одна задача может записывать на диск свои данные. Остальные приложения должны ждать своей очереди. Это ожидание подвергает информацию риску не меньшему если не большему, чем отложенная запись, которая к тому же и более эффективна по скорости работы с диском.

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

Кэширование дисковых операций может быть существенно улучшено за счет введения техники упреждающего чтения read ahead. Она основана на чтении с диска гораздо большего количества данных, чем на самом деле запросила операционная система или приложение. Когда некоторой программе требуется считать с диска только один сектор, программа кэширования читает еще и несколько дополнительных блоков данных. А операции последовательного чтения нескольких секторов фактически несущественно замедляют операцию чтения затребованного сектора с данными. Поэтому, если программа вновь обратится к диску, вероятность того, что нужные ей данные уже находятся в кэше, достаточно высока. Поскольку передача данных из одной области памяти в другую происходит во много раз быстрее, чем чтение их с диска, кэширование существенно сокращает время выполнения операций с файлами.

Итак, путь информации от диска к прикладной программе пролегает как через буфер, так и через файловый кэш. Когда приложение запрашивает с диска данные, программа кэширования перехватывает этот запрос и читает вместе с необходимыми секторами еще и несколько дополнительных. Затем она помещает в буфер требующуюся задаче информацию и ставит об этом в известность операционную систему. Операционная система сообщает задаче, что ее запрос выполнен и данные с диска находятся в буфере. При следующем обращении приложения к диску программа кэширования прежде всего проверяет, не находятся ли уже в памяти затребованные данные. Если это так, то она копирует их в буфер; если же их в кэше нет, то запрос на чтение диска передается операционной системе. Когда задача изменяет данные в буфере, они копируются в кэш.

В ряде ОС имеется возможность указать в явном виде параметры кэширования, в то время как в других за эти параметры отвечает сама ОС. Так, например, в системе Windows NT нет возможности в явном виде управлять ни объемом файлового кэша, ни параметрами кэширования. В системах Windows 9598 такая возможность уже имеется, но она представляет не слишком богатый выбор. Фактически мы можем указать только объем памяти, отводимый для кэширования, и объем порции данных буфер или chunk, из которых набирается кэш. В файле System.ini есть возможность в секции [VCACHE] прописать, например, следующие значения:

[vcache]

MinFileCache=4096

MaxFileCache-32768

ChunkSize=512

Здесь указано, что минимально под кэширование данных зарезервировано 4 Мбайт оперативной памяти, максимальный объем кэша может достигать 32 Мбайт, а размер данных, которыми манипулирует менеджер кэша, равен одному сектору.

В других ОС можно указывать больше параметров, определяющих работу подсистемы кэширования.

Помимо описанных действий ОС может выполнять и работу по оптимизации перемещения головок чтениязаписи данных, связанного с выполнением запросов от параллельно выполняющихся задач. Время, необходимое на получение данных с магнитного диска, складывается из времени перемещения магнитной головки на требуемый цилиндр и времени ожидания заданного сектора; временем считывания найденного сектора и затратами на передачу этих данных в оперативную память мы можем пренебречь. Таким образом, основные затраты времени уходят на поиск данных. В мультипрограммных ОС при выполнении многих задач запросы на чтение и запись данных могут идти таким потоком, что при их обслуживании образуется очередь. Если выполнять эти запросы в порядке поступления их в очередь, то вследствие случайного характера обращений к тому или иному сектору магнитного диска мы можем иметь значительные потери времени на поиск данных. Напрашивается очевидное решение: поскольку выполнение переупорядочивания запросов с целью минимизации затрат времени на поиск данных можно выполнить очень быстро практически этим временем можно пренебречь, учитывая разницу в быстродействии центральной части и устройств ввода-вывода, то необходимо найти метод, позволяющий перестраивать очередь запросов оптимальным образом. Изучение этой проблемы позволило найти наиболее эффективные дисциплины планирования.

Перечислим известные дисциплины, в соответствии с которыми можно перестраивать очередь запросов на операции чтения записи данных:

STF shortest seek time — first — с наименьшим временем поиска — первым. В соответствии с этой дисциплиной при позиционировании магнитных головок следующим выбирается запрос, для которого необходимо минимальное перемещение с цилиндра на цилиндр, даже если этот запрос не был первым в очереди на вводвывод. Однако для этой дисциплины характерна резкая дискриминация определенных запросов, а ведь они могут идти от высокоприоритетных задач. Обращения к диску проявляют тенденцию концентрироваться, в результате чего запросы на обращение к самым внешним и самым внутренним дорожкам могут обслуживаться. Существенно дольше и нет никакой гарантии обслуживания. Достоинством такой дисциплины является максимально возможная пропускная способность дисковой подсистемы.

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

ext-Step Scan — отличается от предыдущей дисциплины тем, что на каждом проходе обслуживаются только запросы, которые уже существовали на момент начала прохода. Новые запросы, появляющиеся в процессе перемещения головок чтениязаписи, формируют новую очередь запросов, причем таким образом, чтобы их можно было оптимально обслужить на обратном ходу.

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

5. Принципы построения и классификация
5.1. Принципы построения

Принцип модульности
Модуль — функционально значимый элемент системы, обладающий установленным межмодульным интерфейсом. Последний предполагает возможность замены его любым другим модулем, обладающим таким же интерфейсом.
Принцип модульности даёт максимальный эффект, если он распространяется на ОС, прикладные программы и аппаратуру.
Принцип функциональной избирательности
Некоторая часть модулей ОС должна частично находиться в памяти для более эффективной организации вычислительного процесса. Она называется ядром ОС. К ядру предъявляются требования минимальности требуемого объема памяти и наиболее часто используемым функциям. К ядру, как правило, относят модули управления системой прерываний, управления задачами, модули управления ресурсами.
Остальные модули ОС называются транзитными или диск-резидентными. Они загружаются в память по необходимости, а при отсутствии свободного пространства памяти замещаются другими, более необходимыми в данный момент.
Принцип генерируемости
Суть его в том, что способ исходного представления ядра ОС должен позволять настройку его на непосредственную конфигурацию вычислительного комплекса на круг решаемых задач. Процесс генерации осуществляется программой генерации ОС с использованием соответствующего программного языка, позволяющего описывать программные возможности системы и конфигурацию машины. В результате генерируется полная рабочая версия ОС.
Использование принципа модульности упрощает настройку ОС.
В большинстве современных ОС для персональных компьютеров конфигурирование под имеющийся состав оборудования производится на этапе инсталляции, а последующие изменения параметров ОС или состава драйверов производятся редактированием файла конфигурации.
Единственной ОС, генерируемой в полном смысле является ОС Linux. В ней можно сгенерировать ядро, оптимальное для данного компьютера и указать набор подгружаемых драйверов и служб.
Принцип функциональной избыточности
Он учитывает возможность выполнения одной и той же работы различными средствами. Наличие возможности использования нескольких типов мониторов или планировщиков ресурсов, систем управления файлами и т.д. позволяет быстро и адекватно адаптировать ОС к данной конфигурации вычислительной системы, эффективно загружать технические средства, получить максимальную производительность.
Принцип виртуализации
Он позволяет представить структуру системы в виде набора планировщиков процессов и распределителей ресурсов и использовать единую схему распределения ресурсов. Наиболее полно принцип проявляется в понятии виртуальной машины машины вообще, обладающей идеальными для пользователя архитектурными характеристиками:

- единая т.е. виртуальная память неограниченного объема со временем доступа, совпадающим с аналогичным параметром реальной машины

- произвольное количество процессов виртуальных способных работать с памятью параллельно и последовательно, синхронно и асинхронно способ выбирается пользователем

- произвольное число внешних устройств с неограниченными объёмами хранимой информации с различными видами доступа и открытой архитектурой.

Степень приближения реальной машины и виртуальной может быть больше или меньше в каждом конкретном случае.
Одним из примеров применения принципа виртуальности является имеющаяся во всех ОС Windows, OS2 VDM-машина virtual DOS-machine — защищенная подсистема, предоставляющая полную MS-DOS среду и консоль для выполнения DOS-приложений.
Принцип независимости программ от внешних устройств
Суть его в том, что связь программы с внешним устройством устанавливается не на этапе трансляции, а в период планирования её исполнения. Программа общается не с устройствами, а с ОС, сообщая ей о потребности в ресурсах для выполнения данной работы. Конкретное устройство, на котором эта работа будет выполнена, программу не интересует, это задача ОС.
Принцип совместимости
Суть принципа — в обеспечении способности ОС выполнять программы, написанные для других ОС или под другие аппаратные платформы.
Различают совместимость на уровне исходных текстов текстовая совместимость и на уровне кодов двоичная совместимость.
Первая требует наличия транслятора, совместимость на уровне библиотек и системных вызовов. При этом требуется повторная компиляция исходных текстов в новый исполняемый модуль.
Вторая требует совместимость на уровне архитектуры процессоров и систем команд. Для реализации такой совместимости используются эмуляторы прикладные среды.
Принцип открытости и наращиваемости
Открытая ОС доступна для анализа пользователем и системным программистом. Наращиваемая ОС позволяет вводить в состав новые модули, модернизировать существующие и т.д., не нарушая целостности системы. Пример наращиваемости демонстрируют структурированные ОС типа клиент-сервер на основе микроядерной технологии, когда ядро системы привилегированная управляющая программа сохраняется неизменяемым, а состав серверов набор непривилегированных услуг может модифицироваться. Примером открытой системы является ОС Linux и всеUNIX-системы.
Принцип мобильности переносимости
Принцип требует, чтобы ОС легко устанавливалась с одного процессора на другой, с одной аппаратной платформы на другую. Для этого ОС в основном должна быть написана на языке, имеющемся на всех платформах, куда её планируется переносить предпочтительно на С. Кроме того, в ней должны быть минимизированы а ещё лучше — исключены средства взаимодействия с аппаратурой. Не исключенные аппаратно зависимые части кода должны быть изолированы в хорошо локализируемых модулях. Тогда при переносе меняются или подстраиваются только эти локальные данные и функции взаимодействия с ними.
Принцип безопасности вычислений
Правила безопасности защищают ресурсы одного пользователя от других и устанавливают квоты на ресурсы для предотвращения захвата всех ресурсов одним пользователем.
Основы стандартов в области безопасности вычислений были заложены в документе под названием Критерии оценки наземных компьютерных систем и изданном Национальным центром компьютерной безопасности США NCSC — National Computer Security Center в 1983 г. В соответствии с ним безопасной считается система, посредством специальных механизмов контролирующая доступ к информации так, что доступ к ней получают только лица с соответствующими полномочиями или процессы, выполняющиеся от их имени.
Определено 4 уровня безопасности А высший — D низший. При этом в класс D попадают системы, у которых выявлено несоответствие всем трём высшим классам. Класс С делится на два уровня: С1 обеспечивает защиту данных от ошибок пользователя, но не от злоумышленников, а С2 защищает данные в обоих ситуациях. На уровне С2 должны присутствовать:
- секретность входа идентифицируя пользователей по уникальному имени и паролю

- контроль доступа информирование владельца данных о лицах, имеющих доступ к данным и их правах на пользование ими

- наблюдение и учет за ситуацией с безопасностью фиксация попыток получить доступ, создать или удалить системные реестры

- защита памяти удаление содержимого памяти предыдущего сеанса работы перед началом нового.
Системы уровня В реализуют контроль доступа каждый пользователь имеет рейтинг защиты и доступ только в соответствии с этим рейтингом. Эти системы защищены от ошибочного поведения пользователя.
Уровень А требует дополнительно формального, математически доказанного соответствия системы требованиям безопасности. Однако А-уровень занимает своими управляющими механизмами до 90% процессорного времени. Более безопасные системы не только снижают продуктивность, но и ограничивают число доступных приложений.
Различные коммерческие структуры, например банки, поддерживают безопасность своих систем, как правило на уровне С2.
5.2. Ядро и ресурсы
Ядро — центральная часть операционной системы ОС, обеспечивающая приложениям координированный доступ к ресурсам компьютера, таким как процессорное время, память, внешнееаппаратное обеспечение, внешнее устройство ввода и вывода информации. Также обычно ядро предоставляет сервисы файловой системы и сетевых протоколов.
Как основополагающий элемент ОС, ядро представляет собой наиболее низкий уровень абстракции для доступа приложений к ресурсам системы, необходимым для их работы. Как правило, ядро предоставляет такой доступ исполняемым процессам соответствующих приложений за счёт использования механизмов межпроцессного взаимодействия и обращения приложений к системным вызовам ОС.
Описанная задача может различаться в зависимости от типа архитектуры ядра и способа её реализации.

5.3. Интерфейсы ОС
Напомним, что операционная система всегда выступает как интерфейс между аппаратурой компьютера и пользователем с его задачами. Под интерфейсами операционных систем здесь и далее следует понимать специальные интерфейсы системного и прикладного программирования API, предназначенные для выполнения перечисленных ниже задач.
• Управление процессами, которое включает в себя следующий набор основных функций:
• запуск, приостанов и снятие задачи с выполнения

• задание или изменение приоритета задачи

• взаимодействие задач между собой механизмы сигналов, семафорные примитивы, очереди, конвейеры, почтовые ящики

• вызов удаленных процедур Remote Procedure Call, RPC.
• Управление памятью:
• запрос на выделение блока памяти

• освобождение памяти

• изменение параметров блока памяти например, память может быть заблокирована процессом либо предоставлена в общий доступ

• отображение файлов на память имеется не во всех системах.

• Управление вводом-выводом:
• запрос на управление виртуальными устройствами напомним, что управление вводом-выводом является привилегированной функцией самой операционной системы, и никакая из пользовательских задач не должна иметь возможности непосредственно управлять устройствами

• файловые операции запросы к системе управления файлами на создание, изменение и удаление данных, организованных в файлы.

Здесь мы перечислили основные наборы функций, которые выполняются операционной системой по соответствующим запросам от задач. Что касается интерфейса пользователя с операционной системой, то он реализуется с помощью специальных программных модулей, которые принимают его команды на соответствующем языке возможно, с использованием графического интерфейса и транслируют их в обычные вызовы в соответствии с основным интерфейсом системы. Обычно эти модули называют интерпретатором команд. Так, например, функции такого интерпретатора в MS DOS выполняет модуль CDMMAND.COM. Получив от пользователя команду, такой модуль после лексического и синтаксического анализа либо сам выполняет действие, либо, что случается чаще, обращается к другим модулям операционной системы, используя механизм API. Надо заметить, что в последние годы большую популярность получили графические интерфейсы Graphical User Interface, GUI, в которых задействованы соответствующие манипуляторы типа мышь или трекбол track-ball1. Указание курсором на объект и щелчок или двойной щелчок на соответствующей кнопке мыши приводит к каким-либо действиям — запуску программы, ассоциированной с объектом, выбору иили активизации меню и т. д. Можно сказать, что такая интерфейсная подсистема транслирует команды пользователя в обращения к операционной системе.
Поясним также, что управление GUI является частным случаем задачи управления вводом-выводом и не относится к функциям ядра операционной системы, хотя в ряде случаев разработчики операционной системы относят функции GUI к основному системному интерфейсу API.
Следует отметить, что имеются два основных подхода к управлению задачами. Так, в одних системах порождаемая задача наследует все ресурсы задачи-родителя, тогда как в других системах существуют равноправные отношения, и при порождении нового процесса ресурсы для него запрашиваются у операционной системы.
Обращения к операционной системе в соответствии с имеющимся интерфейсом API могут осуществляться как посредством вызова подпрограммы с передачей ей необходимых параметров, так и через механизм программных прерываний. Выбор метода реализации вызовов функций API должен определяться архитектурой платформы.

5.4. Классификация ОС

Существуют различные виды классификации ОС по тем или иным признакам, отражающие разные существенные характеристики систем.
По назначению.
Системы общего назначения. Это достаточно расплывчатое название подразумевает ОС, предназначенные для решения широкого круга задач, включая запуск различных приложений, разработку и отладку программ, работу с сетью и с мультимедиа.
Системы реального времени. Этот важный класс систем предназначен для работы в контуре управления объектами такими, как летательные аппараты, технологические установки, автомобили, сложная бытовая техника и т.п.. Из подобного назначения вытекают жесткие требования к надежности и эффективности системы. Должно быть обеспечено точное планирование действий системы во времени управляющие сигналы должны выдаваться в заданные моменты времени, а не просто по возможности быстро. Особый подкласс составляют системы, встроенные в оборудование. Такие системы годами могут выполнять фиксированный набор программ, не требуя вмешательства человека-оператора на более глубоком уровне, чем нажатие кнопки Вкл..
Иногда выделяют также такой класс ОС, как системы с нежестким реальным временем. Это такие системы, которые не могут гарантировать точное соблюдение временных соотношений, но очень стараются, т.е. содержат средства для приоритетного выполнения заданий, критичных по времени. Такой системе нельзя доверить управление ракетой, но она вполне справится с демонстрацией видеофильма. Выделение подобных систем в отдельный класс имеет скорее рекламное значение, позволяя таким системам, как Windows NT и некоторые версии UNIX, тоже называть себя системами реального времени.
Прочие специализированные системы. Это различные ОС, ориентированные прежде всего на эффективное решение задач определенного класса, с большим или меньшим ущербом для прочих задач. Можно выделить, например, сетевые системы такие, как Novell Netware, обеспечивающие надежное и высокоэффективное функционирование локальных сетей.
По характеру взаимодействия с пользователем.
Пакетные ОС, обрабатывающие заранее подготовленные задания.
Диалоговые ОС, выполняющие команды пользователя в интерактивном режиме. Красивое слово интерактивный означает постоянное взаимодействие системы с пользователем.
ОС с графическим интерфейсом. В принципе, их также можно отнести к диалоговым системам, однако использование мыши и всего, что с ней связано меню, кнопки и т.п. вносит свою специфику.
Встроенные ОС, не взаимодействующие с пользователем.
По числу одновременно выполняемых задач.
Однозадачные ОС. В таких системах в каждый момент времени может существовать не более чем один активный пользовательский процесс. Следует заметить, что одновременно с ним могут работать системные процессы например, выполняющие запросы на вводвывод.
Многозадачные ОС. Они обеспечивают параллельное выполнение нескольких пользовательских процессов. Реализация многозадачности требует значительного усложнения алгоритмов и структур данных, используемых в системе.
По числу пользователей.
Однопользовательские ОС. Для них характерен полный доступ пользователя к ресурсам системы. Подобные системы приемлемы в основном для изолированных компьютеров, не допускающих доступа к ресурсам данного компьютера по сети или с удаленных терминалов.
Многопользовательские ОС. Их важной компонентой являются средства защиты данных и процессов каждого пользователя, основанные на понятии владельца ресурса и на точном указании прав доступа, предоставленных каждому пользователю системы.
По аппаратурной основе.
Однопроцессорные ОС. В данном курсе будут рассматриваться только они.
Многопроцессорные ОС. В задачи такой системы входит, помимо прочего, эффективное распределение выполняемых заданий по процессорам и организация согласованной работы всех процессоров.
Сетевые ОС. Они включают возможность доступа к другим компьютерам локальной сети, работы с файловыми и другими серверами.
Распределенные ОС. Их отличие от сетевых заключается в том, что распределенная система, используя ресурсы локальной сети, представляет их пользователю как единую систему, не разделенную на отдельные машины.





Дата публикования: 2014-12-08; Прочитано: 853 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.013 с)...