Сделай Сам Свою Работу на 5

Эволюция операционных систем, их назначение и функции. Архитектура и функциональные компоненты сетевых операционных систем.





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

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

Основные функции:

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

Загрузка программ в оперативную память и их выполнение.

Стандартизованный доступ к периферийным устройствам (устройства ввода-вывода).

Управление оперативной памятью (распределение между процессами, организация виртуальной памяти).

Управление доступом к данным на энергонезависимых носителях (таких как жёсткий диск, оптические диски и др.), организованным в той или иной файловой системе.

Обеспечение пользовательского интерфейса.



Сохранение информации об ошибках системы.

 

Эволюция ОС

Первый период (1945 -1955)

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

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



Второй период (1955 - 1965)

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

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

Третий период (1965 - 1980)

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



Для этого периода характерно также создание семейств программно-совместимых машин. Первым семейством программно-совместимых машин, построенных на интегральных микросхемах, явилась серия машин IBM/360. Построенное в начале 60-х годов это семейство значительно превосходило машины второго поколения по критерию цена/произ-водительность. Вскоре идея программно-совместимых машин стала общепризнанной.

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

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

Другое нововведение - спулинг (spooling). Спулинг в то время определялся как способ организации вычислительного процесса, в соответствии с которым задания считывались с перфокарт на диск в том темпе, в котором они появлялись в помещении вычислительного центра, а затем, когда очередное задание завершалось, новое задание с диска загружалось в освободившийся раздел.

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

Четвертый период (1980 - настоящее время)

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

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

На рынке операционных систем доминировали две системы: MS-DOS и UNIX. Однопрограммная однопользовательская ОС MS-DOS широко использовалась для компьютеров, построенных на базе микропроцессоров Intel 8088, а затем 80286, 80386 и 80486. Мультипрограммная многопользовательская ОС UNIX доминировала в среде "не-интеловских" компьютеров, особенно построенных на базе высокопроизводительных RISC-процессоров.

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

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

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

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

Описанная задача может различаться в зависимости от типа архитектуры ядра и способа её реализации.

Объекты ядра ОС:

Процессы

Файлы

События

Потоки

Семафоры

Мьютексы

Каналы

Файлы, проецируемые в память

10. Общая характеристика алгоритмов планирования и диспетчеризации процессов и задач. Дисциплины диспетчеризации.

Распределению подлежит вся оперативная память, не занятая операционной системой. Обычно ОС располагается в самых младших адресах, однако может занимать и самые старшие адреса.
Так, как во время трансляции в общем случае неизвестно, в какое место оперативной памяти будет загружена программа, то транслятор присваивает переменным и командам виртуальные (условные) адреса, обычно считая по умолчанию, что программа будет размещена, начиная с нулевого адреса. Совокупность виртуальных адресов процесса называетсявиртуальным адресным пространством. Каждый процесс имеет собственное виртуальное адресное пространство. Максимальный размер виртуального адресного пространства ограничивается разрядностью адреса, присущей данной архитектуре компьютера, и, как правило, не совпадает с объемом физической памяти, имеющимся в компьютере.
Физические адреса соответствуют номерам ячеек оперативной памяти, где в действительности расположены или будут расположены переменные и команды. Переход от виртуальных адресов к физическим может осуществляться двумя способами. В первом случае замену виртуальных адресов на физические делает специальная системная программа - перемещающий загрузчик. Перемещающий загрузчик на основании имеющихся у него исходных данных о начальном адресе физической памяти, в которую предстоит загружать программу, и информации, предоставленной транслятором об адресно-зависимых константах программы, выполняет загрузку программы, совмещая ее с заменой виртуальных адресов физическими.
Все методы управления памятью могут быть разделены на два класса: методы, которые используют перемещение процессов между оперативной памятью и диском, и методы, которые не делают этого.

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

Системы с однопользовательским режимом. Система запускает одну задачу и ждет ее полного завершения.

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

Системы с многозадачным режимом. Переключение происходит по истечении некоторого кванта времени. Многозадачный режим примени в интерактивных системах и системах реального времени.

Три уровня планирования

Планирование верхнего уровня – это планирование при поступлении в систему, планирование стадии «оформления» процесса и его допуска его в систему.

Планирование промежуточного уровня – это планирование при переводе процесса из очереди ожидающих ресурсы в очередь готовых к помещению на процессор.

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

Пять основных целей планирования

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

Завершение максимального количества процессов в единицу времени. Эта цель особенно актуальна для пакетных систем

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

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

Постепенное снижение работоспособности системы.

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

- статические (не меняющиеся с момента поступления процесса в систему) и динамические

Присваемые автоматически (system defined и назначенные извне (user defined);

Купленные (например, в 70 годах 20 века в американских вычислительных центрах за назначение высокого приоритета платили деньги) и заслуженные

- Рациональные (назначенные из разумных соображений) и случайные (random)

Алгоритмы планирования
Перечислим основные алгоритмы планирования, ориентированные на пакетные операционные системы.

Первый, пришедший в очередь процесс, обслуживается первым (First Comes, First Served - FCFS). Процессы получают процессор в порядке их поступления в очередь готовых процессов. Получив процессор, они выполняются на нем до своего полного завершения.

Кратчайший процесс обслуживается первым (Shortest Job First - SJF). На процессор первым поступает процесс с минимальным оценочным временем исполнения. Процессы исполняются до полного завершения. Процессы исполняются до полного завершения. Заметим, что в большинстве случаев невозможно предсказать оценочное время завершения. Возможным вариантом решения является сохранение истории и анализ косвенных признаков (число обращений к внешним устройствам).

Первым обслуживается процесс с наименьшим остаточным временем (Shortest Rest Time - SRT). Это случай дополнения предыдущего алгоритма квантования времени
Два следующие алгоритма планирования ориентированы на интерактивные операционные системы

Циклическое (круговое обслуживание) (Round Robin - RR). Каждый процесс находится на процессоре ограниченный квант времени, по истечении которого становится в конец очереди. Разновидность кругового обслуживания – круговорот со смещением, при котором квант времени зависит от внешнего приоритета процесса

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

Алгоритмы планирования процессов

Планирование процессов включает в себя решение следующих задач:

определение момента времени для смены выполняемого процесса;

выбор процесса на выполнение из очереди готовых процессов;

переключение контекстов "старого" и "нового" процессов.

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

 








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



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