Организация и функционирование компьютеров
bf1271d8

Назначение и структура операционной системы


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

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


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

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

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

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


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

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

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

Позднее (в 80-х годах) стали появляться другие, более эффективные операционные системы. Усовершенствование шло по нескольким направлениям. Во-первых, одним из главных недостатков MS DOS являлись неудобные для рядового пользователя-непрофессионала правила общения с системой (называемые интерфейсом операционной системы). Для формулировки инструкций для ОС требовалось вводить с клавиатуры закодированные текстовые сообщения.




Частично трудность была снята за счет использования замечательной программной надстройки над MS DOS – программы Norton Commander, которая позволяет моделировать основные запросы к операционной системе MS DOS, манипулируя клавишами и надписями на экране. В наиболее современных версиях операционных систем дружественный пользователю интерфейс стал непосредственной частью самой системы. Наиболее удачно интерфейс взаимодействия с ОС был реализован в компьютерах системы Macintosh. Постепенно заложенные там идеи стали стандартом для всех программ, работающих в интерактивном режиме (то есть режиме общения с пользователем в реальном времени). В итоге была сконструирована и приобрела всеобщее распространение операционная система Windows со своим многооконным интерфейсом.

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

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

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



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

Дополнительная услуга, оказываемая системой Windows, заключается в автоматическом определении марок тех внешних устройств, которыми укомплектован компьютер в момент включения, после чего также автоматически выбираются соответствующие драйверы этих устройств (принцип Plug and Play). Естественно, это возможно только в случае, если устройство «умеет» отвечать на вопрос о своей марке (основные производители компьютерной техники это предусматривают).

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


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

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

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


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

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

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


Содержание раздела