Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Операционные системы.docx
Скачиваний:
6
Добавлен:
24.11.2018
Размер:
102.5 Кб
Скачать

Операционные системы, среды и оболочки (ОССиО)

Лекция 1.

Преподаватель – Осьмин Владимир Вячеславович – экзамен

В начале занятия – тест

Введение в операционные системы

Монография Дэйтла – автор – ОС

ОС – набор программ, который обеспечивает возможность использования аппаратуры компьютера. При этом аппаратура компьютера представляет собой «сырую» вычислительную мощность. Задача ОС заключается в том, чтобы сделать аппаратуру доступной и по возможности удобной для пользователя. ОС обеспечивают так же рациональное и координированное управление аппаратурой для достижения высокой производительности.

Функции ОС:

1. Определяет пользовательский интерфейс

2. планирует доступ пользователей.

3. обеспечивает аппаратное разделение ресурсов между пользователями.

4. дает возможность работать с общими данными

5. обеспечивает эффективное выполнение операций ввода-вывода (I-O)

6. осуществляет восстановление информации и вычислительного процесса в случае ошибок.

ОС управляет следующими ресурсами:

  1. Процессорами

  2. Памятью

  3. Устройствами I-O

  4. Данными

  • Возникновение ОС

ОС подобно аппаратуре компьютеров на пути своего развития прошли через ряд радикальных изменений, так называемых поколений. Для аппаратных средств смена поколений связана с принципиальными достижениями в области электронных компонентов. В начале ЭВМ строились на электронных лампах. Затем на транзисторах, потом на интегральных микросхемах, позже на больших и сверхбольших интегральных схемах. Появление каждого из этих поколений аппаратных средств сопровождалось резким уменьшением стоимости, габаритов, потребляемой мощности и тепловыделения. И столь же резким повышением быстродействия и объемов памяти.

  • Нулевое поколение (40-е годы)

В первых вычислительных машинах ОС не было. Пользователи имели полный доступ к машинному языку, и все программы писали непосредственно в машинных кодах. Не было никакого системного ПО, кроме библиотек математических и служебных подпрограмм, которые программист мог использовать для того, чтобы не писать каждый раз коды, вычисляющие значение какой-либо математической функции или управляющие стандартным устройством I-O. Все задачи организации вычислительного процесса решались вручную. Схема работы машин в таком случае выглядело как загрузка, работа, очистка.

Недостатки: загрузка вручную (с перфокарт) – большую часть времени процессор простаивал. Подготовительное и заключительное время машина фактически простаивала.

  • Первое поколение (50-е годы)

Считается, что первую ОС создала в начале 50-х годов для своих компьютеров IBM-701 исследовательская лаборатория фирмы General Motors. Поскольку ЦП долгое время простаивал – были разработаны первые системы пакетной обработки, которые предусматривали объединение отдельных задач в группы или пакеты. Запущенная в решение задача получала в свое полное распоряжение все ресурсы машины. После завершения каждой задачи управление ресурсами возвращалось ОСистеме.

Общая загрузка -> 1 выполняется -> очистка

2 выполняется -> очистка и т.д.

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

  • Второе поколение (начало 60-х годов)

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

Реализация мультипрограммирования потребовала внесения очень важных изменений в аппаратуру компьютера. Вывод – НТП

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

Третье поколение (середина 60-70-х годов)

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

  1. Компьютеры семейства System – 360 IBM – 1964 году фирма анонсировала новое семейство – важное событие в истории ОС. Было множество машин – пользователи хотели увеличить быстродействие. Эта концепция семейства совместимых компьютеров стала практически стандартной для всех фирм промышленности. Все компы у нас (PC) – IBM совместимые.

Четвертое поколение (середина 70-х до н.в.)

В начале 70-х годов появились первые сетевые ОС, которые позволяли не только рассредоточить пользователей, но и организовать распределенное хранение и обработку данных между некоторыми компьютерами, связанными электрическими связями. Компьютеры стали широко использоваться неспециалистами, что потребовало разработки дружественного ПО, и предоставление этих дружественных функций стало прямой обязанностью ОС. Поддержка сетевых функций стала для ОС ПК необходимым условием. Начала широко распространяться концепция виртуальных систем. Были разработаны стек и TCP/ip, становление интернета, стандартизация локальных сетей, появились специализированные ОС, которые предназначены исключительно для выполнения коммуникационных задач (маршрутизатор). Особое внимание уделялось корпоративным сетевым Ос. Их дальнейшее развитие представляет одну из наиболее важных задач и в обозримом будущем. КИС отличается способностью хорошо и устойчиво работать в крупных сетях, которые характерны для больших предприятий, имеющих отделение в десятках городов и возможно в разных странах. Таким сетям присуще высокая степень разнородности программных и аппаратных средств. Поэтому КИС должна беспроблемно взаимодействовать с ОС разных типов и работать на различных аппаратных платформах. При развитии ОС на первый план вышли средства обеспечения безопасности. Это связано с возросшей ценностью информации, обрабатываемой компьютерами, а так же с повышенным уровнем угроз, существующих при передаче данных по сетям, особенно по публичным сетям (internet).

  • Пятое поколение – тема доклада. Японцы придумали.

  • Разделение цен на аппаратуру и ПО

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

  1. Аппаратура и ПО.

Метод расслоения памяти (interliving) – применяется для увеличения доступа скорости основной (оперативной) памяти. В обычном случае во время обращения к какой-то одной из ячеек модуля основной памяти, никакие другие обращения к памяти производиться не могут. При расслоении памяти соседние по адресам ячейки размещаются в различных модулях памяти так, что появляется возможность производить несколько обращений одновременно. Например, при расслоении на 2 направления ячейки с нечетными адресами оказываются в одном модуле памяти, а с четными – в другом.

Регистр перемещения – обеспечивает возможность динамического перемещения программ в памяти. В регистр перемещения заносится базовый адрес программы, хранящийся в основной памяти. Содержимое регистра перемещения прибавляется к каждому указанному выполняемое программе адресу. Благодаря этому пользователь может писать программу так, как если бы она начиналась с нулевой ячейки памяти.

Фактический адрес = относительный адрес + регистр перемещений. От начала программы до переменной (в этой программе)

Прерывания и опрос состояний – одним из способов, позволяющих некоторому устройству проверить состояние другого, независимо работающего устройства является опрос. Прерывания дают возможность одному устройству немедленно привлечь внимания другого устройства с тем, чтобы первое могло сообщить об изменении своего состояния. Состояние устройства, работа которого прерывается должно быть сохранено, после чего производится обработка данного прерывания. После завершения обработки прерывания состояние прерванного устройства восстанавливается для продолжения работы.

Буферизация – буфер – область основной памяти, предназначенная для промежуточного хранения данных при выполнении операции I-O. При вводе с простой буферизацией канал помещает данные в буфер. Затем процессор обрабатывает эти данные, после чего канал помещают в следующие. В то время, когда канал заносит данные, обработка производиться не может. Во время обработки данных нельзя заносить дополнительные данные. Метод двойной буферизации позволяет совмещать выполнение операции I-O с обработкой данных.

Периферийные устройства – периферийные (внешние ЗУ) позволяют хранить громадные объемы информации вне основной памяти компьютера. Основная и внешняя память. Почему? Процессор обращается напрямую (кэш и основная). Внешняя – через посредника.

Таймер-часы – интервальный эффективный способ предотвращения монополизации процессора одним из пользователей в многоабонентских системах или одной из программ в мультипрограммных системах. По истечении заданного интервала времени таймер генерирует сигнал прерывания. Часы истинного времени дают возможность компьютеру следить за реальным календарным временем с точностью до миллионных долей секунды, а при необходимости даже точнее.

Защита памяти – это важное условие для нормальной работы многоабонентских и многопрограммных систем. Защита памяти ограничивает диапазон адресов, которые … защиту памяти для программы, занимающей непрерывный блок ячеек можно реализовать при помощи так называемых граничных регистров, где указываются старший и младший адреса этого блока памяти. При выполнении программы все адреса обращения к памяти контролируются, чтобы убедиться в том, что они находятся в промежутке между адресами, указанными в граничных регистрах. Защиту памяти можно реализовать при помощи ключей защиты, относящихся к определенным областям основной памяти. Т.е. программе разрешается обращение к ячейкам памяти только тех областей, ключи которых совпадают с ключом данной программы.

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

Относительная адресация – адрес от начала до определенного модуля или переменной до начала самой программы.

Часть памяти уходит на то, чтобы определить адрес программы (для флэшки) – память не соответствует. Лучше NTFS!!!

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

  • Режим задачи, режим супервизора и привилегированные команды.

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

Виртуальная память – система виртуальной памяти дают возможность указывать в программах адреса, которым не обязательно соответствуют физические адреса основной памяти. Виртуальные адреса, выдаваемые работающими программами. При помощи аппаратных средств динамически преобразуются в адрес команд данных, хранящихся в основной памяти. Системы виртуальной памяти позволяют программам работать с адресными пространствами гораздо большего размера, чем адресное пространство основной памяти! Они дают пользователям возможность создавать программы независимые от ограничения основной памяти.

Иерархия памяти – современные ЭВМ содержат несколько видом памяти в том числе основную (первичную, оперативную), внешнюю (вторичная, массовая) и кэш-память. Эти виды памяти создают единую иерархию. Переход по уровням этой иерархии от кэш-памяти к основной и затем к внешней памяти сопровождается уменьшением стоимости и скорости и одновременным увеличением емкости памяти. Каждая ячейка памяти имеет свой адрес. Множество адресов доступных программе называется адресным пространством.

Лекция 2. Управление процессами

Процесс – впервые начали применять разработчики системы multix в 60 годах. За прошедшее время термин процесс, используемый в ряде случаев таких, как синоним задачи получил много разных определений. Это программа в стадии выполнения, это асинхронная работа, это «живая душа» процедуры, это концентрация средств управления для выполняемой процедуры, это нечто, представленное в виде блока управления процессом в ОС, это объект, которому выделяются процессоры и другие.

Процесс имеет две стороны. С одной стороны это поток команд, с другой стороны – это адресное пространство. Процессы распадаются на нити. Нити – это когда потоки команд различны, а адресное пространство одинаково.

Состояние процесса.

В период своего существования процесс проходит через ряд дискретных состояний, и смену состояний процесса могут вызывать различные события. Говорят, что процесс выполняется, т.е. находится в состоянии выполнения, ели в данный момент ему выделен ЦП (центральный процессор). Говорят, что процесс готов, т.е. находится в состоянии готовности, если он мог бы сразу использовать ЦП, предоставленный в его распоряжение. Говорят, что процесс заблокирован, т.е. находится в состоянии блокировки, если он ожидает появления некоторого события, например, завершение операции I-O, чтобы получить возможность продолжать выполнение.

В однопроцессорной машине в каждый конкретный момент времени может выполняться только один процесс. Однако. Несколько процессов могут находиться в состоянии готовности и несколько в состоянии блокировки. Поэтому мы можем создать список готовых к выполнению процессов и список заблокированных процессов. Список готовых, как правило, упорядочен по приоритету. Список заблокированных процессов не упорядочен. Заранее не известно сколько времени понадобится на операцию I-O.

Переход процесса из состояния в состояние.

выполняется

блокирован

блокирование

Запуск

готов

Истечение кванта времени

Когда в систему поступает некоторое задание, она создает соответствующий процесс, который затем устанавливается в конец списка готовых процессов. Этот процесс постепенно продвигается и по мере завершения предыдущих процессов становится первым в очереди готовых.

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

При пробуждении: блокирован - > готов

При истечении кванта: выполняется – готов

При блокировании: выполняется – блокирован

При запуске: готов – выполняется

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

ЦП

Если выполняющийся процесс до истечения отпущенного ему кванта времени инициирует операцию ввода-вывода, то этот процесс тем самым добровольно освобождает ЦП. Таким образом, он сам себя блокирует в ожидании завершения указанной операции ввода-вывода. Кто блокирует процесс, который блокируется? НЕ ОС!!! Только процесс сам себя может заблокировать!!!!

Это единственная смена состояний (блокировка) инициируемая самим процессом, остальные три смены состояния инициируются объектами, внешними по отношению к данному процессу.

Блок управления процессом (БУП).

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

Операции над процессами

Создание процесса, уничтожение процесса, возобновление, изменение приоритета, блокирование, пробуждение, запуск и приостановка. Создание процесса состоит из следующих операций:

  1. Присвоение имени

  2. Включение этого имени в список имен процессов, известных системе

  3. Определение начального приоритета

  4. Формирование блока управления процессом

  5. Выделение процессу начальных ресурсов

Процесс может создать новый процесс. В этом случае первый процесс называется родительский, а второй созданный процесс – дочерним. Для создания одного дочернего необходим только один родительский. При таком подходе создается иерархическая структура процессов.

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

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

Возобновление или активация процесса – это операция подготовки процесса к повторному запуску с той точки, в которой он был приостановлен. См. у Оли.

Инициатором приостановки может быть либо сам процесс, либо другой процесс. В однопроцессорной машине выполняющийся процесс может приостановить только сам себя. Ни одни другой процесс не может работать одновременно с ним, чтобы выдать сигнал приостановки. В мультипроцессорной машине выполняющийся процесс может быть приостановлен другим процессом, выполняющимся на другом процессоре.

Выполняющийся процесс – выделенный ЦП и расположение в оперативной памяти. Двойная буферизация – совмещать! И то, и другое сразу.