Когда на компьютере ibm 7094 цп бездействовал
Прерывание от устройств ввода-вывода позволяет процессору получать информацию о состоянии каналов и периферийных устройств и отвечать на эти сигналы. Это прерывание от устройств ввода-вывода формируется, когда канал и ПфУ не могут выполнить заданную операцию; при возникновении особой ситуации в процессе выполнения операции ввода-вывода ( ошибка в информации, обрыв перфоленты и бумаги, замятие перфокарты и др.); в момент окончания операции ввода-вывода . [31]
ФОБОС работает в ОП емкостью от 16 до 28 Кслов и предоставляет пользователю гибкую систему обслуживания ввода-вывода в реальном масштабе времени. Система обеспечивает три модификации ввода-вывода: синхронный - управление не возвращается запрашивающей программе до окончания операции ввода-вывода; асинхронный - запрос на ввод-вывод устанавливается в очередь на обслуживание и управление немедленно возвращается запрашивающей программе; с событием - запрос на ввод-вывод устанавливается в очередь на обслуживание, а управление возвращается запрашивающей программе. По окончании операции ввода-вывода происходит прерывание основной программы и управление передается программе завершения, при выходе из которой управление возвращается запрашивающей программе. [32]
Центральный процессор дает устройству команду начать операцию. После этого CPU начинает выполнять другую работу. Он больше не ждет окончания операции ввода-вывода . По завершении операции устройство прерывает работу CPU. [33]
ВУ читает очередное слово данных или записывает принятое слово, после чего ВУ формирует очередной запрос на передачу слова данных. Этот процесс продолжается до тех пор, пока счетчик С не придет в нулевое состояние. Сигнал прерывания и флажок извещают процессор об окончании операции ввода-вывода . [34]
Приведенная программа имеет существенный недостаток. Ввод и вывод с телетайпа производятся очень медленно по сравнению с работой CPU. Поэтому CPU большую часть времени простаивает в ожидании окончания операций ввода-вывода . Это называется ожиданием конца обмена. [35]
Поэтому каналу и: вязанному с ним устройству внимание уделяется только после того, : ак они закончили работу. После прерывания, вызванного успеш - [ ым или аварийным окончанием операции ввода-вывода , управление юлучает супервизор. Если операция завершилась успешно, то упервизор сообщает программе. В противном случае ягнализируется об аварийной ситуации, и непривилегированная [ рограмма либо завершается, либо ей возвращается управление ля обработки ошибки, или же управление передается оператору ля решения вопроса о том, что делать дальше. [36]
В каналах высокопроизводительных ЭВМ имеется несколько ССК, в которых регистрируется состояние схем управления канала, бывшее в момент сбоя в канале. Эта информация в дальнейшем обрабатывается специальной программой, которая позволяет локализовать место неисправности в канале и дать соответствующее указание персоналу. Информация о состоянии СВВ должна передаваться каналом процессору: в ответ на команду ввода-вывода при инициировании операции ввода-вывода; по окончании операции ввода-вывода для подтверждения правильности ее выполнения; в процессе выполнения операции ввода-вывода при изменениях состояния СВВ. [39]
Большинство современных ЭВМ работают в режиме мультипрограммирования, в соответствии с которым одновременно могут обрабатываться несколько заданий, хранящихся в памяти ЭВМ. Эта возможность обеспечивается совмещением во времени операций по преобразованию данных, выполняемых процессором, и операций обмена данными с внешними устройствами, которые реализуются при помощи каналов ввода-вывода информации. При этом увеличивается пропускная способность ЭВМ, так как за единицу времени процессор выполняет существенно большее число преобразований данных в сравнении с однопро-граммным режимом, когда он вынужден простаивать, ожидая окончания операций ввода-вывода . [40]
В конкретной мультипрограммной системе на супервизор возлагается выполнение определенного круга действий, зависящего от возможностей отдельных устройств и порядка их взаимодействия с вычислителем и основной программой. Так, если в системе для подключения УВВ используется аппаратура канала, то действия по передаче данных между ОЗУ и УВВ реализуются в канале и супервизор используется только для запуска операции ввода-вывода и для преобразования вводимой-выводимой информации после окончания операции. В этом случае канал посылает сигнал прерывания только в момент окончания операции ввода-вывода . [42]
Управляющая информация, полученная каналом, преобразуется в последовательность сигналов, поступающих в УВУ. Канал осуществляет запуск УВУ на выполнение команды ввода ( считывания) или вывода ( записи) информации. УВУ формирует запросы на передачу информации, которые анализируются и обслуживаются каналом. Если в УВУ возникают сигналы, которые необходимо передать в процессор ( например, сигнал об окончании операции ввода-вывода ), то канал преобразует эти сигналы в стандартную форму, удобную для дальнейшего использования в процессоре. В ЭВМ ЕС-1020 имеется два типа каналов: мультиплексный и селекторный ( см. гл. [43]
Несмотря на свои огромные размеры и недостатки, OS / 360 и подобные ей операционные системы третьего поколения, созданные другими производителями компьютеров, на самом деле достаточно неплохо удовлетворяли требованиям большинства клиентов. На компьютере IBM 7094, когда текущая работа приостанавливалась в ожидании операций ввода-вывода с магнитной ленты или других устройств, центральный процессор просто бездействовал до окончания операции ввода-вывода . При сложных научных вычислениях и ограниченных возможностях процессора устройства ввода-вывода задей-ствовались довольно редко, так что это потраченное впустую время не играло существенной роли. Но при коммерческой обработке данных время ожидания устройства ввода-вывода могло занимать 80 или 90 % всего рабочего времени, поэтому необходимо было что-нибудь сделать во избежание длительного простаивания весьма дорогостоящего процессора. [45]
К началу 60-х годов большинство изготовителей компьютеров имело две отдельные, полностью несовместимые производственные линии. С одной стороны, существовали научные крупномасштабные компьютеры с пословной обработкой текста типа IBM 7094, использовавшиеся для числовых вычислений в науке и технике. С другой стороны — коммерческие компьютеры с посимвольной обработкой, такие как IBM 1401, широко используемые банками и страховыми компаниями для сортировки и печати данных.
Развитие и поддержка двух совершенно разных производственных линий для изготовителей были достаточно дорогим удовольствием. Кроме того, многим покупателям изначально требовалась небольшая машина, однако позже ее возможностей становилось недостаточно, и требовался более мощный компьютер, который работал бы с теми же самыми программами, но быстрее.
Фирма IBM попыталась решить эти проблемы разом, выпустив серию машин IBM /360. 360-е были серией программно совместимых машин, варьирующихся от компьютеров размером с IBM 1401 до машин, значительно более мощных, чем IBM 7094. Эти компьютеры различались только ценой и производительностью (максимальным объемом памяти, быстродействием процессора, количеством разрешенных устройств ввода/вывода и т. д.). Так как все машины имели одинаковую структуру и набор команд, программы, написанные для одного компьютера, могли работать на всех других (по крайней мере, в теории). Кроме того, 360-е были разработаны для поддержки как научных (то есть численных), так и коммерческих вычислений. Одно семейство машин могло удовлетворить нужды всех покупателей. В последующие годы, используя более современные технологии, корпорация IBM выпустила компьютеры, совместимые с 360, эти серии известны под номерами 370, 4300, 3080 и 3090.
360-е стали первой основной линией компьютеров, на которой использовались мелкомасштабные интегральные схемы, дававшие преимущество в цене и качестве по сравнению с машинами второго поколения, созданными из отдельных транзисторов. Корпорация IBM добилась мгновенного успеха, а идею семейства совместимых компьютеров скоро приняли и все остальные основные производители. В компьютерных центрах до сих пор можно встретить потомков этих машин. В настоящее время они часто используются для управления огромными базами данных (например, для систем бронирования и продажи билетов на авиалиниях) или как серверы узлов Интернета, которые должны обрабатывать тысячи запросов в секунду.
Основное преимущество «одного семейства» оказалось одновременно и величайшей его слабостью. По замыслу его создателей все программное обеспечение, включая операционную систему OS /360, должно было одинаково хорошо работать на всех моделях компьютеров: и в небольших системах, которые часто заменяли 1401-е и применялись для копирования перфокарт на магнитные ленты, и на огромных системах, заменяющих 7094-е и использовавшихся для расчета прогноза погоды и других сложных вычислений. Кроме того, предполагалось, что одну операционную систему можно будет использовать в системах как с несколькими внешними устройствами, так и с большим их количеством; а также как в коммерческих, так и в научных областях. Но самым важным было, чтобы это семейство машин давало результаты независимо от того, кто и как его использует.
Один из разработчиков OS /360, Фред Брукс (Fred Brooks ), впоследствии написал остроумную и язвительную книгу с описанием своего опыта работы с OS /360. на ее обложке изображено стадо доисторических животных, увязших в яме с дегтем. Обложка книги демонстрирует похожую точку зрения на операционные системы, бывшие динозаврами в мире компьютеров.
Несмотря на свои огромные размеры и недостатки, OS /360 и подобные ей операционные системы третьего поколения, созданные другими производителями компьютеров, на самом деле достаточно неплохо удовлетворяли требованиям большинства клиентов. Они даже сделали популярными несколько ключевых технических приемов, отсутствовавших в операционных системах второго поколения. Самым важным достижением явилась многозадачность. На компьютере IBM 7094, когда текущая работа приостанавливалась в ожидании операций ввода/вывода с магнитной ленты или других устройств, центральный процессор просто бездействовал до окончания операции ввода/вывода. При сложных научных вычислениях и ограниченных возможностях процессора устройства ввода/вывода задействовались довольно редко, так что это потраченное впустую время не играло существенной роли. Но при коммерческой обработке данных время ожидания устройства ввода/вывода могло занимать 80 или 90 % всего рабочего времени, поэтому необходимо было что-нибудь сделать во избежание длительного простаивания весьма дорогостоящего процессора.
Решение этой проблемы заключалось в разбиении памяти на несколько частей, называемых разделами, каждому из которых давалось отдельное задание, как показано на рис. 1.4. Пока одно задание ожидало завершения работы устройства ввода/вывода, другое могло использовать центральный процессор. Если в оперативной памяти содержалось достаточное количество заданий, центральный процессор мог быть загружен почти на все 100 % по времени. Множество одновременно хранящихся в памяти заданий требовало наличия специального оборудования для защиты каждого задания от возможного любопытства и ущерба со стороны остальных заданий. 360-я и другие системы третьего поколения были снабжены подобными аппаратными средствами.
Рис. 1.4.Многозадачная система с тремя заданиями в памяти
Другим важным плюсом операционных систем третьего поколения стала способность считывать задание с перфокарт на диск по мере того, как их приносили в машинный зал. Всякий раз, когда текущее задание заканчивалось, операционная система могла загружать новое задание с диска в освободившийся раздел памяти и запускать его. Этот технический прием называется подкачкой данных или спулингом (spooling , это английское слово произошло от аббревиатуры Simultaneous Peripheral Operation On Line — совместная периферийная операция в интерактивном режиме), и его также используют для выдачи полученных данных. С появлением подкачки стали больше не нужны 1401-е и исчезли многократные переносы магнитных лент.
Хотя операционные системы третьего поколения вполне подходили для больших научных вычислений и справлялись с крупными коммерческими обработками данных, они все еще, по существу, представляли собой разновидности системы пакетной обработки. Многие программисты тосковали по первому поколению машин, когда они могли распоряжаться всей машиной в течение нескольких часов и имели возможность быстро отлаживать свои программы. При системах третьего поколения временной промежуток между передачей задания и возвращением результатов часто составлял несколько часов, так что единственная неуместная запятая могла стать причиной сбоя при компиляции, и получалось, что программист тратил впустую половину дня.
После успеха системы CTSS Массачусетсский технологический институт, система исследовательских лабораторий Bell Labs и корпорация GeneralElectric (тогда главный изготовитель компьютеров) решили начать разработку «компьютерного предприятия общественного пользования» — машины, которая должна была поддерживать сотни одновременных пользователей в режиме разделения времени. Образцом для новой машины послужила система распределения электроэнергии. Когда вам нужна электроэнергия, вы просто вставляете штепсель в розетку и получаете энергии столько, сколько вам нужно. Проектировщики этой системы, известной как MULTICS (MULTiplexed Information and Computing Service — мультиплексная информационная и вычислительная служба), представляли себе одну огромную вычислительную машину, воспользоваться услугой которой мог каждый человек в районе Бостона. Мысль о том, что машины, гораздо более мощные, чем их мэйнфрейм GE -645, будут продаваться миллионами по цене тысяча долларов за штуку всего лишь через тридцать лет, казалась чистейшей научной фантастикой, как если бы сегодня кто-либо вздумал проектировать сверхзвуковые трансатлантические подводные поезда.
В итоге, MULTICS подала много конструктивных идей компьютерным теоретикам, но превратить ее в серьезный продукт и добиться коммерческого успеха оказалось намного тяжелее, чем ожидалось. Система исследовательских лабораторий Bell Labs выбыла из проекта, а компания General Electricсовсем оставила компьютерный бизнес. Однако Массачусетсский технологический институт проявил упорство и со временем получил работающую систему. В конце концов, она была продана как коммерческое изделие компанией Honeywell , купившей компьютерный бизнес General Electric , и установлена примерно в восьмидесяти больших компаниях и университетах по всему миру. Но к настоящему времени в связи с падением цен на компьютерное оборудование идея компьютерного предприятия общественного пользования выдохлась. Несмотря на неудачу с точки зрения коммерции, система MULTICSзначительно повлияла на последующие операционные системы. Это описано в книгах.
Кен Томпсон (Ken Thompson ), один из специалистов по компьютерам в Bell Labs , работавший над проектом MULTICS , впоследствии нашел мини-компьютер PDP -7, которым никто не пользовался, и решил написать усеченную однопользовательскую версию системы MULTICS . Эта работа позже развилась в операционную систему UNIX , ставшую популярной в академическом мире, в правительственных управлениях и во многих компаниях.
История развития UNIX уже многократно рассказывалась в самых различных книгах. Пока достаточно сказать, что по причине широкой доступности исходного кода различные организации создали свои собственные (несовместимые) версии, что привело к хаосу. Были разработаны две главные версии:System V корпорации AT&T и BSD (Berkeley Software Distribution ) Калифорнийского университета Беркли. Эти системы, в свою очередь, распадаются на отдельные разновидности. Чтобы стало возможным писать программы, работающие в любой UNIX -системе, Институт инженеров по электротехнике и электронике IEEE разработал стандарт системы UNIX , называемый POSIX , который теперь поддерживают большинство версий UNIX . Стандарт POSIXопределяет минимальный интерфейс системного вызова, который должны поддерживать совместимые системы UNIX . Некоторые другие операционные системы теперь тоже поддерживают интерфейс POSIX .
Читайте также: