Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
пи_ответы.docx
Скачиваний:
8
Добавлен:
22.01.2023
Размер:
425.73 Кб
Скачать

20. Временная диаграмма работы системы и по.

В сложной технической системе параллельно протекают сразу несколько физических процессов управления. Например, в летательном аппарате нужно управлять ориентацией трёх осей в пространстве одновременно. Эти физические процессы управления должны соответствовать параллельно работающим программам в бортовой ЦВМ.

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

Временная диаграмма работы системы и ПО является наглядным представлением параллельно работающих программ с их взаимодействием во времени. На её основе можно организовывать многозадачную работу ПО и выбирать подходящую ОС реального времени.

Временную диаграмму можно построить не только для СТС, но и для какой-нибудь стандартной информационной системы. У неё тоже вполне могут быть параллельно выполняемые процессы, которые можно наглядно отобразить на диаграмме.

Системное программное обеспечение

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

Таненбаум — Современные операционные системы

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

Понятие операционной системы как расширенной (виртуальной) машины исходит из того, что ОС определяет и предоставляет пользовательскому слою простые, понятные, неизменные и элегантные абстракции над аппаратным обеспечением. Изначально писать программы без этого слоя абстракций очень тяжело, так как зачастую АО имеет очень сложный интерфейс для управления им. Например, мануал для работы с SATA диском в 2007 году содержал свыше 450 страниц. В нём содержалось описание дискового интерфейса для использования диска в программах на компьютере. Современные ОС скрывают это под абстракциями. Для приведённого примера это будет файловая система. Таким образом, при написании прикладных программ в режиме пользователя мы всё ещё можем взаимодействовать с «железом» и управлять им, но уже через удобный интерфейс. ОС, в таком случае, становится виртуальной или расширенной машиной над сложными аппаратными интерфейсами.

Ещё есть понятие виртуальной ОС, которая установлена и работает в виртуальной машине, которая создаётся прикладным ПО для виртуализации, но эта песнь из другой оперы.

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

Первый настоящий цифровой компьютер был изобретён английским математиком Чарльзом Бэббиджем (Charles Babbage, 1792–1871). Это была чисто механическая аналитическая машина, которую он так и не смог заставить работать должным образом (из-за недостатка сложных деталей высокой точности). Эта машина реально работает, и она была воссоздана позднее. Для программирования аналитической машины Бэббиджем был нанят первый в мире программист — Ада Лавлейс (Ada Lovelace).

Первое поколение (1945–1955): электронные лампы.

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

  • Университет штата Айовы. Профессор Джон Атанасов и его аспирант Клиффорд Берри создали первый действующий цифровой компьютер на основе 300 электронных ламп.

  • Берлин. Конрад Цузе построил компьютер Z3, основанный на электромеханических реле.

  • Блетшли Парк (Великобритания), 1944 г. Группа учёных, включая Алана Тьюринга, построили и запрограммировали компьютер «Колоссус».

  • Гарвард. Говард Айкен построил «Марк I».

  • Университет штата Пеннсильвания. Уильям Мочли и его аспирант Джон Преспер Эккерт построили компьютер «Эниак».

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

Второе поколение (1955–1965): транзисторы и системы пакетной обработки.

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

Для упрощения передачи заданий на выполнение был совершён переход к системе пакетной обработки. Он заключался в записи целого подноса заданий из перфокарт на магнитную ленту с помощью другого недорогого компьютера, например IBM 1401, после чего магнитная лента устанавливалась на лентопротяжном устройстве основной вычислительной машины, например дорогостоящей IBM 7094. На мейнфрейм загружалась программа, являющаяся прообразом современной операционной системы, она последовательно считывала задания с ленты и выполняла их беспрерывно. Результат работы машины записывался на вторую магнитную ленту, которая после окончания работы относилась на автономную печать при помощи того же IBM 1401.

Программы писались на перфокартах на языке Фортран и ассемблере, а типичными операционными системами были FMS (Fortran Monitor System) и IBSYS (ОС от IBM для IBM 7094).

Третье поколение (1965-1980): интегральные схемы и многозадачность.

Изобретение интегральной схемы, содержащей сотни миллионов транзисторов на кристалле, положило начало бурному росту использования компьютеров. В этот период появились первые мейнфреймы на этой технологии: IBM/360, советская ЕС ЭВМ.

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

Очень важное событие произошло в этот период. Различные исследовательские лаборатории (MIT, Bell Labs, General Electric) объединились для того, чтобы разработать многопользовательскую мультиплексирующую процессы операционную систему для огромной вычислительной машины, которая работала бы для граждан целых городов (своего рода прообраз современных облачных вычислений). Данная система называлась MULTICS (MULTiplexed Information and Computing Service). Она была действительно доведена до работоспособного состояния и даже функционировала в некоторых университетах, компаниях и Агентстве национальной безопасности США. Данная система была упрощена для однопользовательского использования впоследствии Кеном Томпсоном и легла в основу операционной системы UNIX. На основе UNIX, в свою очередь, были разработаны другие популярные ОС (System V или BSD). Впоследствии был создан надёжный клон системы UNIX под названием MINIX (одним из главных авторов является Таненбаум), а стремление создать свободно распространяемую версию этой системы привело финского студента Линуса Торвальдса к созданию Linux.

Четвёртое поколение (с 1980 года по наши дни): персональные компьютеры.

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

Введение в программную инженерию

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]