Операционные системы.

Операционные системы.

test

Операционные системы. Назначение и основные функции.


Все многообразие программ, используемых на современном компьютере, называется программным обеспечением – ПО (software).

Программы, составляющие ПО, можно разделить на три группы: системное ПО, системы программирования, прикладное ПО. Ядром системного ПО является операционная система (ОС).

ОС – это неотъемлемая часть ПО, управляющая техническими средствами компьютера (hardware). Операционная система – это программа, координирующая действия вычислительной машины; под ее управлением осуществляется выполнение программ.

Основные функции операционной системы:

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

2. Обеспечение системы организации и хранения файлов.

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

4. Организация диалога с пользователем.

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


Основные характеристики, интерфейс.


Основными характеристиками операционных систем являются:


1.               разрядность (для ПЭВМ 8-разрядные, 16-разрядные, 32-разрядные, 64-разрядные ОС);

2.               число программ, одновременно выполняемых под управлением ОС (одно - и многозадачные ОС).

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

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

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

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

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

4.               тип пользовательского интерфейса: интерфейс командной строки, текстовый оконный интерфейс, графический оконный интерфейс пользователя (ИКС, ТИП, ГИП);

5.               требование к аппаратным ресурсам;

6.               производительность;

7.               надежность (устойчивость в работе, защищенность данных от несанкционированного доступа);

8.               обеспеченность прикладными программами;

9.               наличие сетевых возможностей (сетевые, локальные ОС);

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

10.          количество поддерживаемых процессоров: однопроцессорные, многопроцессорные;

Многопроцессорные ОС, в отличие от однопроцессорных, поддерживают использование нескольких процессоров для решения одной задачи;

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

12.          способ использования оперативной памяти;

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


Интерфейс — это в общем случае набор правил, согласно которым взаимодействуют два объекта и более.

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

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

При проектировании пользовательского интерфейса необходимо следовать выбранной парадигме.

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

В графических интерфейсах используется парадигма WIMP — Window, Image, Menu, Pointer, или Окно, Образ, Меню, Курсор. Согласно этой парадигме, пользователь работает с окнами, в каждом из которых отображается некоторый образ. Каждое окно снабжено меню, содержащим набор допустимых действий, а взаимодействие осуществляется при помощи курсора. Другим распространенным видом интерфейса является интерфейс командной строки.

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

Как правило, каждая операционная система содержит несколько операционных сред.


История развития операционных систем.


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

1-й этап (50-е гг. ХХ в.)

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

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

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

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

2-й этап (60-е гг. ХХ в.)

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

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

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

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

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

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

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

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

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

3-й этап (70-80-е гг. ХХ в.)

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

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

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

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

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

4-й этап (с начала 90-х гг. ХХ в. - по настоящее время)

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

Во второй половине 90-х гг. все производители операционных систем резко усилили поддержку работы с Internet: в комплект поставки начали включать утилиты, реализующие такие популярные сервисы Internet, как telnet, ftp, WWW и др.

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

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

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

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

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

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

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

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

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

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


Система MS-DOS была разработана в 1981 г. специально для только что появившейся первой 16-разрядной ПЭВМ IBM PC на базе процессора i86. Первая версия системы была ужасна, но работоспособна. В последующие годы фирме Microsoft удалось значительно улучшить свою систему, хотя некоторые пережитки первой версии оказались неистребимы. Альянс с фирмой IBM позволил Microsoft добиться фантастического финансового успеха.DOS представляет собой однозадачную, однопользовательскую, диалоговую ОС. Она ведет диалог с пользователем в текстовом режиме и в большей степени рассчитана на обслуживание прикладных программ текстового режима, хотя допускает и графику. Работа с мышью должна обеспечиваться самими прикладными программами при минимальной поддержке со стороны ОС. Для размещения программы пользователя и для своих собственных нужд MS-DOS позволяет использовать 640 Кбайт памяти, что казалось огромной величиной в те незапамятные времена аккуратного программирования и полного отсутствия файлов AVI и MP3. Позднее были добавлены средства, позволяющие с некоторым усилием использовать до 4 Мб памяти.

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

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

Первая версия Windows вышла в свет в конце 80-х годов и осталась совершенно незамеченной. Аналогичная участь постигла и следующую версию - лишь версия Windows 3.0 (1992) сумела пробить себе дорогу и стать «продуктом года». А еще через два года были выпущены версии 3.1 и 3.11 (последняя включала такой значительный элемент, как полную поддержку мультимедиа и работу в локальной сети - потому и носила уточняющее название Windows For Workgroups), окончательно утвердившие господство Windows.

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

Отличительной особенностью Unix-систем всегда было то, что они не монолитны, как Windows: их ядро состоит из множества самостоятельных модулей, которые могут работать независимо. Это позволяет «пересобрать» систему прямо в процессе работы с ней, что, конечно, нравится тем, кто хоть немного программирует. За счет своей атомарности такая «ось» лучше (читай стабильнее и быстрее) работает. У большинства Unix систем нет 1 производителя и разработчика, ведь коды ее открыты и могут быть переписаны кем угодно и как угодно - такое себе народное творчество. Но некоторые версии все же разрабатываются централизовано.

История самого Linux началась с попытки создания свободной операционной системы как говорят «с нуля» в рамках проекта GNU. Linux получила ядро от Unix и был снабжен множеством «примочек». Если первые версии этой ОС были консольными и «непонятными» для большинства пользователей, то последние уже вполне схожи с Windows по внешнему виду и набору функционала и даже позволяют работать с привычными для пользователей этой ОС приложениями.