Введение

1. Эволюция ОС

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

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

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

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

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

2.1 Особенности алгоритмов управления ресурсами

2.2 Особенности аппаратных платформ

2.3 Особенности областей использования

2.4 Особенности методов построения

3. Современные концепции и технологии проектирования операционных систем, требования, предъявляемые к ОС XXI века

Заключение

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

Введение

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

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

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

Рассмотреть исторический аспект появления операционных систем;

Выделить и рассмотреть этапы эволюции операционных систем.

Необходимо отметить тот факт, не достаточно освещалась в литературе, что затруднило ее изучение.

В ходе исследования проведен краткий анализ таких источников как материалы сайта http://www.microsoft.com/rus, материалы журнала «Windows NT Magazine», и другие.

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

1 . Эволюция ОС

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ниже приведена классификация ОС по нескольким наиболее основным признакам.

2.1 Особенности алгоритмов управления ресурсами

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

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

однозадачные (например, MS-DOS, MSX) и

многозадачные (OC EC, OS/2, UNIX, Windows 95).

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

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

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

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

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

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

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

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

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

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

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

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

В наши дни становится общепринятым введение в ОС функций поддержки многопроцессорной обработки данных. Такие функции имеются в операционных системах Solaris 2.x фирмы Sun, Open Server 3.x компании Santa Crus Operations, OS/2 фирмы IBM, Windows NT фирмы Microsoft и NetWare 4.1 фирмы Novell.

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

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

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

2. 2 Особенности аппаратных платформ

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

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

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

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

Другие требования предъявляются к операционным системам кластеров. Кластер - слабо связанная совокупность нескольких вычислительных систем, работающих совместно для выполнения общих приложений, и представляющихся пользователю единой системой. Наряду со специальной аппаратурой для функционирования кластерных систем необходима и программная поддержка со стороны операционной системы, которая сводится в основном к синхронизации доступа к разделяемым ресурсам, обнаружению отказов и динамической реконфигурации системы. Одной из первых разработок в области кластерных технологий были решения компании Digital Equipment на базе компьютеров VAX. Недавно этой компанией заключено соглашение с корпорацией Microsoft о разработке кластерной технологии, использующей Windows NT. Несколько компаний предлагают кластеры на основе UNIX-машин.

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

2. 3 Особенности областей использования

Многозадачные ОС подразделяются на три типа в соответствии с использованными при их разработке критериями эффективности:

системы пакетной обработки (например, OC EC),

системы разделения времени (UNIX, VMS),

системы реального времени (QNX, RT/11).

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

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

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

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

2. 4 Особенности методов построения

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

К таким базовым концепциям относятся:

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

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

Наличие нескольких прикладных сред дает возможность в рамках одной ОС одновременно выполнять приложения, разработанные для нескольких ОС. Многие современные операционные системы поддерживают одновременно прикладные среды MS-DOS, Windows, UNIX (POSIX), OS/2 или хотя бы некоторого подмножества из этого популярного набора. Концепция множественных прикладных сред наиболее просто реализуется в ОС на базе микроядра, над которым работают различные серверы, часть которых реализуют прикладную среду той или иной операционной системы.

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

3. Современные концепции и технологии проектирования операционных систем, требования, предъявляемые к ОС XXI века

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

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

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

· Переносимость. Код должен легко переноситься с процессора одного типа на процессор другого типа и с аппаратной платформы (которая включает наряду с типом процессора и способ организации всей аппаратуры компьютера) одного типа на аппаратную платформу другого типа.

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

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

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

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

Рассмотрим более подробно некоторые из этих требований.

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

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

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

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

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

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

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

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

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

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

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

Для легкого переноса ОС при ее разработке должны быть соблюдены следующие требования:

· Переносимый язык высокого уровня. Большинство переносимых ОС написано на языке С (стандарт ANSI X3.159-1989). Разработчики выбирают С потому, что он стандартизован, и потому, что С-компиляторы широко доступны. Ассемблер используется только для тех частей системы, которые должны непосредственно взаимодействовать с аппаратурой (например, обработчик прерываний) или для частей, которые требуют максимальной скорости (например, целочисленная арифметика повышенной точности). Однако непереносимый код должен быть тщательно изолирован внутри тех компонентов, где он используется.

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

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

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

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

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

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

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

Гораздо сложнее достичь двоичной совместимости между процессорами, основанными на разных архитектурах. Для того, чтобы один компьютер выполнял программы другого (например, DOS-программу на Mac), этот компьютер должен работать с машинными командами, которые ему изначально непонятны. Например, процессор типа 680x0 на Mac должен исполнять двоичный код, предназначенный для процессора 80x86 в PC. Процессор 80x86 имеет свои собственные дешифратор команд, регистры и внутреннюю архитектуру. Процессор 680x0 не понимает двоичный код 80x86, поэтому он должен выбрать каждую команду, декодировать ее, чтобы определить, для чего она предназначена, а затем выполнить эквивалентную подпрограмму, написанную для 680x0. Так как к тому же у 680x0 нет в точности таких же регистров, флагов и внутреннего арифметико-логического устройства, как в 80x86, он должен имитировать все эти элементы с использованием своих регистров или памяти. И он должен тщательно воспроизводить результаты каждой команды, что требует специально написанных подпрограмм для 680x0, гарантирующих, что состояние эмулируемых регистров и флагов после выполнения каждой команды будет в точности таким же, как и на реальном 80x86.

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

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

Соответствие стандартам POSIX также является средством обеспечения совместимости программных и пользовательских интерфейсов. Во второй половине 80-х правительственные агентства США начали разрабатывать POSIX как стандарты на поставляемое оборудование при заключении правительственных контрактов в компьютерной области. POSIX - это "интерфейс переносимой ОС, базирующейся на UNIX". POSIX - собрание международных стандартов интерфейсов ОС в стиле UNIX. Использование стандарта POSIX (IEEE стандарт 1003.1 - 1988) позволяет создавать программы стиле UNIX, которые могут легко переноситься из одной системы в другую.

Безопасность В дополнение к стандарту POSIX правительство США также определило требования компьютерной безопасности для приложений, используемых правительством. Многие из этих требований являются желаемыми свойствами для любой многопользовательской системы. Правила безопасности определяют такие свойства, как защита ресурсов одного пользователя от других и установление квот по ресурсам для предотвращения захвата одним пользователем всех системных ресурсов (таких как память).

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

Основы стандартов в области безопасности были заложены "Критериями оценки надежных компьютерных систем". Этот документ, изданный в США в 1983 году национальным центром компьютерной безопасности (NCSC - National Computer Security Center), часто называют Оранжевой Книгой.

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

Иерархия уровней безопасности, приведенная в Оранжевой Книге, помечает низший уровень безопасности как D, а высший - как А.

· В класс D попадают системы, оценка которых выявила их несоответствие требованиям всех других классов.

· Основными свойствами, характерными для С-систем, являются: наличие подсистемы учета событий, связанных с безопасностью, и избирательный контроль доступа. Уровень С делится на 2 подуровня: уровень С1, обеспечивающий защиту данных от ошибок пользователей, но не от действий злоумышленников, и более строгий уровень С2. На уровне С2 должны присутствовать средства секретного входа, обеспечивающие идентификацию пользователей путем ввода уникального имени и пароля перед тем, как им будет разрешен доступ к системе. Избирательный контроль доступа, требуемый на этом уровне позволяет владельцу ресурса определить, кто имеет доступ к ресурсу и что он может с ним делать. Владелец делает это путем предоставляемых прав доступа пользователю или группе пользователей. Средства учета и наблюдения (auditing) - обеспечивают возможность обнаружить и зафиксировать важные события, связанные с безопасностью, или любые попытки создать, получить доступ или удалить системные ресурсы. Защита памяти - заключается в том, что память инициализируется перед тем, как повторно используется. На этом уровне система не защищена от ошибок пользователя, но поведение его может быть проконтролировано по записям в журнале, оставленным средствами наблюдения и аудитинга.

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

· Уровень А является самым высоким уровнем безопасности, он требует в дополнение ко всем требованиям уровня В выполнения формального, математически обоснованного доказательства соответствия системы требованиям безопасности.

Различные коммерческие структуры (например, банки) особо выделяют необходимость учетной службы, аналогичной той, что предлагают государственные рекомендации С2. Любая деятельность, связанная с безопасностью, может быть отслежена и тем самым учтена. Это как раз то, что требует С2 и то, что обычно нужно банкам. Однако, коммерческие пользователи, как правило, не хотят расплачиваться производительностью за повышенный уровень безопасности. А-уровень безопасности занимает своими управляющими механизмами до 90% процессорного времени. Более безопасные системы не только снижают эффективность, но и существенно ограничивают число доступных прикладных пакетов, которые соответствующим образом могут выполняться в подобной системе. Например для ОС Solaris (версия UNIX) есть несколько тысяч приложений, а для ее аналога В-уровня - только сотня.

Заключение

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

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

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

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

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

В 90-е годы практически все ОС, занимающие заметное место на рынке стали сетевыми. ОС получили средства для работы со всеми основными технологиями локальных (Ethernet, Fast Ethernet, Token Ring, FDDI) и глобальных (ISDN, ATM) сетей. Особое внимание в течение последнего десятилетия уделялось корпоративным сетевым операционным системам. Они отличаются способностью хорошо и устойчиво работать в крупных сетях, которые характерны для крупных предприятий, способностью беспроблемно работать на различных аппаратных платформах.

ПОНЯТИЕ ОПЕРАЦИОННОЙ СИСТЕМЫ

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

Базовые сетевые утилиты.

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

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

ssh user_login@host

где login - регистрационное имя пользователя на машине host. Другой вариант таков:

ssh host -l user_login

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

Например, определение среднего значения пяти ячеек можно описать формулой: =(A1 + A2 + A3 + A4 + A5)/5, а можно специальной функцией СРЗНАЧ, которая сократит выражение до следующего вида: СРЗНАЧ(А1:А5). Как видите, что вместо ввода в формулу всех адресов ячеек можно использовать определенную функцию, указав ей в качестве аргумента их диапазон.

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

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

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

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

Многие функции могут иметь сразу несколько аргументов. В таком случае, каждый из них отделяется от следующего точкой с запятой. Например, функция =ПРОИЗВЕД(7; A1; 6; B2) считает произведение четырёх разных чисел, указанных в скобках, и соответственно содержит четыре аргумента. При этом в нашем случае одни аргументы указаны явно, а другие, являются значениями определенных ячеек.

Так же в качестве аргумента можно использовать другую функцию, которая в этом случае называется вложенной. Например, функция =СУММ(A1:А5; СРЗНАЧ(В5:В10)) суммирует значения ячеек находящихся в диапазоне от А1 до А5, а так же среднее значение чисел, размещенных в клетках В5, В6, В7, В8, В9 и В10.

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

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

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

Так же кнопку Вставить функцию вы найдете на ленте сверху в группе Библиотека функций во вкладке Формулы. Еще одним способом вызова мастера функций является сочетание клавиш Shift+F3.

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

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

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

Диаграммы

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

Диаграмму в Excel можно разместить либо на том же листе, где уже находится таблица, и в таком случае она называется «внедренной», либо на отдельном листе, который станет называться «лист диаграммы».

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

Затем, на ленте во вкладке Вставка в группе Диаграммы выберите нужный тип и вид диаграммы. Что бы увидеть краткое описание того или иного типа и вида диаграмм, необходимо задержать на нем указатель мыши

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

Так же обратите внимание, на появление дополнительной закладки на ленте Работа с диаграммами, содержащая еще три вкладки: Конструктор, Макет и Формат.

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

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

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

Понятие операционной системы. Основные этапы развития операционных систем.

ВСЕРОССИЙСКИЙ ЗАОЧНЫЙ ФИНАНСОВО-ЭКОНОМИЧЕСКИЙ ИНСТИТУТ

КАФЕДРА АВТОМАТИЗИРОВАННОЙ ОБРАБОТКИ ЭКОНОМИЧЕСКОЙ ИНФОРМАТИКИ

КУРСОВАЯ РАБОТА

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

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

Исполнитель:

Смертин Николай Олегович

Специальность Менеджмент организации

Группа 2 (ФНО)

№ зачетной книжки 10ММД46177 Руководитель:

Хохлова Ольга Александровна

Архангельск – 2011

Введение…………………………………………………………………………… 3

1. Назначение, эволюция и классификация операционных систем…………… 4

Введение……………………………………………………………………… 4

1.1. Назначение операционных систем…………………………………….. 5

1.2. Классификация операционных систем………………………………… 11

1.3. Эволюция операционных систем………………………………………. 13

Заключение…………………………………………………………………… 15

2. Практическая часть……………………………………………………………...16

2.1. Общая характеристика задачи………………………………………….. 16

2.2. Описание алгоритма решения………………………………………….. 18

Список литературы…………………………………………………………………21

Приложения………………………………………………………………………. 22

Введение

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

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

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

Работа выполненана ПКIntelPentiumIV – 2,4 ГГц/ 1024 МbRAM/ 80 GbHDD/ RW/DVD 52x32x52x/ FDD 1,44

Для выполнения работы использовались следующие программы:

1. Операционнаясистема – Microsoft Windows XP Professional

2. Текстовый редактор «MSWord – 2007»

3. Табличный процессор «MSExcel– 2007»

1. Назначение, эволюция и классификация операционных

систем.

План

Введение

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

1.2. Классификация операционных систем

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

Заключение

Введение

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

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

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

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

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

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

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

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

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

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

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

· Безопасность. Современная ОС должна защищать данные и другие ресурсы вычислительной системы от несанкционированного доступа. Чтобы ОС обладала свойством безопасности, она должна как минимум иметь в своем составе средства определения легальности пользователей, предоставления легальным пользователям дифференцированных прав доступа к ресурсам, а так же обладать фиксации всех «подозрительных» для безопасности системы событий. Свойство безопасности особенно важно для сетевых ОС. В таких ОС к задаче контроля доступа добавляется задача защиты данных, передаваемых по сети;

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


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

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

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

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

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

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

Москва – 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.


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

Возникновение и основные этапы развития операционных систем

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

BIOS – первый шаг к созданию операционных систем

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

Система пакетной обработки – прообраз современной операционной системы

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

Рисунок 1 Структура вычислительной системы с пакетной обработкой

Впервые, пакетная система была разработана в середине 50-х компанией General Motors для машин IBM 701. По-видимому, это была первая операционная система. Основная идея пакетной обработки состоит в том, чтобы управление загрузкой программ и распечатку результатов поручить маломощным и относительно дешевым машинам-сателлитам, которые подключаются к большой (основной) машине через высокоскоростные электронные каналы. При этом большая ЭВМ будет только решать задачу, полученную от машины-сателлита, и после завершения задачи передавать результаты по высокоскоростному каналу другой машине-сателлиту для распечатки.
Машины сателлиты работают самостоятельно, освобождая центральный процессор от необходимости управления медленными внешними устройствами. При этом распечатка результатов предыдущей задачи может происходить в ходе решения текущей задачи, и одновременно в электронную память машины-сателлита может считываться следующая задача. Такая организация системы пакетной обработки заданий известна как простая пакетная система.
Системы пакетной обработки заданий, реализованные в 50-е годы, стали прообразом современных операционных систем. В них впервые было реализовано программное обеспечение, используемое для управления исполнением прикладных программ.
Заметим здесь также, что описанный подход к построению H/W вполне сохранился до настоящего времени. Современные периферийные устройства, и, прежде всего, это накопители на жестких магнитных дисках, способны передавать большие объемы данных без участия центрального процессора. Забегая вперед, укажем, что только благодаря такому свойству аппаратуры компьютера существуют и эффективно работают современные многозадачные операционные системы.

Многозадачные операционные системы

Первые многозадачные операционные системы появились в 60-е годы в результате дальнейшего развития систем пакетной обработки заданий. Основным стимулом к их появления стали новые аппаратные возможности ЭВМ.
Во-первых, появились новые эффективные носители информации, на которых можно было легко автоматизировать поиск требуемых данных: магнитные ленты, магнитные цилиндры и магнитные диски. Это, в свою очередь, изменило структуру прикладных программ – теперь они могли в процессе работы загрузить дополнительные данные для вычислений или процедуры из стандартных библиотек.
Заметим теперь, что простая пакетная система, приняв задачу, обслуживает ее вплоть до полного завершения, а это значит, что во время загрузки дополнительных данных или кода процессор простаивает, при этом стоимость простоя процессора возрастает с ростом его производительности, так как более производительный процессор мог бы сделать за время простоя большее количество полезной работы.
Во-вторых, производительность процессоров существенно возросла, и потери процессорного времени в простых пакетных системах стали недопустимо велики.
В этой связи логичным шагом стало появление многозадачных пакетных систем. Необходимым условием для создания многозадачных систем является достаточный объем памяти компьютера. Для многозадачности объем памяти должен быть достаточен для размещения, по крайней мере, двух программ одновременно.
Основная идея многозадачности вполне очевидна – если текущая программа приостанавливается в ожидании завершения ввода-вывода, то процессор переходит к работе с другой программой, которая в данный момент готова к выполнению.
Однако, переход к другой задаче должен быть сделан так, чтобы сохранить возможность вернуться к брошенной задаче спустя некоторое время и продолжить ее работу с точки останова. Для реализации такой возможности в операционную систему потребовалось ввести специальную структуру данных, определяющую текущее состояние каждой задачи – контекст процесса. Контекст процесса определен в любой современной операционной системе таким образом, чтобы данных из него было бы достаточно для полного восстановления работы прерванной задачи.
Появление многозадачности потребовало реализации в составе операционной системы сразу нескольких фундаментальных подсистем, которые также представлены в любой современной операционной системе. Перечислим их:
1) подсистема управления процессорами – определяет какую задачу и в какое время следует передать процессору для обслуживания;
2) подсистема управления памятью – обеспечивает бесконфликтное использование памяти сразу несколькими программами;
3) подсистема управления процессами – обеспечивает бесконфликтное разделение ресурсов компьютера (например, магнитных дисков или общих подпрограмм) сразу несколькими программами.
В рамках этого курса будет подробно рассмотрена реализация указанных подсистем в современных операционных системах.
Почти сразу после появления многозадачных операционных систем, было замечено, что многозадачность полезна не только для повышения коэффициента использования процессора. Например, на основе многозадачности можно реализовать многопользовательский режим работы компьютера, т.е. подключить к нему несколько терминалов одновременно, причем для пользователя за каждым терминалом будет создана полная иллюзия, что он работает с машиной один. До эпохи массового использования персональных компьютеров, многопользовательский режим был основным режимом работы практически для всех ЭВМ. Повсеместная поддержка многопользовательского режима резко расширила круг пользователей компьютеров, сделала его доступным для людей различных профессий, что в конечном итоге и привело к современной компьютерной революции и появлению ПК.
При этом в зависимости от алгоритмов, положенных в основу работы подсистемы управления процессорами, операционная система, а с ней и вся ЭВМ, приобретает различные свойства. Например, многозадачная пакетная система, переключающаяся на другую задачу только при невозможности продолжить текущую, способна обеспечить максимальную пропускную способность компьютера, т.е. максимизировать среднее число задач, решаемых в единицу времени, но из-за непредсказуемости времени ответа многозадачная пакетная система совершенно не подходит для интерактивной системы, немедленно реагирующей на пользовательский ввод.
Многозадачная система с принудительным вытеснением задачи по истечению кванта времени идеально подходит для интерактивной системы, но не обеспечивает максимальной производительности для вычислительных задач.
При изучении темы "управление процессорами" в рамках данного курса будут рассмотрены особенности многих конкретных алгоритмов, показаны компромиссные решения, подходящие для универсальных операционных систем, ориентированных на решение широкого круга задач.
В качестве вывода отметим, что появление многозадачности было вызвано желанием максимально использовать процессор, исключив по возможности его простои, и в настоящее время многозадачность является неотъемлемым качеством практически любой современной операционной системы.

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

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


Рисунок 2 Отображение виртуального адресного пространства

При использовании виртуальной памяти, программы не смогут ошибочно или преднамеренно обратиться к данным других программ или самой операционной системы – подсистема виртуальной памяти гарантирует защиту данных. Кроме того, неиспользуемые в данный момент области виртуального адресного пространства отображаются во вторичную память, т.е. данные из этих областей хранятся не в ОЗУ, а во вторичной памяти, что решает проблему нехватки оперативной памяти. Наконец, области виртуального адресного пространства могут отображаться на произвольные участки ОЗУ, при этом соседние участки виртуального адресного пространства не обязательно должны быть соседними в ОЗУ, что решает проблему фрагментации.
Как уже было сказано, виртуальная память впервые была использована в реальных операционных системах в конце 60-х, но широкое распространение виртуальная память получила только в 80-х (UNIX, VAX/VMS), а повсеместно стала применяться в персональных компьютерах лишь в середине 90-х годов (OS/2, Linux, Windows NT). В настоящее время, виртуальная память, наряду с многозадачностью, является неотъемлемой частью практически любой современной операционной системы.

Графические интерфейсы пользователя

С конца 80-х, персональные компьютеры получили повсеместное распространение, и в сообщество пользователей ПК оказалось вовлечено множество людей различных специальностей. Многие из них не имели специальной компьютерной подготовки, но хотели использовать компьютер в своей работе, т.к. использование компьютера давало ощутимые преимущества в их деле.
С другой стороны, усложнение операционных систем и прикладных программ сделало управление ими достаточно сложной задачей даже для специалистов, и интерфейс командной строки, который к этому времени стал стандартом для операционных систем, перестал удовлетворять практическим запросам.
Наконец, появились новы аппаратные возможности: цветные графические мониторы, высокопроизводительные графические контроллеры и манипуляторы типа мышь.
Таким образом, в конце 80-х сложились все условия для повсеместного перехода на графический интерфейс пользователя: с одной стороны возникла потребность в более простом и удобном механизме управления компьютером, с другой стороны, развитие аппаратных средств позволяло построить такой механизм.
Основная идея графического интерфейса пользователя состоит в следующем:
- пользователю, в зависимости от текущей ситуации, предлагается выбрать один из нескольких альтернативных вариантов дальнейших действий;
- возможные варианты действий пользователя представлены на экране ЭВМ в виде текстовых строк (меню) или схематичных рисунков (пиктограмм);
- для выбора одного из вариантов дальнейших действий достаточно совместить на экране монитора указатель (курсор) с элементом меню или пиктограммой и нажать заранее определенную клавишу (обычно это <пробел>, <ввод> или кнопка мышки), чтобы проинформировать систему о сделанном выборе.
Первый графический интерфейс был разработан в 81 году в компании Xerox. Говорят, что посещение главой компании Microsoft Билом Гейтсом компании Xerox и знакомство с ее разработками в области графических пользовательских интерфейсов, подвигли Microsoft на создание собственных графических интерфейсов пользователя.
В настоящее время наиболее совершенным графическим интерфейсом обладает, по-видимому, операционные системы семейства Windows, эти графические интерфейсы являются как бы стандартов де-факто для графических интерфейсов пользователя.
Использование графического интерфейса оказалось настолько простым и интуитивно понятным, что компьютеры в настоящее время стали эффективно использовать в своей работе люди, которые даже не имеют никакого представления об архитектуре самого компьютера, операционной системы или прикладной программы.
В конечном итоге, появление графических интерфейсов пользователя в составе операционных систем и прикладных программ оказало колоссальное влияние на компьютеризацию современного общества.

Встроенная поддержка сети

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

История наиболее распространенных операционных систем

Операционная система UNIX

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

Проект операционной системы Multics

В проекте Multics в период 1965 – 1969 гг. совместно участвовали компании Bell Labs и General Electric. Целью проекта Multics было создание новой многопользовательской многозадачной интерактивной операционной системы, сочетающей удобство использования с мощной и эффективной системой управления ресурсами. В основу Multics были положены следующие технические решения:
- виртуальная память с сегментно-страничной организацией, контролирующая права доступа на запись, чтение или исполнение для каждого сегмента;
- централизованная файловая система, обеспечивающая организацию данных, даже находящихся на разных физических устройствах, в виде единой древовидной структуры каталогов/файлов;
- отображение содержимого файла в виртуальное адресное пространство процесса с использованием механизмов управления виртуальной памятью.
Все эти решения характерны и для современных операционных систем. Однако проект Multics не был завершен. Руководство компании Bell Labs приняло решение о выходе из проекта, посчитав дальнейшее финансирование проекта нецелесообразным, так как большие средства, уже вложенные в проект, не приносили отдачи.
Несмотря на досрочное прекращение, в ходе проекта Multics были определены базовые принципы управления ресурсами и архитектуры операционных систем, которые успешно используются до настоящего времени, а специалисты, участвующие в проекте, получили бесценный опыт. Среди участников проекта Multics были Кен Томпсон и Деннис Ритчи, будущие авторы первой версии UNIX.

Возникновение операционной системы UNIX

После прекращения проекта Multics, Кен Томпсон, Деннис Ритчи и некоторые другие сотрудники Bell Labs продолжили исследовательскую работу в области операционных систем, и вскоре предложили идею усовершенствованной файловой системы. По счастливому стечению обстоятельств, компания Bell Labs в то время испытывала острую потребность в удобных и эффективных средствах ведения документации, и новая файловая система могла здесь оказаться полезной.
В 1969 Кен Томпсон реализовал на машине PDP-7 операционную систему, включающую в себя новую файловую систему, а также специальные средства управления процессами и памятью, позволяющие работать на одной машине PDP-7 сразу двум пользователям в режиме разделения времени. Первыми пользователями новой операционной системы стали сотрудники патентного отдела Bell Labs.
Брайан Керниган предложил назвать новую систему UNICS – Uniplexed Information and Computing System. Название понравилось разработчикам, отчасти еще и потому, что напоминало Multics. Вскоре название стали записывать как UNIX – произносится также, но запись короче на одну букву. Это название дошло до настоящего времени.
В 1971 году, после переноса UNIX на PDP-11, была выпущена первая редакция документации, и новая операционная система появилась уже официально.
Первая редакция UNIX была написана на ассемблере, что накладывало определенные трудности при переносе операционной системы на другие платформы, поэтому для работы над второй редакцией UNIX, Кен Томпсон разработал собственный язык программирования B. Вторая редакция вышла в 1972 году и содержала программные каналы, позволяющие устанавливать взаимодействие между программами, одновременно выполняющимися на ЭВМ.
Появление операционной системы, написанной не на ассемблере, было революционным шагом в области системного программирования, но язык B содержал в себе ряд ограничений, сдерживающих его применение. Поэтому в 1973 году Деннис Ритчи разработал язык C, и операционная система была переписана на новом языке.
В 1975 году появилась первая коммерческая версия UNIX, известная как UNIX v.6 и UNIX начала свое триумфальное шествие по миру.

Основные этапы развития UNIX

1976. В университете г. Беркли сложилась группа студентов и профессоров, серьезна занявшаяся системой UNIX. В последствие группой университета Беркли основала собственную ветвь развития ОС UNIX – BSD UNIX (Berkeley Software Distribution). В ветви BSD впервые появились такие известные компоненты UNIX, как текстовый редактор vi, стек протоколов TCP/IP, страничный механизм в системе управления виртуальной памятью.
1977. Первый опыт по переносу UNIX на другую аппаратную платформу (отличную от PDP-11). В университете Воллонгонга в Австралии профессор Джюрис Рейндфельдс частично перенес UNIX на 32 разрядную машину.
1978. Томпсон и Ритчи в Bell Labs осуществили полный перенос UNIX на 32 разрядную машину. Перенос сопровождался существенными изменениями в организации системы, которые позволили упростить последующие переносы UNIX на другие платформы. Одновременно язык C был расширен практически до современного состояния.
1978. Специально для поддержки UNIX в Bell Labs создано подразделение USG (UNIX Support Group).
1982. USG выпустила UNIX System III, которая аккумулировала лучшие решения, представленные в различных версиях UNIX, известных к тому времени. Впервые представлены именованные программные каналы.
1983. Выход Unix System V. В ней впервые представлены семафоры, средства разделения памяти и очереди сообщений, а для повышения производительности использовано кэширование данных.
1984. USG преобразована в лабораторию по развитию UNIX – USDL (UNIX System Development Laboratories). Выпущена версия UNIX System V Release 2 (SVR2). В системе реализована возможность блокировки файлов и копирования совместно используемых страниц памяти при записи.
1986. Появление графического интерфейса для UNIX-подобных операционных систем – графическая система X Windows.
1987. USDL выпустила UNIX System V Release 3 (SVR3). Впервые представлены современные возможности межпроцессного взаимодействия, разделение удаленных файлов, обработка сигналов.
1989. Выход UNIX System V Release 4 (SVR4). UNIX впервые реализована на основе концепции микроядра. Введена поддержка процессов реального времени, и легковесных процессов.

Операционная система Linux

В настоящее время операционная система Linux переживает этап бурного развития. И хотя это молодая операционная система, возраст которой всего чуть более 10 лет, она уже успела получить признание многих тысяч пользователей.
У истоков операционной системы Linux стоял Линус Торвальдс, в то время студент-первокурсник, который в конце 1991 г. поместил в Интернет разработанную им микро операционную систему Linux и пригласил всех желающих принять участие в развитии этой системы. В результате к проекту подключилось множество талантливых программистов, и совместными усилиями большого числа людей, взаимодействующих через Интернет, была разработана весьма совершенная операционная система.
В основу Linux легли некоторые решения из UNIX BSD 4.2, и поэтому Linux обычно рассматривают как самостоятельную ветвь UNIX-подобных операционных систем.
В настоящее время Linux развивается в рамках технологии Open Source – открытых исходных текстов, доступных всем желающим. Любой человек может разработать и послать свои изменения или дополнения к Linux, а инсталляцию Linux можно получить бесплатно через Интернет.
В настоящее время Linux также разделился на несколько самостоятельных ветвей, между которыми все еще много общего, но есть отличия в реализации некоторых компонентов, как в ядре системы, так и в различных утилитах.
Операционная система Linux сейчас рассматривается многими людьми как серьезная альтернатива операционным системам семейства Windows. Система Linux устойчиво работает и обеспечивает высокую производительность. Единственное, что все еще сдерживает распространение Linux, это недостаточное число офисных прикладных программ, таких как текстовые процессоры или электронные таблицы. Но в последнее время количество таких программ неуклонно растет, а качество их пользовательских интерфейсов приближается к привычному для пользователей Windows.
Еще одна проблема системы Linux состоит в том, что она обычно отстает с поддержкой новейших аппаратных средств, но это тоже имеет свое объяснение. Разработчики этих аппаратных средств всегда предоставляют ведущим производителям операционных систем сведения о них еще до появления данного аппаратного средства на рынке, поэтому, например, Windows обычно обеспечивает поддержку новых аппаратных средств сразу же при их появлении на рынке. Авторитет системы Linux в среде разработчиков аппаратных средств неуклонно растет, поэтому можно надеяться, что проблема поддержки аппаратных средств скоро решиться.

Операционная система Windows

В настоящее время семейство операционных систем Windows – это наиболее массовые операционные система для персональных компьютеров. Все эти операционные системы имеют весьма схожий (и весьма совершенный!) графический интерфейс пользователя, но существенно различаются по внутреннему строению.
В семействе Windows, операционные системы Windows 95/98/Me представляют ветвь потребительских операционных систем, ориентированных, прежде всего, на домашнее использование, а система Windows XP в первую очередь ориентирована на 64-х битную платформу, и в 32-х битной реализации отличается от Windows 2000 в основном интерфейсом.
Современная операционная система Windows 2000 является типичной многозадачной операционной системой, поддерживающей виртуальную память, файловую систему, сеть, графический интерфейс пользователя, средства мультимедиа. Она прямо происходит от Windows NT и практически не имеет ничего общего с операционной системой MS-DOS, широко распространенной около десятилетия назад. Тем не менее, развитие операционных систем Microsoft происходило последовательно, и их историю логичнее всего начать именно от DOS.
1983. Выходит операционная система MS-DOS 2.0, включающая поддержку накопителя на жестком диске, файловой системы с иерархической структурой имен файлов, загружаемых драйверов устройств. В дальнейшем, все версии Windows, вплоть до Windows NT работали как надстройка над DOS версии не ниже 2.0, используя его файловую систему и системные функции для работы с аппаратурой компьютера.
1985. Выходит первая версия Windows – Windows 1.01. В то время Windows еще не является полноценной операционной системой и требует для своей работы операционную систему DOS 2.0. Система Windows 1.01 поддерживает только не перекрывающиеся окна и позволяет пользователям переключаться между программами без их перезапуска. К моменту появления Windows 1.01, на рынке уже представлено несколько графических оболочек для DOS, однако все они, как и Windows, не пользуются особой популярностью из-за отсутствия программ. Кроме того, работа в не перекрывающихся окнах неудобна.
1987. Выходит версия Windows 2.0, поддерживающая перекрывающиеся окна. Одновременно с выходом Windows 2.0 на рынке появляется электронная таблица Microsoft Excel и текстовый процессор Word 1.0 – по настоящему удобное программное обеспечение для Windows. Благодаря удобному графическому интерфейсу и наличию полезных прикладных программ, версия Windows 2.0 становится популярной, за пол года продано миллион копий.
1988. Выходит версия Windows 2.1, поддерживающая расширенную память на процессоре 80286 и многозадачность на процессоре 80386. Для этой версии становится обязательным наличие в составе компьютера накопителя на жестком магнитном диске (до этого достаточно было дискет).
1990. Выходит версия Windows 3.0. Она запускается в защищенном режиме процессора и поддерживает свопинг для программ и данных, основанный на дескрипторах блоков памяти. При этом, пока данные из некоторого блока памяти не требуются, система может по своему усмотрению перемещать этот блок в памяти и даже сбрасывать на диск его данные. Но когда эти данные понадобятся какой либо программе, она должна указать это системе и передать ей дескриптор блока памяти для идентификации требуемого блока (при выделении блока памяти система возвращает его дескриптор). Получив требование на доступ к памяти, система блокирует данный блок в памяти и передает приложению указатель на начало блока. Система больше не может перемещать этот блок памяти, пока приложение не проинформирует ее, что обращение к данным из этого блока памяти больше не требуется. Начиная с версии Windows 3.0 программы MS-DOS могут запускаться в окне.
1992. Выходит версия Windows 3.1, которая представляет собой просто дальнейшее усовершенствование Windows 3.0, но это первая версия Windows, получившая широкое распространение в России. Вскоре Windows 3.1 становится самой популярной по числу инсталляций системой в США и удерживает первенство вплоть до 1997 года.
1993. Выходит версия Windows 3.11, дополненная поддержкой сети (электронная почта, совместный доступ к файлам, рабочие группы).
1993. Выходит операционная система Windows NT (NT – New Technology) – первая полноценная операционная система семейства Windows, не требующая для своей работы базиса в виде MS-DOS. Для работы Windows NT требуется процессор не ниже 80386, в ней реализована полноценная виртуальная память, вытесняющая многозадачность, новая файловая система. Начиная с Windows NT, разделились потребительская и профессиональная ветви.
1995. Выходит операционная система Windows 95, являясь дальнейшим развитием Windows 3.11, она становится первой потребительской версией Windows, не требующей для своей работы DOS. В Windows 95 впервые представлен новый графический интерфейс пользователя, очень удобный, интуитивно понятный, он выводит Windows на первое место в мире по удобству использования и качеству пользовательского интерфейса.
1996. Выходит операционная система Windows NT4. Она является дальнейшим развитием Windows NT и получает пользовательский интерфейс Windows 95. В скором времени операционная система Windows NT4 станет одной из самых популярных для профессиональной работы.
2000. Выходит операционная система Windows 2000. Она в основном унаследовала внутреннюю архитектуру Windows NT, но было введено ряд дополнительных сервисов, например, поддержка распределенных вычислений.
2000. Выходит операционная система Windows Me, являющаяся дальнейшим развитием Windows 95/98. Однако объявлено, что она станет последней потребительская версией Windows. Отделившаяся в 1993 году потребительская ветвь вновь сливается с профессиональной, и дальше будет развиваться единая ветвь Windows XP.
и т.д. и т.п.
2006. Vista