Logo GenDocs.ru

Поиск по сайту:  


Загрузка...

Ответы на экзамен по ОС - файл Шпора.doc


Ответы на экзамен по ОС
скачать (275.9 kb.)

Доступные файлы (7):

Шпора.doc361kb.19.03.2010 00:29скачать
22.html15kb.19.03.2010 00:29скачать
3.html22kb.19.03.2010 00:29скачать
OS.log
OS.wcp
Thumbs.db
wclogo.gif3kb.19.03.2010 00:29скачать

содержание
Загрузка...

Шпора.doc

  1   2   3   4
Реклама MarketGid:
Загрузка...
1 Процесс Control Block и контекст процесса.

Чтобы ОС могла выполнять операции над процессам, каждый процесс представляется в ней некоторой структурой данных, содержащей информацию специф-ую д/данного процесса:

1)состояние, в котором нах-ся процесс;

2)программный счётчик процесса, т.е. адрес команды, кот. д.б. выполнена следующей;

3)содержимое регистров в процессорах;

4)данные, необходимые д./планирования использования процессора и управления памятью; (приоритет процесса, расположение адресного пространства и т.д.)

5)учетные данные (идентификационный номер процесса, какой юзер инициировал процесс, общее время исполнения процесса данным процессором)

6)сведения об устройствах вв/выв, связанных с процессом; состав этой структуры, ее строение зависят от конкретной ОС.

Во многих ОС инфа, характеризующая процесс, хранится не в одной, а в нескольких связанных структурах данных. Эти структуры могут иметь различные наименования, содержать дополнительную инфу или наоборот, лишь часть описанной информации. Важно то, что для люб. процесса вся ин-фа, необходимая для совершения операции над ними, доступна ОС. Для простоты считаем, что она хранится в одной структуре данных, называемой process control block, или блоком управления процессом. Он является моделью процесса для ОС. Каждая операция производимая ОС над процессом вызывает определенные изменения РСВ. В рамках принятой модели состоянии процессов содержимое РСВ остается постоянным. Информацию РСВ удобно разделить на две части. Содержимое всех регистров процессора, включая значение программного счетчика, называется регистровым контекстом процесса, а все остальное – системным контекстом процесса. Знание регистровой системы процессора достаточно для того, чтобы управлять его работой в ОС, совершая над ним операции. Однако, этого недостаточно, чтобы полностью охарактеризовать процесс. ОС не интересуют какими именно вычислениями занимается процесс, т.е. какой код, какие данные находятся в его адресном пространстве. С точки зрения юзера, наоборот: наибольший интерес представляет содержимое адресного пространства – проги, определяющие последовательность преобразования данных и полученные результаты.

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

^ 2. Алгоритмы планирования.

First Come First Served(первый пришёл первого обслужил). Пусть проц-ы, находящ-ся в сост . «готовность» выстроены в очередь. Когда проц-с переходит в сост. «готовность», ссылка на его РСВ, помещ-ся в конец этой очереди. Выбор нового проц-са для исполн-ия осуществл-ся из начала очереди с удалением оттуда ссылки на его РСВ. Очередь подобного типа имеет в программ-ии спец. назв-ие – First In First Out(FIFO). Такой алг-м выбора проц-са осуществляет невытесняющее планирование. Проц-с, получивший в своё распоряж-ие ЦП занимает его до истечении текущего времени непрерывного исп-я. После этого для вып-я выбирается нов. проц-с из начала очереди. Преимуществом алг-ма FCFS явл-ся лёгкость его реализ-ии. Недостатком явл-ся то, что среднее время ожидания и ср. полное вр. выполнения для этого алг-ма существенно зависят от пор-ка расположения проц-са в очереди. Если есть проц-с с длит. временем непрер-го выполн-ия, то короткие проц-сы будут долго ждать начала выполн-ия, поэтому этот алг-м практически не применим для систем разделения времени.
^ Round Robin(RR). Модификацией алг-ма FCFS явл-ся алг-м RR. По сути это тот же самый алг-м, только реализ-ый в режиме вытесняющего планир-ия. Всё множ-во готовых проц-ов организовано циклически – проц-сы сидят на карусели. Карусель вращ-ся так, что кажд. проц-с находится около ЦП небольшой фиксированный квант времени, обычно 10-100мсек. Пока проц-с нах-ся рядом с ЦП, он получет ЦП в своё распоряж-ие и м. исполн-ся. Реализ-ся этот алг-м так же, как и предыдущий, организацией проц-ов, находящихся в сост. готовность, в очередь FIFO. Планировщик выбирает для очередного исполн-ия проц-с, располож-ый в начале очереди и устанавливает таймер для генерации прерывания по истечении определ-го кванта врем-и. При больших вел-ах кванта времени алг-м RR вырожд-ся в алг-м FCFS. При очень мал-х величинах создаётся иллюзия того, кажд. из n проц-ов работает на собственном виртуальном ЦП с производительностью 1/N. В реальных условиях при слишком малых величинах времени и, соответ-но, слишком частом переключении контекста, накладные расходы на переключения резко снижают производительность сист-ы.
^ Shortest Job First(SJF). При известных длительностях выполн-ия проц-са, находящ-ся в сост. готовность, м. выбрать для исполн-ия не проц-с из начала очереди, а проц-с с мин. длительностью выполн-ия. Если таких проц-ов 2 или больше, то для выбора одного из них м. использ-ть алг-м FCFS, квантование времени при этом не примен-ся. Описанный алг-м получил назв-ие “кратчайший выполн-ся первым”. SJF – это алг-м краткосрочного планир-ия. Оно м.б. вытесняющим и невытесняющим. При невытесняющем SJF планир-ии ЦП предоставл-ся избранному проц-су на всё необходимое ему вр., независимо от событий, происходящих в выч. сист. При вытесняющих SFJ планир-ях учитыв-ся появление нов. проц-ов во вр. работы выбран-го проц-са. Если время непр-го выполн-ия нов. проц-са меньше, чем у исполняющегося, то он вытесняется новым. Осн. cложность при реализ-ии алг-ма SJF: невозможность точного знания времени очередного промежутка вр. непрерывной работы для исполняющегося проц-са. При краткоср-ом планир-ии м. делать только прогноз длительности след. промежутка вр. непр-ой работы, исходя из предысторий работы проц-ов. Можно использовать оценку, взять старую оценку, сложить с измеренным временем текущего промежутка времени непр-ой работы и получен. сумму / на 2- это продолж-ть очередных промежутков времени непр-го использ-ия ЦП для краткосрочного SJF-планир-ия.
^ Приоритетное планир-ие(ПП). При ПП кажд. проц-су присваив-ся очередное численное знач-ие – приоритет, в соответсвии с кот. ему выделяется ЦП. Проц-с с одинак. приоритетами планир-ся в порядке FCFS. Для кажд. SJF в кач-ве приоритета выступает оценка продолжит-ти след. времени непрывного использ-ия проц-са. Чем меньше значение этой оценки, тем выше приоритет проц-са. Принципы назнач-ия приоритета м. опираться как на внутренние критерии выч. сист. так и на внешние. Внутр. использ-т разл. колич-ые и качеств-ые хар-ки проц-са для вычисл-ия его приоритета. Это могут быть , н-р, требования к размеру памяти, число открытых файлов и др. Внеш. критерии исходят из таких параметров, как важность процесса для достижения к-л. целей, стоимость оплаченного проц-го времени и др.. Планир-ие с использ-ем приоритета м.б. вытесн-им и невытесн-им. При вытесн-ем планир-ии проц-с с более выс приоритетом, появившийся в очереди готовых проц-ов, вытесняет исполняющ-ся проц-с с более низким приоритетом. В случае невытесн-го планир-ия он просто став-ся в начало очереди гот. проц-ов. Если приоритеты проц-ов с теч-ем вр. не измен-ся, они наз-ся статич-ми. Механизмы статич. приоритетности легко реализ-ть. Более гибким явл-ся динамич-ие приортеты проц-ов, изменяющ-ие свои знач-ия по ходу исполн-ия проц-са. Начальные знач-ия динамич. приоритета действуют в течении кор. времени, после чего ему назнач-ся новое более подходящее знач-ие. Примеры алг-ов с динамич. приоритетами явл-ся алг-мы SJF и алг-м гарантир-го планир-ия. Схемы с динамич. приоритетностью гораздо сложнее в реализации и связывает с большими издержками по сравнению со статич. схемами. Однако их использ-ие предполагает, что эти издержки оправдыв-ся улучшением работы сист. При ненадлежащем выборе механизма назначения и изм-ия приоритетов низкоприоритетные проц-сы м. не запускаться неопределённо долгое временя. Решение этой проблемы м.б. достигнуто с помощью увелич-ия со временем приоритета проц-са., находящ-ся в сост. «готовность». Изначально проц-ам присваивается проритеты от 128 до 255. Кажд. раз по истечении определ-го промежутка времени знач-ие приоритетов готовых проц-ов уменьш-ся на единицу. Проц-су, побывавшему в сост. «исполн-ие», присваивается первонач-ое знач-ие приоритета. Даже такая грубая схема гарантирует, что любому проц-су в разумные сроки буде предоставлено право на исполн-ие.

Архитектура ОС

В построении ОС осуществляются различные подходы:

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

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

5 интерфейс пользователя

4 управление вводом выводом

3 управление памятью

2 планирование задач

1 hardware

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

3) Микроядерная архитектура(МяА).

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



4) Смешанные системы

Из-за того, что рассмотренные подходы имеют свои достоинства и недост-ки, совр ОС используют разл-е комбинации этих подходов. Ядро ОС Linux представляет собой монолитную систему с элементами МяА. При компиляции ядра разреш-ся динамическая загрузка многих компонентов ядра, так называемых модулей. Микроядро обеспечивает управление Вирт. Памятью и работу низкоуровневых драйверов. Все остальные функции, включая взаимодействие с прикладными прогами , осуществляется монолитным ядром. Наиболее тесные элементы МяА и элементы монолитного ядра переплетены в ядре Windows NT . Микроядро NT имеет размер > 1Мб – очень много, чтобы быть микроядром.

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

^ 4. Взаимодействие процессов.

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

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

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

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

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

^ 5. Вытесняющее и невытесняющее планированиия.

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

1. Проц. перевод-ся из сост. «исполнение» в сост . «заверш. исполн-ие».

2. Проц. перевод-ся из сост. «исполнение» в сост. «ожид-ие»

3. Проц. перевод-ся из сост. «исполнение» в сост. «готовность»

4. Проц. перевод-ся из сост. «ожид-ие» в сост. «готовность» (операция вв/выв или др.событие)

В случаях 1 и 2 проц-с не м. дальше исп-ся и необходимо выбрать нов. проц-с. В случаях 3 и 4 планир-ия м. не пров-ся. Проц-с, кот. исполн-ся до прерываний м. продолжать своё выполн-ие после обработки прерывания.


Разм

8

3

1

10

2

2

2

4




Имя файла

Расши

рение

Атр

Резерв

Время

Дата

№ 1-го блока

Разм
Если планир-ие осуществл-ся только в случаях 1 и 2 говорят, что имеет место невытесняющее планир-ие. В противном случае говорят о вытесняющем планир-ии. Термин “вытесняющее планир-ие” возник т.к. исполняющ-ся проц-с помимо своей воли м. б. вытеснен из сост исполн-ия в др. сост-е.

Невытесняющее планир-ие использ-ся в сист-х MS Windows, Apple Macintosh.

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

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

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

^ 6. Динамическое распределение – Swapping.

В системах с разделением времени возможна ситуация когда память не в состоянии содержать все пользовательские процессы. Приходиться прибегать к (swapping) - перемещение процесса из главной памяти на диск и обратно в целях частичной выгрузки процессов на диск. Частичная выгрузка процессов на диск осуществляется в системах со страничной организацией (paging). Swapping не имеет непосредственного отношения к управлению памятью, скорее он связан с подсистемой планирования процессов. Очевидно, что swapping увеличивает время переключения контекста; время выгрузки может быть сокращено за счет организации специально отведенного пространства на диске (Раздел для Swapping). Обмен с дисками осуществляется блоками большего размера, т. е. быстрее, чем через стандартную файловую систему. Во многих версиях UNIX свопинг начинает работать только тогда, когда возникает необходимость в снижении загрузки системы.
^ 7. Директории в MSDOS

Директория – файл, имеющий вид таблицы и хранящий список входящих в него файлов и каталогов.

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

Имя файла

Тип файла




Anti

K

атрибуты

Games

K

атрибуты

Autoexec.bat

O

атрибуты

mouse.com

O

атрибуты

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

^ Директории в ОС MS DOS.

В этой ОС типовая запись директории имеет вид:

В ОС MS DOS директории могут содержать поддиректории, которые определяются битом атрибутов, что позволяет конструировать произвольное дерево директорий файловой системы. Номер 1-го блока используется в качестве индекса в FAT. Далее по этой таблице могут быть найдены остальные блоки.
^ 8. Директории в ОС UNIX.

Директория – файл, имеющий вид таблицы и хранящий список входящих в него файлов и каталогов.

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

Имя файла

Тип файла




Anti

K

атрибуты

Games

K

атрибуты

Autoexec.bat

O

атрибуты

mouse.com

O

атрибуты

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

2

14

Номер индексного дескриптора

Имя файла

Каждая запись содержит имя файла и номер его индексного дескриптора. Вся остальная информация о файле и номера дисковых блоков находятся в индексном дескрипторе. В более поздних версиях UNIX структура кода записи претерпела ряд изменений. Например, имя файла записывается в структуру. Но суть осталась прежней.
^ 9. Дисковые индексные дескрипторы.

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

Индексирование поддерживает прямой доступ к файлу без ущерба от внеш. Фрагментации

Индексированное размещение широко распространено и поддерживает как последовательный, так и прямой доступ к памяти. Обычно применяется комбинация одноуровневых и многоуровневых индексов. Первые несколько адресов блоков файлов хранятся непосредственно в индексном дискриптере. Т. о. д/маленьких файлов индексный дискриптер хранит всю необх. инфу об адресах блоков. д\больших файлов один из адресов индеек. дискриптера указывает на блок косвенной адресной. Этот блок содержит адреса дополнительных блоков дисков, если этого недостаточно, то использ-ся блок двойной косвенненной адресации., который содержит адреса блоков косвенной адресации. Если этого не хватает, то используется третья косвенная адресация. Данную схему используют Unix и файловые системы HPFS, NTFS.

Такой подход позволяет при фиксированном относительно небольшом размере индексного дискриптера, поддерживать работу с файлами, размер которой изменяется от неск. байтов до нескольких Гбайтов.

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

^ 10. Категории средств обмена информацией между процессами

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

1. Сигнальный. Передаётся минимальное количество информации: 1 бит, да или нет. Используется, как правило, для извещения процесса о наступлении какого либо события. Степень воздействия на поведение процесса, получившего информацию, минимальна. Всё зависит от того, знает ли он, что означает полученный сигнал, надо ли на него реагировать и каким образом.

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

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

^ 11-12. Классификация ОС

ОС можно разделить на несколько классов:

  1. ДОС(Дисковые Операционные Системы)=DOS

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

Характерный пример - различные загрузочные мониторы д/машин класса Spectrum. Дисковая ОС MS DOS для IBM PC-совместимых машин является прямым наследником одного из таких резидентных мониторов.

  1. ОС общего назначения (General Purpose Operating System)

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

  1. ^ ЩС реального времени (Real Time Systeь)

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

  1. ^ Системы вирт-х маншин.

Это ОС, допускающая одновременную работу нескольких прог, но создающая при это иллюзию, что машина находится в полном распоряжении проги как при работе под управлением ДОС. Эти системы с достаточно высокими накладными расходами и низкой надёжностью. Часто они являются подсистемой ОС общего назначения: MS DOS и MS Windows.

  1. ^ Системы кросс-разработки

Предназначены д/разработки прог в двухмашинной конфигурации, когда редактиров-е, компиляция производятся на инструментальной машине. Пример, системы программирования микроконтроллеров Intel,Atmel,PIC.

  1. Системы промежуточных типов (“in-between system”)

Гибриды вышеперечисленныхклассов.
^ 13. Критерии надежности средств связи.

Способ коммуникации называется надежным, если при обмене данными выполняются 4 условия:

1) не происходит потери информации

2) не происходит повреждения информации

3) не появляется лишней информации

4) не нарушается порядок данных в процессе обмена

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

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

Если данные не повреждены, т.е. контрольные суммы совпадают, то подтверждается правильность их получения. Если данные повреждены, считается, что сообщение не поступило.

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

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

Для гарантии правильности порядка получения сообщений они нумеруются. Эти действия могут быть возложены на:

  1. ОС

  2. процессы, обменивающиеся данными

  3. совместно на ОС и процессы, разделяя их ответственность

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

^ 14. Логическая память.

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

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

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

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

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

Логическое и физическое адресные пространства ни по организации, ни по размеру не соответствуют друг другу. Максимальный размер логического адресного пространства обычно определяется разрядностью процессора, например 2^32 и в современных системах значительно превышает размер физического адресного пространства. Следовательно, ЦП и ОС должны быть способны отобразить ссылки в ходе программы в реальные физические адреса соответствующие текущему расположению программы в основной памяти. Такое отображение адресов называют трансляцией адреса (привязкой или связыванием адресов)

Связывание логического адреса, порожденного оператором программы, с физическим, должно быть осуществлено до начала выполнения оператора или в момент его выполнения.
  1   2   3   4



Скачать файл (275.9 kb.)

Поиск по сайту:  

© gendocs.ru
При копировании укажите ссылку.
обратиться к администрации
Рейтинг@Mail.ru