'

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

Понравилась презентация – покажи это...





Слайд 0

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


Слайд 1

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


Слайд 2


Слайд 3

Операционные системы и среды Основными функциями, которые выполняет ОС, являются следующие: прием от пользователя (или от оператора системы) заданий или команд, сформулированных на соответствующем языке - в виде директив (команд) оператора или в виде указаний (своеобразных команд) с помощью соответствующего манипулятора (например, с помощью мыши), - и их обработка; прием и исполнение программных запросов на запуск, приостановку, остановку других программ; обеспечение работы систем управлений файлами {СУФ) и/или систем управления базами данных (СУБД), что позволяет резко увеличить эффективность всего программного обеспечения;


Слайд 4

Операционные системы и среды обеспечение режима мультипрограммирования, то есть выполнение двух или более программ на одном процессоре, создающее видимость их одновременного исполнения; обеспечение функций по организации и управлению всеми операциями ввода/вывода; удовлетворение жестким ограничениям на время ответа в режиме реального времени (характерно для соответствующих ОС); распределение памяти, а в большинстве современных систем и организация виртуальной памяти; планирование и диспетчеризация задач в соответствии с заданными стратегией и дисциплинами обслуживания;


Слайд 5

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


Слайд 6

Операционные системы и среды Назначение системы управления файлами — организация более удобного доступа к данным, организованным как файлы. Это отдельная категория системного программного обеспечения, поскольку: ряд ОС позволяет работать с несколькими файловыми системами (монтируемыми); простейшие ОС могут работать и без файловых систем.


Слайд 7

Операционные системы и среды Интерфейсные оболочки. Их основное назначение — либо расширить возможности по управлению ОС, либо изменить встроенные в систему возможности. Могут быть текстовыми (NC, VC для DOS, MC для UNIX/Linux) и графическими (KDE, Gnome для Linux)


Слайд 8

Операционные системы и среды Средства выполнения программ, созданных для других ОС. VDM (Virtual DOS machine) для выполнения DOS-программ в Windows 9x/NT/2000; WINE для выполнения Windows-программ в Linux; Эмуляторы, позволяющие смоделировать в одной операционной системе какую-либо другую машину или операционную систему (VMWARE).


Слайд 9

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


Слайд 10

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


Слайд 11

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


Слайд 12

Операционные системы и среды Tермин операционная среда означает соответствующий интерфейс, необходимый программам для обращения к ОС с целью получить определенный сервис — выполнить операцию ввода/вывода, получить или освободить участок памяти и т. д. Это программный интерфейс, API (application program interface). Интерфейс прикладного программирования (API) включает в себя управление процессами, памятью и вводом/выводом. Это программная среда, в которой выполняются прикладные программы пользователей.


Слайд 13

Понятия вычислительного процесса и ресурса Понятие «вычислительный процесс» (или просто — «процесс») является одним из основных при рассмотрении операционных систем. Последовательный процесс (иногда называемый «задачей») — это выполнение отдельной программы с ее данными на последовательном процессоре.


Слайд 14

Понятия вычислительного процесса и ресурса Изначально задача (task) определялась, как совокупность связанных между собой и образующих единое целое программных модулей и данных, требующая ресурсов вычислительной системы для своей реализации. Затем задачей стали называть единицу работы, для выполнения которой предоставляется центральный процессор. Вычислительный процесс может включать в себя несколько задач.


Слайд 15

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


Слайд 16

Понятия вычислительного процесса и ресурса Ресурсы могут быть разделяемыми, когда несколько процессов могут их использовать одновременно (в один и тот же момент времени) или параллельно (в течение некоторого интервала времени процессы используют ресурс попеременно), а могут быть и неделимыми


Слайд 17

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


Слайд 18

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


Слайд 19

Понятия вычислительного процесса и ресурса Введение в состав вычислительной машины специальных контроллеров позволило совместить во времени (распараллелить) операции вывода полученных данных и последующие вычисления на центральном процессоре. Однако все равно процессор продолжал часто и долго простаивать, дожидаясь завершения очередной операции ввода/вывода


Слайд 20

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


Слайд 21

Понятия вычислительного процесса и ресурса


Слайд 22

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


Слайд 23

Понятия вычислительного процесса и ресурса При необходимости использовать какой-либо ресурс (оперативную память, устройство ввода/вывода, массив данных и т. п.) задача обращается к супервизору операционной системы — ее центральному управляющему модулю, который может состоять из нескольких модулей, например: супервизор ввода/вывода, супервизор прерываний, супервизор программ, диспетчер задач и т. д. — посредством специальных вызовов (команд, директив) и сообщает о своем требовании. При этом указывается вид ресурса и, если надо, его объем (например, количество адресуемых ячеек оперативной памяти, количество дорожек или секторов на системном диске, устройство печати и объем выводимых данных и т. п.).


Слайд 24

Понятия вычислительного процесса и ресурса Директива обращения к операционной системе передает ей управление, переводя процессор в привилегированный режим работы, если такой существует. Не все вычислительные комплексы имеют два (и более) режима работы: привилегированный (режим супервизора), пользовательский, режим эмуляции какого-нибудь другого компьютера и т. д.


Слайд 25

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


Слайд 26

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


Слайд 27

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


Слайд 28

Диаграмма состояний процесса Необходимо различать системные управляющие процессы, представляющие работу супервизора операционной системы и занимающиеся распределением и управлением ресурсов, от всех других процессов: системных обрабатывающих процессов, которые не входят в ядро операционной системы; процессов пользователя


Слайд 29

Диаграмма состояний процесса Процесс может находиться в активном и пассивном состоянии. В активном состоянии процесс может участвовать в конкуренции за использование ресурсов вычислительной системы, а в пассивном — он только известен системе, но в конкуренции не участвует (хотя его существование в системе и сопряжено с предоставлением ему оперативной и/или внешней памяти). Активный процесс может быть в одном из следующих состояний: выполнения — все затребованные процессом ресурсы выделены. В этом состоянии в каждый момент времени может находиться только один процесс, если речь идет об однопроцессорной вычислительной системе;


Слайд 30

Диаграмма состояний процесса готовности к выполнению — ресурсы могут быть предоставлены, тогда процесс перейдет в состояние выполнения; блокирования или ожидания — затребованные ресурсы не могут быть предоставлены, или не завершена операция ввода/вывода. В большинстве операционных систем последнее состояние, в свою очередь, подразделяется на множество состояний ожидания, соответствующих определенному виду ресурса, из-за отсутствия которого процесс переходит в заблокированное состояние.


Слайд 31

Диаграмма состояний процесса За время своего существования процесс может неоднократно совершать переходы из одного состояния в другое. Возможные переходы процесса из одного состояния в другое отображены в виде графа состояний на рис.


Слайд 32

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


Слайд 33

Диаграмма состояний процесса по вызову из другой задачи (посредством обращения к супервизору один процесс может создать, инициировать, приостановить, остановить, уничтожить другой процесс); по прерыванию от внешнего инициативного устройства (сигнал о свершении некоторого события может запускать соответствующую задачу). Устройство называется «инициативным», если по сигналу запроса на прерывание от него должна запускаться некоторая задача. при наступлении запланированного времени запуска программы.


Слайд 34

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


Слайд 35

Диаграмма состояний процесса процесс переводится супервизором операционной системы в состояние готовности к исполнению в связи с появлением более приоритетной задачи или в связи с окончанием выделенного ему кванта времени; процесс блокируется (переводится в состояние ожидания) либо вследствие запроса операции ввода/вывода (которая должна быть выполнена прежде, чем он сможет продолжить исполнение), либо в силу невозможности предоставить ему ресурс, запрошенный в настоящий момент, а также по команде оператора на приостановку задачи или по требованию через супервизор от другой задачи.


Слайд 36

Диаграмма состояний процесса При наступлении соответствующего события (завершилась операция ввода/вывода, освободился затребованный ресурс, в оперативную память загружена необходимая страница виртуальной памяти и т. д.) процесс деблокируется и переводится в состояние готовности к исполнению.


Слайд 37

Реализация понятия последовательного процесса в ОС Для того чтобы операционная система могла управлять процессами, она должна располагать всей необходимой для этого информацией. С этой целью на каждый процесс заводится специальная информационная структура, называемая дескриптором процесса (описателем задачи, блоком управления задачей). В общем случае дескриптор процесса содержит следующую информацию: идентификатор процесса (так называемый PID — process identificator); тип (или класс) процесса, который определяет для супервизора некоторые правила предоставления ресурсов;


Слайд 38

Реализация понятия последовательного процесса в ОС приоритет процесса, в соответствии с которым супервизор предоставляет ресурсы. В рамках одного класса процессов в первую очередь обслуживаются более приоритетные процессы; переменную состояния, которая определяет, в каком состоянии находится процесс (готов к работе, в состоянии выполнения, ожидание устройства ввода/вывода и т. д.); защищенную область памяти (или адрес такой зоны), в которой хранятся текущие значения регистров процессора, если процесс прерывается, не закончив работы. Эта информация называется контекстом задачи;


Слайд 39

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


Слайд 40

Процессы и потоки Понятие процесса было введено для реализации идей мультипрограммирования. Для реализации мультизадачности необходимо было тоже ввести соответствующую сущность. Такой сущностью и стали так называемые «легковесные» процессы, или, как их теперь преимущественно называют, — потоки или треды (Thread — поток, нить).


Слайд 41

Процессы и потоки Когда говорят о процессах (process), то тем самым хотят отметить, что операционная система поддерживает их обособленность: у каждого процесса имеется свое виртуальное адресное пространство, каждому процессу назначаются свои ресурсы — файлы, окна, семафоры и т. д. Такая обособленность нужна для того, чтобы защитить один процесс от другого, поскольку они, совместно используя все ресурсы вычислительной системы, конкурируют друг с другом. В общем случае процессы просто никак не связаны между собой и могут принадлежать даже разным пользователям, разделяющим одну вычислительную систему.


Слайд 42

Процессы и потоки Если программные модули, исполняющие такие операции, оформлять в виде самостоятельных «подпроцессов» (легковесных или облегченных процессов — потоков, можно также воспользоваться термином задача), которые будут выполняться параллельно с другими «подпроцессами» (потоками, задачами), то у пользователя появляется возможность параллельно выполнять несколько операций в рамках одного приложения (процесса).


Слайд 43

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


Слайд 44

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


Слайд 45

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


Слайд 46

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


Слайд 47

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


Слайд 48

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


×

HTML:





Ссылка: