Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Эволюция развития операционных систем





Начиная с 1949 г., когда заработала первая цифровая вычислительная машина с запоминаемой программой, и до 1956 г. устройство и способ действия вычислительных машин оставался относительно постоянным. Их классическая фон неймановская архитектура была основана на строго последовательном выполнении команд, включая операции ввода-вывода. Программы писались на абсолютном машинном языке (десятичная и восьмеричная нотация) и при вводе им предшествовал абсолютный загрузчик). Средства автоматизации программирования либо отсутствовали, либо были минимальными — лишь на наиболее сложных установках имелись простые ассемблеры и интерпретаторы с незначительным использованием библиотечных стандартных программ.

“Первое поколение” операционных систем было вызвано к жизни упомянутой выше неэффективностью, а также другими соображениями.Первые пакетные системы автоматизировали стандартнуюп оследовательность загрузка/трансляция/загрузка/ выполнение” с помощью центральной управляющей программы, которая отыскивает и загружает требуемые системные программы (ассемблер, компилятор, загрузчик или библиотечные подпрограммы), а также управляет переходами от задания к заданию. Языковые трансляторы были переписаны для создания программ в перемещаемой, а не в абсолютной форме.

В период с 1959 до 1963 гг. несколько значительных аппаратных разработок получили широкое распространение и стимулировали развитие ОС. Важным аппаратурным новшеством был канал данных — простейшая ЭВМ со своей собственной системой команд, регистрами и устройством управления, которое управляет связью и передачей данных между основной ЭВМ и устройствами ввода-вывода. Были написаны более сложные системы программирования ввода-вывода с целью использования преимуществ потенциальной эффективности этой новой архитектуры. Для этого периода характерно последовательная пакетная обработка с попыткой эффективно использовать каналы данных, прерывания и вспомогательную память. Однако обработка заданий по одному в каждый момент времени по-прежнему приводила к низкой активности канала для заданий с интенсивными вычислениями и к низкой активности ЦОУ для заданий с интенсивным вводом-выводом, даже если было достигнуто максимальное совмещение операций ЦОУ и канала.

С 1962 по 1969 г. в больших ОС стал почти повсеместно использоваться новый метод обработки заданий —мультипрограммирование, был также разработан новый способ выполнения вычислений, разделение времени, как альтернатива пакетной обработке. В это время начинают предлагать услуги большие сети ЭВМ, построенные на основе линий связи. Сети предъявляют еще большие требования к системному программному обеспечению. Другие изменения в аппаратуре, такие, как появление управляющей памяти с возможностью перезаписи микропрограмм, иерархий устройств основной памяти с автоматической передачей информации между уровнями, экономичных ассоциативных запоминающих устройств, а также углубление параллелизма в обрабатывающих устройствах, в том числе программируемого, приведут к новым требованиям в отношении программного обеспечения и заставят глубже понимать принципы ОС. К современным направлениям в области разработки программного обеспечения можно отнести:

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

- человеко-ориентированные языки. управления заданиями;

- языки и системы, обеспечивающие параллелизм;

- подсистемы для измерения действия ОС;

- более универсальные схемы защиты.

Важный период развития вычислительных машин относится к началу 60-х – 1980 г. Для повышения эффективности использования процессорного времени вводится прием подкачки-откачки данных или spooling (сокращение от Simultaneous Peripheral Operation On Line). Введение техники подкачки-откачки в пакетные системы позволило совместить реальные операции ввода-вывода одного задания с выполнением другого задания, но потребовало разработки аппарата прерываний для извещения процессора об окончании этих операций.

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

Роль операционной системы в организации мультипрограммирования такова:

1. Организация интерфейса между прикладной программой и ОС.

2. Организация очереди из заданий в памяти.

3. Переключение с одного задания на другое.

4. Упорядочивание процессов размещения, замещения и выборки информации из памяти.

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

6. Обеспечение средствами коммуникации.

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

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

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

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

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

Можем выделить шесть основных функций, которые выполняли классические операционные системы в процессе эволюции:

1. планирование заданий и использования процессора;

2. обеспечение программ средствами коммуникации и синхронизации;

3. управление памятью;

4. управление файловой системой;

5. управление вводом-выводом;

6. обеспечение безопасности

Основные понятия, концепции ОС

В любой операционной системе поддерживается механизм, который позволяет пользовательским программам обращаться к услугам ядра ОС. В операционных системах наиболее известной советской вычислительной машины БЭСМ-6 соответствующие средства «общения» с ядром назывались экстракодами, в операционных системах IBM они назывались системными макрокомандами и т.д. В ОС Unix такие средства называют системными вызовами.

Системные вызовы (system calls) – это интерфейс между операционной системой и пользовательской программой. Они создают, удаляют и используют различные объекты, главные из которых – процессы и файлы. Пользовательская программа запрашивает сервис у операционной системы, осуществляя системный вызов. Имеются библиотеки процедур, которые загружают машинные регистры определенными параметрами и осуществляют прерывание процессора, после чего управление передается обработчику данного вызова, входящему в ядро операционной системы. Цель таких библиотек – сделать системный вызов похожим на обычный вызов подпрограммы.

Основное отличие состоит в том, что при системном вызове задача переходит в привилегированный режим или режим ядра (kernel mode). Поэтому системные вызовы иногда еще называют программными прерываниями, в отличие от аппаратных прерываний, которые чаще называют просто прерываниями.

В большинстве операционных систем системный вызов осуществляется командой программного прерывания (INT). Таким образом, программное прерывание – это синхронное событие.

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

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

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

Главная задача файловой системы (file system) – скрыть особенности ввода-вывода и дать программисту простую абстрактную модель файлов, независимых от устройств. Для чтения, создания, удаления, записи, открытия и закрытия файлов также имеется обширная категория системных вызовов (создание, удаление, открытие, закрытие, чтение и т.д.).

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

Рассмотрев назначение ОС и выполняемые ими функции, можно классифицировать все многообразие существующих ОС, взяв за основу наиболее общие классификационные принципы.

1. По количеству одновременно существующих программных процессов ОС делятся на однопрограммные и мультипрограммные. В мультипрограммных Ос, в отличие от однопрограммных, вычислительный процесс организуется таким образом, что в памяти компьютера находятся одновременно несколько программ, попеременно выполняющихся на одном процессоре.

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

3. По назначению ОС делятся на универсальные и специализированные. Специализированные ОС работают с фиксированным набором программ.

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

5. По особенности области использования ОС подразделяются на системы пакетной обработки, системы разделения времени и системы реального времени.

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

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

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

Рекомендуемая литература: 1 осн. [31-137], 6 осн.[29-37],[57-80],9 доп. [13-23],12 доп. [34-56]

Контрольные вопросы к теме «Основы операционных систем»:

1. Дайте определение операционной системы

2. Перечислите функции, выполняемые операционной системой?

3. Каковы ресурсы вычислительной системы?

4. Как Вы понимаете «управление ресурсами»?

5. Дайте классификацию ОС по количеству одновременно существующих программных процессов

6. Дайте классификацию ОС по числу пользователей, осуществляющих доступ к вычислительной системе.

7. Дайте классификацию ОС по способу загрузки.

8. Дайте классификацию ОС по особенности области использования ОС.

9. Перечислите требования, которым должна удовлетворять любая современная ОС.

10. Что такое «исключительная ситуация»?

11. Что такое прерывание? Виды прерываний.

12. Какую роль выполняли прерывания изначально?

13. Какова основная функция программного обеспечения для ЭВМ второго поколения?

14. Какова основная функция программного обеспечения для ЭВМ третьего поколения?

15. Какова основная функция программного обеспечения для ЭВМ четвертого поколения?

 

Тема 2. Архитектура операционных систем. (2 часа)

Монолитные системы

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

Для построения монолитной системы необходимо скомпилировать все отдельные процедуры, а затем связать их вместе в единый объектный файл с помощью компоновщика (примерами могут служить ранние версии ядра UNIX или Novell NetWare). Каждая процедура видит любую другую процедуру (в отличие от структуры, содержащей модули, в которой большая часть информации является локальной для модуля, и процедуры модуля можно вызвать только через специально определенные точки входа).

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

Рисунок 2.1. Монолитная структура ОС

Такая организация ОС предполагает следующую структуру:

1. Главная программа, которая вызывает требуемые сервисные процедуры.

2. Набор сервисных процедур, реализующих системные вызовы.

3. Набор утилит, обслуживающих сервисные процедуры.

В этой модели для каждого системного вызова имеется одна сервисная процедура. Утилиты выполняют функции, которые нужны нескольким сервисным процедурам. Это деление процедур на три слоя показано на рисунке 2.2.

Рисунок 2.2. Простая структуризация монолитной ОС

Многоуровневые системы

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

Первой системой, построенной таким образом была простая пакетная система THE, которую построил Дейкстра и его студенты в 1968 году.

Система имела 6 уровней. Уровень 0 занимался распределением времени процессора, переключая процессы по прерыванию или по истечении времени. Уровень 1 управлял памятью - распределял оперативную память и пространство на магнитном барабане для тех частей процессов (страниц), для которых не было места в ОП, то есть слой 1 выполнял функции виртуальной памяти. Слой 2 управлял связью между консолью оператора и процессами. С помощью этого уровня каждый процесс имел свою собственную консоль оператора. Уровень 3 управлял устройствами ввода-вывода и буферизовал потоки информации к ним и от них. С помощью уровня 3 каждый процесс вместо того, чтобы работать с конкретными устройствами, с их разнообразными особенностями, обращался к абстрактным устройствам ввода-вывода, обладающим удобными для пользователя характеристиками. На уровне 4 работали пользовательские программы, которым не надо было заботиться ни о процессах, ни о памяти, ни о консоли, ни об управлении устройствами ввода-вывода. Процесс системного оператора размещался на уровне 5.

В системе THE многоуровневая схема служила, в основном, целям разработки, так как все части системы компоновались затем в общий объектный модуль.

Дальнейшее обобщение многоуровневой концепции было сделано в ОС MULTICS. В системе MULTICS каждый уровень (называемый кольцом) является более привилегированным, чем вышележащий. Когда процедура верхнего уровня хочет вызвать процедуру нижележащего, она должна выполнить соответствующий системный вызов, то есть команду TRAP (прерывание), параметры которой тщательно проверяются перед тем, как выполняется вызов. Хотя ОС в MULTICS является частью адресного пространства каждого пользовательского процесса, аппаратура обеспечивает защиту данных на уровне сегментов памяти, разрешая, например, доступ к одним сегментам только для записи, а к другим - для чтения или выполнения. Преимущество подхода MULTICS заключается в том, что он может быть расширен и на структуру пользовательских подсистем. Например, профессор может написать программу для тестирования и оценки студенческих программ и запустить эту программу на уровне n, в то время как студенческие программы будут работать на уровне n+1, так что они не смогут изменить свои оценки.

Многоуровневый подход был также использован при реализации различных вариантов ОС UNIX.

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

Рекомендуемая литература: 1 осн. [216-222], 13 доп. [45-51], 11 доп. [67-89]

Контрольные вопросы к теме «Архитектура операционных систем»:

1. Трехслойная структура вычислительной системы.

2. Ядро и вспомогательные модули ОС

3. Основные преимущества монолитного подхода в стуктурном строении ОС

Тема 3. Микроядерная архитектура ОС(2 часа)







Что вызывает тренды на фондовых и товарных рынках Объяснение теории грузового поезда Первые 17 лет моих рыночных исследований сводились к попыткам вычис­лить, когда этот...

Что способствует осуществлению желаний? Стопроцентная, непоколебимая уверенность в своем...

Система охраняемых территорий в США Изучение особо охраняемых природных территорий(ООПТ) США представляет особый интерес по многим причинам...

Что делает отдел по эксплуатации и сопровождению ИС? Отвечает за сохранность данных (расписания копирования, копирование и пр.)...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.