В вычислительной технике разделение времени — это одновременное совместное использование вычислительного ресурса многими задачами или пользователями, при котором каждой задаче или пользователю выделяется небольшой отрезок времени обработки . Такое быстрое переключение между задачами или пользователями создает иллюзию одновременного выполнения. [1] [2] Оно позволяет одному пользователю выполнять несколько задач одновременно или позволяет проводить сеансы с несколькими пользователями.
Разработанный в 1960-х годах, его появление в качестве выдающейся модели вычислений в 1970-х годах представляло собой крупный технологический сдвиг в истории вычислений. Позволяя многим пользователям одновременно взаимодействовать с одним компьютером, разделение времени резко снизило стоимость предоставления вычислительных возможностей, сделало возможным для отдельных лиц и организаций использовать компьютер, не владея им, [3] и способствовало интерактивному использованию компьютеров и разработке новых интерактивных приложений .
Самые ранние компьютеры были чрезвычайно дорогими устройствами и очень медленными по сравнению с более поздними моделями. Машины обычно были предназначены для определенного набора задач и управлялись с помощью панелей управления, оператор вручную вводил небольшие программы с помощью переключателей, чтобы загрузить и запустить ряд программ. Эти программы могли работать часами. По мере того, как компьютеры росли в скорости, время работы сокращалось, и вскоре время, необходимое для запуска следующей программы, стало проблемой. Более новое программное обеспечение и методологии пакетной обработки , включая пакетные операционные системы, такие как IBSYS (1960), уменьшили эти «мертвые периоды», поставив программы в очередь, готовые к запуску. [4]
Сравнительно недорогие перфокарты или ленточные пишущие устройства использовались программистами для написания своих программ «офлайн». Программы отправлялись в операционную группу, которая планировала их запуск. Выходные данные (обычно распечатанные) возвращались программисту. Весь процесс мог занять несколько дней, в течение которых программист мог так и не увидеть компьютер. Студенты Стэнфорда сняли короткометражный фильм, в котором с юмором критиковали эту ситуацию. [5]
Альтернатива, позволяющая пользователю управлять компьютером напрямую, обычно была слишком дорогой, чтобы ее рассматривать. Это было связано с тем, что пользователи могли вводить код в течение длительного времени, пока компьютер оставался бездействующим. Такая ситуация ограничивала интерактивную разработку теми организациями, которые могли позволить себе тратить вычислительные циклы: в основном, крупными университетами.
Утверждается, что эта концепция была впервые описана Робертом Доддсом в письме, написанном им в 1949 году, хотя он не использовал термин « разделение времени» . [6] Позже Джон Бэкус также описал эту концепцию, но не использовал этот термин, на летней сессии 1954 года в Массачусетском технологическом институте . [7] Боб Бемер использовал термин «разделение времени» в своей статье 1957 года «Как рассматривать компьютер» в журнале Automatic Control Magazine , и в том же году сообщалось, что он использовал термин «разделение времени» в презентации. [6] [8] [9] В статье, опубликованной в декабре 1958 года, В. Ф. Бауэр писал, что «компьютеры будут одновременно решать ряд задач. Организации будут иметь оборудование ввода-вывода, установленное в их собственных помещениях, и будут покупать время на компьютере примерно так же, как среднестатистическое домохозяйство покупает электроэнергию и воду у коммунальных компаний». [10]
Кристофер Стрейчи , который стал первым профессором вычислений Оксфордского университета , подал заявку на патент в Соединенном Королевстве на «разделение времени» в феврале 1959 года. [11] [12] Он сделал доклад «Разделение времени в больших быстрых компьютерах» [13] на первой конференции ЮНЕСКО по обработке информации в Париже в июне того же года, где он передал концепцию Дж. К. Р. Ликлайдеру . [14] Эта статья была отмечена Вычислительным центром Массачусетского технологического института в 1963 году как «первая статья о компьютерах с разделением времени». [15]
Значение термина «разделение времени» изменилось по сравнению с его первоначальным использованием. С 1949 по 1960 год термин «разделение времени» использовался для обозначения многопрограммного режима без многопользовательских сеансов. [6] Позже он стал означать совместное использование компьютера в интерактивном режиме несколькими пользователями. В 1984 году Кристофер Стрейчи написал, что он считал изменение значения термина « разделение времени» источником путаницы, а не тем, что он имел в виду, когда писал свою статью в 1959 году. [6]
Существуют также примеры систем, которые предоставляют несколько пользовательских консолей, но только для определенных приложений, они не являются системами общего назначения. К ним относятся SAGE (1958), SABRE (1960) [6] и PLATO II (1961), созданные Дональдом Битцером на публичной демонстрации в парке Роберта Аллертона около Иллинойсского университета в начале 1961 года. Битцер давно говорил, что проект PLATO получил бы патент на разделение времени, если бы только Иллинойсский университет не потерял патент на два года. [16]
Первая интерактивная универсальная система разделения времени, пригодная для разработки программного обеспечения, Compatible Time-Sharing System , была инициирована Джоном Маккарти в Массачусетском технологическом институте, который написал служебную записку в 1959 году. [17] Фернандо Дж. Корбато руководил разработкой системы, прототип которой был изготовлен и испытан к ноябрю 1961 года. [18] Филип М. Морзе организовал для IBM поставку серии своих мэйнфреймов, начиная с IBM 704 , а затем линейки продуктов IBM 709, IBM 7090 и IBM 7094. [ 18] IBM предоставила эти мэйнфреймы MIT бесплатно вместе с персоналом для их эксплуатации, а также предоставила модификации оборудования, в основном в форме RPQ, поскольку предыдущие клиенты уже заказали модификации. [19] [18] Существовали определенные условия, которые регулировали использование MIT предоставленного взаймы оборудования IBM. MIT не мог взимать плату за использование CTSS. [20] MIT мог использовать компьютеры IBM только восемь часов в день; еще восемь часов были доступны для других колледжей и университетов; IBM могла использовать свои компьютеры в течение оставшихся восьми часов, хотя были некоторые исключения. В 1963 году второе развертывание CTSS было установлено на IBM 7094, который MIT приобрел на деньги ARPA . Это использовалось для поддержки разработки Multics в проекте MAC . [18]
JOSS начала работу в режиме разделения времени в январе 1964 года. [21] Система разделения времени Дартмута (DTSS) начала работу в марте 1964 года. [22]
В конце 1960-х и 1970-х годов компьютерные терминалы были мультиплексированы на больших институциональных мэйнфреймах ( централизованных вычислительных системах), которые во многих реализациях последовательно опрашивали терминалы, чтобы узнать, доступны ли какие-либо дополнительные данные или запрошено ли действие пользователем компьютера. Более поздние технологии во взаимосвязях управлялись прерываниями , и некоторые из них использовали технологии параллельной передачи данных, такие как стандарт IEEE 488. Как правило, компьютерные терминалы использовались на территории колледжей во многом в тех же местах, где сегодня находятся настольные компьютеры или персональные компьютеры . В первые дни персональных компьютеров многие из них фактически использовались как особенно интеллектуальные терминалы для систем разделения времени.
Создатели DTSS писали в 1968 году, что «любое время отклика, которое в среднем составляет более 10 секунд, разрушает иллюзию наличия собственного компьютера». [23] И наоборот, пользователи с разделением времени думали, что их терминал — это компьютер, [24] и, если они не получали счет за использование сервиса, редко задумывались о том, как другие разделяют ресурсы компьютера, например, когда большое приложение JOSS вызывало подкачку для всех пользователей. Информационный бюллетень JOSS часто просил пользователей сократить использование хранилища. [25] Тем не менее, разделение времени было эффективным способом совместного использования большого компьютера. По состоянию на 1972 год [update]DTSS поддерживала более 100 одновременных пользователей. Хотя более 1000 из 19 503 заданий, которые система завершила в «особенно загруженный день», требовали десяти секунд или более машинного времени, DTSS была в состоянии справиться с заданиями, потому что 78% заданий требовали одной секунды или меньше машинного времени. Около 75% из 3197 пользователей использовали свои терминалы в течение 30 минут или меньше, в течение которых они использовали менее четырех секунд машинного времени. Футбольная симуляция, одна из ранних игр для мэйнфреймов , написанных для DTSS, использовала менее двух секунд машинного времени в течение 15 минут реального времени для игры. [26] С ростом микрокомпьютеров в начале 1980-х годов разделение времени стало менее значимым, поскольку отдельные микропроцессоры были достаточно недорогими, чтобы один человек мог выделить все процессорное время исключительно для своих нужд, даже в режиме ожидания.
Однако Интернет вернул общую концепцию разделения времени в популярность. Дорогие корпоративные серверные фермы стоимостью в миллионы могут вмещать тысячи клиентов, которые все совместно используют одни и те же общие ресурсы. Как и в случае с ранними последовательными терминалами, веб-сайты работают в основном в режиме всплесков активности, за которыми следуют периоды простоя. Такая взрывная природа позволяет использовать услугу многим клиентам одновременно, обычно без ощутимых задержек связи, если только серверы не начинают сильно перегружаться.
Бытие
В 1960-х годах несколько компаний начали предоставлять услуги разделения времени в качестве сервисных бюро . Ранние системы использовали машины Teletype Model 33 KSR или ASR или Teletype Model 35 KSR или ASR в среде ASCII и терминалы на базе пишущей машинки IBM Selectric (особенно IBM 2741 ) с двумя различными семибитными кодами. [27] Они подключались к центральному компьютеру с помощью модема Bell 103A или акустически связанных модемов, работающих со скоростью 10–15 символов в секунду. Более поздние терминалы и модемы поддерживали скорость 30–120 символов в секунду. Система разделения времени обеспечивала полную операционную среду, включая различные процессоры языков программирования, различные программные пакеты, файловое хранилище, массовую печать и автономное хранилище. С пользователей взималась арендная плата за терминал, плата за часы времени соединения, плата за секунды процессорного времени и плата за килобайт-месяцы дискового хранилища.
Распространенные системы, используемые для разделения времени, включали SDS 940 , PDP-10 , IBM 360 и серии GE-600 . Компании, предоставляющие эту услугу, включали GEISCO компании GE , дочернюю компанию IBM The Service Bureau Corporation , Tymshare (основана в 1966 году), National CSS (основана в 1967 году и куплена Dun & Bradstreet в 1979 году), Dial Data (куплена Tymshare в 1968 году), AL/COM , Bolt, Beranek и Newman (BBN) и Time Sharing Ltd. в Великобритании . [28] К 1968 году насчитывалось 32 таких бюро обслуживания, обслуживающих только Национальные институты здравоохранения США (NIH). [29] В « Руководстве Ауэрбаха по разделению времени» (1973) перечислены 125 различных служб разделения времени, использующих оборудование от Burroughs , CDC , DEC , HP , Honeywell , IBM , RCA , Univac и XDS . [30] [31]
В 1975 году исполняющий обязанности президента Prime Computer Бен Ф. Робелен сообщил акционерам, что «крупнейшим рынком конечных пользователей в настоящее время является рынок разделения времени». [32] Для DEC, которая некоторое время была второй по величине компьютерной компанией (после IBM), это также было верно: их PDP-10 и IBM 360/67 [33] широко использовались [34] коммерческими службами разделения времени, такими как CompuServe, On-Line Systems, Inc. (OLS), Rapidata и Time Sharing Ltd.
Появление персонального компьютера ознаменовало начало упадка разделения времени. [ необходима цитата ] Экономика была такова, что компьютерное время превратилось из дорогого ресурса, которым нужно было делиться, в настолько дешевый ресурс, что компьютеры можно было оставлять без работы в течение длительного времени, чтобы они были доступны по мере необходимости. [ необходима цитата ]
Хотя многие службы разделения времени просто закрылись, Rapidata [35] [36] держалась и стала частью National Data Corporation . [37] Она все еще представляла достаточный интерес в 1982 году, чтобы стать центром «Руководства пользователя по статистическим программам: система разделения времени Rapidata». [38] Даже когда доход упал на 66% [39] и у National Data впоследствии возникли собственные проблемы, были предприняты попытки сохранить этот бизнес разделения времени. [40] [41] [42]
Начиная с 1964 года, операционная система Multics [43] была разработана как вычислительная утилита , смоделированная по образцу электрических или телефонных утилит. В 1970-х годах оригинальный гипертекстовый репозиторий Теда Нельсона " Xanadu " был задуман как такая услуга.
Разделение времени было первым случаем, когда несколько процессов , принадлежащих разным пользователям, работали на одной машине, и эти процессы могли мешать друг другу. [44] Например, один процесс мог изменять общие ресурсы , на которые полагался другой процесс, например, переменную, хранящуюся в памяти. Когда системой пользовался только один пользователь, это могло привести к возможному неправильному выводу, но при наличии нескольких пользователей это могло означать, что другие пользователи могли видеть информацию, которую им видеть не предназначалось.
Чтобы этого не произошло, операционной системе необходимо было реализовать набор политик, определяющих, какие привилегии имеет каждый процесс. Например, операционная система могла запретить доступ к определенной переменной определенному процессу.
Первая международная конференция по компьютерной безопасности в Лондоне в 1971 году была в первую очередь инициирована индустрией разделения времени и ее клиентами. [45]
Разделение времени в форме подставных счетов считалось рискованным. [46]
Значимые ранние системы разделения времени: [30]
Одно из первых описаний разделения времени компьютеров.
В своей концепции разделения времени Стрейчи предложил схему, которая сохранила бы прямой контакт между программистом и машиной, при этом достигая экономии многопрограммирования.
В 1959 году Кристофер Стрейчи в Соединенном Королевстве и Джон Маккарти в Соединенных Штатах независимо друг от друга описали то, что они назвали разделением времени.
в 1960 году фраза "разделение времени" была в воздухе. Однако ее обычно использовали в моем смысле, а не в смысле Джона Маккарти, как объект, похожий на CTSS.
Когда мы начали поставлять наши первые коммерческие машины, наши клиенты часто обнаруживали, что самое сложное в обладании компьютером — найти того, кто мог бы им управлять. Мы не могли сами подготовить всех этих техников. Однако не было ни одного университета с компьютерной программой обучения. Поэтому в середине 1950-х годов я отправился в Массачусетский технологический институт и призвал их начать подготовку специалистов по компьютерам. Мы подарили большой компьютер и деньги на его эксплуатацию.
Корбато: Нет, это был один из интересных аспектов. Одним из условий пожертвования IBM за использование оборудования было то, что мы не должны были взимать за него плату. Это было бесплатно, все верно.
Большинство последних уязвимостей не могут быть напрямую использованы удаленно в большинстве систем. Это означает, что большинство систем не подвержены риску удаленной атаки из Интернета. Многие из уязвимостей могут быть использованы кем-то с обычной учетной записью оболочки в системе.
{{cite book}}
: CS1 maint: location (link)