Файл: Курс лекций по дисциплине Операционные системы 2 Содержание.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 28.03.2024

Просмотров: 48

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

7
После безуспешных усилий Бэббиджа прогресс в конструировании цифровых компьютеров практически не наблюдался вплоть до Второй мировой войны, которая стимулировала взрывную активизацию работ на ними. Разработки вели Джон Атанасов,
Клиффорд Бери, Конрад Цузе (Z3), Говард Айкен (Марк I); Вильям Молчли, Джон
Преспер Эккерт (Эниак).
В те времена каждую машину и разрабатывала, и строила, и программировала, и эксплуатировала, и поддерживала в рабочем состоянии одна команда. Все программирование выполнялось на абсолютном машинном языке, управление основными функциями машины осуществлялось за счет сборки электрических схем, а для управления основными функциями машины приходилось подключать к коммутационным панелям тысячи проводов. Тогда ещѐ не были известны языки программирования (даже ассемблера не было). Об операционных системах никто и не слышал.
Второе поколение (1955-65): транзисторы и системы пакетной обработки
В середине 50-х гг изобретение и применение транзисторов радикально изменило всю картину. Компьютеры стали достаточно надежными, появилась высокая вероятность того, что машины будут работать довольно долго, выполняя при этом полезные функции.
Впервые сложилось четкое разделение между проектировщиками, сборщиками, операторами, программистами и обслуживающим персоналом.
Чтобы выполнить задание (то есть программу или комплект программ), программист сначала должен был записать его на бумаге (на Фортране или ассемблере), а замет перенести на перфокарты. Способом повышения эффективности использования машинного времени стала система пакетной обработки.
Большие компьютеры второго поколения использовались главным образом для научных и технических вычислений, таких как решение дифференциальных уравнений в частных производных, часто встречающихся в физике и инженерных задачах. В основном программы для них составлялись на языке Фортран и ассемблере, а типичными ОМ были
FMS (Fortran Monitor System) и IBSYS (ОС, созданная корпорацией IBM для компьютеров
IBM 7094).
Третье поколение (1965-1980): интегральные схемы и многозадачность
К началу 60-х гг большинство производителей компьютеров имело два различных, несовместимых друг с другом семейства. С одной стороны, это были огромные научные компьютеры с пословной обработкой данных типа IBM 7094, которые использовались для числовых расчетов в науке и технике, с другой – коммерческие компьютеры с посимвольной обработкой данных, такие как IBM 1401, широко используемые банками и страховыми компаниями для задач сортировки и распечатки данных. Развитие и поддержка двух совершенно разных семейств была для производителей весьма расточительным делом. Кроме того, многим новым покупателям сначала нужна была небольшая машина, однако позже еѐ возможностей становилось недостаточно и требовался более мощный компьютер, который работал бы с теми же самыми программами, но значительно быстрее.
Фирма IBM попыталась решить эти проблемы разом, выпустив серию машин IBM
System/360. Это была серия программно-совместимых машин, в которой компьютеры варьировались от машин, сопоставимых с IBM 1401, до машин, значительно более мощных, чем IBM 7094. Так как все машины имели одинаковую структуру и набор коанд, порграммы, написанные для одного компьютера, могли работать на всех других.
Появилась первая операционная система OS/360. По существу она представляла собой разновидность системы пакетной обработки. Многие программисты тосковали по первому поколению машин, когда они могли распоряжаться всей машиной и имели возможность быстро отлаживать свои программы. При системах третьего поколения временной промежуток составлял несколько часов, так что единственная неуместная запятая могла стать причиной сбоя при компиляции, и получалось, что программист тратил впустую половину дня. Самым важным достижением явилась многозадачность.


8
Память разбивалась на несколько частей, называемых разделами, в каждом из которых выполнялось отдельное задание. Пока одно задание ожидало завершения работы устройства ввода-вывода, другое могло использовать ЦП. Если в ОП содержалось достаточное количество заданий, ЦП мог быть загружен почти на все 100% времени.
Множество одновременно хранящихся в памяти заданий требовало наличия специального оборудования для защиты каждого задания о возможного незаконного присваивания областей памяти и нанесения вреда со стороны других заданий.
Другим важным плюсом ОС третьего поколения стала способность считывать задание с перфокарт на диск по мере того, как приносили в машинный зал. При окончании выполнения текущего задания ОС могла загружать новое задание с диска в освободившийся раздел памяти и запускать это задание. Этот технический прием называется «подкачкой» данных, или спулингом.
Желание сократить время ожидания ответа привело к разработке режима
разделения времени, варианту многозадачности, при котором у каждого пользователя есть свой диалоговый терминал. Первая серьезная система с режимом разделения времени
CTSS (Compatible Time Sharing System – Совместимая система разделения времени) была разработана в Массачусетском технологическом институте на специально переделанном компьютере IBM 7094. Bell Labs и корпорация General Electric разработали
«компьютерное предприятие общественного пользования» - MULTICS (MULTiplexed
Information and Computing Service – мультиплексная информационная и вычислительная служба).
Увеличился выпуск мини-компьютеров. Кен Томпсон, работавший над проектом
MULTICS, впоследствии нашел мини-компьютер PDP-7 и написал усеченную однопользовательскую версию системы MULTICS. Эта работа позже развилась в ОС
UNIX, ставшую популярной в академическом мире, в правительственных управлениях и во многих компаниях. По причине широкой доступности исходного кода различные организации создали свои собственные версии, что привело к хаосу. Чтобы стало возможным писать программы, работающие в любой UNIX-системе, Институт инженеров по электротехнике и электронике IEEE разработал стандарт системы UNIX, называемый
POSIX, который теперь поддерживают большинство версий.
В 1987 г. Таненебаум создал маленький клон системы UNIX для образовательных целей, так называемую систему MINIX. Функционально она похода на UNIX, включая поддержку стандарта POSIX. Желание иметь свободно распространяемую рабочую (в противоположность образовательной) версию MINIX подвигло финского студента Линуса
Торвальдса к написанию системы Linux.
Четвертое поколение (с 1980 года по наши дни): персональные компьютеры
Появились БИС. В 1974 году, когда компания Intel выпустила Intel 8080 – первый универсальный 8-разрядный центральный процессор, - для него потребовалась ОС, с помощью которой можно было бы протестировать новинку. Компания Intel привлекла
Гэри Килдэлла. Он создал дисковую ОС, названную CP/M (Control Program for
Microcomputers – программа управления для микрокомпьютеров).
В начале 80-х корпорация IBM разработала IMB PC и разработку поручили Биллу
Гейтсу. Он выяснил, что у местного изготовителя компьютеров Seattle Computer Products, есть подходящая ОС DOS (Dick Operating System – дисковая ОС). Гейтс еѐ выкупил и создал пакет программ DOS/BASIC, и пакет был выкуплен IBM. Когда корпорация IMB захотела некоторых усовершенствований в программе, Билл Гейтс пригласил для этой
Тима Паттерсона, человека написавшего DOS, ставшего первым служащим компании
Гейтса Microsoft. Видоизмененная система была переименована в MS DOS и быстро заняла лидирующее место.
CP/M, MS DOS полностью основывались на вводе команд с клавиатуры. Затем, благодаря исследованиям, проведенным в 60-е годы Дагом Энгельбертом был разработан графический интерфейс пользователя (GUI, Graphical User Interface), состоящий из окон,


9 значков, различных меню и мыши. Эту идею переняли разработчики из Xerox PARC и строили в сконструированные ими машины. Стив Джобс приступил к созданию Apple с графическим интерфейсом, но из-за дороговизны этот проект провалился. Вторая попытка
– Macintosh Apple имела огромный успех.
Корпорация Microsoft разработала преемника MS DOS – Windows, базой для которой послужил GUI. Windows работала поверх MS DOS. Однако в 1995 году вышла в свет автономная версия Windows 95. Она включила в себя множество особенностей ОС
MS DOS, но только для загрузки выполнения старых программ. В 1998 году была выпущена Windows 98.
Другой ОС Microsoft стала Windows NT (New Technology), ядро которой было написано заново. Это целиком 32-разрядная система. Версия Windows NT 5.0 была переименована в Windows 2000. Она должна была стать преемником и Windows 98, и
Windows NT, но этому не было суждено случиться и Microsoft выпустила еще одну версию Windows 98, названную Windows Me (Millennium edition – выпуск тысячелетия). В
2001 году была выпущена слегка обновленная версия Windows 2000, названная Windows
XP. Затем, в январе 2007 года, Microsoft выпустила окончательную версию преемника
Windows XP под названием Vista. У нее был новый графический интерфейс, Aero, и множество новых или обновленных пользовательских программ.
Главным соперником Windows в мире персональных компьютеров становится система UNIX. UNIX является самой сильной системой для рабочих станций и других компьютеров старших моделей, таких как сетевые серверы. На компьютерах с процессорами Pentium популярной альтернативой стала Linux.
С середины 80-х гг начали расти и развиваться сети ПК, управляемых сетевыми ОС.
В сетевой ОС пользователи знают о существовании многочисленных компьютеров, могут регистрироваться на удаленных машинах и копировать файлы с одной машины на другую.
Каждй компьютер работает под управлением локальной ОС и имеет своего собственного локального пользователя.
3. Аппаратное обеспечение компьютера
ОС тесно связана с аппаратным обеспечением компьютера, на котором она работает.
Она расширяет набор команд компьютера и управляет его ресурсами.
Рис. 2. Некоторые компоненты простого персонального компьютера
ЦП выбирает команды из памяти и выполняет их. Для каждого типа ЦП существует свой определенный набор команд, которые он может выполнять. Поэтому Pentium не может выполнять программы, написанные для SPARC-процессоров.
Для повышения производительности процессоров их разработчики давно отказались о простой модели извлечения, декодирования и выполнения одной команд за один цикл.
Многие современные процессоры способны одновременно выполнять более одной команды. Например, у процессора могут быть отдельные блоки для выборки,


10 декодирования и выполнения команд, тогда во время выполнения команды n он сможет декодировать команду n+1 и осуществить выборку команды n+2. Подобная организация работы называется конвейером.
Рис. 3. Конвейер с тремя стадиями (а); суперскалярный процессор (б)
Более совершенной конструкцией, по сравнению с конвейерной, обладает суперскалярный процессор, показанный на рис. 3 б. Он имеет несколько исполнительных блоков: например, один – для целочисленной арифметики, другой – для арифметики чисел с плавающей точкой, а третий – для логических операций. Одновременно выбираются две и более команды, которые декодируются и помещаются в буфер хранения, в котором ожидают возможности своего выполнения. Как только исполнительный блок освобождается, он обращается к буферу хранения за командой, которую он может выполнить, и если такая команда имеется, он извлекает еѐ из буфера, а затем выполняет.
Возрастание количества транзисторов на одном кристалле позволяет размещать на кристалле ЦП более объемной кэш-памяти, многопоточность. Дублируются не только функциональные блоки, и но и части управляющей логики. Такие свойства, присущие процессору Pentium 4 и некоторым другим МП, называются многопоточностью или
гиперпоточностью. В первом приближении эта технология позволяет процессору сохранять состояние двух различных потоков и осуществлять переключения между ними за наносекунды. Многопоточность не предполагает настоящей параллельной обработки данных. Одновременно работает только один процесс, но время переключения между процессами сведено до наносекунд.
Многопоточность оказывает влияние на ОС, т.к. каждый поток предстает перед ней как отдельный ЦП. Представим себе систему с двумя реальными процессорами, у каждого из которых организовано по два потока. ОС будут видны четыре процессора. Если в какой-то момент времени у ОС найдутся задачи для загрузки только двух процессоров, она может непреднамеренно направить оба потока на один и тот же реальный процессор, а другой будет в это время простаивать. Эффективность такого режима работ намного ниже, чем использование по одному потоку на каждом реальном ЦП. В архитектуре преемника Pentium 4, процессора Core (и Core 2), гиперпоточность отсутствует, но Intel объявила, что следующие за Core процессоры вновь обретут это свойство.
Кроме процессоров с многопоточностью, существует процессоры, содержащие на одном кристалле два, четыре и более дополнительных процессоров, или ядер. Например, четырехъядерные процессоры, показанные на рис., фактически имеют в своем составе четыре мини-чипа, каждый из которых представляет собой независимый процессор.


11
Память.
Рис. Типичная иерархия памяти. Приведенные значения весьма приблизительны
Устройства ввода-вывода.
4. Типы ОС
4.1. ОС мэйнфреймов (больших универсальных машин)
Эти компьютеры размером с комнату все еще можно встретить в центрах данных больших корпораций. Мейнфреймы как бы возвращаются в виде мощных web-серверов, серверов для крупномасштабных электронно-коммерческих сайтов и серверов для транзакций в бизнесе. ОС для мейнфреймов в основном ориентированы на обработку множества одновременных заданий, большинству из которых требуется огромное количество операций ввода-вывода. Обычно они предлагают три вида обслуживания: пакетную обработку, обработку транзакций (групповые операции) и разделение времени. пакетная обработка представляет собой систему, выполняющую стандартные задания без присутствия пользователей, работающих в интерактивном режиме. Системы обработки транзакций управляют очень большим количеством маленьких запросов, например, контролирует процесс работы в банке. Системы, работающие в режиме разделения времени, позволяют множеству удаленных пользователей одновременно выполнять свои задания на одно машине. Примером ОС для мейнфреймов является OS/390, произошедшая от OS/360.
4.2. Серверные ОС
Они работают на серверах, которые представляют собой или очень большие ПК, или рабочие станции, или даже мейнфреймы. Они одновременно обслуживают множество пользователей и позволяют им делить между собой программные и аппаратные ресурсы.
Серверы предоставляют возможность работы с печатающими устройствами, файлами и
Интернетом. UNIX и Windows 200 являются типичными серверными ОС. Теперь в этих целях стала использоваться и ОС Linux.
4.3. Многопроцессорные ОС
Для многопроцессорных систем требуются специальные ОС, но зачастую такие ОС представляют собой варианты серверных ОС со специальными возможностями связи.

12
4.4. ОС для ПК
Их работа заключается в предоставлении удобного интерфейса для одного пользователя.
Наиболее яркие примеры – это Windows XP, Windows Vista, Linux.
4.5. ОС реального времени
Если некоторое действие должно произойти в конкретный момент времени (или внутри заданного диапазона времени), мы имеем дело с жесткой системой реального времени.
Существует и другой вид: гибкая система реального времени, в которой допустимы случающиеся время от времени пропуски выполнений операций. В эту категорию попадают цифровое аудио и мультимедийные системы. Системы VxWorks и QNX являются ОС реального времени.
4.6. Встроенные ОС
Карманный компьютер или PDA (Personal Digital Assistant – персональный цифровой помощник) – это маленький компьютер, выполняющий небольшой набор функций.
Встроенные системы, управляющие действиями устройств, работают на машинах, обычно не считающихся компьютерами, например, в телевизорах, микроволновых печах, мобильных телефонах. Примерами таких ОС являются Palm OS, Windows CE (Consumer
Electronics – бытовая техника).
4.7. ОС для смарт-карт
Самые маленькие Ос работают на смарт-мегах, представляющих собой устройство размером с кредитную карту, содержащие ЦП.
5. Понятия ОС
5.1. Процессы
Большинство ЦП имеют два режима работы: режим ядра и пользовательский режим. Если процессор запущен в режиме ядра, он может выполнять все команды из набора инструкций и использовать все возможности аппаратуры. ОС работает в режиме ядра, предоставляя доступ ко всему оборудованию.
В противоположность этому программы пользователей работают в пользовательском режиме, разрешающем выполнение подмножества команд и делающим доступным лишь часть аппаратных средств. Как правило, все команд, включая ввод-вывод данных и защиту памяти, запрещены в пользовательском режиме. Установка бита режима ядра в регистре
PSW, естественно, недоступна.
Для связи с ОС пользовательская программа должна сформировать системный вызов, который обеспечивает переход в режим ядра и активизирует функции ОС. После завершения работы управление возвращается к пользовательской программе, к команде. следующей за системным вызовом.
Процессом называют программу в момент выполнения. С каждым процессом связывается его адресное пространство – список адресов в памяти от некоторого минимума до некоторого максимума, которые процесс может прочесть и в которые он может писать.
Адресное пространство содержит саму программу, данные к ней и еѐ стек. Со всяким процессом связывается некий набор регистров, включая счетчик команд, указатель стека и другие аппаратные регистры, плюс вся остальная информация, необходимая для запуска программы.
Во многих ОС вся информация о каждом процессе, дополнительная к содержимому его собственного адресного пространства, хранится в таблице операционной системы -
таблице процессов и представляет собой массив (или связанный список) структур, по одной на каждый существующий в данный момент времени процесс.