Logo GenDocs.ru

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

Загрузка...

Шпора на экзамен по ОС, Лянцев - файл 1.doc


Шпора на экзамен по ОС, Лянцев
скачать (277.5 kb.)

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

1.doc278kb.12.12.2011 21:21скачать

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

1.doc

  1   2   3
Реклама MarketGid:
Загрузка...
1.Процесс Control Block и контекст процесса. Для того чтобы операционная система могла выполнять операции над процессами, каждый процесс представляется в ней некоторой структурой данных. Эта структура содержит информацию, специфическую для данного процесса: 1) состояние, в котором находится процесс; 2) программный счетчик процесса или, другими словами, адрес команды, которая должна быть выполнена для него следующей; 3)содержимое регистров процессора; 4) данные, необходимые для планирования использования процессора и управления памятью (приоритет процесса, размер и расположение адресного пространства и т. д.); 5) учетные данные (идентификационный номер процесса, какой пользователь инициировал его работу, общее время использования процессора данным процессом и т. д.); 6) информацию об устройствах ввода-вывода, связанных с процессом (например, какие устройства закреплены за процессом, таблицу открытых файлов). Для любого процесса, находящегося в вычислительной системе, вся информация, необходимая для совершения операций над ним, доступна операционной системе. Для простоты изложения будем считать, что она хранится в одной структуре данных. Ее называют PCB (Process Control Block) или блоком управления процессом. Любая операция, производимая операционной системой над процессом, вызывает определенные изменения в PCB. Информацию, для хранения которой предназначен блок управления процессом, удобно для дальнейшего изложения разделить на две части. Содержимое всех регистров процессора регистровым контекстом процесса, а все остальное – системным контекстом процесса. Код и данные, находящиеся в адресном пространстве процесса, называют его пользовательским контекстом. Совокупность регистрового, системного и пользовательского контекстов процесса для краткости принято называть просто контекстом процесса.

^ 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 в кач-ве такого приоритета выступает оценка продолжит-ти след. времени непрывного использ-ия проц-са. Чем меньше значение этой оценки, тем выше приоритет проц-са. Принципы назнач-ия приоритета м. опираться как на внутренние критерии выч. сист. так  и на внешние. Внутр. использ-т разл. колич-ые и качеств-ые хар-ки проц-са для вычисл-ия его приоритета. Внеш. критерии исходят из таких параметров, как важность процесса для достижения к-л. целей, стоимость оплаченного проц-го времени и др.. Планир-ие с использ-ем приоритета м.б. вытесн-им и невытесн-им. При вытесн-ем планир-ии проц-с с более выс приоритетом, появившийся в очереди готовых проц-ов, вытесняет исполняющ-ся  проц-с с более низким приоритетом. В случае невытесн-го планир-ия он просто став-ся в начало очереди гот. проц-ов. Если приоритеты проц-ов с теч-ем вр. не измен-ся, они наз-ся статич-ми. Более гибким явл-ся динамич-ие приортеты проц-ов, изменяющ-ие свои знач-ия по ходу исполн-ия проц-са. Начальные знач-ия динамич. приоритета действуют в течении кор. времени, после чего ему назнач-ся новое более подходящее знач-ие. Схемы с динамич. приоритетностью гораздо сложнее в реализации и связывает с большими издержками по сравнению со статич. схемами. Однако их использ-ие предполагает, что эти издержки оправдыв-ся улучшением работы сист. При ненадлежащем выборе механизма назначения и изм-ия приоритетов низкоприоритетные проц-сы м. не запускаться неопределённо долгое временя. Решение этой проблемы м.б. достигнуто с помощью увелич-ия со временем приоритета проц-са., находящ-ся в сост. «готовность». Изначально проц-ам присваивается проритеты от 128 до 255. Кажд. раз по истечении определ-го промежутка времени знач-ие приоритетов готовых проц-ов уменьш-ся на единицу. Проц-су, побывавшему в сост. «исполн-ие», присваивается первонач-ое знач-ие приоритета. Гарантированное планирование При интерактивной работе  пользователей в вычислительной системе можно применить алгоритм планирования, который гарантирует, что каждый из пользователей будет иметь в своем распоряжении часть процессорного времени. Пронумеруем всех пользователей от  до . Для каждого пользователя с номером i введем две величины: i - время нахождения пользователя в системе, или, другими словами длительность сеанса его общения с машиной, и Bi - суммарное процессорное время уже выделенное всем его процессам в течение сеанса. Справедливым для пользователя было бы получение i/ процессорного времени. Если Bi < Ti / N то i - й пользователь несправедливо обделен процессорным временем. Если же Bi > Ti / N то система явно благоволит к пользователю с номером i. Вычислим для каждого пользовательского процесса значение коэффициента справедливости (Bi*N) / Ti и будем предоставлять очередной квант времени процессу с наименьшей величиной этого отношения. Предложенный алгоритм называют алгоритмом гарантированного планирования. К недостаткам этого алгоритма можно отнести невозможность предугадать поведение пользователей.

^ 3. Архитектура ОС В построении ОС осуществляются различные подходы: 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 планир-ия м. не пров-ся. Проц-с, кот. исполн-ся до прерываний м. продолжать своё выполн-ие после обработки прерывания. Если планир-ие осуществл-ся  только в случаях 1 и 2  говорят, что имеет место невытесняющее планир-ие. В противном случае говорят о вытесняющем планир-ии. Термин “вытесняющее планир-ие” возник т.к. исполняющ-ся проц-с  помимо своей воли м. б. вытеснен из сост исполн-ия в др. сост-е. Невытесняющее планир-ие использ-ся в сист-х Apple Macintosh. При таком режиме планир-ия проц-с м. занимать столько проц-го времени, ск-ко ему необходимо. Переключение проц-ов возникает т.о. при желании самого исполн-ся проц-а передать управление(для ожидания, заверш-ия опер-ий вв/выв. или по окончании работы). Этот метод планир-ия проц-а относит-но просто реализ-ся и достаточно эффективен, т.к. позволяет до минимума сократить затраты на переключение контекста. Однако при невытесняющем планир-ии возникает возможность полного захвата ЦП одним проц-ом, кот. вследствие к-л. причин зацикливается и не м. передать управл-ие др. проц-у. Вытесняющее планир-ие обычно использ-ся в сист-х разделения времени. В этом режиме проц-с м.б. приостановлен в любой момент исполнения. ОС устанавливает спец. таймер для генерации сигнала прерывания по истечении некот-го интервала времени – кванта. После прерывания ЦП передаётся в распоряжение след. проц-су. Временные прерывания помогают гарантировать приемлемое время отклика проц-ов для юзеров, работающих в диалоговом режиме и предотвращают зависание комп. сист. из-за зацикливания программы.

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

^ 7. Директории в MSDOS Директория – файл, имеющий вид таблицы и хранящий список входящих в него файлов и каталогов. Основная задача файлов и каталогов – поддержка иерархической древовидной структуры файловой системы. Запись директории имеет определенный для данной ОС формат, поэтому блоки данных файла директорий заполняются не через операции записи, а при помощи специальных системных вызовов. Для доступа к файлам ОС использует путь, сообщенный пользователем. Запись директории связывает имя файла и/или имя поддиректории с блоком данных на диске. В зависимости от способа выделения файлу блоков диска эта ссылка может быть адресом первого блока или номером индексного дескриптора. В любом случае, обеспечивается связь символьного имени файла с данными на диске. При открытии файла ОС ищет его имя в директории. Затем из записи директории или из структуры, на которую запись директории указывает, извлекаются атрибуты и адреса блоков файла на диске. Эта информация помещается в системную таблицу в оперативной памяти. Все последующие ссылки на данный файл используют эту информацию. Атрибуты файла можно хранить в записи директории. Однако, для организации совместного доступа к файлу удобнее хранить атрибуты в индексном дескрипторе, как это делается в UNIX. В этой ОС типовая запись директории имеет вид: разряды 8 3 1 10 2 2 2 4 имя файла расширение атрибуты резервное поле время дата № первого блока размер. В ОС MS DOS директории могут содержать поддиректории, которые определяются битом атрибутов, что позволяет конструировать произвольное дерево директорий файловой системы. Номер 1-го блока используется в качестве индекса в FAT. Далее по этой таблице могут быть найдены остальные блоки.

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

^ 9. Дисковые индексные дескрипторы. Наиболее распространенный метод выделения файла, блоков диска – это связать с каждым файлом небольшую таблицу, называемую индексом дискриптера или индексным узлом, который перечисляет атрибуты и индексные адреса блоков файла. Запись директории, относящейся к файлу содержит адрес индексного дескриптора. Индексирование поддерживает прямой доступ к файлу без ущерба от внеш. фрагментации. Индексированное размещение широко распространено и поддерживает как последовательный, так и прямой доступ к памяти. Обычно применяется комбинация одноуровневых и многоуровневых индексов. Первые несколько адресов блоков файлов хранятся непосредственно в индексном дискриптере. Т. о. д/маленьких файлов индексный дескриптор хранит всю необх. инфу об адресах блоков. д/больших файлов один из адресов индекс. дескриптора указывает на блок косвенной адресной. Этот блок содержит адреса дополнительных блоков дисков, если этого недостаточно, то использ-ся блок двойной косвенной адресации., который содержит адреса блоков косвенной адресации. Если этого не хватает, то используется третья косвенная адресация. Такой подход позволяет при фиксированном относительно небольшом размере индексного дескриптора, поддерживать работу с файлами, размер которых изменяется от неск. байтов до нескольких Гбайтов. Существенно, что д/малых файлов используется только прямая адресация, обеспечивающая максм-ю производительность.

^ 10. Категории средств обмена информацией между процессами 1)Сигнальные. Передается минимальное количество информации — один бит, “да” или “нет”. Используются, как правило, для извещения процесса о наступлении какого-либо события. Степень воздействия на поведение процесса, получившего информацию, минимальна. Неправильная реакция на сигнал или его игнорирование могут привести к трагическим последствиям. 2)Канальные. Общение процессов происходит через линии связи, предоставленные операционной системой, и напоминает общение людей по телефону, с помощью записок, писем или объявлений. Объем передаваемой информации в единицу времени ограничен пропускной способностью линий связи. С увеличением количества информации увеличивается и возможность влияния на поведение другого процесса. 3)Разделяемая память. Два или более процессов могут совместно использовать некоторую область адресного пространства. Созданием разделяемой памяти занимается операционная система. Использование разделяемой памяти для передачи/получения информации осуществляется с помощью средств обычных языков программирования, в то время как сигнальным и канальным средствам коммуникации для этого необходимы специальные системные вызовы. Разделяемая память представляет собой наиболее быстрый способ взаимодействия процессов в одной вычислительной системе.

^ 11-12. Классификация ОС 1. Мэйнфреймы. У них отличаются от ПК возможности I/O. Обычно мэйнфреймы содержат тысячи дисков и терабайты ОЗУ. Они используются в виде мощных web-серверов, серверов для крупномасштабных коммерческих сайтов и серверов для транзакций в бизнесе. ОС для мэйнфреймов ориентированы на обработку множества одновременных заданий, большинству из которых требуется огромное количество операций I/O. Обычно они предполагают три вида обслуживания: 1) пакетную обработку. Система выполняет стандартные задания без присутствия пользователей. В пакетном режиме обрабатываются иски страховых компаний и составляются отчеты о продаже в магазине; 2) обработку транзакций. Система обработки транзакций управляет очень большим количеством маленьких запросов. Каждый отдельный запрос невелик, но система должна отвечать на тысячи запросов в секунду; 3) разделение времени. Системы, работающие в режиме разделения времени, позволяют множеству удаленных пользователей выполнять свои задания на одной машине. Все эти функции тесно связаны между собой и часто ОС мэйнфрейма выполняет их все. 2. Серверные ОС. Работают на серверах, которые представляют собой или очень большие ПК, или рабочие станции, или даже мэйнфреймы. Они одновременно обслуживают множество пользователей и позволяют им делить программные и аппаратные ресурсы. Серверы представляют возможность работать с печатающими устройствами, файлами и Internet. Internet-провайдеры обычно запускают в работу несколько серверов, чтобы поддерживать одновременный доступ к сети множества клиентов. На серверах хранятся страницы web-сайтов и обрабатываются входные запросы. 3. Многопроцессорные ОС. Наиболее часто применяемый способ увеличения мощности компьютера заключается в соединении ЦП в одну систему. В зависимости от вида соединения ЦП и разделения работы такие системы называются параллельными компьютерами, мультикомпьютерами или многопроцессорными системами. 4. ОС для ПК. Работа этих ОС заключается в представлении удобного интерфейса для одного пользователя. 5. ОС Реального времени. Главным параметром ОС РВ является время. Например, в СУ производством компьютеры, работающие в режиме РВ, собирают данные о промышленном процессе и используют их для управления машинами. Такие процессы должны удовлетворять жестким временным требованиям. 6. Встроенные ОС Карманный компьютер, или PDA, - маленький компьютер, помещающийся в кармане брюк и выполняющий некоторые функции (записная книжка, блокнот). 7. ОС для Smart-карт. Самые маленькие ОС работают на Smart-картах, представляющих собой устройство с ЦП. На такие ОС накладываются крайне жесткие ограничения по мощности ЦП и памяти. Некоторые из них могут управлять только одной операцией, но другие ОС на тех же самых Smart-картах выполняют сложные функции. ОС можно разделить на несколько классов: 1. ДОС. Представляют собой резидентный набор подпрограмм, не более того. ДОС загружает пользовательскую программу в память и передаёт ей управление, после чего прога делает с системой всё, что захочет. При завершении проги машину нужно оставлять в таком состоянии, чтобы ДОС могла продолжить работу. Иначе ДОС ничем ей  в этом не может помочь. 2. ОС общего назначения (General Purpose Operating System), Это системы, берущие на себя выполнение всех функций ОС. Эти системы рассчитаны на интерактивную работу  одного или неск. пользователей в режиме разделения времени, при не очень жестких требованиях ко времени реакции системы на внеш события. 3. OC реального времени. Это системы, предназ-е д./разработки так называемых приложений реального времени-прог, управляющих  оборудованием ПК, часто с очень жесткими ограничениями по времени. Эти сиcтемы обязаны поддержать  многопоточность, гарантированное время реакции на внешнее событие. 4. Системы вирт-х маншин. Это ОС, допускающая одновременную работу нескольких прог, но создающая при это иллюзию, что машина находится в полном распоряжении проги как при работе под управлением ДОС. Эти системы с достаточно высокими накладными расходами и низкой надёжностью. 5. Системы кросс-разработки. Предназначены д/разработки прог  в двухмашинной конфигурации, когда редактиров-е, компиляция производятся на инструментальной машине. 6. Системы промежуточных типов Гибриды вышеперечисленных классов.

^ 13. Критерии надежности средств связи. Способ коммуникации называется надежным, если при обмене данными выполняются 4 условия: 1) не происходит потери информации 2) не происходит повреждения информации 3) не появляется лишней информации 4) не нарушается порядок данных в процессе обмена. Передача данных через разделяемую память является надежным способом связи. То, что сохранилось в разделяемой памяти, будет считано другими процессами в первозданном виде. Для обнаружения поврежденной информации каждое передаваемое сообщение снабжается некоторой контрольной суммой, вычисленной по посланной информации. При приеме сообщений контрольная сумма вычисляется заново и проверяется ее соответствие предыдущему значению. Если данные не повреждены, т.е. контрольные суммы совпадают, то подтверждается правильность их получения. Если данные повреждены, считается, что сообщение не поступило. Вместо контрольной суммы можно использовать специальное кодирование передаваемых данных с помощью кодов, исправляющих ошибки. Такое кодирование позволяет при числе искажений не превышающих некоторое значение восстановить первоначально неискаженные данные. Если по прошествии некоторого интервала времени подтверждение  правильности полученной информации не поступило на передающий конец линии связи, информация считается утерянной и посылается повторно. Для гарантии правильности порядка получения сообщений они нумеруются. Эти действия могут быть возложены на:1)ОС; 2)процессы, обменивающиеся данными; 3)совместно на ОС и процессы, разделяя их ответственность. ОС может обнаружить ошибки при передаче данных и извещать об этом взаимодействующие процессы для принятия ими  решений о дальнейшем поведении.

^ 14. Логическая память. Аппаратная организация памяти в виде линейного набора ячеек не соответствует представлениям программиста о том, как организуется хранение программ и данных. Большинство программ представляет собой набор модулей, созданных независимо друг от друга. Иногда все модули, входящие в состав процесса располагаются в памяти один за другим, образуя линейное пространство адресов, чаще всего, однако, модули помещаются в различные области памяти и используются по-разному. Схема управления памятью, поддерживающая этот взгляд пользователя на то, как хранится программа, называется сегментация. Сегмент – область памяти определенного назначения, внутри которой поддерживается линейная адресация. Сегменты содержат процедуры, массивы, стеки или скалярные величины, но обычно не содержат информацию смешанного типа. Память перестала быть линейной и превратилась в двумерную. Адрес состоит из двух компонентов: номер сегмента и смещение внутри сегмента. Оказалось удобным размещать в разных сегментах различные компоненты процесса. Контролировать характер работы с конкретным сегментом можно, приписав ему атрибут, например, право доступа или типы операций, которые можно производить с данными, хранящимися в сегменте. Большинство современных ОС поддерживают сегментную организацию памяти. В некоторых архитектурах, например Intel, сегментация поддерживается оборудованием. Адреса, к которым обращается процесс, отличается от адресов реально существующих в ОП. В каждом конкретном случае, использованные программой адреса могут быть представлены различными способами. Компилятор связывает эти символьные адреса с перемещаемыми адресами. Подобный адрес, сгенерированный программой, обычно называют логическим. В системах с виртуальной памятью он называется виртуальным адресом. Логическое и физическое адресные пространства ни по организации, ни по размеру не соответствуют друг другу. Максимальный размер логического адресного пространства обычно определяется разрядностью процессора. Следовательно, ЦП и ОС должны быть способны отобразить ссылки в ходе программы в реальные физические адреса соответствующие текущему расположению программы в основной памяти. Такое отображение адресов называют трансляцией адреса. Связывание логического адреса, порожденного оператором программы, с физическим, должно быть осуществлено до начала выполнения оператора или в момент его выполнения.

^ 15. Методы  выделения дискового пространства Выделение непрерывной последовательностью блоков. Простейший способ - хранить файл, как непрерывную последовательность  блоков диска. При непрерывном расположении файл характеризуется адресом и длиной. Эта схема имеет два преимущества. 1) ее легко реализовать, т.к. выяснение местонахождения файла сводится к вопросу,  где находится первый блок. 2) обеспечивает хорошую производительность, т.к. целый файл может быть считан за одну дисковую операцию. Основная  проблема, вследствие чего этот способ мало распространен  - трудно найти место для нового файла. В процессе эксплуатации  диск представляет собой некоторую совокупность свободных и занятых фрагментов. Проблема непрерывного расположения может рассматриваться как частный случай более общей проблемы выделения n блоков из списка свободных дыр.  Наиболее  распространенные стратегии решения этой проблемы - first fit, best fit и worst fit. Таким образом,  метод страдает от внешней фрагментации, в зависимости от размера диска и среднего размера файла,  в большей или меньшей степени. Непрерывное распределение внешней памяти не применимо до тех пор, пока не известен максимальный  размер файла.  Связный список. Метод  распределения блоков в виде связного списка решает основную проблему непрерывного выделения, то есть устраняет внешнюю фрагментацию.  Каждый файл - связный список блоков диска. Запись в директории содержит указатель на первый и последний блоки файла. Каждый блок содержит указатель на следующий блок. Внешняя фрагментация для данного метода отсутствует. Любой свободный блок может быть использован для удовлетворения запроса. Файл может неограниченно расти. Связное выделение имеет, однако, несколько существенных недостатков. 1) при прямом доступе к файлу для поиска i-го блока нужно осуществить несколько обращений к диску, последовательно считывая блоки от 1 до i-1, то есть выборка логически  смежных записей, которые  занимают  физически  несмежные секторы, может  требовать много времени.  Прямым следствием этого является низкая надежность.  2)  для указателя на следующий блок внутри блока нужно выделить место. Емкость блока, традиционно являющаяся степенью двойки (многие программы читают и пишут блоками по степеням двойки), таким образом,  перестает быть степенью двойки, т.к. указатель отбирает несколько байтов. Связный список с использованием индекса. Недостатки предыдущего способа могут быть устранены путем изъятия указателя из каждого дискового блока и помещения его в индексную таблицу в памяти, которая называется FAT.  Этой схемы придерживаются многие ОС. Минусом этой схемы может быть необходимость поддержки в памяти этой довольно большой таблицы. Индексные узлы. Каждый файл имеет свой собственный индексный блок,  который содержит адреса блоков данных.  Запись в директории, относящаяся к файлу, содержит адрес индексного блока.  По мере заполнения файла указатели на блоки диска в индексном узле принимают осмысленные значения. Индексирование поддерживает прямой доступ к файлу, без ущерба от внешней фрагментации. Первые несколько адресов блоков файла хранятся непосредственно в индексном узле, т.о. для маленьких файлов индексный узел хранит всю необходимую  информацию, которая копируется с диска в память,  в момент открытия файла. Для больших файлов один из адресов  индексного узла  указывает на блок косвенной адресации.  Этот блок содержит  адреса дополнительных блоков диска.  Если этого недостаточно используется  блок двойной косвенной адресации, который содержит адреса блоков косвенной адресации. Если и этого недостаточно используют блок тройной косвенной адресации. Существенно, что для маленьких файлов используется только прямая адресация, обеспечивающая максимальную производительность.

  1   2   3



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

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

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