Операционные системы (шпаргалка) 
	
	
|                             |происходит чтение из таблицы |                             | 
|                             |страниц информации о         |                             | 
|                             |виртуальной странице, к      |                             | 
|                             |которой произошло обращение..|                             | 
|Многослойная архитектура.    |                             |                             | 
|Вычислительную систему можно |* Гарантированное время      |                             | 
|рассматривать как систему,   |реакции на внешнее событие   |                             | 
|составленную из трех         |является отличительным       |                             | 
|иерархических слоев. Нижний  |признаком систем РВ.         |                             | 
|слой образует аппаратура.    |Требование гарантированного  |                             | 
|Промежуточный – ядро ОС.     |времени реакции налагает     |                             | 
|Верхний слой – утилиты,      |специфические требования на  |                             | 
|обрабатывающие программы и   |архитектуру ОС; большинство  |                             | 
|приложения.                  |современных ОС общего        |                             | 
|Ядро ОС имеет также сложную  |назначения непригодно для    |                             | 
|структуру и может содержать  |задач РВ.                    |                             | 
|следующие слои               |*                            |                             | 
|средства аппаратной поддержки|Любопытно, что новомодное    |                             | 
|ОС                           |течение в компьютерной       |                             | 
|машинно-зависимые модули     |технике - multimedia - при   |                             | 
|базовые механизмы ядра       |качественной реализации      |                             | 
|менеджеры ресурсов           |предъявляет к системе те же  |                             | 
|интерфейс системных вызовов. |требования, что и            |                             | 
|Средства аппаратной поддержки|промышленные задачи реального|                             | 
|включают в себя несколько    |времени. В multimedia        |                             | 
|пунктов                      |основной проблемой является  |                             | 
|средства поддержки           |синхронизация изображения на |                             | 
|привилегированного режима    |экране со звуком. Именно в   |                             | 
|средства трансляции адресов  |таком порядке. Звук обычно   |                             | 
|средства переключения        |генерируется внешним         |                             | 
|процессов                    |аппаратным устройством с     |                             | 
|системный таймер             |собственным таймером, и      |                             | 
|система прерываний           |изображение синхронизуется с |                             | 
|средства защиты областей     |ним же. Человек способен     |                             | 
|памяти                       |заметить довольно малые      |                             | 
|                             |временные неоднородности в   |                             | 
|                             |звуковом потоке. Напротив,   |                             | 
|                             |пропуск кадров в визуальном  |                             | 
|                             |потоке не так заметен, а     |                             | 
|                             |расхождение звука и          |                             | 
|                             |изображения заметно уже при  |                             | 
|                             |задержках около 30 мс.       |                             | 
|                             |Поэтому системы качественного|                             | 
|                             |multimedia должны            |                             | 
|                             |обеспечивать синхронизацию с |                             | 
|                             |такой же или более высокой   |                             | 
|                             |точностью, что мало          |                             | 
|                             |отличается от систем мягкого |                             | 
|                             |реального времени            |                             | 
|                             |Кросс-загрузчики             |                             | 
|                             |Это системы - полностью      |                             | 
|                             |ориентированные на работу с  |                             | 
|                             |host-машиной. Чаще всего они |                             | 
|                             |используются для написания и |                             | 
|                             |отладки кода, позднее        |                             | 
|                             |прошиваемого в ПЗУ. Это      |                             | 
|                             |системы программирования     |                             | 
|                             |микроконтроллеров семейства  |                             | 
|                             |Intel 8048 и подобных им, TDS|                             | 
|                             |(Transputer Development      |                             | 
|                             |System) фирмы Inmos, и многие|                             | 
|                             |другие. Такие системы, как   |                             | 
|                             |правило, включают в себя     |                             | 
|                             |набор компиляторов и         |                             | 
|                             |ассемблеров, работающих на   |                             | 
|                             |host-системе (реже -         |                             | 
|                             |загружаемых с host-машины в  |                             | 
|                             |целевую систему), библиотеки,|                             | 
|                             |выполняющие большую часть    |                             | 
|                             |функций ОС при работе        |                             | 
|                             |программы (но не загрузку    |                             | 
|                             |этой программы!), и средства |                             | 
|                             |отладки.                     |                             | 
|                             |Системы промежуточных типов  |                             | 
|                             |Существуют системы, которые с|                             | 
|                             |первого взгляда нельзя       |                             | 
|                             |отнести к одному из          |                             | 
|                             |вышеперечисленных классов.   |                             | 
|                             |Такова, например, система    |                             | 
|                             |RT-11, которая, по сути      |                             | 
|                             |своей, является ДОС, но      |                             | 
|                             |позволяет одновременное      |                             | 
|                             |исполнение нескольких        |                             | 
|                             |программ с довольно богатыми |                             | 
|                             |средствами взаимодействия и  |                             | 
|                             |синхронизации. Другим        |                             | 
|                             |примером промежуточной       |                             | 
|                             |системы являются             |                             | 
|                             |MS Windows 3.x и Windows 95  |                             | 
|                             |которые, как ОС, используют  |                             | 
|                             |аппаратные средства          |                             | 
|                             |процессора для защиты и      |                             | 
|                             |виртуализации памяти и даже  |                             | 
|                             |могут обеспечивать некоторое |                             | 
|                             |подобие многозадачной работы,|                             | 
|                             |но не защищают себя и        |                             | 
|                             |программы от ошибок других   |                             | 
|                             |программ.                    |                             | 
|                             |В последнее время вошел в    |                             | 
|                             |употребление еще один термин:|                             | 
|                             |сетевые ОС, или сокращенно   |                             | 
|                             |NOS (Networking Operating    |                             | 
|                             |System). На взгляд авторов,  |                             | 
|                             |сложившееся использование    |                             | 
|                             |этого термина несколько      |                             | 
|                             |неудачно. Его можно          |                             | 
|                             |употреблять в двух различных |                             | 
|                             |смыслах:                     |                             | 
|                             |Системы, предназначенные для |                             | 
|                             |предоставления сетевых услуг,|                             | 
|                             |аналогично тому, как ДОС     |                             | 
|                             |предназначена для            |                             | 
|                             |предоставления средств работы|                             | 
|                             |с диском. Под такое понимание|                             | 
|                             |NOS подходят                 |                             | 
|                             |узкоспециализированные       |                             | 
|                             |системы, такие как Novell    |                             | 
|                             |Netware, K9Q или программное |                             | 
|                             |обеспечение маршрутизаторов  |                             | 
|                             |Cisco.                       |                             | 
|                             |Системы, способные           |                             | 
|                             |предоставлять сетевые услуги.|                             | 
|                             |Под такое определение        |                             | 
|                             |подходят практически все     |                             | 
|                             |современные ОС общего        |                             | 
|                             |назначения.                  |                             | 
|                             |Судя по тому, что большинство|                             | 
|                             |``обзоров сетевых            |                             | 
|                             |операционных систем'' в      |                             | 
|                             |компьютерных журналах        |                             | 
|                             |сравнивают не маршрутизатор  |                             | 
|                             |Cisco с K9Q, а Windows NT с  |                             | 
|                             |SunSoft Solaris или OS/2,    |                             | 
|                             |термин NOS в этих публикациях|                             | 
|                             |понимается во втором смысле. |                             | 
|                             |Как уже говорилось,          |                             | 
|                             |практически все современные  |                             | 
|                             |ОС и некоторые ДОС способны  |                             | 
|                             |предоставлять сетевые        |                             | 
|                             |сервисы, поэтому этот термин |                             | 
|                             |почти эквивалентен словам    |                             | 
|                             |``Современная ОС общего      |                             | 
|                             |назначения'' и, таким        |                             | 
|                             |образом, почти не несет      |                             | 
|                             |полезной информации.         |                             | 
|                             |                             |                             | 
|                             |[pic]                        |                             | 
|                             |[pic]                        |                             | 
|2.Если данные обнаруживаются |На производительность системы|. Распределение памяти       | 
|в кэш-памяти, то они         |со страничной организацией   |разделами переменной         | 
|считываются из нее, и        |памяти влияют временные      |величины(динамическими). В   | 
|результат передается в       |затраты, связанные с         |этом случае память машины не | 
|процессор.                   |обработкой страничных        |делится заранее на разделы.  | 
|3. Если нужных данных нет, то|прерываний и преобразованием |Сначала вся память свободна. | 
|они вместе со своим адресом  |виртуального адреса в        |Каждой вновь поступающей     | 
|копируются из оперативной    |физический. Сегментное       |задаче выделяется необходимая| 
|памяти в кэш-память, и       |распределение. Этот метод    |ей память. Если достаточный  | 
|результат выполнения запроса |позволяет дифференцировать   |объем памяти отсутствует, то | 
|передается в процессор. При  |способы доступа к разным     |задача не принимается на     | 
|копировании данных может     |частям программы (сегментам).|выполнение и стоит в очереди.| 
|оказаться, что в кэш-памяти  |Например, если два процесса  |После завершения задачи      | 
|нет свободного места, тогда  |используют одну и ту же      |память освобождается, и на   | 
|выбираются данные, к которым |математическую подпрограмму, |это место может быть         | 
|в последний период было      |то в оперативную память может|загружена другая задача.     | 
|меньше всего обращений, для  |быть загружена только одна   |Таким образом, в произвольный| 
|вытеснения из кэш-памяти.    |копия этой подпрограммы      |момент времени оперативная   | 
|Если вытесняемые данные были |Виртуальное адресное         |память представляет собой    | 
|модифицированы за время      |пространство процесса делится|случайную последовательность | 
|нахождения в кэш-памяти, то  |на сегменты, размер которых  |занятых и свободных участков | 
|они переписываются в         |определяется программистом с |(разделов) произвольного     | 
|оперативную память. Если же  |учетом смыслового значения   |размера. Например в момент t0| 
|эти данные не были           |содержащейся в них           |в памяти находится только ОС,| 
|модифицированы, то их место в|информации. Отдельный сегмент|а к моменту t1 память        | 
|кэш-памяти объявляется       |может представлять собой     |разделена между 5 задачами,  | 
|свободным.                   |подпрограмму, массив данных и|причем одна из задач,        | 
|В кэш считывается не один    |т.п. При загрузке процесса   |завершаясь, покидает память. | 
|элемент данных, к которому   |часть сегментов помещается в |На освободившееся место после| 
|произошло обращение, а целый |оперативную память, а часть  |этой задачи загружается      | 
|блок данных. Это уменьшит    |сегментов размещается в      |другая задача, поступившая в | 
|время доступа к данным. Т.к. |дисковой памяти(если нет     |момент t3. Задачами          | 
|среднее время доступа к      |места в оп. памяти). Сегменты|операционной системы при     | 
|данным в системе с           |одной программы могут        |реализации данного метода    | 
|кэш-памятью линейно зависит  |занимать в оперативной памяти|управления памятью является: | 
|от вероятности нахождение    |несмежные участки. Во время  |(1) ведение таблиц свободных | 
|нужных данных в кэш.         |загрузки система создает     |и занятых областей, в которых| 
|В реальных системах          |таблицу сегментов процесса   |указываются начальные адреса | 
|вероятность попадания в кэш  |(аналогичную таблице         |и размеры участков памяти;   | 
|составляет примерно 0,9.     |страниц), в которой для      |(2)при поступлении новой     | 
|Высокое значение вероятности |каждого сегмента указывается |задачи - анализ запроса,     | 
|нахождения данных в          |начальный физический адрес   |просмотр таблицы свободных   | 
|кэш-памяти связано с наличием|сегмента в оперативной       |областей и выбор раздела,    | 
|у данных объективных свойств:|памяти, размер сегмента,     |размер которого достаточен   | 
|пространственной и временной |правила доступа, признак     |для размещения поступившей   | 
|локальности. Пространственная|модификации, признак         |задачи; (3) загрузка задачи в| 
|локальность: если произошло  |обращения к данному сегменту |выделенный ей раздел и       | 
|обращение по некоторому      |за последний интервал времени|корректировка таблиц         | 
|адресу, то с высокой степенью|и некоторая другая           |свободных и занятых областей;| 
|вероятности в ближайшее время|информация. Если виртуальные |(4) после завершения задачи  | 
|произойдет обращение к       |адресные пространства        |корректировка таблиц         | 
|соседним адресам. Временная  |нескольких процессов включают|свободных и занятых областей.| 
|локальность: если произошло  |один и тот же сегмент, то в  |По сравнению с методом       | 
|обращение по некоторому      |таблицах сегментов этих      |распределения памяти         | 
|адресу, то следующее         |процессов делаются ссылки на |фиксированными разделами     | 
|обращение по этому же адресу |один и тот же участок        |данный метод обладает гораздо| 
|с большой вероятностью       |оперативной памяти, в который|большей гибкостью, но ему    | 
|произойдет в ближайшее время.|данный сегмент загружается в |присущ очень серьезный       | 
|                             |единственном экземпляре.     |недостаток - фрагментация    | 
|                             |Виртуальный адрес при        |памяти. Фрагментация - это   | 
|                             |сегментной организации памяти|наличие большого числа       | 
|                             |может быть представлен парой |несмежных участков свободной | 
|                             |(g, s), где g - номер        |памяти очень маленького      | 
|                             |сегмента, а s - смещение в   |размера (фрагментов).        | 
|                             |сегменте. Физический адрес   |Настолько маленького, что ни | 
|                             |получается путем сложения    |одна из вновь поступающих    | 
|                             |начального физического адреса|программ не может поместиться| 
|                             |сегмента, найденного в       |ни в одном из участков, хотя | 
|                             |таблице сегментов по номеру  |суммарный объем фрагментов   | 
|                             |g, и смещения s.             |может составить значительную | 
|                             |Недостатком данного метода   |величину, намного превышающую| 
|                             |распределения памяти является|требуемый объем памяти.      | 
|                             |фрагментация на уровне       |Распределение памяти         | 
|                             |сегментов и более медленное  |перемещаемыми разделами.     | 
|                             |по сравнению со страничной   |Одним из методов борьбы с    | 
|                             |организацией преобразование  |фрагментацией является       | 
|                             |адреса.                      |перемещение всех занятых     | 
|                             |Сегментно-страничное         |участков в сторону старших   | 
|                             |распределение. Как видно из  |либо в сторону младших       | 
|                             |названия, данный метод       |адресов, так, чтобы вся      | 
|                             |представляет собой комбинацию|свободная память образовывала| 
|                             |страничного и сегментного    |единую свободную область. В  | 
|                             |распределения памяти и,      |дополнение к функциям,       | 
|                             |вследствие этого, сочетает в |которые выполняет ОС при     | 
|                             |себе достоинства обоих       |распределении памяти         | 
|                             |подходов. Виртуальное        |переменными разделами, в     | 
|                             |пространство процесса делится|данном случае она должна еще | 
|                             |на сегменты, а каждый сегмент|время от времени копировать  | 
|                             |в свою очередь делится на    |содержимое разделов из одного| 
|                             |виртуальные страницы, которые|места памяти в другое,       | 
|                             |нумеруются в пределах        |корректируя таблицы свободных| 
|                             |сегмента. Оперативная память |и занятых областей. Эта      | 
|                             |делится на физические        |процедура называется         | 
|                             |страницы. Загрузка процесса  |"сжатием". Сжатие может      | 
|                             |выполняется операционной     |выполняться либо при каждом  | 
|                             |системой постранично, при    |завершении задачи, либо      | 
|                             |этом часть страниц           |только тогда, когда для вновь| 
|                             |размещается в оперативной    |поступившей задачи нет       | 
|                             |памяти, а часть на диске. Для|свободного раздела           | 
|                             |каждого сегмента создается   |достаточного размера.        | 
|                             |своя таблица страниц,        |                             | 
|                             |структура которой полностью  |                             | 
|                             |совпадает со структурой      |                             | 
|                             |таблицы страниц, используемой|                             | 
|                             |при страничном распределении.|                             | 
|                             |Для каждого процесса         |                             | 
|                             |создается таблица сегментов, |                             | 
|                             |в которой указываются адреса |                             | 
|                             |таблиц страниц для всех      |                             | 
|                             |сегментов данного процесса.  |                             | 
|                             |Адрес таблицы сегментов      |                             | 
|                             |загружается в специальный    |                             | 
|                             |регистр процессора, когда    |                             | 
|                             |активизируется               |                             | 
|                             |соответствующий процесс.     |                             | 
|13.Кэш-память. Случайное     |14.Кэш-память. Прямое        |15.Двухуровневое кэширование.| 
|отображение данных на кэш.   |отображение данных на кэш.   |Принцип работы. Выполнение   | 
|Выполнение запроса в системах|Выполнение запроса в системах|запроса с системах с         | 
|с кэш памятью.               |с кэш памятью.               |многоуревневой кэш памятью.  | 
|Кэш-память-способ организации|Кэш-память-способ организации|Каждый процессор для своей   | 
|совместного функц-ия двух    |совместного функц-ия двух    |работы использует            | 
|типов ЗУ, отличающихся       |типов ЗУ, отличающихся       |двухуровневый кэш со         | 
|временем доступа и стоимостью|временем доступа и стоимостью|свойствами охвата. Это       | 
|хранения данных, кот.        |хранения данных, кот.        |означает, что кроме          | 
|позволяет уменьшить время    |позволяет уменьшить время    |внутреннего кэша первого     | 
|доступа к данным за счет     |доступа к данным за счет     |уровня (кэша L1), встроенного| 
|динамического копирования в  |динамического копирования в  |в каждый процессор PowerPC,  | 
|"быстрое" ЗУ наиболее часто  |"быстрое" ЗУ наиболее часто  |имеется связанный с ним кэш  | 
|используемой информации из   |используемой информации из   |второго уровня (кэш L2). При | 
|"медленного" ЗУ.             |"медленного" ЗУ.             |этом каждая строка в кэше L1 | 
|На практике в кэш-память     |На практике в кэш-память     |имеется также и в кэше L2. В | 
|считывается не один элемент  |считывается не один элемент  |настоящее время объем кэша L2| 
|данных, к которому произошло |данных, к которому произошло |составляет 1 Мбайт на каждый | 
|обращение, а целый блок      |обращение, а целый блок      |процессор, а в будущих       | 
|данных, это увеличивает      |данных, это увеличивает      |реализациях предполагается   | 
|вероятность так называемого  |вероятность так называемого  |его расширение до 4 Мбайт.   | 
|"попадания в кэш", то есть   |"попадания в кэш", то есть   |Сама по себе кэш-память      | 
|нахождения нужных данных в   |нахождения нужных данных в   |второго уровня позволяет     | 
|кэш-памяти.                  |кэш-памяти.                  |существенно уменьшить число  | 
|В реальных системах          |В реальных системах          |обращений к памяти и         | 
|вероятность попадания в кэш  |вероятность попадания в кэш  |увеличить степень локализации| 
|составляет примерно 0,9.     |составляет примерно 0,9.     |данных. Для повышения        | 
|Высокое значение вероятности |Высокое значение вероятности |быстродействия кэш L2        | 
|связано с наличием у данных  |связано с наличием у данных  |построен на принципах прямого| 
|свойств: пространственной и  |свойств: пространственной и  |отображения. Длина строки    | 
|временной локальности.       |временной локальности.       |равна 32 байт (размеру       | 
|Пространственная локальность.|Пространственная локальность.|когерентной гранулированности| 
|Если произошло обращение по  |Если произошло обращение по  |системы). Следует отметить,  | 
|некоторому адресу, то с      |некоторому адресу, то с      |что, хотя с точки зрения     | 
|высокой степенью вероятности |высокой степенью вероятности |физической реализации        | 
|в ближайшее время произойдет |в ближайшее время произойдет |процессора PowerPC, 32 байта | 
|обращение к соседним адресам.|обращение к соседним адресам.|составляют только половину   | 
|                             |                             |строки кэша L1, это не меняет| 
|Временная локальность. Если  |Временная локальность. Если  |протокол когерентности,      | 
|произошло обращение по       |произошло обращение по       |который управляет операциями | 
|некоторому адресу, то        |некоторому адресу, то        |кэша L1 и гарантирует что кэш| 
|следующее обращение по этому |следующее обращение по этому |L2 всегда содержит данные    | 
|же адресу с большой          |же адресу с большой          |кэша L1.                     | 
|вероятностью произойдет в    |вероятностью произойдет в    |Кэш L2 имеет внешний набор   | 
|ближайшее время.             |ближайшее время.             |тегов. Таким образом, любая  | 
|В системах, оснащенных       |В системах, оснащенных       |активность механизма         | 
|кэш-памятью, каждый запрос к |кэш-памятью, каждый запрос к |наблюдения за когерентным    | 
|оперативной памяти           |оперативной памяти           |состоянием кэш-памяти может  | 
|выполняется в соответствии со|выполняется в соответствии со|быть связана с кэшем второго | 
|следующим алгоритмом:        |следующим алгоритмом:        |уровня, в то время как       | 
|Просматривается содержимое   |Просматривается содержимое   |большинство обращений со     | 
|кэш-памяти с целью           |кэш-памяти с целью           |стороны процессора могут     | 
|определения, не находятся ли |определения, не находятся ли |обрабатываться первичным     | 
|нужные данные в кэш-памяти;  |нужные данные в кэш-памяти;  |кэшем. Если механизм         | 
|кэш-память не является       |кэш-память не является       |наблюдения обнаруживает      | 
|адресуемой, поэтому поиск    |адресуемой, поэтому поиск    |попадание в кэш второго      | 
|нужных данных осуществляется |нужных данных осуществляется |уровня, то он должен         | 
|по содержимому - значению    |по содержимому - значению    |выполнить арбитраж за        | 
|поля "адрес в оперативной    |поля "адрес в оперативной    |первичный кэш, чтобы обновить| 
|памяти", взятому из запроса. |памяти", взятому из запроса. |состояние и возможно найти   | 
|                             |                             |данные, что обычно будет     | 
|Если данные обнаруживаются в |Если данные обнаруживаются в |приводить к приостановке     | 
|кэш-памяти, то они           |кэш-памяти, то они           |процессора. Поэтому          | 
|считываются из нее, и        |считываются из нее, и        |глобальная память может      | 
|результат передается в       |результат передается в       |работать на уровне тегов кэша| 
|процессор.                   |процессор.                   |L2, что позволяет существенно| 
|                             |                             |ограничить количество        | 
|                             |                             |операций наблюдения,         | 
|                             |                             |генерируемых системой в      | 
|                             |                             |направлении данного          | 
|                             |                             |процессора. Это, в свою      | 
|                             |                             |очередь, существенно         | 
|                             |                             |увеличивает                  | 
|                             |                             |производительность системы,  | 
|                             |                             |поскольку любая операция     | 
|                             |                             |наблюдения в направлении     | 
|                             |                             |процессора сама по себе может| 
|                             |                             |приводить к приостановке его | 
|                             |                             |работы.                      | 
|16.Способы загрузки программ.|21.Синхронизация параллельных|22. Семафор Дийкстры         | 
|Относительная и абсолютная   |процессов. Проблема          |представляет собой           | 
|загрузка. Оверлеи.           |критических участков. Подходы|целочисленную переменную, с  | 
|Абсолютная загрузка. Самый   |к решению проблемы           |которой ассоциирована очередь| 
|простой вариант состоит в    |(прерывания, семафоры,       |ожидающих процессов. Над     | 
|том, что мы всегда будем     |сигналы, блокировка).        |семафором возможно проведение| 
|загружать программу с одного |Первой из проблем является   |только двух операций -       | 
|и того же адреса. Это        |проблема разделения ресурсов.|“открытия” и “закрытия”,     | 
|возможно если: система может |Действительно, представим    |названных соответственно P- и| 
|предоставить программе свое  |себе две программы,          |V- операциями. Существенно,  | 
|адресное пространство,       |пытающиеся печатать что-то на|что операции над семафорами  | 
|Система может исполнять в    |одном принтере их вывод на   |являются неделимыми          | 
|каждый момент только одну    |бумаге будет перемешан. Одним|(непрерываемыми), поэтому их | 
|программу. Такой модуль      |из разумных решений может    |часто называют примитивами.  | 
|называется абсолютным        |быть монопольный захват      |Пытаясь пройти через семафор,| 
|загрузочным модулем – это    |принтера одной из программ   |процесс пытается вычесть из  | 
|копия содержимого            |Другая проблема - это        |значения переменной 1. Если  | 
|виртуального пространства    |проблема реентерабельности   |значение переменной больше   | 
|проги в момент ее запуска. В |(reenterability - повтоpной  |или равно 1, процесс проходит| 
|системе UNIX используется    |входимости, от re-enter)     |сквозь семафор успешно       | 
|абсолютная загрузка.         |разделяемых программ.        |(семафор открыт). Если       | 
|Загружаемый файл начинается с|Представим себе, что две     |переменная равна нулю        | 
|заголовка, который содержит: |задачи используют общий      |(семафор закрыт), процесс    | 
|''магическое число'' -       |программный модуль.          |останавливается и ставится в | 
|признак того, что это        |Представим себе, что одна из |очередь. Таким образом,      | 
|загружаемый модуль, число    |программ вызвала процедуру из|семафор выполняет роль       | 
|TEXT_SIZE - длину области    |разделяемого модуля. После   |вспомогательного критического| 
|кода программы (TEXT),       |этого произошло переключение |ресурса. Закрытие семафора   | 
|DATA_SIZE - длину области    |задач, и вторая задача       |соответствует захвату        | 
|инициализованных данных      |обращается к тому же модулю. |ресурса, доступ к которому   | 
|программы (DATA), BSS_SIZE - |                             |контролируется этим          | 
|длину области                |Очень широкий класс проблем -|семафором. Процесс, закрывший| 
|неинициализованных данных    |проблемы синхронизации,      |семафор, захватывает ресурс. | 
|программы (BSS), Стартовый   |возникающие при попытках     |Если ресурс захвачен,        | 
|адрес программы. За          |организовать взаимодействие  |остальные процессы вынуждены | 
|заголовком следует содержимое|нескольких программ.         |ждать его освобождения.      | 
|областей TEXT и DATA. Затем  |Первая, состоит в вопросе -  |Закончив работу с ресурсом,  | 
|может следовать отладочная   |если одна задача производит  |процесс увеличивает значение | 
|информация. При загрузке     |данные, а вторая их          |семафора на единицу, открывая| 
|система выделяет программе   |потребляет, то как           |его. При этом первый из      | 
|TEXT_SIZE байтов виртуальной |задача-потребитель узнает,   |стоявших в очереди процессов | 
|памяти, доступной для        |что готова очередная порция  |активизируется, вычитает из  | 
|чтения/исполнения, и копирует|данных? Или, что еще         |значения семафора единицу, и | 
|туда содержимое сегмента     |интереснее, как она узнает,  |снова закрывает семафор. Если| 
|TEXT. Затем отматывается     |что очередная порция данных  |же очередь была пуста, то    | 
|DATA_SIZE байтов памяти,     |еще не готова?               |ничего не происходит, просто | 
|доступной для чтения/записи, |Другая проблема называется   |семафор остается открытым.   | 
|и туда копируется содержимое |проблемой критических секций.|Тогда первый процесс,        | 
|сегмента DATA. Затем         |Например, одна программа     |подошедший к семафору,       | 
|отматывается еще BSS_SIZE    |вставляет данные в           |успешно пройдет через него.  | 
|байтов памяти. После этого   |разделяемый двунаправленный  |Это действительно похоже на  | 
|выделяется пространство под  |список, а другая достает их  |работу железнодорожного      | 
|стек, в стек помещаются      |оттуда. Те, кто знаком с     |семафора, контролирующего    | 
|позиционные аргументы и среда|алгоритмом вставки в список, |движение поездов по          | 
|исполнения, и управление     |легко поймут, что есть       |одноколейной ветке.          | 
|передается на стартовый      |момент, когда указатели      |Наиболее простым случаем     | 
|адрес. Программа начинает    |элементов показывают вовсе не|семафора является двоичный   | 
|исполняться.                 |туда, куда надо. Попытка     |семафор. Начальное значение  | 
|Относительная загрузка.      |произвести в этот момент     |такого семафора равно 1, и   | 
Страницы: 1, 2, 3, 4 
	
	
					
							 |