ЭВОЛЮЦИЯ ОПЕРАЦИОННЫХ СИСТЕМ.docx

  • docx
  • 29.04.2020
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала ЭВОЛЮЦИЯ ОПЕРАЦИОННЫХ СИСТЕМ.docx

ЭВОЛЮЦИЯ ОПЕРАЦИОННЫХ СИСТЕМ

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

Однопроцессорные системы. В 1940 – 1950 гг. однопроцессорные машины были недостаточно гибкими и эффектив- ными. Выполнение программ требовало определенной предварительной подготовки оборудования: установки лент, загрузки перфокарт в устройство чтения перфокарт, установки переключателей и т.д. Запуск каждой программы, называемый задани- ем (job), производился по отдельности. Если нескольким пользователям требовалось работать на одной и той же машине, то предварительно составлялось специальное расписание, позволяющее им зарезервировать машинное время. На протяжении отведенного времени машина находилась полностью в распоряжении пользователя. Сеанс обычно начинался с подготовки машины, после чего следовало выполнение самой программы. Чаще всего сеанс заканчивался лихорадочными усилиями пользователя сделать что-то еще ("Это займет только одну минуту!"), в то время как следующий пользователь с нетерпением ожидал, когда он сможет приступить к подготовке машины для своей задачи.

В подобной ситуации операционные системы создавались как средство для упрощения подготовки программ и ускоре- ния перехода от одного задания к другому. Первой целью создания таких систем было отделение пользователя от оборудо- вания, что позволяло избавиться от постоянного потока людей, входящих и выходящих из помещения, в котором находилась машина. Дополнительно была введена должность оператора компьютера, задача которого заключалась в выполнении всех операций непосредственно на оборудовании. Каждый пользователь должен был предоставить оператору программу вместе с необходимыми данными и специальными указаниями о ее требованиях, а затем вернуться за результатами. Оператор загру- жал полученные материалы в массовую память машины, откуда операционная система могла отправить их на выполнение. Это было началом пакетной обработки (bath processing) – метода выполнения заданий посредством предварительного объе- динения их в единый пакет, который затем выполнялся без дальнейшего взаимодействия с пользователем. Задания, ожи- дающие своего выполнения в массовой памяти, образуют очередь заданий (job queue) (рис. 3.1).

Очередь – это способ организации памяти, когда сохраняемые в ней объекты (в нашем случае – задания) упорядочены по принципу "Первым вошел – первым вышел" (FIFO, First-in, First-out), т.е. объекты покидают очередь в том же порядке, в котором они в нее поступают. На самом деле большинство очередей задач не следует в точности принципу FIFO, так как большая часть операционных систем поддерживает установку приоритетов задач. В результате выполнение находящегося в очереди задания может быть отодвинуто на более поздний срок заданием с более высоким приоритетом.


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

Рис. 3.1. Пакетная обработка

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

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


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

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

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

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

Рис. 3.2. Интерактивная обработка

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

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

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

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

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


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

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

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

Вопросы для самопроверки

1.     Приведите примеры очередей. В каждом случае укажите любые ситуации, способные нарушить FIFO-структуру очереди.

2.     Какие из приведенных ниже ситуаций требуют обработки в реальном времени:

а) Печать почтовых этикеток с адресами. б) Компьютерная игра.

в) Отображение букв на экране монитора по мере их набора на клавиатуре.

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

3.     Каковы различия между обработкой в реальном времени и интерактивной обработкой?

4.     Каковы отличия между режимом с разделением времени и многозадачностью?