Спонсор: Microsoft
Опубликован: 13.11.2010 | Уровень: для всех | Доступ: платный | ВУЗ: Санкт-Петербургский государственный университет
Лекция 2:

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

< Лекция 1 || Лекция 2: 1234 || Лекция 3 >
Аннотация: В лекции дан исторический обзор ОС, как зарубежных, так и отечественных (ОС ДИСПАК, ОС "Эльбрус" и др.). Рассмотрены основные режимы работы пользователей и заданий в ОС (пакетный, мультипрограммирование, разделение времени).
Ключевые слова: ПО, mainframe, компьютер, физический адрес, внешнее устройство, интерфейс, пользователь, место, адрес, автоматизация, системные программы, автор, программа, запуск, печатающее устройство, режим доступа, ATLAS, Multics, IBM, мультипрограммирование, batch mode, пакет заданий, time sharing, пользовательский процесс, параллельный процесс, ассемблер, Unix, UNI, файл, Си, язык высокого уровня, компилятор, PDP, целый, килобайт, RSX-11, Паскаль, микропроцессор, операционная система, CP/M, фирма, DOS, x86, командный язык, MS-DOS, меню, GUI, Windows, workgroup, windows 95, Plug-in, поддержка, server, Windows Vista, android, billing, SVR4, SUN Microsystems, &-параллелизм, синхронизация процессов, NFS, silicon, SGI, HP-UX, DEC, equipping, corporate, outsourcing, эффективность алгоритма, SUN, программное обеспечение, прикладная математика, Алгол, страничная организация, надежность, разработка программного обеспечения, слово, операции, вход в процедуру, создание процесса, виртуальная память, память, массив, архитектура компьютера, job, control language, язык управления заданиями, копирование, вывод, алгоритм, распределение памяти, параграф, процессор, центральный процессор, печать, дисплей, управление заданиями, загрузка, диск, исполнение, поиск, режим разделения времени, архитектура, пакетный режим, динамическое выделение памяти, динамическая, управление процессами, эволюция, серверная ОС, software, distribution, BSD, system, release, Oracle, Graphics, digital, swapping

Презентацию к данной лекции Вы можете скачать здесь.

Введение

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

История ОС

В ранних mainframe-компьютерах (1940-1950 гг.), первым из которых был компьютер ENIAC (1947 г., США), операционные системы отсутствовали. Обращение к памяти в этих компьютерах осуществлялось по реальным (физическим) адресам, а обращение к внешним устройствам (например, к устройству ввода с перфокарт или накопителю на магнитной ленте) осуществлялось специальными командами, также по физическим адресам. Подобные компьютеры были весьма громоздкими, каждый из них занимал большой зал, в котором пользователи по очереди работали на компьютере, используя столь неудобный интерфейс, как инженерный пульт. Каждый пользователь перед уходом "с машины" (как тогда говорили) останавливал и "обнулял" ее нажатием кнопок на пульте и уступал место следующему пользователю, который вводил свою программу и данные с перфокарт или перфоленты, набирал ее начальный адрес тумблерами на пульте и запускал ее с помощью специальной кнопки. При любом сбое или ошибке в программе, в ситуации приходилось разбираться, изучая комбинации лампочек на пульте, воспроизводящие в двоичном виде содержимое регистров.

Разумеется, подобный способ взаимодействия с компьютером был очень неудобен. Требовалась хотя бы минимальная автоматизация. Для этого в 1950-х – 1960-х гг. – были созданы диспетчеры (dispatchers) - предшественники ОС, системные программы, управлявшие прохождением пакета задач, вводимых с перфокарт. Например, такой диспетчер (названный ДМ-222) использовался на ЭВМ М-222 в середине 1970-х гг., на котором студенты мат-меха, в том числе и автор курса, пропускали свои студенческие задания. Выглядело это следующим образом. Студент писал свою программу (или исправления к ней – так называемую "добивку") на специальных бланках и сдавал в перфорацию, затем получал перфокарты и отдавал колоду перфокарт с программой оператору машинного зала. Через несколько часов он мог рассчитывать получить результаты своей программы – колоду перфокарт обратно и распечатку результатов. В машинном зале оператор вводил очередное задание с перфокарт. Программа- диспетчер копировала образ введенной колоды перфокарт с заданием на ленту ввода, на которой хранились все образы заданий в хронологическом порядке их ввода, независимо от требуемых для них ресурсов – времени и объема памяти. Диспетчер осуществлял запуск заданий по очереди, по принципу FIFO (First-In-First-Out) – в порядке поступления. Выбирая из очереди некоторое задание, диспетчер размещал его в памяти и запускал. По окончании задания (или при его прерывании вследствие ошибки) на печатающее устройство выдавалась распечатка результатов. Затем управление передавалось следующему заданию. Такой режим доступа к компьютеру был, конечно, гораздо удобнее, чем работа с пульта. Недостатки его в том, что, во-первых, программы пропускались по очереди (отсутствовала одновременная обработка нескольких заданий), во-вторых, ресурсы, требуемые для выполнения задания, никак не учитывались, и программа, требующая для выполнения всего 1 мин., должна была ожидать завершения большой задачи, требовавшей для выполнения, например, пяти часов, - только потому, что последняя была раньше введена в систему.

В 1960-х – 1970-х гг. были разработаны классические операционные системы, которые все более и более усложнялись. Все более сложными становились их системы файлов и другие компоненты ОС. Наиболее известные из операционных систем этого периода: среди зарубежных - ATLAS, MULTICS, OS IBM/360, среди отечественных – ОС ДИСПАК для ЭВМ БЭСМ-6. Для классических операционных систем были характерны следующие основные возможности:

  1. мультипрограммирование (multi-programming) – одновременная обработка нескольких заданий;
  2. пакетная обработка (batch mode) – обработка пакета заданий, введенных с перфокарт или с терминалов, с учетом их приоритетов и требуемых ресурсов
  3. разделение времени (time sharing) – параллельная работа нескольких пользователей с терминалов (телетайпов или дисплеев), управлявших прохождением своих заданий, выполнявших их ввод в текстовых редакторах, компиляцию, выполнение и отладку;
  4. управление процессами – параллельное (или попеременное, если компьютер был однопроцессорным) выполнение пользовательских процессов; возможность явного запуска параллельного процесса.

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

Первая мобильная ОС была разработана в 1970 г. Брайаном Керниганом и Кеном Томпсоном в фирме AT & T и получила название UNIX. Даже в самом ее названии заложено своего рода противопоставление MULTICS (multi - много, uni – один) – последняя известна своей усложненностью. Этим названием авторы подчеркивали основную идею UNIXунификацию и упрощение представления файлов и операций над ними (в UNIX файл – это последовательность байтов), пользовательских программ и процессов. Унифицированным, не зависимым от целевой аппаратной платформы, был также исходный код UNIX, который был полностью написан на специально разработанном новом языке Си (основными авторами Си, как и UNIX, являются Б. Керниган и Д. Ритчи). Использование языка высокого уровня для разработки UNIX было революционным шагом в истории ОС и позволило, во-первых, значительно ускорить и облегчить разработку, во-вторых – перенести UNIX на многие модели компьютеров (для которых при этом, разумеется, необходимо было разработать компилятор с языка Си). Впервые система UNIX была использована в 1970 г. на миникомпьютере PDP-10. Компьютеры фирмы PDP образца начала 1970-х гг. принято относить к классу миникомпьютеров. Хотя данное название с современной точки зрения не вполне правомерно: такой компьютер занимал ... два небольших шкафа, по сравнению с mainframe-компьютером образца 1960-х гг., занимавшим целый зал. Объем оперативной памяти миникомпьютеров составлял всего порядка 32 килобайт (!). Однако на них успешно работала ОС UNIX (были и другие ОС – например, RSX-11), был компилятор с языка Паскаль, была реализована удобная система файлов и программа для работы с ними, были доступны математические библиотеки программ.

В начале 1980-х годов появились персональные компьютеры. Операционные системы для них фактически повторили в своем развитии операционные системы для компьютеров общего назначения: в них были использованы аналогичные идеи и методы. Однако первые персональные компьютеры были менее мощными, чем mainframes, как по объему памяти, так и по быстродействию и разрядности микропроцессора. Первый распространенный микропроцессор фирмы Intel был 8-разрядным, и для него была разработана также 8-разрядная операционная система CP/M. В 1975 г. была создана фирма Microsoft, и одной из ее первых разработок была 16-разрядная операционная система MS DOS для персональных компьютеров с процессорами Intel 8086 (или, коротко, x86). В командном языке MS-DOS чувствуется явное влияние UNIX, однако MS-DOS предоставляет гораздо меньшие возможности командного языка.

В начале 1980-х гг. фирма Apple выпустила персональные компьютеры Lisa и Macintosh с операционной системой MacOS. Ее характерной чертой была реализация удобного графического пользовательского интерфейса (GUI) в виде окон, меню, "иконок" и многих других элементов GUI, к которым мы с Вами ныне так привыкли. MacOS стала первой ОС с развитой поддержкой GUI (для сравнения, MS-DOS предоставляла возможности работы непосредственно на командном языке).

В конце 1980-х - начале 1990-х гг., под влиянием MacOS, Microsoft разработала графическую оболочку Windows над операционной системой MS-DOS. Первая версия Windows, таким образом,еще не была операционной системой; она запускалась командой win из командного языка MS-DOS. Однако многие современные черты GUI, характерного для Windows, ставшие "родными" для пользователей Windows, в ней уже присутствовали. Затем были выпущены Windows 3.x и Windows for Workgroups (уже операционные системы), в 1995 г. – Windows 95 (с развитыми мультимедийными возможностями, большим набором встроенных драйверов для различных устройств и поддержкой механизма Plug-and-Play подключения нового устройства без остановки компьютера) и Windows NT с развитыми сетевыми возможностями и повышенной надежностью. Именно Windows NT стала основой для последующего развития Windows. В настоящее время наиболее популярными моделями Windows являются Windows XP (поддержка которой фирмой Microsoft уже завершается – система выпущена в 2001 г.), Windows 2003 Server, Windows Vista, Windows 2008 Server и Windows 7.

В начале 1990-х гг. появилась первая версия ОС Linux (ОС типа UNIX с открытыми исходными кодами ядра), которая постепенно приобрела значительную популярность, но, главным образом, используется на серверах. Большинство клиентов (пользователей) в мире предпочитают на своих компьютерах Windows или MacOS (заметим, что, например, в США и Канаде компьютеры Macintosh более популярны, чем Windows-машины с процессорами Intel или их аналогами).

Не будем также забывать, что в ответ на такой, на первый взгляд, простой вопрос: "Какая ОС самая популярная в мире?" даже сотрудники Microsoft не отвечают "Windows". Дело в том, что наиболее популярными в мире компьютерными устройствами являются не настольные или портативные компьютеры, а более дешевые и компактные мобильные телефоны, для которых пока первенство удерживает специализированная ОС семейства Symbian, которая, в частности, используется в большинстве мобильных телефонов крупнейшей фирмы Nokia. Операционную систему Symbian активно догоняет на рынке ОС для мобильных устройств новая ОС Google Android. Так что, операционные системы семейства Windows по своей распространенности оказываются лишь на втором месте.

Диалекты UNIX

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

  • Berkeley Software Distribution (BSD), в настоящее время – FreeBSD (University of Berkeley) – один из наиболее известных диалектов UNIX, разработанный в Университете Беркли, США. В нем впервые были реализованы сетевые сокеты. Именно этот диалект был положен в основу первой версии ОС Solaris фирмы Sun (Solaris 1.x) при ее создании в 1982 г. Один из авторов данного диалекта – Билл Джой (Bill Joy), один из четверых легендарных создателей фирмы Sun.
  • System V Release 4 (SVR4) – диалект UNIX, разработанный в фирме AT&T. Для него наиболее характерны расширенные возможности параллельного многопоточного программирования (multi-threading). Данный диалект был положен в основу второй версии ОС Solaris (Solaris 2.x) фирмы Sun в начале 1990-х годов.
  • Linux (RedHat, SuSE, Mandrake, Caldera, Debian, Fedora и др.) – ОС типа UNIX со свободно распространяемым с исходными кодами ядром. Первая версия Linux была разработана в начале 1990-х гг. В настоящее время диалекты Linux активно используются как серверные ОС (ОС, управляющие работой всевозможных серверов), а также как основа для разработки ОС для мобильных устройств.
  • Solaris (Sun Microsystems, ныне – Oracle / Sun) – один из наиболее известных и развитых диалектов UNIX. Имеет удобную графическую оболочку, развитые средства параллелизма и синхронизации процессов, удобные сетевые возможности (в частности, классическую сетевую файловую систему NFS), ряд новых оригинальных файловых систем (в частности, ZFS – файловая система с большим размером файлов и возможностью криптования информации). В настоящее время распространяется ОС Solaris 10.
  • IRIX (Silicon Graphics) – диалект UNIX, разработанный фирмой Silicon Graphics (SGI), США, широко известным производителем графических рабочих станций.
  • HP-UX (Hewlett-Packard) – диалект UNIX, разработанный и используемый одной из крупнейших "акул" в мире ИТ – фирмой Hewlett-Packard.
  • Digital UNIX (DEC) – диалект UNIX, разработанный в начале – середине 1990-х гг. фирмой Digital Equipment Corporation (DEC), впоследствии приобретенной фирмой Compaq. Первая версия UNIX, поддерживавшая 64-разрядные процессоры.
< Лекция 1 || Лекция 2: 1234 || Лекция 3 >
Василий Четвертаков
Василий Четвертаков
Владислав Нагорный
Владислав Нагорный

Подскажите, пожалуйста, планируете ли вы возобновление программ высшего образования? Если да, есть ли какие-то примерные сроки?

Спасибо!

Константин Леденев
Константин Леденев
Россия
Олег Равков
Олег Равков
Россия