Лекция №2. Определение процесса и понятий с ним связанных
Лекция №1. Введение. Основные понятия и концепции ОС.
План:
1.Эволюция ОС
2.Функции, принципы построения, функциональные компоненты и архитектурные особенности и классификация ОС.
Под операционной системой обычно понимают комплекс управляющих и обрабатывающих программ, который, с одной стороны, выступает как интерфейс между аппаратурой компьютера и пользователем, а другое предназначение для более эффективного пользования ресурсов вычислительной системы и организации надёжных вычислений.
Любой из компонентов прикладного программного обеспечения обязательно работает под управлением операционных систем. На схеме отображена обобщённая процедура программного обеспечения.
Прикладные Программы | |||
Утилиты | |||
Операционная система | |||
Аппаратное обеспечение компьютера | |||
Видно, что не один из компонентов программного обеспечения, за исключением самой операционной системы, не имеет непосредственного доступа к аппаратуре компьютера. Даже пользователь взаимодействует со своими программами через интерфейс. Любые их команды, прежде чем попасть в прикладные программы, проходят через операционные системы, основными функциями, которые выполняются операционной системой, являются:
1) приём от пользователя заданий или команд, формулированных на соответствующем языке и их обработка;
2) приём и исполнение программы запроса на запуск/приостановку других программ;
3) загрузка в оперативную память, подлежащие исполнению, программы;
4) инициализация программ (передача ей управления), в результате чего процессор использует программу;
5) идентификация программ;
6) обеспечение работы системы управления файлами базы данных, что позволяет резко увеличить эффективность программного обеспечения;
7) обеспечение режима мультипрограммирования, т.е. выполнение двух или более программ на одном процессоре, создающая видимость их одновременного исполнения;
8) обеспечение функции по организации и управления всеми операциями ввода и вывода;
9) удовлетворение жёстким ограничениям на время в режиме реального времени;
10) распределение памяти:
а) организация виртуальной памяти;
б) в большинстве современных систем.
11) планирование и диспетчеризация в соответствии с заданием;
12) организация м-ма обмена сообщениями и данными между выполняющимися программами;
13) защита одной программы от влияния других программ, обеспечение сохранение данных;
14) предоставление услуг на случай частичного сбоя системы;
15) обеспечение работы системы программ, с помощью которых пользователи готовят свои программы.
Как правило, все современные операционные системы имеют систему управления памятью. Назначающаяся СУП-организация более удобного доступа к данным организациям как файл. Ряд операционных систем позволяют работать с несколькими файловыми системами одновременно. В этом случае говорят о вмонтированной файловой системе, т.е. дополнительную память можно установить.
Есть простейшие операционные системы, которые могут работать и без файловых систем или только с одной стороны из файловых систем. Любая система управления файлами разработана для работы конкретной операционной системы и конкретной файловой системы.
Например, известная файловая система FAT.
File
Allocation
Table
Имеет множество реализации как система управления файлами, например, FAT 16 под систему MS-DOS или Super FAT для OS/2 или FAT для Windows.
Для работы с файлами, организованные в соответствии с некоторыми файловыми системами для каждой операционной системы должна быть организована соответствующая система управления файлами. Она будет работать только в той операционной системе, для которой она разработана. Для удобства пользования с операционной системой может использоваться дополнительные интерфейсные оболочки. Их основное назначение, либо расширить возможность операционной системы, либо изменить встроенные в систему возможности. Классическим примером интерфейсных оболочек можно назвать:
1) X Windows в системах семейства Unix;
2) KDE – K Desktop Environment;
3) PM Shell;
4) Object Desktop.
Существуют различные варианты интерфейса для семейства операционной системы Windows, которые заменяют Explover, в файле system.ini.
В операционной системе заменяемой является только интерфейсная оболочка. Операционная среда определяется программными интерфейсами.
Application
Program
Interface
API – интерфейс прикладного программирования, включает в себя управление процессами, памятью и вводом/выводом.
Ряд операционных систем может выполнять ряд программ, созданных для выполнения в других операционных системах. Соответствующая среда организуется в рамках данной машины. Аналогично, в Linux можно создать условия для выполнения программ, написанных для Windows 98.
Под утилитами понимают специальные системы программирования, с помощью которых можно обслужить операционную систему, выполнять обработку данных, осуществляющих оптимизацию данных на носителе и производить работы по обслуживанию операционной системы.
К утилитам относится программа разбиения накопителя на магнитных дисках на разделы и программу форматирования, программу переноса основных системных файлов самой операционной системой. Утилиты могут работать только в соответствующей операционной системе.
Классификация ОС
Развитие компьютеров привело к развитию ОС. Сейчас насчитывается более 100 ОС.
По назначению ОС принято делить на семь уровней.
1. Мэйнфреймы (mainframe)
У них отличаются от ПК возможности I/O. Обычно мэйнфреймы содержат тысячи дисков и терабайты ОЗУ. Они используются в виде мощных web-серверов, серверов для крупномасштабных коммерческих сайтов и серверов для транзакций в бизнесе. ОС для мэйнфреймов ориентированы на обработку множества одновременных заданий, большинству из которых требуется огромное количество операций I/O. Обычно они предполагают три вида обслуживания:
1) пакетную обработку. Система выполняет стандартные задания без присутствия пользователей. В пакетном режиме обрабатываются иски страховых компаний и составляются отчеты о продаже в магазине;
2) обработку транзакций (групповые операции: обработка и запись данных). Система обработки транзакций управляет очень большим количеством маленьких запросов (например, контролирует процесс работы в банке, бронирует авиабилеты). Каждый отдельный запрос невелик, но система должна отвечать на тысячи запросов в секунду;
3) разделение времени. Системы, работающие в режиме разделения времени, позволяют множеству удаленных пользователей выполнять свои задания на одной машине, например, работать с большой БД. Все эти функции тесно связаны между собой и часто ОС мэйнфрейма выполняет их все. Примером ОС для мэйнфрейма является OS/390 (от IBM).
2. Серверные (сетевые) ОС
Работают на серверах, которые представляют собой или очень большие ПК, или рабочие станции, или даже мэйнфреймы. Они одновременно обслуживают множество пользователей и позволяют им делить программные и аппаратные ресурсы. Серверы представляют возможность работать с печатающими устройствами, файлами и Internet. Internet-провайдеры обычно запускают в работу несколько серверов, чтобы поддерживать одновременный доступ к сети множества клиентов. На серверах хранятся страницы web-сайтов и обрабатываются входные запросы. Типичные серверные ОС: Windows 2000 и Unix. В этих целях в настоящее время стала использоваться и ОС Linux.
3. Многопроцессорные ОС (кластеры)
Наиболее часто применяемый способ увеличения мощности компьютера заключается в соединении ЦП в одну систему. В зависимости от вида соединения ЦП и разделения работы такие системы называются параллельными компьютерами, мультикомпьютерами или многопроцессорными системами. Для них требуются специальные ОС, но, как правило, такие ОС представляют собой варианты серверных ОС со специальными возможностями связи.
4. ОС для ПК
Работа этих ОС заключается в представлении удобного интерфейса для одного пользователя. Такие ОС широко используются для работы с текстом, электронными таблицами и доступа к Internet. Яркие примеры: Windows 98, 2000, MacOS, Linux.
5. ОС РВ
Главным параметром ОС РВ является время. Например, в СУ производством компьютеры, работающие в режиме РВ, собирают данные о промышленном процессе и используют их для управления машинами. Такие процессы должны удовлетворять жестким временным требованиям. Так, если автомобиль передвигается по конвейеру, то каждое действие должно быть осуществлено в строго определенный момент времени. Если сварочный робот сварит шов слишком рано/поздно, то он нанесет непоправимый вред. Если некоторое действие должно произойти в какой-то момент времени или внутри заданного диапазона времени, то говорят о жесткой системе РВ. Существует гибкая система РВ, в которой допустимы случающиеся время от времени пропуски сроков выполнения операций. В эту категорию попадает цифровое аудио и multimedia-системы. Примеры ОС: VxWorks, QNX.
6. Встроенные ОС
Карманный компьютер, или PDA (Personal Digital Assistant), - маленький компьютер, помещающийся в кармане брюк и выполняющий некоторые функции (записная книжка, блокнот). Примеры ОС: PalmOS, Windows CE (Consumer Electronics - бытовая техника).
7. ОС для Smart-карт (smart-cards - разумные карты)
Самые маленькие ОС работают на Smart-картах, представляющих собой устройство с ЦП. На такие ОС накладываются крайне жесткие ограничения по мощности ЦП и памяти. Некоторые из них могут управлять только одной операцией, но другие ОС на тех же самых Smart-картах выполняют сложные функции. Некоторые ОС являются Java-ориентированными, т.е. ПЗУ содержит интерпретатор виртуальной машины Java (ROM - Read Only Memory). Апплеты Java загружаются на карту и выполняются интерпретатором JVM (Java Virtual Machine). Некоторые из этих карт могут одновременно управлять несколькими Java-апплетами, что приведет к многозадачности и необходимости планирования. Также возникает необходимость в защите. Эти задачи обычно выполняет крайне примитивная ОС.
Лекция №4 Физическая организация устройств ввода-вывода. Организация программного обеспечения ввода-вывода.
АО компьютера
ОС тесно связана с оборудованием компьютера, поскольку оно влияет на набор команд ОС и управление ресурсами. Поэтому необходим определенный объем знаний о компьютере, т.е. нужно знать, в каком виде оборудование предстает. Концептуально простой ПК можно представить в виде абстрактной модели.
ЦП, память, устройства I/O соединены системной шиной, по которой они обмениваются информацией. "Мозгом" компьютера является ЦП (CPU - Central Processing Unit). Он выбирает из памяти команды и выполняет их. Обычный цикл работы ЦП выглядит так: он читает первую команду из памяти, декодирует ее для определения ее типа и операндов, выполняет команду, затем считывает, декодирует последующие команды. Т.о. образом осуществляется выполнение программ.
Для каждого ЦП существует набор команд, который он в состоянии выполнить. Поскольку доступ к памяти для получения команд или набор данных занимает намного больше времени, чем выполнение этих команд, то все ЦП содержат внутренние регистры для хранения переменных и промежуточных результатов. Поэтому набор инструкций обычно содержит команды для загрузки слова из памяти в регистр и сохранение слова из регистра в память. Кроме основных регистров, используемых для хранения переменных, большинство ЦП имеет несколько специальных регистров, используемых для хранения переменных, большинство ЦП имеет несколько специальных регистров, видимых для программистов.
Один из них называется счетчиком команд (PC - Program Counter). В нем содержится адрес следующей стоящей в очереди на выполнение команды. После того как команда выбрана из памяти, регистр команд корректируется и указатель переходит к следующей команде.
Еще один регистр - указатель стека (SP - Stack Pointer). Он содержит адрес вершины стека в памяти. Стек содержит по одному фрейму (области данных) для каждой процедуры, которая уже начала выполняться, но еще не закончена. В стеке процедуры хранятся ее выходные параметры, а также локальные и промежуточные переменные, не хранящиеся в регистрах.
Следующий регистр называется "слово состояния ЦП" (PSW - Processing Status Word). Этот регистр содержит биты кода состояний, которые задаются командами сравнения, приоритетом ЦП, режимом (пользовательский или режим ядра) и другую служебную информацию.
Пользовательские программы могут читать весь регистр PSW, но писать могут только в некоторых из его полей. Регистр PSW играет важную роль в системных вызовах и операциях I/O. При временном мультиплексировании ЦП ОС останавливает работающую программу для запуска другой. Каждый раз при таком прерывании ОС должна сохранять все регистры ЦП, чтобы позже, когда прерванная программа продолжит свою работу, их можно было восстановить. Для повышения быстродействия ЦП их разработчики отказались от простой модели, когда за один такт может быть считана, декодирована, выполнена только одна команда. Современные ЦП обладают возможностью выполнения нескольких команд одновременно. Например, у ЦП могут быть отдельные модули, занимающиеся выборкой, декодированием и выполнением команд, и во время выполнения команды с номером n он может декодировать команду с номером n+1 и считывать команду с номером n+2. Такая организация называется конвейером, и три его стадии можно проиллюстрировать схемой.
Встречаются и более длинные конвейеры. Более передовым по сравнению с конвейерной конструкцией является суперскалярный ЦП. В этой структуре присутствует множество выполняющих узлов: один - для целочисленных арифметических операций, второй - для операций с плавающей точкой, один - для логических операций. За один такт считывается две или более команд, которые декодируются и сбрасываются в буфер хранения, где ждут своей очереди на выполнение. Когда выполняющее устройство освобождается, оно просматривает буфер хранения, выбирает команду, если она там есть, и выполняет ее.
В большинстве случаев АО должна гарантировать, что результат совпадает с тем, который выдала бы последовательная конструкция.
Большинство ЦП имеет два режима работы: режим ядра и пользовательский режим. Режимы задаются битом слова состояния ЦП, т.е. регистра PSW. Если ЦП запущен в режиме ядра, он может выполнять все команды из набора инструкций и использовать все возможности АО. ОС работает в режиме ядра, предоставляя доступ ко всему АО. В противоположность этому прерыванию пользователи работают в пользовательском режиме, разрешающем выполнение подмножества программ и делающем доступным лишь часть аппаратных средств. Как правило, все команды, включая I/O данных и защиту памяти, запрещены в пользовательском режиме. Установка бита режима ядра в регистре PSW программным способом недоступна. Для связи с ОС пользовательская программа должна сформировать системный вызов, который обеспечивает переход в режим ядра и активирует функции ОС.
Команда TRAP, называемая эмулированным прерыванием, переключает режимы работы ЦП из пользовательского в режим ядра, и передается управление ОС. После завершения работы системного вызова управление передается пользовательской программе, следующей за системным вызовом.
В компьютере, помимо инструкций или команд для выполнения системных вызовов есть и другие прерывания. Большинство этих прерываний вызывается аппаратно для предупреждения в исключительных случаях, таких как операции попытки деления на нуль ли переполнение при операции с плавающей точкой. В таких случаях управление переходит ОС, которая должна решать, что делать дальше.
Память
Второй основной составляющей любого компьютера является память. В идеале память должна быть максимально быстрой (быстрее, чем обработка одной инструкции, чтобы работа ЦП не замедляло обращение к памяти, достаточно большой и чрезвычайно дешевой. На сегодня не существует технологий, удовлетворяющих всем этим требованиям. Поэтому имеется другой подход.
Система памяти конструируется в виде иерархии слоев, которые иллюстрируются на следующем рисунке.
Верхний слой состоит из внутренних регистров ЦП, поэтому при доступе к ним не возникает задержек. Внутренние регистры хранят 32 нс 32 бита на 32-разрядном ЦП или 64x64 бита на 64-разрядном, это составляет менее 1 Кб в обоих случаях. Программы могут управлять регистрами без вмешательства.
В следующем слое находится кэш-память, в основном контролируемая аппаратурой. Она разделена на кэш-строки по 64 байта с адресацией от 0 до 63 в нулевой строке, от 64 до 127 в первой строке и т.д. Наиболее часто используемые строки кэша хранятся в высокоскоростной кэш-памяти, расположенной внутри ЦП. Когда программа должна прочитать слово из памяти, кэш-микросхема определяет, есть ли нужная строка в кэше; если это так, то происходит результативное обращение к кэш-памяти. Запрос удовлетворяется целиком из кэша, и запрос к памяти на шину не выставляется. Удачное обращение к кэшу по времени занимает около двух тактов, а неудачных приводит к обращению к ОЗУ и существенной потере времени. Кэш-память ограничена в размере, что обусловлено ее высокой стоимостью. В некоторых машинах есть два или три уровня кэша, причем каждый последующий медленнее и больше предыдущего.
Далее следует ОЗУ (RAM - Random Acces Memory - память с произвольным доступом) - главная рабочая область запоминающего устройства машины. Все запросы ЦП, которые не могут быть выполнены кэш-памятью, поступают для обработки в ОЗУ.
Далее - магнитный диск. Дисковая память на два порядка дешевле ОЗУ в пересчете на бит и на два порядка больше по величине. У диска есть одна проблема - случайный доступ к данным на нем занимает примерно на три порядка больше времени. Причиной низкой скорости HDD - диск представляет собой механическую конструкцию, он состоит из одной или нескольких металлических пластин, вращающихся со скоростями 5400, 7200 или 10700 об/мин. Механическая вилка с магнитными головками поворачивается над дисками подобно звукоснимателю. Информация записывается на пластины в виде концентрических окружностей. Магнитная головка каждой данной позиции вилки может прочитать кольцо на пластине, называемое дорожкой. Все вместе дорожки для заданной позиции вилки формируют цилиндр. Каждая дорожка разделена на некоторое количество секторов, обычно по 512 байт на сектор. Внешние цилиндры содержат большее количество секторов, чем внутренние. Перемещение головки от одного цилиндра к другому занимает около 1 мс, а перемещение к произвольному цилиндру требует от 5 до 10 мс в зависимости от диска. Когда сектор уже находится под головкой, процесс чтения или записи происходит со скоростью 5 Мб/с для низкоскоростных дисков до 160 Мб/с для высокоскоростных.
Магнитная лента часто используется для создания резервных копий HDD или для хранения очень больших наборов данных. Для доступа к информации на ленте ее нужно поместить в устройство для чтения магнитных лент (стример). Это делает человек или робот. Затем лента перематывается до запрашиваемого блока с информацией. Процесс может длиться минуту. Большое достоинство заключается в том, что они крайне дешевы и мобильны. Это важно для резервных копий, которые нужно содержать отдельно, чтобы они сохранялись после стихийных бедствий (пожара, наводнений). Магнитная лента хранится в другой комнате от компьютера. Срок хранения - 5 лет.
Кроме описанных видов, в компьютерах есть небольшое количество постоянной памяти с произвольным доступом. В отличие от RAM, она не теряет свое содержимое при выключении питания. Она называется ПЗУ или ROM. ПЗУ программируется в процессе производства и после этого его содержимое нельзя изменить. Эта память достаточно быстра и дешева. Программы начальной загрузки компьютера, используемые при запуске, находятся в ПЗУ. Кроме этого, некоторые карты I/O содержат ПЗУ для управления низкоуровневыми устройствами.
Электрические стираемая ПЗУ EEPROM и flash-RAM также энергонезависимы, но их содержимое можно стереть и переписать. Поэтому они используются точно так же, как и ПЗУ. Однако запись данных в них требует намного больше времени, чем запись в ОЗУ. Дополнительное преимущество электрически стираемого ПЗУ и flash-памяти состоит в том, что с их помощью можно исправить ошибки, содержащиеся в программах.
Вид памяти, называемый CMOS (читается "смос"), является энергозависимым. CMOS используется для хранения текущей даты и времени и конфигурационных параметров, например, указания, с какого HDD производить загрузку. Эта память потребляет энергию от установленного аккумулятора.
Виртуальная память
Вычислительной системе нужны средства для долгосрочного хранения информации после выключения компьютера. ОС решает эту задачу с помощью средств виртуальной памяти и ФС. ФС обеспечивает долгосрочное хранение информации, помещая ее в именованные объекты - файлы. Файл - удобная для использования структура данных, доступ к которой и ее защита осуществляется ОС.
Виртуальная память - устройство, позволяющее программистам рассматривать ОЗУ как логический объект, не интересуясь его физическим объемом. Принципы работы с виртуальной памятью были разработаны, чтобы задания нескольких пользователей, выполняясь параллельно, могли одновременно присутствовать в ОЗУ. Виртуальная память решает две задачи:
1) защищает программы друг от друга, а ядро ОС - от программ;
2) управляет перемещением программ в памяти.
Все возможные способы решения этих задач основаны на снабжении ЦП специальным оборудованием. Одно из простых решений - снабжение ЦП двумя специальными регистрами: базовым и предельным (граничным). При начале работы программы в базовый регистр помещается адрес ее начала, а в предельный - размер программы вместе с данными. При выборке команды из памяти аппаратура проверяет счетчик команд (PC), и если он меньше, чем предельный регистр, то добавляет к нему значение базового регистра и сумму передает в адресную шину.
Базовый регистр позволяет программе ссылаться на любую часть памяти, следующую за хранящейся в ней адресом. Предельный регистр запрещает программе обращение к памяти за границы программы. С помощью этой схемы решаются обе задачи защиты и перемещения программ. В результате проверки и преобразования адрес, сформированный программой и называемый виртуальным, переводится в адрес, используемый памятью и называемый физическим. Устройство, которое выполняет проверку и преобразование, называется диспетчером памяти - MMU (Memory Management Unit). Оно расположено в ЦП.
Более сложный диспетчер памяти содержит две пары базовых и предельных регистров. Одна пара - для текста программы, другая - для данных. Появляется возможность делить одну и ту же программу между несколькими пользователями и при этом хранить в памяти только одну копию программы.
Из-за различий в количестве памяти, требующейся для разных программ, их трудно компактно разместить в ОЗУ. Поэтому разработаны системы со страничной организацией памяти, когда программа разбивается на блоки фиксированного размера - страницы (1 страница = 4 Кб). В этом случае обращение программы к ячейке памяти происходит по виртуальной памяти, адрес которой состоит из номера страницы и смещения относительно ее начала. Страницы одной и той же программы могут быть разбросаны по всему ОЗУ. Система разбивки на страницы обеспечивает динамическое соответствие между виртуальным адресом, использующимся программой, и реальным (физическим) адресом ОЗУ. Если программа обращается к странице, отсутствующей в ОЗУ, то диспетчер памяти обнаруживает это и загружает недостающую страницу.
На характеристики памяти в основном влияют два аспекта:
1) кэш скрывает низкую скорость ОЗУ. Когда ОС переключается от одной программы к другой, кэш остается заполненным данными первой программы, а необходимые строки новой программы должны загружаться из физической памяти. Эта операция может стать главной причиной снижения производительности, если происходит слишком часто;
2) при переключении программ регистры управления памятью должны меняться. Вне зависимости от количества этих регистров эта операция занимает некоторое время. Переключение от одной программы к другой - переключение контекста.
Лекция №5 Файловая система.
План:
Основные понятия.
Защита файлов.
ШК- Шина Кэш
ЛШ- Локальная Шина
ШП- Шина Памяти
В этой системе 8 шин, каждая со своей скоростью передачи данных и своими функциями. В ОС для управления компьютером должны находится сведения об всех этих шинах.(ISA -- Industry Standard Architecture ; PCI – Peripheral Component Interconnect).
Шина ISA работает на частоте 8,33 МГц и может передавать 2 байта за такт с максимальной скоростью16,67 Мб/с.
Шина PCI работает на частоте 66 МГц и передает по 8 байт за такт с максимальной скоростью 528Мб/с.
Большинство высокочастотных устройств вв-выв используют шину PCI. ЦП по ЛК передает данные микросхеме PCI-моста, – который в свою очередь обращается к памяти по выделенной шине, часто работающей на частоте 100МГц.
Система Pentium имеет КЭШ первого уровня L1 встроенный в процессор и намного больше КЭШ второго уровня L2, подключенный к процессору отдельной ШК. В систему входят 3 специальных шины IDE, USB и SCSI. IDE служит для присоединения периферийных устройств к системе (CD-ROM). USB (Universal Serial Bus) служит для присоединения к компьютеру медленных устройств вв-выв, таких как клавиатура, мышь, принтер и т.д. USB – это централизованная шина по которой главное устройство каждую миллисекунду опрашивает устройство вв-выв. Она может управлять загрузкой данных со скоростью 1,5Мб/с. Все USB используют один драйвер, поэтому нет необходимости устанавливать драйвер для нового USB, т.е. они присоединяются к системе без ее перезагрузки. SCSI –(Small Computer System Interface) это высокопроизводительная шина, применяемая для быстрых дисков, сканеров и др. устройств, нуждающиеся в значительной пропускной способности, ее производительность 160 Мб/с. Шина SCSI используется в системах Макинтош, популярна в UNIX-системах и некоторых системах на базе Intel.
IEEE 1394 (Fire Wire). Эта шина является последней шиной, скорость ее 50Мб/с. Это свойство позволяет подключать к компьютеру портативные цифровые видеокамеры и мультимедийные устройства. Не имеет центрального контролера. В настоящее время шина SCSI и IEEE 1394 конкурируют с разработкой более быстрой версии шины USB.Стандарт под названием Plug and Play позволяет системе автоматически собирать информацию об устройствах вв-выв. Назначать уровни прерывания и адреса вв-выв, а затем сообщать каждой плате эту информацию. На материнской плате находится программа называемая системой BIOS (Basic Input Output System) – она содержит программы вв-выв низкого уровня, включая процедуры для чтения с клавиатуры, вывода информации на экран, вв-выв данных с диска. В настоящее время эти функции хранятся во Flash-ОЗУ, которая в обычных условиях является неизменяемой, но ее можно изменить с помощью ОС.
При изучении ОС в них принято выделять следующие части:
- Процессор
- Управление памятью
- Защита информации и безопасность
- Планирование и управление ресурсами
- Структура системы
В основном развитие современных ОС также происходит по этим направлениям. Каждое из этих направлений можно охарактеризовать набором абстрактных принципов, разработанных для решения сложных прикладных программ.
А-процесс А
В-процесс В
2-индекс процесса
3-PC счётчик команд
4-базовый регистр
5-граничный регистр
На рис. Показан пример реализации процесса. Два процесса А и В находятся в различных областях основной памяти. Каждому процессу отведён блок памяти, в к-ом создаётся код программы, данные и информация о состоянии процесса. Каждый процесс заносится в список процессов, который создаётся и поддерживается OC. Часть этого списка, соответствующая определённому процессу, содержит указатель размещения этого процесса в памяти. В регистре индекса процесса содержится индекс выполняющегося в текущий момент времени процесса, идентифицирующий его в списке процессов. Содержимое команд (PC) указывает на очередную инструкцию, к-ую нужно выполнить. Базовый и граничный регистры задают область памяти, занимаемую процессом. В базовый регистр заносится адрес начальной ячейки памяти, а в граничный- её размер в байтах.
Содержимое программного счётчика и всех ссылок на данные отсчитывается от значения базового регистра. По своей величине эти ссылки не могут превосходить значения граничного регистра. Регистр индекса процесса показывает, что выполняется процесс В, до этого выполняется процесс А, но он временно прерван. Содержимое всех регистров в момент прекращения этого процесса записано в виде данных о состоянии процесса. Впоследствии ОС сможет к выполнению процесса А. При этом будет сохранён контекст выполнения процесса В и восстановлен контекст процесса А. Когда в программный счётчик загрузится значение, указывающее на область кода, программа процесса Аавтоматически возобновиться выполнение этого процесса. Таким образом процесс реализируется в виде структуры данных. Он может выполнятьсяили находиться в состоянии ожидания. Состояние процесса в каждый момент времени заносится в специально отведённую область данных. Использование структуры позволяет развить мощные методы координации и взаимодействия процесса. Расширяя и добавляя данные о состоянии процесса доп. информации можно разработать новые возможности ОС. В обычных ОС общего назначения процес может находиться в активном и пассивном состоянии.
В активном состоянии процесс участвует в конкуренции за исп-ие ресурса выч системы, а в пассивном- он только известен системе, но в конкуренции не участвует. В свою очередь активный процесс м/б в одном из следующих состояний:
1. Выполнение- все затребованные процессом ресурсы выделены. В этом состоянии в каждый момент времени может находиться только один процесс (В однопроцессорной выч системе)
2. Готовность к выполнению- ресурсы м/б предоставлены, тогда процесс перейдёт в состояние выполнения
3.Блокирование или ожидание- затребованные ресурсы не м/б предоставлены или не завершена операция вв/выв.
В большенстве ОС последнее состояние подразделяется на мн-во состояний ожиданий, соответствующих определённому виду ресурсов из-за отсутствия которого процесс переходит в заблокированное состояние.
В обычных ОС процесс появляется при запуске какой-нибудь программы ОС пораждает для нового процесса соответствующий дескриптор процесса и процесс начинает выполняться. Поэтому пассивного состоянияне существует. В ОС реального времени уже заранее бывает известен состав программ которые должны выполняться. Известны и многие их параметры которые необходимо учитывать при распределении ресурса. Например: объём памяти, приоритет, средняя длительность выполнения, открываемые файлы, исп-ые устройства и т. д. Поэтому для них заранее заводят дискрипторы процесса, чтобы в последствии не тратить время на организацию дискрипторов таким образом в ОСРВ многие процессы находятся в состоянии бездействия.
Процесс состояния бездействия может перейти в состояние готовности в следующих случаях:
1. По команде оператора.
2. При выборе из очереди планировщиком.
3. По вызову из другой задачи. Один процесс может создать, инециировать, приостановить, уничтожить другой процесс.
4. По прерыванию от внешнего инециативного устройства. (Сигнал о завершении некоторого события может запускать соответствующий процесс).
5. При наступлении запланированного времени запуска программ.
Последние два способа запуска характерны для ОСРВ (реал. времени).
Из состояния выполнения процесс может выйти по одной из следующих причин:
1)Процесс завершается, при этом он передаёт управление ОС и сообщает о своём завершении.
2)Процесс переводится ОС в состояние готовности к выполнению в связи с появлением более приоритетной задачи и в связи с окончанием выделенного ему кванта времени.
3)процесс блокируется (переводится в состояние ожидания) либо в силу невозможности предоставить ему ресурс, запрошенный в настоящий момент. При наступлении соответствующего события (завершилась операция вв/выв, освободился затребованный ресурс в опер. памяти, загружена необходимая страница виртуальной памяти и т. д. ) процесс деблокируется и переводится в состояние готовности к исполнению. Таким образом движущей силой, меняющей состояние процесса является событие. Один из ост. видов- прерывание.
Для того чтобы ОС могла управлять процессами, она должна распологать необходимой для этого информацией. С этой целью на каждый процесс заводится специальная специальная информационная структур, называемая диструктором процесса. (описатель задачи, блок управления задачей) Деструктор содержит следующую информацию:
1. Идентификатор процесса (Process Identificator (ID))
2. Тип или класс процесса, который определяет для ОС некоторые правила предоставления ресурсов.
3. Приоритет процесса. В соответствии с которым ОС предоставляет ресурсы В рамках одного класса процессов в первую очередь обслуживается более приоритетный процесс.
4. Переменную состояния, которая определяет в каком состоянии находится процесс (готов кработе, состояние выполнения, ожидание устройства ввода/вывода и т. д.)
5. Защищённую область памяти в которой хранится текущее значение регистров процессора, если прерывается не закончив работу. Эта информация называется контекстом процесса(задачи).
6. Информацию о ресурсах, которыми процесс владеет и имеет право пользоваться (указатели на открытые файлы, инфа о независимых операциях вв/выв и т. т.)
7. Место памяти или адрес этого места для организации общения с другими процессами.
8. Параметры времени запуска. (момент времени, когда процессор должен активизироваться и периодичность этой операции).
Дескрипторы процесса постоянно находятся в опер. памяти, чтобы ускорить работу ОС, которая организует их в списки (очереди) и отображает изменение состояния процесса, перемещением соответствующего дескриптора из одного списка в другой. В некоторых ОС количество дескрипторов определяется жёстко и заранее на этапе генерации варианта ОС или в конфигурационном файле, который исполняется при загрузке ОС. В других ОС по мере необходимости система выделяет участки памяти под новые дескрипторы.
Для аппаратной поддержки работы ОС с дескрипторами задач процессора реализованы соответствующие механизмы. Например процессора intel (i80*86) имеется специальный регистр Task Register (TR) указывающий местонахождение сигмента состояния задачи Task State Segment (TSS) в котором при переключении с процесса на процесс автоматически сохраняется содержимое регистров процессора.
Лекция № 7 ПОТОКИ
Концепцию процесса можно охарактеризовать двумя параметрами:
1. Владение ресурсами.
Процесс включает виртуальное адресное пространство в котором содержится образ процесса и время от времени может владеть такими ресурсами, как основная память, устройство вв/выв, файлы. ОС выполняет защитные функции предотвращая нежелательные взаимодействия процессов.
2. Планирование и выполнение.
Выполнение процесса осуществляется путём выполнения кода программы при этом выполнение процесса может чередоваться с выполнением других процессов. Таким образом