Понятие и эволюция операционных систем компьютеров. Реферат: Эволюция операционных систем. Разделение времени и многозадачность


Всероссийский Заочный Финансово – Экономический Институт

Факультет: финансово – кредитный

Специальность: финансы и кредит группа вечерняя

Курсовая работа

По дисциплине «Информатика»

На тему «Назначение, классификация и эволюция операционных систем»

Москва – 2008г.

Введение
1 Назначение операционных систем 5

2 Перечислим основные функции операционных систем 9

2.2 Обслуживание всех операций ввода-вывода 9

3 Эволюция и классификация ОС
Заключение 2
Список использованной литературы 22

Введение

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

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

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

1 Назначение операционных систем

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

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

Программирование операций ввода-вывода относится к одной из самых трудоемких областей создания программного обеспечения. Здесь речь идет не об использовании операторов типа READ или WRITE в языках высокого уровня. Речь идет о необходимости создать подпрограмму в машинном виде, уже готовую к выполнению на компьютере, а не написанную с помощью некоторой системы программирования (систем программирования тогда еще не было), подпрограмму, вместо обычных вычислений управляющую тем устройством, которое должно участвовать в операциях ввода исходных данных или выводов результатов. При наличии такой подпрограммы программист может обращаться к ней столько раз, сколько операций ввода-вывода с этим устройством ему требуется. Для выполнения этой работы программисту недостаточно хорошо знать архитектуру вычислительного комплекса и уметь создавать программы на языке ассемблера. Он должен отлично знать и интерфейс, с помощью которого устройство подключено к центральной части компьютера, и алгоритм функционирования устройства управления устройства ввода-вывода.

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

В 50-е годы взаимодействие пользователей с вычислительным комплексом было совершенно иным, чем ныне. Программист-кодер (от англ. coder – кодировщик) – специально подготовленный специалист, знающий архитектуру компьютера и язык(и) программирования, - по заказу составлял текст программы, часто по уже готовому алгоритму, разработанному программистом-алгоритмистом. Текст этой программы затем отдавался оператору, который набирал его на специальных устройствах и переносил на соответствующие носители. Чаще всего в качестве носителей использовались перфокарты или перфолента. Далее колода с перфокартами передавалась в вычислительный зал, где для вычислений по этой программе требовать следующие действия:

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

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

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

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

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

2 Перечислим основные функции операционных систем

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

Распределение памяти, а в большинстве современных систем и организация виртуальной памяти.

Запуск программы (передача ей управления, в результате чего процессор исполняет программу).

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

2.2 Обслуживание всех операций ввода-вывода

Обеспечение работы систем управлений файлами (СУФ) и/или систем управления базами данных (СУБД), что позволяет резко увеличить эффективность всего программного обеспечения.

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

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

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

Организация механизмов обмена сообщениями и данными между выполняющимися программами.

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

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

Удовлетворение жестким ограничениям на время ответа в режиме реального времени (характерно для ОС реального времени).

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

Предоставление услуг на случай частичного сбоя системы.

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

3 Эволюция и классификация ОС

Эволюция ОС во многом обусловлена совершенствование аппаратной базы ЭВМ.

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

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

Переход от отдельных полупроводниковых элементов типа транзисторов к интегральным микросхемам сопровождался созданием семейств программно-совместимых машин, например, семейства IBM/360, EC ЭВМ. ОС этих компьютеров ориентировались на обслуживание вычислительных систем с разнообразными периферийными устройствами и в различных областях деятельности. Особенностью таких ОС стало мультипрограммирование – способ организации вычислительного процесса, при котором на одном процессоре попеременно выполняются несколько приложений. Например, пока одно приложение осуществляет операции ввода-вывода, процессор выполняет вычислительные операции другого. Образовался новый тип ОС – системы разделения времени, которая позволяет создать для каждого пользователя иллюзию единоличной работы с компьютером. Появление больших (БИС) и сверхбольших интегральных схем (СБИС) обеспечило широкое распространение компьютеров и их использование неспециалистами в области программирования. Это потребовало разработки дружественного, интуитивно понятного программного интерфейса. Развитие средств коммуникаций обусловило развитие сетевых ОС.

К современным ОС предъявляются следующие требования:

Совместимости – ОС должна включать средства для выполнения приложений, подготовленных для других ОС;

Переносимости – обеспечение возможности переноса ОС с одной аппаратурной платформы на другую;

Надежности и отказоустойчивости – предполагает защиту ОС от внутренних и внешних ошибок, сбоев и отказов;

Безопасности – ОС должна содержать средства защиты ресурсов одних пользователей от других;

Расширяемости – ОС должна обеспечивать удобства внесения последующих изменений и дополнений;

Производительности – система должна обладать достаточным быстродействием.

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

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

По числу одновременно выполняемых задач выделяют ОС:

Однозадачные ОС (MS-DOS, ранние версии PS DOS);

Многозадачные (OS/2, UNIX, Windows).

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

Невытесняющая многозадачность (NetWare, Windows 3. x и 9. х);

Вытесняющая многозадачность (Windows NT, OS/2, UNIX).

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

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

По числу одновременно работающих пользователей выделяют ОС:

Однопользовательские (MS-DOS, Windows 3. x, ранние версии OS/2);

Многопользовательские (UNIX, Windows NT).

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

Многопроцессорная обработка предполагает поддержку работы нескольких процессоров и приветствует в ОС Solaris 2. x фирмы Sun, OS/2 фирмы IBM, Windows NT фирмы Microsoft, NetWare 4.1. фирмы Novell и др.

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

Очевидно, что ОС персонального компьютера менее сложна, чем ОС мэйнфреймов и суперЭВМ. Отличием сетевой ОС от локальной являются средства передачи данных между компьютерами по линиям связи и реализации протоколов передачи данных, например IP, IPX и др.

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

Динамическое перераспределение ресурсов ПЭВМ между несколькими задачами (способ коллективного пользования) обеспечивает либо сокращение суммарного времени решения нескольких задач, либо уменьшение времени начала обработки задачи. И то и другое при одном «обслуживающем приборе», например процессоре или принтере, достигается за счет увеличения времени решения одной (каждой) задачи. Порядок прохождения задач в машине определяет режимы реализации способа коллективного пользования: пакетной обработки и разделения времени. Пакетная обработка предполагает решение нескольких задач примерно в том же режиме, в каком работает преподаватель во время устного экзамена – его внимание занимает один из студентов. По завершении опроса внимание переключается на следующего (полагаем, что обслуживание студентов и есть решение задачи).

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

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

При конечном быстродействии обслуживающего прибора поступающие заявки не могут быть выполнены сразу, а становятся в очередь. Процесс выбора заявки из множества ожидающих обслуживания называется диспетчеризацией, а правило диспетчеризации – дисциплиной обслуживания. Дисциплин обслуживания много, например «в порядке поступления» (FIFO – First Input First Output), «в обратном порядке» (LIFO – Last Input First Output) и др. Для сокращения времени ожидания (времени пребывания в очереди) отдельным заявкам предоставляется преимущественное право на обслуживание, называемое приоритетом, который характеризуется целым положительным числом. Наивысший приоритет назначается ОС.

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

Системных функций бывает много, они определяют те возможности, которые операционная система предоставляет выполняющимся под ее управлением приложениям. Такого рода системные запросы (вызовы системных операций, или функций) либо явно прописываются в тексте программы программистами, либо подставляются автоматически самой системой программирования на этапе трансляции исходного текста разрабатываемой программы. Каждая операционная система имеет свое множество системных функций; они вызываются соответствующим образом, по принятым в системе правилам. Совокупность системных вызовов и правил, по которым их следует использовать, как раз и определяет интерфейс прикладного программирования (API). Очевидно, что программа, созданная для работы в некоторой операционной системе, скорее всего не будут работать в другой операционной системе, поскольку API у этих операционных систем различаются. Стараясь преодолеть это ограничение, разработчики операционных систем стали создавать так называемое программные среды. Программную (системную) среду следует понимать как некоторое системное программное окружение, позволяющее выполнить все системные запросы от прикладной программы. Та системная программная среда, которая непосредственно образуется кодом операционной системы, называется основной, естественной, или нативной (native). Помимо основной операционной среды в операционной системе могут быть организованы (путем эмуляции иной операционной среды) дополнительные программные среды. Если в операционной системе организована работа с различными операционными средами, то в такой системе можно выполнять программы, созданные не только для данной, но и для других операционных систем. Можно сказать, что программы создаются для работы в некоторой заданной операционной среде. Например, можно создать программу для работы в среде DOS. Если такая программа все функции, связанные с операциями с операциями ввода-вывода и с запросами памяти, выполняет не сама, а за счет обращения к системным функциям DOS, то она будет (в абсолютном большинстве случаев) успешно выполняться и в MS DOS, и в PS DOS, и в Windows 9x, и в Windows 2000, и в OS/2, и даже в Linux.

Итак, параллельное существование терминов «операционная система» и «операционная среда» вызвано тем, что операционная система может поддерживать несколько операционных сред. Почти все современные 32-разрядные операционные системы, созданные для персональных компьютеров, поддерживают по нескольку операционных сред. Так операционная система OS/2 Warp, которая в свое время была одной из лучших в этом отношении, может выполнять следующие программы:

Основные программы, созданные с учетом соответствующего «родного» 32-разрядного программного интерфейса этой операционной системы;

16-разрядные программы, созданные для систем OS/2 первого поколения;

16-разрядные приложения, разработанные для выполнения в операционной системе MS DOS или PS DOS;

16-разрядные приложения, созданные для операционной среды Windows 3. x;

Саму оперативную оболочку Windows 3. x и уже в ней – созданные для нее программы.

А операционная система Windows XP позволяет выполнять помимо основных приложений, созданных с использованием Win32API, 16-разрядные приложения для Windows 3. x, 16-разрядные DOS-приложения, 16-разрядные приложения для первой версии OS/2.

Операционная среда может включать несколько интерфейсов: пользовательские и программные. Если говорить о пользовательских, то например, система Linux имеет для пользователя как интерфейсы командной строки (можно использовать различные «оболочки» - shell), наподобие Norton Commander, например X-Window с различными менеджерами окон - KDE, Gnome и др. Если же говорить о программных интерфейсах, то в тех же операционных системах с общим названием Linux программы могут обращаться как к операционной системе за соответствующими сервисами и функциями, так и к графической подсистеме (если она используется). С точки зрения архитектуры процессора (и персонального компьютера в целом) двоичная программа, созданная для работы в среде Linux, использует те же команды и форматы данных, что и программа, созданная для работы в среде Windows NT. Однако в первом случае мы имеем обращение к одной операционной среде, а во втором – к другой. И программа, созданная непосредственно для Windows, не будет выполняться в Linux; если в ОС Linux организовать полноценную операционную среду Windows, то наша Windows-программа может быть выполнена. В общем, операционная среда – это то системное программное окружение, в котором могут выполняться программы, созданные по правилам работы этой среды.

Заключение

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

В настоящий момент около 90% персональных компьютеров используют ОС Windows, которая имеет ряд достоинств и вытеснила конкурентов из этого сегмента рынка. Более широкий класс ОС ориентирован для использования на серверах. К этому классу ОС относят: семейство Unix, разработки фирмы Microsoft, сетевые продукты Novell и корпорации IBM.

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

Список использованной литературы

Гордеев А.В. Операционные системы: Учебник для вузов.2-е изд. – СПб.: Питер, 2005.

Основы информатики: Учеб. пособие / А.Н. Морозевич, Н.Н. Говядинова, В.Г. Левашенко и др.; Под ред.А.Н. Морозевича. – 2-е изд., испр. – Мн.: Новое знание, 2003.

Евсюков В.В. Экономическая информатика: Учеб. пособие – Тула: Издательство «Граф и К», 2003.

Информатика в экономике: Учеб. пособие /Под ред. проф. Б.Е. Одинцова, проф.А.Н. Романова. – М.: Вузовский учебник, 2008.


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

В основном эволюцию развития ОС разделяют на 5 поколений:

Первое поколение (1940 – 50). Только появились ламповые вычислительные устройства. Разработан принцип программы. ОС отсутствуют, вся работа по управлению ведется разработчиками.

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

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

Четвертое поколение (1970-80) . ОС были многорежимными системами, обеспечивающими пакетную обработку, разделение времени, режим реального времени и мультипроцессорный режим. Появляется вытесняющая многозадачность и приоритетное планирование, а также выделение квот на использование ограниченных ресурсов компьютеров. Реализуется механизм виртуальной памяти и развитых файловых систем.

Пятое поколение (с середины 1980-х гг. по н.в.) . ОС используют возможности сетевых технологий, в том числе технологии клиент – сервер, интерфейс становится графическим и дружественным.

Также существует 5 основных подходов к построению ОС


  • Монолитное ядро

  • Микроядернаяархитектура

  • Многоуровневая система

  • Виртуальная машина

  • Смешанная система

  1. Архитектура операционной системы. Классификация операционных систем. Эффективность и требования, предъявляемые к ОС.
Рассмотрим существующие архитектуры ОС.

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

Многоуровневые системы. Всю вычислительную системуможно разбить на ряд более мелких уровней с хорошо определенными связями между ними, так чтобы объекты уровня N могли вызывать только объекты уровня N-1. Нижним уровнем в таких системах обычно является hardware, верхним уровнем – интерфейс пользователя. Чем ниже уровень, тем более привилегированные команды и действия может выполнять модуль, находящийся на этом уровне.

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

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

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

У ОС сформировалась своя классификация:


  • по назначению (общего, специального),

  • по режиму обработки задач (однозадачные, мультипрограммные),

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

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

  • Эффективность.

  • Надежность и отказоустойчивость.

  • Безопасность (защищенность).

  • Предсказуемость.

  • Расширяемость.

  • Переносимость.

  • Совместимость.

  • Удобство.

  • Масштабируемость.

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

Процессы могут находиться в пяти основных состояниях:


  • рождение,

  • готовность,

  • исполнение,

  • ожидание,

  • закончил исполнение
В операционной системе процессы представляются определенной структурой данных, которая содержит следующую информацию (для разных ОС различается):

  • состояние, в котором находится процесс;

  • адрес команды, которая должна быть выполнена для него следующей;

  • содержимое регистров процессора;

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

  • учетные данные;

  • сведения об устройствах ввода-вывода, связанных с процессом.
Из состояния в состояние процесс переводится операционной системой в результате выполнения над ним операций. Операционная система может выполнять над процессами следующие пары операций:

  • создание процесса - завершение процесса,

  • приостановка процесса - запуск процесса,

  • блокирование процесса - разблокирование процесса,

  • изменение приоритета процесса.


  1. Уровни планирования процессов в операционных системах. Основные цели и критерии планирования и параметры, на которых оно основывается. Алгоритмы планирования.
Планирование – это работа по определению того, в какой момент времени прервать выполнение одного процесса и какому процессу предоставить возможность выполняться.

При построении алгоритмов планирования выделяют три различных уровня:


  • долгосрочное;

  • краткосрочное;

  • среднесрочное.
К числу целей можно отнести следующие:

  • Справедливость.

  • Эффективность.

  • Сокращение полного времени выполнения.

  • Сокращение времени ожидания.

  • Сокращение времени отклика.
Критерии планирования:

  • Предсказуемость.

  • Минимальные накладные расходы.

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

  • Масштабируемость
Параметры планирования:

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

  • Динамические – значения ресурсов системы на текущий момент.
Алгоритмы планирования

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

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

ShortestJobFirst. Если выбирать процесс не по порядку (как в FCFS и RR ), а основываясь на его минимальном времени непрерывного использования процессора, то это позволит повысить производительность алгоритма планирования использования процессора. Описанный алгоритм получил название «кратчайшая работа первой» (англ. ShortestJobFirst , SJF ).

Основную сложность при реализации алгоритма SJF представляет невозможность точно знать в каждом случае время исполнения очередного процесса.


  1. Кооперация процессов и основные аспекты ее логической организации (санкционированное взаимодействие процессов)
Для нормального функционирования процессов операционная система старается максимально обособить их друг от друга. Тем не менее существуют причины для их взаимодействия:

  • Повышение скорости работы.

  • Совместное использование данных.

  • Модульная конструкция какой-либо системы.

  • Удобства работы пользователя
Категории средств обмена информацией

  • Сигнальные.

  • Канальные.

  • Разделяемая память.
Логическая организация механизма передачи информации

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

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

Особенности передачи информации с помощью линий связи

Буферизация


  • Буфер нулевой емкости или отсутствует.

  • Буфер ограниченной емкости.

  • Буфер неограниченной емкости.
Поток ввода/вывода и сообщения

  • Поток ввода-вывода. Операции передачи/приема не интересуются содежимим данных

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

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


  1. Алгоритмы синхронизации (алгоритмы корректной организации взаимодействия процессов).
Критическая секция

Критическая секция – часть программы, результат выполнения которой может непредсказуемо меняться, если переменные, относящиеся к ней, изменяются другими потоками в то время, когда выполнение этой части еще не завершено. В примере критическая секция – файл “заказов”, являющийся разделяемым ресурсом для процессов R и S.

Алгоритм Деккера - первое известное корректное решение проблемы взаимного исключения.

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

Процессы объявляют о намерении войти в критическую секцию; это проверяется внешним циклом «while». Если другой процесс не заявил о таком намерении, в критическую секцию можно безопасно войти (вне зависимости от того, чья сейчас очередь). Взаимное исключение всё равно будет гарантировано, так как ни один из процессов не может войти в критическую секцию до установки этого флага (подразумевается, что, по крайней мере, один процесс войдёт в цикл «while»). Это также гарантирует продвижение, так как не будет ожидания процесса, оставившего «намерение» войти в критическую секцию. В ином случае, если переменная другого процесса была установлена, входят в цикл «while» и переменная turn будет показывать, кому разрешено войти в критическую секцию. Процесс, чья очередь не наступила, оставляет намерение войти в критическую секцию до тех пор, пока не придёт его очередь (внутренний цикл «while»). Процесс, чья очередь пришла, выйдет из цикла «while» и войдёт в критическую секцию.

Не требует специальных Test-and-set инструкций, по этому легко переносим на разные языки программирования и архитектуры компьютеров

Действует только для двух процессов

Алгоритм Петерсона - программный алгоритм взаимного исключения потоков исполнения кода.

Перед тем как начать исполнение критической секции кода (то есть кода, обращающегося к защищаемым совместно используемым ресурсам), поток должен вызвать специальную процедуру (назовем ее EnterRegion) со своим номером в качестве параметра. Она должна организовать ожидание потока своей очереди входа в критическую секцию. После исполнения критической секции и выхода из нее, поток вызывает другую процедуру (назовем ее LeaveRegion), после чего уже другие потоки смогут войти в критическую область. Если оба процесса подошли к прологу практически одновременно, то они оба объявят о своей готовности и предложат выполняться друг другу. При этом одно из предложений всегда следует после другого. Тем самым работу в критическом участке продолжит процесс, которому было сделано последнее предложение.

Как и алгоритм Деккера, действует только для 2 процессов

Более простая реализация, чем у алгоритма Деккера

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

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


  1. Специальные механизмы синхронизации – семафоры Дейкстры, мониторы Хора, очереди сообщений.
Семафоры

Для устранения этого недостатка во многих ОС предусматриваются специальные системные вызовы (аппарат для работы с критическими секциями.

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

Обобщающее средство синхронизации процессов предложил Дейкстра, который ввел новые примитивы, обозначаемые V (“открытие”) и P (“закрытие”), оперирующие над целыми неотрицательными переменными, называемыми семафорами.

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

Смысл P(S) заключается в проверке текущего значения семафора S, и если S>0, то осуществляется переход к следующей за примитивом операции, иначе процесс переходит в состояние ожидания.

Процесс блокируется; S=S-1;

Операция V(S) связана с увеличением значения S на 1 и переводом одного или нескольких процессов в состояние готовности к исполнению процессором.

В простом случае, когда семафор работает в режиме 2-х состояний (S>0 и S=0), ео алгоритм работы полностью совпадает с алгоритмом работs мьютекса, а S выполняет роль блокирующей переменной.

“+”: пассивное ожидание (постановка в очередь и автоматическая выдача ресурсов)


  • возможность управления группой однородных ресурсов
“-”: не указывают непосредственно на критический ресурс

  • некорректное использование операций может привести к нарушению работоспособности (например, переставив местами операции P(e) и P(b) в функции Writer()).
Мониторы

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

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

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

Доступ к мониторам в каждый момент времени имеет только один процесс.

Для организации не только взаимоисключений, но и очередности процессов, подобно семафорам f(full) и e(empty), было введено понятие условных переменных, над которыми можно совершать две операции wait и signal, отчасти похожие на операции P и V над семафорами.

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

Когда ожидаемое событие происходит, другой процесс внутри функции совершает операцию signal над той же самой условной переменной. Это приводит к пробуждению ранее заблокированного процесса, и он становится активным.

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

Требуются специальные языки программирования и компиляторы (встречаются в языках, “параллельный Евклид”,”параллельный Паскаль”,Java).

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

Очереди сообщений

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

Очередь сообщений представляет возможность использовать несколько дисциплин обработки сообщений (FIFO, LIFO, приоритетный доступ, произвольный доступ).

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

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

Основные функции управления очередью:


  • Создание новой очереди

  • Открытие существующей очереди

  • Чтение и удаление сообщений из очереди

  • Чтение без последующего удаления

  • Добавление сообщения в очередь

  • Завершение использование очереди

  • Удаление из очереди всех сообщений

  • Определение числа элементов в очереди

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

страница 1
  • II. Основные принципы и правила служебного поведения государственных гражданских служащих Федеральной налоговой службы
  • II. Основные цели и задачи Программы, срок и этапы ее реализации, целевые индикаторы и показатели
  • II. Основные этапы развития физики Становление физики (до 17 в.).
  • III.2.1) Понятие преступления, его основные характеристики.
  • История развития операционных систем насчитывает уже более половины века и неразрывно связана с техническим уровнем развития электроники, материаловедения, математического аппарата, всех тех дисциплин науки и техники, без которых немыслимо построить вычислительный комплекс. Поэтому этапы развития операционных систем тесно связаны с определенными этапами научно-технического прогресса в данной области.

    Первый период (1945 – 1955 гг.)

    Первые электронные вычислительные машины появились после второй мировой войны. В 40-х были созданы первые вычислительные устройства, основанные на лампах, и появился принцип программы, хранящейся в памяти машины (Говард Айкен из Гарвардского университета, Джон фон Нейман из Института углубленного изучения в Принстоне и другие, июнь 1945 г.). Вычислительные машины были громоздкими, занимающими несколько комнат. Их конструкция предполагала использование нескольких тысяч электронных ламп. Такой же громоздкой была и работа с вычислительной машиной. Одна группа людей одновременно выполняла их обслуживание, эксплуатацию и программирование. Такие машины вполне можно отнести к категории экспериментальных, и выполняемые на них вычисления, скорее, носили пробный (экспериментальный) характер. Программирование выполнялось исключительно на машинном языке, т.е. последовательным вводом с клавишного пульта кодов команд и данных, и ни о каком системном или прикладным программным обеспечении речи не шло. Программа загружалась в память машины с помощью коммутационной панели либо с колоды перфокарт. Существующие устройства ввода/вывода не были стандартизированы и представляли собой примитивные пульты с набором переключателей, кнопок и индикаторов. Всеми ресурсами вычислительной машины распоряжался обслуживающий ее персонал, который вручную запускал программу на исполнение, выделял ей необходимый объём памяти и визуально контролировал весь процесс вычислений. Вычислительная система выполняла одновременно только одну операцию (ввод-вывод или собственно вычисления). Отладка программ велась с пульта управления с помощью изучения состояния памяти и регистров машины. Однако уже в этот период времени были созданы библиотеки математических и служебных программ, к которым программист мог обращаться при выполнении основной программы.



    В конце этого периода появляется первое системное программное обеспечение: в 1951–1952 гг. возникают прообразы первых компиляторов с символических языков (Fortran и др.), а в 1954 г. Nat Rochester разрабатывает Ассемблер для IBM-701.

    Существенная часть времени уходила на подготовку запуска программы, а сами программы выполнялись строго последовательно. Такой режим работы называется последовательной обработкой данных. В целом первый период характеризуется крайне высокой стоимостью вычислительных систем, их малым количеством и низкой эффективностью использования. Так, ЭВМ UNIVAC I, разработанная в марте 1951 года, содержала 5000 ламп и могла работать со скоростью 1000 операций в секунду. Стоимость такой машины составляла 159000 долларов США.

    Второй период (1955 г. – начало 60-х).

    В середине 50-х годов ХХ века начался новый период в развитии вычислительной техники. На смену реле и лампам пришли полупроводниковые транзисторы. Это позволило увеличить производительность процессоров, резко возрос объём оперативной и внешней памяти, появились принципиально новые устройства сопряжения. В целом вычислительная система стала более сложной, что изменило отношение к ней со стороны операторов. Возникла необходимость в автоматизации вычислительных работ и, как следствие, упрощение самого процесса программирования. В эти годы появились первые алгоритмические языки и сопутствующее им специальное программное обеспечение – трансляторы. Среди языков того времени наибольшее распространение получили АЛГОЛ и Фортран.



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

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

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

    Компьютеры второго поколения использовались главным образом для научных и технических расчетов, таких, например, как решение дифференциальных уравнений. Программирование велось на Фортране или Ассемблере, а типичными операционными системами служили FMS (Fortran Monitor System) и IBSYS (операционная система компании IBM для компьютера IBM 7094).

    Третий период (начало 60-х – 1980 г.).

    Появление в 1965-1975 годах вычислительных машин на базе интегральных схем открыло новую страницу в развитии вычислительной техники. Новые машины имели сложную развитую архитектуру, наиболее приближённую к архитектуре современных компьютеров. К этому времени полностью определились с основным периферийным оборудованием. Типичными представителями таких машин являются серии ЭВМ IBM/360 или их отечественные аналоги – ЭВМ семейства ЕС. Так как машины этой серии имели одинаковую структуру и набор команд, то программы, написанные для одного компьютера, могли работать в принципе и на всех других. Еще одним преимуществом серии компьютеров IBM/360 было то, что данные ЭВМ могли использоваться как в научных целях (числовые вычисления для науки и техники), так и для коммерческого использования (сортировка и печать данных). Это предопределило успех фирмы IBM, которая заявила себя мировым лидером на рынке вычислительных машин. Идею семейства совместимых компьютеров стали принимать и другие производители. Операционная система OS/360 была предназначена для работы на всех компьютерах данного семейства машин независимо от того, какое предназначение было у используемого компьютера (расчет прогноза погоды или обычное копирование информации с перфокарт на магнитные ленты).

    Несмотря на то, что операционная система OS/360 была очень громоздкой и сложной (миллионы строк на ассемблере), именно в этот период были реализованы практически все основные механизмы, встраиваемые в современные операционные системы: многозадачность, поддержка многопользовательского режима, виртуальная память, файловая система и т.п. Из направления прикладной математики, связанного с программированием, выделяется отдельная отрасль - системное программирование. В условиях резко возросших вычислительных мощностей выполнение только одного задания в каждый момент времени оказалось малоэффективным. Решение было найдено в мультипрограммировании (многозадачности) – способе организации вычислительного процесса, при котором в оперативную память загружается несколько задач одновременно, но попеременно выполняющихся на одном процессоре. Мультипрограммирование было реализовано в двух вариантах: в хорошо зарекомендовавшей себя системе пакетной обработки и в системе разделения времени (разработчик – Массачусетсский технологический институт, IBM 7094), благодаря которой у каждого пользователя появился свой диалоговый терминал.

    Использование интегральных схем позволило значительно уменьшить размеры вычислительных машин. Такие ЭВМ стали называть мини-компьютеры (PDP-1, корпорация DEC, 1961 год), и, хотя стоимость их составляла порядка 120 000 долларов США, они были коммерчески успешными и имели хороший спрос. Их стоимость составляла 5% от стоимости ЭВМ IBM 7094, однако, некоторые операции компьютеры серии PDP выполняли с такой же скоростью.

    Именно для компьютеров серии PDP-7 специалист фирмы Bell Labs Кен Томпсон разработал однопользовательскую версию операционной системы MULTICS, которая позже развилась в операционную систему UNIX, у которой затем появились разновидности System V (корпорация AT&T), BSD (Калифорнийский институт Беркли) и другие. Для операционной системы UNIX Кен Томпсон и Денис Ритчи разработали язык C, который до сих пор является лидирующим в области системного программирования. В 1974 году они опубликовали статью “The UNIX Timesharing System” в журнале Commun. of the ACM, благодаря которой система UNIX стала популярной.

    Здравствуйте, Хабралюди!
    Не многие знают и не многие помнят, с чего началась история компьютерного софта - операционные системы. Именно эту тему и выбрал школьник для своей МАН-овской работы (МАН - малая академия наук). Звучит оно так - эволюция операционных систем. Сразу скажу, что более 90% из Тырнета, но откопано далеко не в первых 2-х страницах поиска в Гугле.

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

    Современный компьютер состоит из одного или нескольких процессоров, оперативной памяти, дисков, принтера, клавиатуры, мыши, монитора, сетевых интерфейсов и других различных устройств ввода-вывода. В итоге получается довольно сложная система. Если каждому программисту, который создает приложение, нужно будет разбираться во всех тонкостях работы всех этих устройств, то он не напишет ни строки кода. Более того, управление всеми этими компонентами и их оптимальное использование представляет собой очень непростую задачу. По этой причине компьютеры оснащены специальным уровнем программного обеспечения, который называется операционной системой, в задачу которого входит управление пользовательскими программами, а также управление всеми ресурсами железа.
    Первая ОС
    GM-НАА была первой операционной системой для компьютеров. Она была создана в 1955 году Робертом Патриком с General Motors и Оуэном Моком с North American Aviation. Она была основана на системном мониторе и работала на больших машинах. Основная функция GM-НАА - автоматическое выполнение новой программы, когда старая программа завершилась.
    Возникновение Плато
    В 1972 году была разработана система PLATO, которая имела ряд инноваций, таких как оранжевая плазменная панель. Она включала в себя память и функции растровой графики. Плазменный дисплей PLATO поддерживал возможность быстрой отрисовки векторных линий.Многие инноваций, ввела ОС PLATO, стали в дальнейшем фундаментом для разработки других компьютерных систем. Например, некоторые технологии были заимствованы и усовершенствованные компанией Apple.
    Возникновение UNIX
    Первая система UNIX была разработана в 1969 году в подразделении Bell Labs компании AT & T. С тех пор было создано большое количество различных UNIX-систем.Некоторые отличительные признаки UNIX-систем включают в себя:
    1) Использование текстовых файлов для настройки и управления системой;
    2) Широкое применение утилит, запускаемых в командной строке;
    3) Взаимодействие с пользователем посредством виртуального устройства - терминала;
    4) Представление физических и виртуальных устройств как файлов.
    Идеи, заложенные в основу UNIX, оказали огромное влияние на развитие компьютерных операционных систем. В настоящее время UNIX-системы признаны одними из самых исторически важных ОС. Эта операционная система популяризирует идею иерархической файловой системы с произвольной глубиной вложенности.
    Linux
    Linux была создана в 1991 году Линусом Торвальдсом, финским студентом. Тот факт, что Линус сразу после создания ОС выложил исходный код своей ОС в Интернет, был решающим в дальнейшей судьбе Linux. Хотя в 1991 году Интернет еще не был так широко распространен, как в наши дни, зато пользовались им в основном люди, которые имеют достаточную техническую подготовку. И уже с самого начала Торвальдс получил несколько заинтересованных отзывов с предложением помочь в разработке, на что Линус ответил согласием, и уже через полгода к разработке присоединились сотни, потом сотни тысяч добровольных помощников.В силу того, что исходные коды Linux распространяются свободно и общедоступно, к развитию системы с самого начала подключилось большое число независимых разработчиков.
    MS-DOS
    MS-DOS - коммерческая операционная система фирмы Microsoft для IBM PC-совместимых персональных компьютеров. MS-DOS работает в режиме реального времени процессора x86. Обеспечивается единовременное выполнение только одной программы. MS-DOS была спроектирована так, чтобы пользователи могли легко заменить встроенный интерпретатор посторонними интерпретаторами командной строки, например 4DOS.
    Windows, куда ж без нее

    В 1985 году появляется первая версия Windows, которая не была оценена пользователями и ее проигнорировали. Возможно потому, что она всего лишь дополняла возможности DOS, будучи фактически графической оболочкой и надстройкой над комплектом MS-DOS.
    Со временем, система Windows все более совершенствовалась, появилась полноценная графика, лишила пользователей от видения системных файлов, был преодолен барьер многозадачности, что позволяет запустить 2-3 программы.В 1992 году с момента возникновения Windows 3.1, по мнению многих пользователей и профессионалов, новые возможности ОС были оценены по достоинству. С версии Windos3.1 ОС получила начало 32-разрядная доступность к жесткому диску.
    В 1998 году, 25 июня, новая OC Windows 98 вышла на рынок потребителей. Преимуществом, по сравнению с предыдущими образцами, были: полная интеграция с Интернетом, более совершенное управление интерфейсом, новый процессор Pentium II, графический портал AGP, шина USB.
    Параллельно с предыдущими, началась разработка системы Windows XP, где окончательно решено отказаться от 16-разрядности в ядре системы, и перейти на 32-разрядную, с новой архитектурой и строением. Из преимуществ новой системы необходимо отметить следующее: это первая из систем с полностью настраиваемым интерфейсом, внедрением интеллектуального меню «Пуск». Также оптимально переработана панель - управляющая ПК.
    Появление после Widows XP новой системы Windows Vista считают самым неудачным вариантом после всех предыдущих выпусков ОС. Ее представляют, как «генеральную репетицию» перед Windows 7. Казалось бы, неплохие качества новой системы должны были заинтересовать пользователей. Такие новшевства как встроенный поиск, трехмерность интерфейса Aero с красивыми заставками, хорошую защиту - ничего не помогло, все выполнено крайне неудачно, по мнению пользователей.
    Windows 7 мало чем кроме нового интерфейса отменялась от Vista. Вариантов Windows 7 выпущено 5: Starter Edition, домашняя базовая, домашняя расширенная, профессиональная, максимальная.
    Windows 8 в отличие от своих предшественников - Windows 7 и Windows XP использует новый интерфейс под названием Modern(Metro). Также в системе присутствует и рабочий стол, но уже в виде отдельного приложения.

    Мобильные ОС
    Сейчас все больший интерес пользователей привлекают смартфоны на различных операционных системах: Windows Phone, Boda, IOS. Самыми популярными из них являются IOS и AndroidOS.
    IOS
    IOS - мобильная операционная система, созданная на ядре Linux и разрабатываемой и выпускаемой американской компанией Apple. Была выпущена в 2007 году изначально - для iPhone и iPod Touch. Сейчас же она установлена ​​на всех устройствах Apple. Такие нововведения как мобильный браузер Safari, визуальная голосовая почта, виртуальная клавиатура сделали IOS одной из наиболее популярных систем для смартфонов.
    Андроид
    Андроид - система, которая наиболее динамично развивается, разработанна для смартфонов(изначально для коммунникаторов(Айфон и его тачскрин изменили мнение Гугла)). Она является упрощенным вариантом аналогичных систем Windows и Linux, используемых на стационарных ПК и ноутбуках, ориентированной для тачскрина. Платформа Андроид состоит из операционной системы, интерфейса, связывающего ПО и мощных приложений.
    Google Chrome OS (облачная ОС)
    Chrome OS позиционируется как операционная система для различных устройств - от маленьких нетбуков до полноразмерных настольных систем и поддерживает x86-и ARM-архитектуры процессоров.
    Новая ОС Google Chrome имеет открытый исходный код, основанный на оптимизированном Linux-ядре и управляется браузером Chrome.Главной особенностью будет доминирование веб-приложений над обычными функциями ОС. Ключевая роль при этом отводится браузеру.
    Стратегия создания нового продукта подразумевает архитектуру, нетребовательную к аппаратным ресурсам персонального компьютера, используемого для выхода в сеть Интернет.
    Все приложения, которые запускает система - веб-сервисы. Фактически, все действия, проходящих в на компьютере, выполняются в Интернете - нет необходимости устанавливать никаких офлайновых приложений. В связи с этим работа в Chrome OS не требует наличия у компьютера мощных ресурсов, ведь все процессы запускаются не на самом компьютере, а на серверах соответствующих служб.
    Предсказания ворожеи
    Операционная система пользователя становится чем-то похожим на веб-браузер, установленной на голое железо. Современный классический интерфейс (разработанный в Xerox PARC и впервые внедрен Apple почти 30 лет назад) отойдет в прошлое. Многие современные составных частей ОС станут просто не нужны, другие уйдут от пользователя и превратятся в сервисы API для программистов. Основным задачей ОС станет предоставление возможности запуска клиентской части облачных сервисов. И преимущества, которыми Microsoft в современном мире ОС, будет значительно уменьшены. Им придется придумывать новые способы привязки к себе пользователей и программистов в новом среде, более конкурентной, в сравнению с нынешней.
    Многое зависит от решений, успехов и неудач крупных софтверных компаний, таких как Microsoft, Google. В отличие от той эволюции софта, которую мы наблюдали в девяностых и двухтысячных, новая эволюция все меньше зависет от производителей железа, и все больше - от производителей конечного ПО для пользователей.

    За криворукость не ругать, если что - поправлять, автора не матюкать.

    Теги: операционные системы, история ит

    Рассматривая эволюцию операционных систем мы будем рассматривать, в первую очередь, историю развития вычислительных систем, потому что компьютерное железо(Hardware) и программное обеспечение (Software) эволюционировали совместно, оказывая взаимное влияние друг на друга.

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

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

    1. Первый период (1945–1955 гг.)

    Ламповые машины. Операционных систем нет

    Мы начнем исследование развития компьютерных комплексов с появления электронных вычислительных систем (опуская историю механических и электромеханических устройств). Первые шаги в области разработки электронных вычислительных машин были предприняты в конце Второй мировой войны. В середине 40-х были созданы первые ламповые вычислительные устройства и появился принцип программы, хранящейся в памяти машины (John Von Neumann, июнь 1945 г.).

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

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

    В конце этого периода появляется первое системное программное обеспечение: в 1951–1952 гг. возникают прообразы первых компиляторов с символических языков (Fortran и др.), а в 1954 г. Nat Rochester разрабатывает Ассемблер для IBM-701.

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

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

    2. Второй период (1955 г.–начало 60-х)

    Компьютеры на основе транзисторов. Пакетные операционные системы

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

    Одновременно наблюдается бурное развитие алгоритмических языков (LISP, COBOL, ALGOL-60, PL-1 и т.д.). Появляются первые настоящие компиляторы, редакторы связей, библиотеки математических и служебных подпрограмм . Упрощается процесс программирования. Пропадает необходимость взваливать на одних и тех же людей весь процесс разработки и использования компьютеров. Именно в этот период происходит разделение персонала на программистов и операторов , специалистов по эксплуатации и разработчиков вычислительных машин.

    Большая электронно-счетная машина БЭСМ-6

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

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

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

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

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

    3. Третий период (начало 60-х – 1980 г.)

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

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

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

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

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

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

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

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

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

    Не менее важна в организации мультипрограммирования роль операционной системы . Она отвечает за следующие операции.

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

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

    Появление электронно-лучевых дисплеев и переосмысление возможностей применения клавиатур поставили на очередь решение этой проблемы.

    Логическим расширением систем мультипрограммирования стали time-sharing системы, или системы разделения времени . В них процессор переключается между задачами не только на время операций ввода-вывода, но и просто по прошествии определенного времени. Эти переключения происходят так часто, что пользователи могут взаимодействовать со своими программами во время их выполнения, то есть интерактивно. В результате появляется возможность одновременной работы нескольких пользователей на одной компьютерной системе. У каждого пользователя для этого должна быть хотя бы одна программа в памяти.

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

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

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

    Первым семейством программно совместимых компьютеров, построенных на интегральных микросхемах , стала серия машин IBM/360 . Разработанное в начале 60-х годов, это семейство значительно превосходило машины второго поколения по критерию цена/производительность. За ним последовала линия компьютеров PDP, несовместимых с линией IBM, и лучшей моделью в ней стала PDP-11.

    Сила «одной семьи» была одновременно и ее слабостью. Широкие возможности этой концепции (наличие всех моделей: от мини-компьютеров до гигантских машин; обилие разнообразной периферии; различное окружение; различные пользователи) порождали сложную и громоздкую операционную систему . Миллионы строчек Ассемблера, написанные тысячами программистов, содержали множество ошибок, что вызывало непрерывный поток публикаций о них и попыток исправления.

    Только в операционной системе OS/360 содержалось более 1000 известных ошибок. Тем не менее идея стандартизации операционных систем была широко внедрена в сознание пользователей и в дальнейшем получила активное развитие.

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

    Персональные компьютеры. Классические, сетевые и распределенные системы

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

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

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

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

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

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

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

    В дальнейшем автономные операционные системы мы будем называть классическими операционными системами .

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

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

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

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

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

    Период Развитие ОС
    до 1955 г. В XIX веке Чарльз Бэбидж предложил идею компьютера. Но технологии того времени не могли обеспечить изготовление деталей точной механики, которые были необходимы для этой машины. И его «аналитическая машина» так и не смогла заработать.В середине 40-х гг. XX в. появились ламповые вычислительные устройства. Это была скорее научно-исследовательская работа в области вычислительной техники, а не использование компьютеров в качестве инструмента решения каких-либо практических задач.

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

    1955 – 1965 гг. Появление новой технической базы – полупроводниковых элементов. Компьютеры второго поколения стали более надежными, теперь они смогли непрерывно работать настолько долго, чтобы на них можно было возложить выполнение действительно практически важных задач. В эти годы появились первые алгоритмические языки , и первые системные программы – компиляторы .

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

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

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

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

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

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

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

    К середине 70-х гг. получили большое распространение миникомпьютеры: Nova, PDP-11, HP. Их архитектура стала значительно проще, что упростило и операционные системы. ОС миникомпьютеров стали делать специализированными, например, только для управления в реальном времени (RT11 для PDP-11) или только для поддержания режима разделения времени. Эти операционные системы не были многопользовательскими.

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

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

    Все десятилетие происходило усовершенствование этой ОС, в результате чего стали появляться ее новые разновидности: SunOS, HP-UX, Irix, AIX.Значительное распространение персональных компьютеров послужило катализатором для бурного роста локальных сетей. Ещё одной важной разработкой этого десятилетия стало появление стека протоколов TCP/IP, становление Интернета, стандартизация технологий локальных сетей, и более интенсивное развитие сетевых операционных систем (OS-Net фирмы Nowell, OS/2 фирм Microsoft и IBM).

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

    Особое место уделяется корпоративным ОС, им отводится основная роль в развитии ОС в ближайшем будущем. Такая ОС должна устойчиво работать в крупных сетях больших предприятий. Для корпоративных систем характерна высокая степень масштабируемости, поддержка сетевой работы, развитые средства обеспечения безопасности, способность работать в гетерогенной среде. К корпоративным ОС в настоящее время относят Windows 2000, Windows NT, различные Unix-системы.

    Эволюция операционных систем состоит из следующих этапов:

    • Последовательное выполнение заданий
    • Простая пакетная обработка
    • Мультипрограммирование в пакетных системах
    • Разделение времени
    • Современные ОС

    Первая фаза развития ОС

    Время ЭВМ дороже времени человека

    • Один пользователь в один момент времени работает напрямую с консолью
    • Первые «ОС» — общие библиотеки вв/выв
    • Простой монитор пакетной обработки – убрать пользователя от компьютера. ОС – программа для загрузки и исполнения пользовательских заданий и сохранения результатов
    • Каналы данных, прерывания, одновременное выполнение операций вв/выв и вычислений
    • Защита памяти позволяет реализовывать многозадачность: несколько пользователей используют одну систему
    • ОС должна управлять взаимодействием, параллельностью
    • К середине 60х ОС становятся большими и сложными
    • Область ОС становится важной дисциплиной со своими принципами

    Вторая фаза развития ОС

    Время человека дороже времени ЭВМ

    • Интерактивное разделение времени: удобные файловые системы, проблемы с временем ответа
    • Персональные компьютеры: они дешевые, поэтому каждый терминал – ПК
    • Сеть позволяет организовать общий доступ и взаимодействие между машинами
    • Встроенные устройства: компьютеры помещаются в сотовые телефоны, стерео проигрыватели, телевизоры и пр.
    • Насколько там нужны сложные алгоритмы разделения времени.

    Настоящее и будущее ОС

    Будущее в научном развитии ОС

    • Очень маленькие ОС (для мобильных устройств)
    • Очень большие ОС (центр обработки данных, облачные вычисления)

    Характеристики текущих ОС

    • Огромные миллионы строк исходного кода, 100-1000 человеко-лет разработки
    • Сложные: асинхронные, зависимые от аппаратного обеспечения, ориентированные на высокую производительность
    • Плохо понимаемые

    Направление исследований

    Постоянно возникают новые направления исследований

    • Встраиваемые системы (iPоd – плеер компании Apple потребовал разработки собственной унифицированной ОС)
    • Системы сенсоров (очень низкое энергопотребление, жесткие требования в памяти)
    • Одноранговые сети
    • Беспроводные сети
    • Маштабируемые системы, кластерные системы

    Старые проблемы требуют новых подходов к решению

    • Эволюция смартфонов повторяет эволюцию ПК, которая повторяла эволюцию миникомпьютеров, а они в свою очередь минифреймов