рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

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

Операционные системы - раздел Образование, Министерство Образования Российской Федерации   Госуда...

Министерство образования российской федерации

 

Государственное образовательное учреждение
высшего профессионального образования

 

Таганрогский государственный радиотехнический университет

 

С.Н.Дроздов

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

 

Конспект лекций

Таганрог 2003

С.Н.Дроздов. Операционные системы: Конспект лекций. Таганрог: Изд-во ТРТУ, 2003. 136 с.   В данном пособии рассматриваются общие принципы функционирования операционных систем (ОС), а также основные алгоритмы…

Введение

Предмет и задачи курса

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

Рекомендации по литературе

Из книг общего характера учебник /1/ более всего соответствует данному курсу, как по содержанию, так и в еще большей степени по общему взгляду на… Похвалы и уважения заслуживает книга /2/ - огромный по объему и достаточно… Достаточно хороша также книга /3/, используемая как основной учебник по ОС во многих американских университетах.

Краткий очерк истории ОС

· прогресс технологии, приводящий к быстрому возрастанию характеристик аппаратуры ЭВМ и к появлению принципиально новых типов аппаратуры; · принципиально новые идеи, возникающие у проектировщиков. Не ввязываясь в давний спор материалистов с идеалистами, в данном частном случае приходится признать, что первый,…

Предыстория ОС

Типичный компьютер первого – второго поколений представлял собой большую комнату, уставленную шкафами и увитую кабелями. Каждое из основных… Все это стоило больших денег, потребляло бешеное количество электроэнергии[1]… В таких условиях машинное время стоило очень дорого. Тем не менее, обычная практика использования ЭВМ не…

Пакетные ОС

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

ОС с разделением времени

На рубеже 60-70 гг. распространенным и не слишком дорогим периферийным устройством становятся мониторы (сначала монохромные и работающие только в текстовом режиме). При этом процессор и ОЗУ остаются самыми дорогими и громоздкими устройствами вычислительной системы. В этих условиях возникает и быстро приобретает популярность принципиально новый тип ОС – системы с разделением времени.

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

Режим разделения времени стал огромным облегчением для программистов, которые вновь смогли в некоторой степени почувствовать себя «хозяевами» ЭВМ и получили возможность запускать программы на трансляцию и отладку хоть каждые 5 минут. Это позволило сократить сроки разработки и отладки программ.

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

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

Первоначально в качестве аппаратной основы систем разделения времени должны были использоваться «большие» ЭВМ, которые позднее стало принято называть «мейнфреймами» (mainframes). Позднее, по мере прогресса вычислительной техники, это стало по плечу даже миниЭВМ (так назывался в те годы класс компьютеров, занимавших всего лишь один-два небольших шкафчика). Следует особо упомянуть серию миниЭВМ PDP-11, имевшую широчайшее распространение во всем мире в течение полутора десятков лет.

Этот период (70-е годы в мире, 80-е в СССР) характерен глубоким развитием теории и практики создания мощных ОС, содержащих развитые средства управления процессами и памятью, реализующих многопользовательский режим работы. Из большого числа подобных систем особого упоминания заслуживает UNIX – единственная система, благополучно дожившая до нашего времени.

Однозадачные ОС для ПЭВМ

Появление и бурное распространение персональных компьютеров (ПК) вызвало к жизни новое поколение ОС, которые оказались во много раз проще своих… Наиболее популярной ОС для ранних восьмиразрядных ПК была система CP/M…

Многозадачные ОС для ПК с графическим интерфейсом

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

Классификация ОС

Существуют различные виды классификации ОС по тем или иным признакам, отражающие разные существенные характеристики систем.

· По назначению.

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

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

Иногда выделяют также такой класс ОС, как системы с «нежестким» реальным временем. Это такие системы, которые не могут гарантировать точное соблюдение временных соотношений, но «очень стараются», т.е. содержат средства для приоритетного выполнения заданий, критичных по времени. Такой системе нельзя доверить управление ракетой, но она вполне справится с демонстрацией видеофильма. Выделение подобных систем в отдельный класс имеет скорее рекламное значение, позволяя таким системам, как Windows NT и некоторые версии UNIX, тоже называть себя «системами реального времени».

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

· По характеру взаимодействия с пользователем.

- Пакетные ОС, обрабатывающие заранее подготовленные задания.

- Диалоговые ОС, выполняющие команды пользователя в интерактивном режиме. Красивое слово «интерактивный» означает постоянное взаимодействие системы с пользователем.

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

- Встроенные ОС, не взаимодействующие с пользователем.

· По числу одновременно выполняемых задач.

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

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

· По числу пользователей.

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

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

· По аппаратурной основе.

- Однопроцессорные ОС. В данном курсе будут рассматриваться только они.

- Многопроцессорные ОС. В задачи такой системы входит, помимо прочего, эффективное распределение выполняемых заданий по процессорам и организация согласованной работы всех процессоров.

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

- Распределенные ОС. Их отличие от сетевых заключается в том, что распределенная система, используя ресурсы локальной сети, представляет их пользователю как единую систему, не разделенную на отдельные машины.

Критерии оценки ОС

Очень редко можно дать однозначный ответ на подобные вопросы, если речь идет о практически используемых системах. Система или ее часть, которая хуже…

Надежность

Что понимается под надежностью ОС? Прежде всего, ее живучесть, т.е. способность сохранять хотя бы минимальную… Во-вторых, способность, как минимум, диагностировать, а как максимум, компенсировать хотя бы некоторые типы аппаратных…

Эффективность

Важнейшим показателем временнóй эффективности является производительность системы, т.е. усредненное количество полезной вычислительной… В программировании известна аксиома: выигрыш во времени достигается за счет… Забота от эффективности долгое время стояла не первом месте при разработке программного обеспечения, и особенно ОС. К…

Удобство

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

Масштабируемость

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

Способность к развитию

Одним из главных условий способности системы к развитию является хорошо продуманная модульная структура, в которой четко определены функции каждого… Важным требованием к развитию ОС является совместимость версий снизу вверх,… Фирмы-производители ОС прилагают максимум усилий для обеспечения совместимости снизу вверх, чтобы не отпугнуть…

Мобильность

Свойство мобильности не столь однозначно положительно, как может показаться. Чтобы программа была мобильна, при ее разработке следует отказаться от… С другой стороны, история системного программирования усеяна останками… Некоторым компромиссом являются многоплатформенные ОС (например, Windows NT), изначально спроектированные для…

Основные функции и структура ОС

· Управление устройствами. Имеются в виду все периферийные устройства, подключаемые к компьютеру, – клавиатура, монитор, принтеры, диски и т.п. · Управление данными. Под этим старинным термином сейчас понимается работа с… · Управление процессами. Эта сторона работы ОС связана с запуском и завершением работы программ, обработкой ошибок,…

ОС, используемые в дальнейшем изложении

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

· MS-DOS – пример простой однозадачной системы;

· Windows – сложная современная система, выросшая на базе MS-DOS;

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

MS-DOS

Система MS-DOS была разработана в 1981 г. специально для только что появившейся первой 16-разрядной ПЭВМ IBM PC на базе процессора i86. Первая версия системы была ужасна, но работоспособна. В последующие годы фирме Microsoft удалось значительно улучшить свою систему, хотя некоторые пережитки первой версии оказались неистребимы. Альянс с фирмой IBM позволил Microsoft добиться фантастического финансового успеха.

MS-DOS представляет собой однозадачную, однопользовательскую, диалоговую ОС. Она ведет диалог с пользователем в текстовом режиме и в большей степени рассчитана на обслуживание прикладных программ текстового режима, хотя допускает и графику. Работа с мышью должна обеспечиваться самими прикладными программами при минимальной поддержке со стороны ОС. Для размещения программы пользователя и для своих собственных нужд MS-DOS позволяет использовать 640 Кбайт памяти, что казалось огромной величиной в те незапамятные времена аккуратного программирования и полного отсутствия файлов AVI и MP3. Позднее были добавлены средства, позволяющие с некоторым усилием использовать до 4 Мб памяти.

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

Система MS-DOS явилась стартовой площадкой для создания Windows. В настоящее время MS-DOS тихо отмирает, хотя все версии Windows стараются обеспечить выполнение большей части программ, разработанных для их предшественницы.

В данном курсе MS-DOS рассматривается как наиболее жизненный пример простой и хорошо изученной однозадачной системы для сравнения с более мощными многозадачными системами.

Windows

Все перечисленные версии продолжали оставаться надстройками над MS-DOS, использующими имеющуюся файловую систему, но добавляющие свое собственное… В 1993 г. Microsoft выпустила Windows NT – полноценную многозадачную и… Некоторое время две линии Windows развивались параллельно. Очередные версии Windows NT получили название Windows 2000,…

UNIX

ОС UNIX была первоначально разработана в 1969 г. сотрудниками фирмы Bell Laboratories Кеном Томпсоном и Деннисом Ритчи. В 1971 г. система была перенесена на машины чрезвычайно распространенной в 70-е годы серии PDP-11, а в 1973 г. Ритчи переписал систему на языке C, оставив лишь минимум текста на языке ассемблера. В первое десятилетие существования UNIX и сама система, и ее исходные тексты распространялись свободно, что привело к чрезвычайной популярности системы в научных кругах и университетах. Усовершенствования системы могли вноситься каждым желающим и обсуждались «всем миром». Оборотной стороной такой открытости стала трудность стандартизации UNIX. Однако в 1988-1990 гг. был разработан набор стандартов, получивший название POSIX (Portable OS, а окончание IX – как намек на UNIX). Эти стандарты фиксировали современные требования к системам типа UNIX с учетом теоретических и практических достижений за прошедшие годы.

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

К недостаткам UNIX можно отнести более низкую эффективность и надежность работы, что в значительной мере является платой за мобильность. Традиционная модель безопасности UNIX не соответствует современным требованиям, поэтому в различные коммерческие версии приходится включать дополнительные средства защиты данных. Широкому распространению UNIX мешает также то, что процедуры установки и настройки системы не так просты, как у Windows, и при их выполнении желательно участие программиста.

В 80-е годы были попытки превратить UNIX в коммерческую систему. Однако в 1991-1994 гг. Линус Торвальдс, в то время студент-программист из Хельсинки, заново написал систему, соответствующую стандартам POSIX, но отличающуюся от традиционной UNIX большей надежностью и эффективностью. Эта система получила название Linux. Исходные тексты Linux свободно распространяются, что позволяет, как во времена молодости UNIX, развивать систему общими усилиями огромного сообщества заинтересованных программистов. Эффективной координации этих усилий очень способствует Интернет. Несколько позднее был открыт свободный доступ к текстам известной версии UNIX FreeBSD.

Архитектура UNIX, первоначально предназначенная для систем разделения времени с одним процессором, впоследствии оказалась вполне подходящей для поддержки сетевых систем. Значительная часть серверов Интернета работает под управлением той или иной версии UNIX.

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

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

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

Управление устройствами

Основные задачи управления устройствами

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

Классификация периферийных устройств и их архитектура

Под программной архитектурой (или просто – архитектурой) устройства мы будем понимать совокупность тех структурных особенностей, которые влияют на работу программ с устройством. Например, форма разъема для подключения устройства не входит в его архитектуру, но количество и назначение линий в этом разъеме может в нее входить (если эти линии могут программно управляться).

Как правило, вместе с устройством поставляется его контроллер (адаптер), содержащий электронные схемы управления устройством. Конструктивно контроллер может представлять собой плату, вставляемую в разъем шины компьютера, либо может быть расположен в корпусе устройства. В любом случае программы работают с устройством через посредство его контроллера, а поэтому с точки зрения архитектуры нет различия между понятиями «устройство» и «контроллер устройства».

Классификация периферийных устройств может быть выполнена по различным признакам.

· Устройства последовательного доступа (sequential access) и устройства произвольного доступа (random access). Для последовательных устройств характерно наличие определенного естественного порядка данных, при этом обработка данных в ином порядке либо невозможна, либо крайне затруднена. Классическим примером являются магнитные ленты, для которых чтение и запись данных ведутся от начала ленты к концу, а попытка доступа в ином порядке потребует постоянной перемотки ленты, резко снижающей скорость работы. К устройствам последовательного доступа можно отнести также клавиатуру, мышь, принтер, модем.

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

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

Для блочных устройств наименьшей порцией ввода/вывода, выполняемого за одно обращение к устройству, является один блок, равный, как правило, 2k байт. Типичным размером блока может быть 512 байт, 1K байт, 4K байт и т.п., в зависимости от конкретного устройства. Наиболее известные примеры блочных устройств – магнитные диски и магнитные ленты. Для диска понятие блока обычно совпадает с понятием сектора. В частности, для IBM-совместимых ПК сектор (блок) диска равен 512 байт.

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

· Физические, логические и виртуальные устройства. Под физическим устройством обычно понимается некоторый реально существующий прибор, «железка». На самом деле, с точки зрения программной архитектуры для наличия физического устройства достаточно знать набор адресов, команд, прерываний и других сигналов, позволяющих выполнять операции с данными. Куда идут или откуда приходят эти сигналы – это вопрос, не касающийся программиста.

Логическое устройство – это понятие, характеризующее специальное назначение устройства в данной ОС. Например, «загрузочный диск» (т.е. тот, с которого была выполнена загрузка ОС). Наиболее важными логическими устройствами во многих ОС являются устройство стандартного ввода и устройство стандартного вывода. Их можно упрощенно определить как устройства, используемые для ввода и, соответственно, вывода «по умолчанию», т.е. когда в программе явно не указано другое устройство или файл для ввода/вывода. Как правило, для современных компьютеров устройству стандартного ввода соответствует физическое устройство – клавиатура, а устройству стандартного вывода – монитор. Важно, однако, понимать, что это соответствие может быть изменено: стандартный вывод может быть переназначен, например, на принтер или в файл, стандартный ввод – на удаленный терминал, на файл и т.п.

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

- виртуальные диски, расположенные на самом деле в оперативной памяти (такие устройства были популярны в конце 80-х годов);

- виртуальная память, расположенная на самом деле на диске;

- виртуальные CD и DVD – программы, имитирующие поведение соответствующих устройств;

- виртуальный экран, предоставляемый DOS-программе, работающей в режиме окна Windows (программа работает так, как если бы ей был предоставлен весь экран, но на самом деле система направляет вывод программы в отведенное ей окно);

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

Прерывания

Все прерывания можно разделить на три основных типа: · аппаратные прерывания от периферийных устройств; · внутренние аппаратные прерывания (называемые также исключениями, exceptions);

Активное и пассивное ожидание

Основной особенностью ввода/вывода по опросу готовности является цикл ожидания. Если выполняется ввод или вывод на медленное устройство (например,… Такое абсурдное использование процессора может быть оправдано разве что в том… Способ ожидания программой некоторого события, основанный на постоянной циклической проверке ожидаемого условия,…

Буферизация и кэширование

Понятие буферизации

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

Сглаживание неравномерности скоростей процессов

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

Распараллеливание ввода и обработки

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

Согласование размеров логической и физической записи

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

Редактирование при интерактивном вводе

Для пользователя привычно, что в процессе ввода числовых или строковых значений он может легко откорректировать ошибки ввода: «забить» неверный…

Кэширование дисков

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

Опережающее чтение.

Как правило, системе неизвестно, будет ли обработка файла вестись в режиме последовательного или произвольного доступа, поэтому часто используется… Идея опережающего чтения получила интересное развитие в Windows XP. В этой…

Драйверы устройств

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

Управление устройствами в MS-DOS

Уровни доступа к устройствам

Уровни доступа к устройствам показаны на рис. 2‑5. Рис. 2‑5

Драйверы устройств в MS-DOS

Заголовок драйвера содержит основную информацию об устройстве: символьное или блочное устройство; для символьных устройств – имя устройства; для… В заголовке содержатся адреса блока стратегии и блока прерываний, а также… Если в файле конфигурации CONFIG.SYS указаны имена файлов дополнительных (загружаемых) драйверов, то эти драйверы…

Управление символьными устройствами

Рис. 2‑6 Когда пользователь нажимает клавишу, клавиатура переходит в состояние готовности и по этому поводу посылает сигнал…

Управление блочными устройствами

Структура диска

Рис. 2‑7 Поверхность нового магнитного диска покрыта однородным слоем магнитного материала. У дискеты используется либо одна…

Разделы и логические тома

Общая структура дискет и жестких дисков различаются между собой. Эти структуры показаны на рис. 2‑9.

Рис. 2‑9

Начальный сектор дискеты (рис. 2‑9, а) принято называть BOOT-сектором. Он содержит количественные данные о дискете (размер секторов, количество секторов на каждой дорожке и на всей дискете, число поверхностей и т.п.), метку (название) и серийный номер дискеты, а также данные о файловой системе. Кроме того, если дискета содержит системные файлы ОС, то в BOOT-секторе находится также небольшая программа начальной загрузки, которая считывает один сектор ОС и передает ему управление для продолжения загрузки. Все остальные секторы дискеты могут использоваться ОС для хранения ее файлов и других данных. Общее количество секторов на дискете не может превышать 216 (на самом деле, их значительно меньше).

Скажите быстро, сколько примерно секторов содержит стандартная трехдюймовая дискета?

Для жесткого диска (рис. 2‑9, б) начальный сектор называется MBR (Master Boot Record, главная загрузочная запись). Он тоже может содержать программу начальной загрузки, но, кроме того, содержит таблицу разделов (partition table), которая описывает разбиение жесткого диска на разделы.

Таблица может содержать от 1 до 4 записей о разделах. Каждая запись содержит тип раздела, число секторов в нем, физические адреса начала и конца раздела.

Возможны следующие типы разделов.

· Обычный раздел. Его структура точно такая же, как у дискеты, т.е. такой раздел начинается с BOOT-сектора, а общее число секторов не превышает 216. Таким образом, общий размер раздела не может превышать 32 Мб.

· Большой раздел. Он отличается от обычного тем, что число секторов может достигать 232. Это позволяет описывать большие разделы размером до 2048 Гб.

· Расширенный раздел. Его структура аналогична структуре всего жесткого диска, т.е. начальный сектор раздела – не BOOT, а MBR-сектор. Аналогия не совсем полная, поскольку таблица разделов в MBR расширенного раздела может содержать не более двух записей, причем первая из них должна описывать либо обычный, либо большой раздел, а вторая запись, если она имеется, описывает еще один расширенный раздел.

· Разделы других ОС (например, UNIX).

Обычные и большие разделы называются также логическими томами или логическими дисками, в отличие от физических дисков. Обычная буквенная нумерация дисков A, B, C, D и т.д. относится именно к логическим томам. Для дискет понятия физического и логического тома совпадают.

Изначально MS-DOS поддерживала только обычные разделы на жестком диске. В 80-е годы казалось, что 32 Мб – это очень большой объем диска. Когда появились диски объемом в несколько сотен мегабайт, была придумана матрешечная структура расширенных разделов, что позволило на одном физическом томе разместить сколько угодно логических томов по 32 Мб. Затем были реализованы большие разделы, что потребовало от разработчиков MS-DOS внести существенные изменения в программный интерфейс и реализацию средств работы с дисками. После этого использование расширенных разделов стало необязательным, если пользователю достаточно иметь не более четырех логических томов на одном физическом диске.

Средства доступа к дискам

Прикладные программы могут работать с дисками либо средствами BIOS (программное прерывание int 13h), либо средствами DOS (программные прерывания int… Для повышения эффективности работы с дисками в MS-DOS используются кэширование… Почему в MS-DOS не нужен такой большой кэш, как в UNIX?

Управление устройствами в Windows

Драйверы устройств в Windows

В Windows используется многоуровневая структура драйверов, в которой высокоуровневые драйверы могут играть роль фильтров, выполняющих специальную… Как ни странно, в Windows NT низкоуровневые драйверы – это еще не самый нижний… Несмотря на стандартизацию структуры, можно выделить несколько специальных типов драйверов, отличающихся…

Доступ к устройствам

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

Управление устройствами в UNIX

Драйверы устройств в UNIX

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

Устройство как специальный файл

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

Управление данными

Основные задачи управления данными

Файл есть набор данных, хранящийся на периферийном устройстве и доступный по имени. При этом конкретное расположение данных на устройстве не… Понятие «файловая система» означает стандартизованную совокупность структур… Среди задач, решаемых подсистемой управления данными, можно назвать следующие:

Характеристики файлов и архитектура файловых систем

· Имя файла. В старых ОС длина имени была жестко ограничена 6 – 8 символами с целью экономии места для хранения имени и ускорения работы. В… · Расширение имени. По традиции, так принято называть правую часть имени,… · Тип файла. Некоторые ОС выделяют несколько существенно различных типов файлов, например, символьные и двоичные,…

Размещение файлов

· Непрерывное размещение характеризуется тем, что каждый файл занимает непрерывную последовательность блоков. · Сегментированное размещение означает, что файлы могут размещаться «по…

Защита данных

Как отмечалось в п. 1.6, для реализации многопользовательской защиты данных необходимо наличие аппаратных средств, таких как привилегированный режим… Для любой системы защиты характерно наличие, по крайней мере, трех… · Список пользователей системы, содержащий имена, пароли и привилегии, присвоенные пользователям.

Разделение файлов между процессами

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

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

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

· только один процесс работает с файлом, выполняя чтение и запись;

· с файлом работает произвольное число процессов, но все они выполняют только чтение.

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

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

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

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

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

· режим доступа второго процесса не должен противоречить режиму разделения, установленному первым процессом;

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

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

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

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

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

Файловая система FAT и управление данными в MS-DOS

Общая характеристика системы FAT

В ОС Windows также возможно использование FAT, особенно оправданное для дискет. Для жестких дисков большого объема система FAT становится…

Структуры данных на диске

Рис. 3‑2 · BOOT-сектор содержит основные количественные параметры дискового тома и файловой системы, а также может содержать…

Создание и удаление файла

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

Работа с файлами в MS-DOS

Системные функции

· создавать файл, указывая его полное имя; · удалять файл; · изменять атрибуты файла;

Доступ к данным

Чтобы открыть существующий файл, следует вызвать соответствующую функцию, указав в качестве параметров имя файла и желаемый режим доступа (один из… Хэндл – это некоторое число, которое система возвращает пользовательской… MS-DOS предоставляет вполне достаточный набор функций для работы с открытыми файлами. Сюда включаются функции чтения и…

Структуры данных в памяти

Таблица SFT (System File Table) содержит записи о всех файлах, в данный момент открытых программами пользователя и самой ОС. Эта таблица хранится в… Если один и тот же файл был открыт несколько раз (неважно, одной и той же… Каждая запись содержит подробную информацию о файле, достаточную для выполнения операций с ним. В частности, в записи…

Новые версии системы FAT

В Windows 95 было преодолено досадное ограничение длины имени файла – знаменитое правило «8 + 3». Казалось бы, при размере записи каталога в 32… Разработчики из Microsoft обратили внимание, что те записи каталога, в которых… Начиная с Windows 98, появилась возможность использовать новую разновидность файловой системы – FAT-32. Ее отличие от…

Файловые системы и управление данными в UNIX

Архитектура файловой системы UNIX

Здесь рассматривается классическая файловая система UNIX, называемая иногда системой s5fs и поддерживаемая всеми версиями UNIX. Современные усовершенствования файловой системы будут рассмотрены в п. 3.7.4.

Жесткие и символические связи

Жесткая связь означает связь между именем файла и самим файлом. Особенность UNIX в том, что любой файл может иметь несколько (точнее, неограниченное… Есть ли какая-нибудь польза от нескольких имен одного файла? Безусловно, есть.… Что произойдет, если один из пользователей удалит имя файла из каталога? Произойдет только обрыв одной из жестких…

Монтируемые тома

Если представить файловую систему на дисковом томе в виде дерева, то монтирование тома – это как бы «прививка» одного дерева к какому-либо месту на…

Типы и атрибуты файлов

Особенностью UNIX является то, что работа с разными типами объектов, перечисленными выше (файлами, устройствами, каналами, сокетами) организуется с… К числу атрибутов, описывающих файл, относятся его размер в байтах, число… Для специальных файлов вместо размера хранятся старший и младший номера устройства, см. п. 2.10.1.

Управление доступом

Кроме того, для файла задаются атрибуты защиты, хранящиеся в виде 9 бит, которые определяют допустимость трех основных видов доступа – на чтение, на… При отображении каталога с помощью команды ls –l эти атрибуты показываются в… r w x r – x - - x

Структуры данных файловой системы UNIX

Рис. 3‑5 · блок начальной загрузки (BOOT-сектор); его структура определяется не UNIX, а архитектурой используемого…

Доступ к данным в UNIX

В основе работы с данными, как и для MS-DOS, лежит понятие хэндла открытого файла. Программа получает значение хэндла при открытии или создании… UNIX не имеет средств управления разделением доступа при открытии файла, т.е.… Для реализации доступа к файлу по значению хэндла в UNIX используются таблицы, аналогичные таблицам JFT и SFT в MS-DOS…

Развитие файловых систем UNIX

· ненадежность; · низкая производительность. Поговорим сначала о ненадежности. Можно назвать следующие опасные места в структуре файловой системы UNIX.

Файловая система NTFS и управление данными в Windows

Особенности файловой системы NTFS

Система NTFS спроектирована как очень мощная многопользовательская файловая система с большим количеством возможностей. Тем не менее, как утверждают… Среди возможностей, отсутствующих в FAT, но реализованных в NTFS, можно… · Развитые средства защиты данных, предотвращающие возможность несанкционированного доступа к данным и при этом…

Структуры дисковых данных

Общую структуру хранения данных на диске в системе NTFS часто характеризуют двумя короткими фразами:

На диске нет ничего, кроме файлов.

В файле нет ничего, кроме атрибутов.

Поговорим подробнее об этих загадочных утверждениях.

Главная таблица файлов

Наиболее важной частью файловой системы на диске является главная таблица файлов (MFT, Master File Table). Эта таблица содержит записи обо всех файлах и каталогах, расположенных на данном томе. Размер записи составляет один кластер, но не менее 1 Кб. Если метаданные о файле не помещаются в одной записи, то могут быть использованы дополнительные записи (не обязательно соседние).

После форматирования дискового тома, когда на нем еще нет пользовательских файлов, MFT содержит 16 записей, из которых 11 содержат описания файлов метаданных, а 5 зарезервированы как дополнительные. Список файлов метаданных достаточно интересен.

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

· Копия первых 16 записей MFT, которая хранится как файл где-нибудь в середине диска. Это позволяет восстановить метаданные в случае повреждения основного экземпляра MFT.

· Журнал протоколирования транзакций.

· Файл информации о томе: имя тома, серийный номер, дата форматирования и т.п.

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

· Корневой каталог тома.

· Битовая карта занятости кластеров тома.

· BOOT-сектор. Он по-прежнему является первым сектором тома, но тоже считается файлом.

· Файл, состоящий из всех дефектных кластеров на данном томе. Это дает основания пометить в битовой карте все дефектные кластеры как занятые.

· Файл, содержащий все различные дескрипторы защиты, используемые для файлов и каталогов данного тома (см. п. 3.8.4.2).

· Файл, задающий пары прописных / строчных букв для всех языков, поддерживаемых Windows. Такие данные необходимы, поскольку имена файлов могут содержать буквы обоих типов, но в Windows по традиции регистр букв в именах файлов не различается (в отличие, например, от UNIX).

· Каталог, содержащий еще 4 файла метаданных, добавленных в Windows 2000. К ним относятся:

- файл уникальных 16-байтовых идентификаторов, создаваемых Windows для каждого файла, на который имеется ярлык или OLE-связь; это позволяет автоматически исправить ярлык, если исходный файл был перемещен в другой каталог или даже на другой компьютер в пределах домена сети;

- файл квот дискового пространства, выделяемых каждому пользователю;

- файл точек повторного анализа, установленных для каталогов данного тома;

- файл журнала изменений, происходящих на томе.

Далее, начиная с 17-й позиции MFT, хранятся записи метаданных о файлах и каталогах, размещенных на данном томе.

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

Атрибуты файла

Атрибут в NTFS состоит из заголовка и значения, а заголовок, в свою очередь, содержит тип атрибута, его имя, длину и данные о размещении атрибута.… Рассмотрим наиболее важные типы атрибутов, используемых в записи о файле. · Имя файла. Этот атрибут всегда резидентен. Допускается несколько атрибутов этого типа, например, «длинное» имя (до…

Доступ к данным

Функция CreateFile может использоваться для работы с файлами любой файловой системы, поддерживаемой Windows (в частности, FAT и NTFS). Параметры этой функции многочисленны и дают достаточно хорошее представление о… · Имя файла (включая путь к каталогу, если файл расположен не в текущем каталоге). Вместо имени файла может также…

Защита данных

Как известно, Windows позволяет использовать различные файловые системы, при этом возможности защиты данных определяются архитектурой конкретной…

Аутентификация пользователя

Не хочет ли кто-нибудь попробовать? Система ищет введенное имя пользователя сначала в списке пользователей данного… На основании сведений из учетной записи пользователя система формирует структуру данных, которая называется маркером…

Дескриптор защиты

Основным содержанием атрибутов защиты является другая структура – дескриптор защиты. Этот дескриптор содержит следующие данные: · идентификатор защиты (SID) владельца объекта; · идентификатор защиты первичной группы владельца объекта;

Управление процессами

Основные задачи управления процессами

В однозадачных ОС управление процессами решает следующие задачи: · загрузка программы в память, подготовка ее к запуску и запуск на… · выполнение системных вызовов процесса;

Реализация многозадачного режима

Понятия процесса и ресурса

Проанализируем это определение. Оно подчеркивает последовательный характер процесса, т.е. выполнение команд в определенном порядке. Термин «задача»… Еще один важный момент в определении – упоминание данных. В многозадачных… При описании работы многозадачных систем основное внимание уделяется вопросам, связанным с параллельным выполнением,…

Квазипараллельное выполнение процессов

Разумеется, если в системе имеется несколько процессоров, то может быть организовано настоящее параллельное выполнение процессов, количество которых… Важно отметить, что для большинства задач взаимодействия процессов нет… · проблемы корректной и эффективной реализации параллельного (т.е. обычно квазипараллельного) выполнения процессов –…

Состояния процесса

Основных состояний всего три. · Работа (running) – в этом состоянии находится процесс, программу которого в… · Готовность (ready) – состояние, их которого процесс может быть переведен в состояние работы, как только это сочтет…

Вытесняющая и невытесняющая многозадачность

В системах с невытесняющей диспетчеризацией (non-preemptive multitasking) работа любого процесса может быть прервана только «по инициативе самого… Но даже если действие, требуемое процессом, может быть выполнено без… В предыдущем п. 4.2.3 смена текущего процесса, не связанная с его блокировкой, была названа вытеснением процесса.

Дескриптор и контекст процесса

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

Реентерабельность системных функций

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

Дисциплины диспетчеризации и приоритеты процессов

Одной из самых очевидных дисциплин является простая круговая диспетчеризация (round robin scheduling). Ее суть в следующем. Все активные процессы… В некотором смысле противоположной дисциплиной является фоново-оперативная… Между описанными двумя крайностями лежит большое разнообразие дисциплин приоритетной диспетчеризации. Все они основаны…

Проблемы взаимодействия процессов

Изоляция процессов и их взаимодействие

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

Проблема взаимного исключения процессов

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

Двоичные семафоры Дейкстры

Двоичным семафором называется переменная S, которая может принимать значения 0 и 1 и для которой определены только две операции. · P(S) – операция занятия (закрытия) семафора. Она ожидает, пока значение S… · V(S) – операция освобождения (открытия) семафора. Она просто присваивает S значение 0.

Средства взаимодействия процессов

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

За десятилетия, прошедшие после изобретения семафоров, были предложены различные средства синхронизации, более приспособленные для различных типовых задач. Рассмотрим некоторые из них.

Целочисленные семафоры

Область применения целочисленных семафоров несколько иная, чем у двоичных. Целочисленные семафоры применяются в задачах выделения ресурсов из… Для целочисленных семафоров иногда удобно использовать модифицированную…

Семафоры с множественным ожиданием

Житейская ситуация: покупатель в супермаркете, выбирающий, к какой из касс занять очередь. Хорошо бы угадать очередь, которая пройдет быстрее… Функция множественного ожидания P(S1, S2, … Sn) позволяет указать в качестве… Другой, не менее полезный вариант множественного ожидания, это ожидание момента, когда все указанные семафоры окажутся…

Сигналы

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

Сообщения

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

Общая память

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

Программные каналы

Проблема тупиков

Как это прикажете понимать? Прежде всего, давайте отметим, что процессу, действующему в одиночку, не под… Иное дело, если в деле замешаны два или более процессов. Согласно другому определению, данному в /2/, «Группа…

Управление процессами в MS-DOS

Процессы в MS-DOS

Загрузка ОС завершается запуском программы командного интерпретатора COMMAND.COM, в задачи которого входит: · чтение и анализ команд, вводимых пользователем с клавиатуры; · выполнение внутренних команд системы, таких, как команда выдачи содержания каталога, команды копирования, удаления…

Среда программы

"переменная=значение", 0 Здесь переменная и значение – любые (в разумных пределах) текстовые величины,… Понятие среды было введено в системе UNIX и позаимствовано оттуда в MS-DOS и Windows без особых изменений.

Запуск программы

Функция Exec требует указания ряда параметров, из которых важны: · Имя файла запускаемой программы. Если имя не содержит пути к каталогу, то… · Командная строка. Так принято называть строку параметров, передаваемых программе. При запуске программы по команде…

Завершение работы программы

· Закрываются все файлы, открытые программой. · Освобождаются все блоки памяти, отведенные для программы и ее среды. · Восстанавливаются стандартные обработчики описанных ниже прерываний int 23h и int 24h, которые могли быть изменены…

Перехват прерываний и резидентные программы

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

Управление процессами в Windows

Сложность проблемы организации взаимодействия параллельных процессов существенно разная для систем, использующих вытесняющую и невытесняющую… В системе с невытесняющей диспетчеризацией программисту достаточно проверить,… Все версии Windows от 1.0 до 3.11 представляли собой достаточно мощные многозадачные системы с невытесняющей…

Понятие объекта в Windows

Объекты Windows делятся на объекты ядра (KERNEL), позволяющие управлять процессами, объекты USER, описывающие работу с окнами, и объекты GDI,… Одной из отличительных особенностей объектов ядра являются атрибуты защиты,… Хэндл объекта может быть использован только тем процессом, который создал или открыл этот объект. Нельзя просто…

Процессы и нити

Процесс создается при запуске программы (EXE-файла). Одновременно создается одна нить процесса (должен же кто-то работать!). Создание процесса… · Имя файла запускаемой программы. · Командная строка, передаваемая процессу при запуске.

Планировщик Windows

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

Процесс и нить как объекты

Функция OpenProcess позволяет одному процессу получить хэндл любого другого процесса, указав для этого два параметра: идентификатор интересующего… А о каких, собственно, правах идет речь? Что именно один процесс может сделать… · запускать новую нить процесса;

Синхронизация нитей

Способы синхронизации

· Традиционной для Windows формой синхронизации является обмен сообщениями (messages). При этом, механизм сообщений предназначен не только для… · Разнообразные условия ожидания могут быть реализованы с помощью объектов… · Использование переменных типа CRITICAL_SECTION, в отличие от предыдущих способов, возможно только для синхронизации…

Объекты синхронизации и функции ожидания

Для создания объекта нужно вызвать функцию CreateXxx, где вместо Xxx указывается название конкретного типа объектов, например, CreateMutex или… Общей чертой всех объектов синхронизации является наличие двух состояний, одно… Для конкретных типов объектов вместо термина «сигнальное состояние» может быть удобно использовать как синонимы…

Типы объектов синхронизации

· процессы; · нити; · события (в узком смысле);

Критические секции

Недостаток использования объектов ядра в том, что обращение к ним всякий раз требует переключения контекста с пользовательского на системный и… Если требуется синхронизировать работу нитей одного и того же процесса, то… Вызов всех перечисленных функций выполняется системой гораздо быстрее, чем вызов функций, работающих с хэндлами…

Сообщения

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

Управление процессами в UNIX

Жизненный цикл процесса

Существует единственный способ создания процесса в UNIX, и этот способ заключается в вызове функции без параметров fork(). Эта функция создает новый… Типовой фрагмент программы на C может выглядеть примерно так:  

Группы процессов

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

Программные каналы

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

Сигналы

Основными характеристиками сигнала являются его номер и адресат сигнала. В разных версиях UNIX используется от 16 до 32 сигналов. Номер сигнала… · SIGKILL – процесс должен быть немедленно прекращен; · SIGTERM – более «вежливая» форма: система предлагает процессу прекратиться, но он может и не послушаться;

Средства взаимодействия процессов в стандарте POSIX

К средствам, которые, согласно POSIX, должна поддерживать любая современная реализация UNIX, относятся, в частности: · сигналы; · безымянные и именованные каналы;

Планирование процессов

Состояния процессов в UNIX

Диаграмма основных состояний процесса, показанная на рис. 4‑1, в случае UNIX может быть уточнена так, как показано на рис. 4‑2. Рис. 4‑2

Приоритеты процессов

Весь диапазон приоритетов разделяется на верхнюю часть (приоритеты режима ядра) и нижнюю часть (приоритеты режима задачи). Это деление показано на… Рис. 4‑3

Интерпретатор команд shell

Однако при изучении UNIX нельзя обойти стороной такую интересную и развитую часть системы, как интерпретатор команд, чаще называемый просто шелл… Шелл не является частью ядра UNIX, по своему статусу это обычная прикладная… Набор возможностей, предоставляемых любым интерпретатором команд UNIX, настолько широк, что может быть предметом…

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

Основные задачи управления памятью

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

Виртуальные и физические адреса

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

Распределение памяти без использования виртуальных адресов

Настройка адресов

В то же время трудно рассчитывать, что при каждом запуске программы ОС сможет загрузить ее по одним и тем же адресам. Если это еще в принципе… Для решения этой проблемы в составе файла программы приходится хранить словарь… Более поздние архитектуры ЭВМ позволили в значительной мере упростить дело за счет использования относительной…

Распределение с фиксированными разделами

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

Рис. 5‑1

Возможны два варианта организации работы с фиксированными разделами.

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

· В более развитых системах программа хранится в перемещаемом формате, а при ее запуске система выбирает наиболее подходящий по размеру свободный раздел. При отсутствии такового программа ожидает.

Очевидно, что в обоих вариантах память используется не слишком эффективно. Вполне возможна ситуация, когда к некоторым разделам выстроилась очередь программ, а другие разделы в это время пустуют. В первом варианте, кроме того, невозможен перенос скомпонованных программ на другую ЭВМ (с другими разделами).

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

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

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

Распределение с динамическими разделами

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

Вообще говоря, распределение с динамическими разделами позволяет более эффективно использовать память, чем при использовании фиксированных разделов. Однако при этом возникает проблема, которая уже встречалась нам совсем в другой ситуации, в связи с непрерывным размещением файлов на диске (см. п. 3.3). Речь идет о фрагментации, т.е. о разбиении свободной памяти на большое число маленьких фрагментов, которые не удается использовать для загрузки крупной программы, хотя суммарный объем свободной памяти остается достаточно большим. Фрагментация является неизбежным следствием того, что память выделяется и освобождается разделами различной длины, причем в произвольном порядке. Но если для файлов можно было время от времени выполнять дефрагментацию, перемещая все файлы ближе к началу диска, то для работающих программ это весьма затруднительно, поскольку перемещение программы нарушило бы настройку адресов, выполненную при ее загрузке.

Сегментная организация памяти

При сегментной организации вся виртуальная память, используемая программой, разбивается на части, называемые сегментами. Это разбиение выполняется… Таким образом, при сегментной организации у программы нет единого линейного… Селектор сегмента представляет некоторое число, которое обычно является индексом в таблице сегментов данного процесса.…

Страничная организация памяти

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

Сравнение сегментной и страничной организации

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

Управление памятью в MS-DOS

Адрес в реальном режиме записывается в формате [сегмент : смещение], однако здесь сегмент – это не селектор, адресующий строку таблицы сегментов,… В принципе, программы, работающие в MS-DOS, могут получить доступ к памяти за… Поскольку делить имеющуюся память между несколькими процессами не приходится, распределение получается бесхитростное.…

Управление памятью в Windows

Структура адресного пространства

Конечно, трудно рассчитывать, что для каждого процесса найдется такое количество физической памяти, речь идет только о диапазоне возможных… Но даже и в этом смысле процессу доступно лишь около 2 Гб младших адресов… В Windows 95 принято хулиганское решение: система и здесь располагается в старшей половине памяти, но эта половина…

Регионы

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

Отображение исполняемых файлов

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

Файлы, отображаемые на память

Работа с таким объектом требует предварительной подготовки. Сначала программа должна создать объект, вызвав функцию CreateFileMapping. Среди… · хэндл предварительно открытого файла, который будет отображаться на… · тип доступа к объекту (только для чтения или и для записи);

Стеки и кучи

Программисты привыкли, что для размещения параметров и локальных переменных функций используется стек, а выделение участков динамической памяти… При создании новой нити она получает свой собственный стек, размер которого,… На самом деле, выделяется 1 Мб резервированной памяти. Реального расходования ресурсов памяти при этом не происходит,…

Управление памятью в UNIX

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

Литература

1.Олифер В.Г., Олифер Н.А. Сетевые операционные системы. СПб.: Питер, 2001. 544 с.

2. Таненбаум Э. Современные операционные системы. СПб.: Питер, 2002. 1040 с.

3. Столлингс В. Операционные системы. М.: Вильямс, 2002. 848 с.

4. Бек Л. Введение в системное программирование. М.: Мир, 1988. 448 с.

5. Краковяк С. Основы организации и функционирования ОС ЭВМ. М.: Мир, 1988. 480 с.

6. Кейслер С. Проектирование операционных систем для малых ЭВМ. М.: Мир, 1986. 680 с.

7. Шоу А. Логическое проектирование операционных систем. М.: Мир, 1981. 360 с.

8. Рихтер Дж. Windows для профессионалов. М.: Издательский отдел «Русская редакция» ТОО “Channel Trading Ltd.”, 1995. 720 с.

9. Питрек М. Секреты системного программирования в Windows 95. Киев, Диалектика, 1996. 448 с.

10. Питрек М. Внутренний мир Windows. Киев, «ДиаСофт Лтд.», 1995. 416 с.

11. Робачевский А.М. Операционная система UNIX. СПб.: БХВ, 1999. 528 с.

12. Дансмур М., Дейвис Г. Операционная система UNIX и программирование на языке Си. М.: Радио и связь, 1989. 192 с.

13. Бах М. Архитектура операционной системы UNIX.

14. Финогенов К.Г. Самоучитель по системным функциям MS-DOS. М.: Радио и связь, Энтроп, 1995. 382 с.

15. Кнут Д. Искусство программирования. Т.1, Основные алгоритмы. М.: Вильямс, 2002. 720 с.

16. http://www.citforum.ru

17. http://www.rsdn.ru

18. http://www.emanual.ru

19. http://www.infocity.kiev.ua

20. http://www.helloworld.ru

21. http://www.msdn.microsoft.com

22. http://www.sysinternals.com

23. http://www.bcd.org

24. http://www.linux.org

25.http://www.informit.com


[1] Как вспоминает один из разработчиков первого советского компьютера МЭСМ (Малая(!) Электронная Счетная Машина), когда этого монстра включали, то приходилось в январе месяце открывать все окна, чтобы удержать температуру в машинном зале в пределах 30°.

[2] Источник термина не совсем понятен. Среди значений английского слова «cash» наиболее подходящим кажется «наличные деньги» - та мелочь в кошельке, которая позволяет не обращаться каждый раз в банк ради мелких покупок.

[3] Вспомните, как поступает Windows при очередной загрузке после некорректного выключения компьютера.

[4] Теоретически можно задать число копий FAT, отличное от двух. Это число хранится как один из параметров в BOOT-секторе. На практике всегда используются две копии FAT.

[5] Как вы думаете, в чем разница между перемещением файла в пределах одного диска и перемещением с диска на диск?

[6] Придумано около десятка неудачных вариантов русского эквивалента для термина «handle», среди них – дескриптор, ссылка, логический номер, ключ, манипулятор, описатель, индекс... Выразительнее всего был бы прямой перевод – «рукоятка», но ни у кого не хватает смелости, чтобы ввести такой «несерьезный» термин. Так что давайте удовольствуемся честной транслитерацией «хэндл».

[7] Налицо некоторый разнобой в общепринятой терминологии: в системе с невытесняющей диспетчеризацией вытеснение процесса все-таки возможно, но только по инициативе самого процесса.

[8] Иногда используют также термин «разделение времени» (time sharing). Однако этот термин лучше оставить для обозначения многотерминальных ОС, описанных в п. 1.3.3. К системам с квантованием времени относятся также ОС реального времени, заметно отличающиеся от систем разделения времени.

[9] Но к экзамену вспомнить!

[10] Одно и то же расширение EXE означает различные форматы программ для MS-DOS и для Windows разных версий. Каждый из этих форматов имеет собственную сигнатуру. Например, для EXE-файлов современной Windows используется сигнатура 'PE'.

[11] Использование слова «nice» – «приятный, любезный, благовоспитанный, изящный» в данном контексте обычно объясняют так: этот процесс настолько любезен, что уступает всем дорогу.

[12] Опыт подсказывает, что как только компьютеры с памятью в несколько гигабайт станут обычными, появятся и программы, способные найти более или менее полезное употребление всей этой памяти.

– Конец работы –

Используемые теги: операционные, системы0.048

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Операционные системы

Что будем делать с полученным материалом:

Если этот материал оказался полезным для Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Еще рефераты, курсовые, дипломные работы на эту тему:

Лекция 1. Тема: Операционная система. Определение. Уровни операционной системы. Функции операционных систем. 1. Понятие операционной системы
Понятие операционной системы... Причиной появления операционных систем была необходимость создания удобных в... Операционная система ОС это программное обеспечение которое реализует связь между прикладными программами и...

Введение в операционные системы. Определение, назначение, состав и функции операционных систем
Государственное образовательное учреждение высшего профессионального образования... ТОЛЬЯТТИНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СЕРВИСА...

Экзаменационные вопросы к экзамену по дисциплине Операционные системы, среды и оболочки 1. Общие сведения и об операционных системах. Назначение и функции
Общие сведения и об операционных системах Назначение и функции... Операционная система ОС это упорядоченная последоват системных управляющих программ совместно с необходимыми...

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

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

Микропроцессорные системы: система ДЦ-МПК, система "Юг"
Использован практический опыт внедрения линейных пунктов управления (ЛПУ) на 60 станциях в увязке с ЭЦ-4, ЭЦ-9, МРЦ-12, МРЦ-13. Выполнен переход на… В состав аппаратуры центрального пункта управления (ПУ) входят IBM-совместные… Круглосуточный режим работы аппаратных средств ПУ обеспечивается источниками бесперебойного питания, а также системой…

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

Экспертные системы. Классификация экспертных систем. Разработка простейшей экспертной системы
Глава 2. Структура систем, основанных на знаниях. 1. Категории пользователей экспертных систем. 2.2. Подсистема приобретения знаний. 3. База… ЭС выдают советы, проводят анализ, дают консультации, ставят диагноз. Практическое применение ЭС на предприятиях способствует эффективности работы и повышению квалификации специалистов.

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

0.041
Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • По категориям
  • По работам