Автор работы: Пользователь скрыл имя, 01 Декабря 2010 в 20:55, реферат
Под термином «операционная система» мы будем понимать комплекс программ, функциями которого является контроль за использованием и распределением ресурсов вычислительной системы.
Для решения такого
рода задач нужны свои средства планирования.
В этом случае используются, так
называемые, ОС реального времени, основным
критерием которых является время
гарантированной реакции
Для нашего примера таким событием может быть поступление информации от датчика высоты. Реально для ОС этого класса используются достаточно простые алгоритмы. Все планирование заключается в этом критерии, то есть гарантируется обработка события за время, не превышающее некоторого порогового значения. Но ОС реального времени обычно имеет свое специфическое устройство, которое определяется не только этим простым алгоритмом планирования, но и внутренним переустройством системы.
Подводя некоторую
черту под функцией управления использованием
времени ЦП и планирования ЦП, обращаю
внимание на два факта. Первый факт
это то, что те алгоритмы, которые
реализованы в системе
ОС Windows не будет управлять какими-то объектами, у которых это реальное время очень критично. Также не будет управлять такими объектами и ОС
СОЛЯРИС или LINUX и т.д., потому что эти системы не являются системами реального времени.
Первые два режима, пакетный и разделения времени, можно сэмулировать на таких общепринятых ОС. Реально, большие и серьезные ОС являются смешанными системами, т.е. у них присутствует в элементах планирования ЦП как алгоритмы, позволяющие управлять счетными задачами, так и алгоритмы, позволяющие управлять интерактивными задачами либо задачами отладочными, для которых надо немного ЦП.
Примером такой организации планирования ЦП может быть следующая схема. Планировщик построен на двухуровневой схеме. Мы считаем, что множество задач может содержать, предположим, счетные задачи и интерактивные задачи. Первый уровень определяет приоритет между двумя классами задач и либо отдает ЦП сначала счетной задаче, либо интерактивной задаче. А второй уровень определяет то, о чем мы говорили перед этим, т.е. как выбрать задачу в пределах одного класса и как ее прервать. Такая смешанная система может работать следующим образом. Первый уровень планирования будет работать по такому принципу: если в данный момент нет ни одной интерактивной задачи, готовой к выполнению (а это вполне реальная ситуация, если пользователи занимаются редактированием текста), то ЦП передается счетным задачам, но добавляется одно условие: как только появляется хотя бы одна интерактивная задача, счетная задача прерывается и управление передается блоку интерактивных задач. Это то, что касается первой функции управления процессами.
Управление подкачкой и буфером ввода.
Здесь алгоритмы планирования нужные, но не столь критичные. В реальных системах зачастую совмещается буфер подкачки, т.е. то пространство на внешних носителях, куда осуществляется откачка информации из оперативной памяти, и буфер ввода процессов. Это первое замечание.
Второе замечание.
Современные ОС достаточно «ленивы»
и откачку зачастую осуществляют
не единицами блоков памяти процессов,
а откачивается весь процесс. Здесь
возникает два вопроса: каков
критерий замещения процесса и каков
критерий выбора из буфера того процесса,
который нам требуется ввести
для мультипрограммной
Управление разделяемыми ресурсами.
Здесь мы обозначим только проблему, потому что конкретные ее решения мы рассмотрим на примере ОС UNIX.
Предположим, есть два процесса, которые работают на общем пространстве оперативной памяти. При этом разделяемые ресурсы могут работать в разных режимах, т.е. не исключена ситуация, когда два процесса реально находятся на разных машинах, но они связаны общем полем оперативной памяти. В этом случае возникает проблема с буферизацией работы с памятью, потому что на каждой из машин есть свои механизмы буферизации чтения- записи. Здесь возникает нехорошая ситуация, когда состояние физической памяти не соответствует реальному ее содержимому. А также возникают некоторые проблемы для ОС, работающей на двух машинах.
Следующая проблема.
Пусть есть два процесса, которые
работают на одной машине. Должны быть
определенные средства, которые позволят
синхронизовать доступ к разделяемой
памяти, то есть позволят создать условия,
при которых обмен каждого
из работающих процессов с оперативной
памятью будет происходить
В действительности
при решении задач зачастую не
требуется таких разделяемых
ресурсов, как общая память, но хотелось
бы, чтобы процессы, которые функционируют
одновременно, могли оказывать некоторое
влияние друг на друга. Влияние, аналогичное
аппарату прерываний. Для реализации
этого во многих ОС имеются средства
передачи сигналов между процессами,
тогда возникает некоторая
Я обратил ваше внимание на такие функции ОС, которые влияют на ее эксплуатационные свойства. Реально любая ОС также содержит огромный набор других функций, которые обеспечивают работу этой системы.
Лекция №6
На прошлой лекции
мы говорили о том, что практически
любая операционная система обеспечивает
буферизацию ввода/вывода. На самом
деле, это одна из основных функций
операционной системы. По аналогии борьбы
с разными скоростями доступа
к различным компонентам
Признаком наличия такой буферизации является требование прекратить выполнение операционной системы перед выключением машины. Например, работая с операционной системой MS-DOS, можно выключить компьютер в любой момент времени, потому что такой буферизации в ней нет. В операционных системах типа Windows и UNIX считается некорректным просто выключить машину при работающей системе, в этом случае есть вероятность, что произойдет некоторая потеря информации (так как, например, моменты заказа на обмен и непосредственно обмена далеко не совпадают). Степень этой буферизации определяет реальную эффективность системы. Когда на нашем факультете стали появляться Pentium-ы, то обнаружилось, что при работе с Windows 95 практически нет качественного различия между тем, работает ли система на
486 процессоре или на Pentium-е. Это говорит о том, что эффективность системы не упирается в эффективность работы с внешним устройством. Если взять операционную систему UNIX, то эта разница будет заметна, так как здесь быстродействие процессора сильнее влияет на качество работы системы, нежели чем для Windows 95, потому что в системе Windows 95 обменов с внешним носителем значительно больше за счет некоторой «тупости» алгоритмов буферизации работы с внешними устройствами.
2. Файловая система.
Мы с вами говорили, что каждая из операционных систем оперирует некоторыми сущностями, одной из которых является процесс. Есть вторая сущность, которая также важна - это понятие файла. Файловая система - это компонент операционной системы, обеспечивающий организацию создания, хранения и доступа к именованным наборам данных. Эти именованные наборы данных называются файлами.
Основные свойства файлов
1. Файл - это некий
объект, имеющий имя, и позволяющий
оперировать с содержимым
2. Независимость
файла от расположения. Для работы
с конкретным файлом не
3. Набор функций
ввода/вывода. Практически каждая
операционная система
1. Открыть файл для работы. Открыть можно либо уже существующий, либо новый файл. Может возникнуть вопрос - зачем открывать файл?
Почему нельзя сразу читать и писать в этот файл? На самом деле, это есть средство, для того чтобы централизованно объявить операционной системе, что файл будет работать с конкретным процессом. А она уже из этих сведений может принять какие-то решения (например, блокирование доступа в этот файл для других процессов).
2. Чтение/запись. Обычно
обмен с файлами может
128Кб, и вы выполняете
два обращения для прочтения
ваших логических блоков по 128Кб.
Очень вероятно, что вместо того,
чтобы за один обмен прочесть
блок в 256Кб, вы обращаетесь
два раза к одному блоку
и читаете сначала одну
3. Управление файловым
указателем. Практически с каждым
открытым файлом связывается
понятие файлового указателя.
Этот указатель, по аналогии
с регистром счетчика команд,
в каждый момент времени
4. Закрытие файла.
Эта операция может
После закрытия файла все связи с ним прекращаются, и он приходит в некоторое каноническое состояние.
4. Защита данных.
Многие стратегические решения
повторяются как на аппаратном
уровне, так и на уровне операционной
системы. Если мы вспомним
Windows 95. Можно загрузить машину и уничтожить все файлы других пользователей, которые размещены на диске, потому что в этих системах защиты нет никакой. Многопользовательская система обеспечивает корректную работу многих пользователей. MS-DOS также может работать в режиме мультипрограммирования, но он не достаточно корректен, потому что ошибка в одном процессе может привести к затиранию операционной системы и соседнего процесса. Также и в операционной системе Windows 95 может работать много пользователей, но эта работа некорректна, потому что эта операционная система не обеспечивает все права защиты. Итак, многопользовательская система должна обеспечивать защиту информации от несанкционированного доступа. На самом деле, проблема защиты связана не только с файловой системой. Реально операционная система обеспечивает защиту данных во всех областях: это и файлы, и процессы, и ресурсы, принадлежащие процессам, запущенным от имени одного пользователя. Здесь я обращаю ваше внимание на этот факт, потому что для файлов это наиболее критичная точка.