Планирование процессов содержит в себе решение таких задач:
определение момента времени для изменения выполняемого процесса;
выбор процесса на выполнение с очереди готовых процессов;
переключение контекстов "старого" и "нового" процессов.
Первые две задачи решаются программными средствами, а последняя в значительной мере аппаратно (см. раздел 2.3. "Средства аппаратной поддержки управления памятью и многозадачной средой в микропроцессорах Intel 80386, 80486 и Pentium").
Приведенный выше пример поможет нам проиллюстрировать еще одну проблему синхронизации - взаимные блокирования, называемые также дедлоками (deadlocks), клинчами (clinch) или безысходностями. Если переставить местами операции P(e) и P(b) в программе "писателю", то при некоторому стечению обстоятельств эти два процессы могут взаимно заблокировать друг друга. Действительно, пусть "писатель" первым войдет в критическую секцию и окажет отсутствие свободных буферов; он начнет ждать, когда "читатель" возьмет очередную запись из буфера, но "читатель" не сможет этого сделать, потому что для этого необходимо войти в критическую секцию, вход в который заблокирован процессом "писателем".
Такой период в эволюции операционных систем связан с появлением больших интегральных схем (БИС). В эти года состоялся резкий рост степени интеграции и удешевление микросхем. Компьютер стал доступный отдельному человеку, и наступила эра персональных компьютеров. С точки зрения архитектуры персональные компьютеры ничем не отличались от класса миникомпьютеров типа PDP-11, но вот цена в них существенным образом отличалась. Если миникомпьютер дал возможность иметь собственную вычислительную машину отдела предприятия или университета, то персональный компьютер сделал это возможным для отдельного человека.
Известно, что компьютер был изобретен английским математиком Чарльзом Бэбиджем в конце восемнадцатого век. Его "аналитическая машина" так и не смогла но-настоящему заработать, потому что технологии того времени не удовлетворяли требованиям по изготовлению деталей точной механики, которые были необходимы для вычислительной техника. Известно также, что этот компьютер не имел операционной системы.
Некоторый прогресс в создании цифровых вычислительных машин состоялся после второй мировой войны.
С середины 50-х лет начался новый период в развитии вычислительной техники, связанный с появлением новой технической базы - полупроводниковых элементов. Компьютеры второго поколения стали более надежными, теперь они смогли непрерывно работать настолько долго, чтобы на них можно было положить выполнение действительно практически важных задач. Именно в этот период состоялась низменность персонала на программистов и операторы, эксплуатационщиков и разработчиков вычислительных машин.
В эти года появились первые алгоритмические языки, а следовательно и первые системные программы - компиляторы.
средств защиты информации каждого пользователя от несанкционированного доступа других пользователей. Следует заметить, что не всякая многозадачная система есть многопользовательской, и не всякая однопользовательская ОС есть однозадачной. что
выжимает и не выжимает многозадачность. Самым важным что разделяется ресурсом является процессорное время. Средство распределения процессорного времени между несколькими одновременно существующими в системе процессами (или нитями) во многом определяет специфику ОС.
Принцип кэширования данных: Память вычислительной машины представляет собой иерархию устройств , которые запоминают , (внутренние регистры процессора, разные типы сверхоперативной и оперативной памяти, диски, ленты), что отличаются средним временами доступа и стоимостью сохранения данных в расчетов на один битый (рисунок 2.17). Пользователю хотелось бы иметь и недорогую и быструю память. Кэш-память подает некоторое компромиссное решение этой проблемы.
Рис.
Операционные системы могут различаться особенностями реализации внутренних алгоритмов управления основными ресурсами компьютера (процессорами, памятью, устройствами), особенностями использованных методов проектирования, типами аппаратных платформ, областями использования и многими другими свойствами.
Ниже приведенная классификация ОС по нескольким более всего основных признаках.
Особенности алгоритмов управления ресурсами
От эффективности алгоритмов управления локальными ресурсами компьютера во многом зависит эффективность всех сетевой ОС в целом.
В зависимости от функций, положенных на конкретный компьютер, в его операционной системе может отсутствующему или клиентская, или серверная части.
На рисунке 1.2 показанное взаимодействие сетевых компонентов. Здесь компьютер 1 выполняет роль "чистого" клиента, а компьютер 2 - роль "чистого" серверу, соответственно на первой машине отсутствующих серверная часть, а на второй - клиентская. На рисунке отдельно показанный компонент клиентской части - редиректор. Именно редиректор перехватывает все запросы, которые поступают от приложений, и анализирует их.
На протяжении существования процесса его выполнение может быть многократно прерванное и продлено. Для того, чтобы восстановить выполнение процесса, необходимо восстановить состояние его операционного среды. Состояние операционного среды отображается по состоянию регистров и программного счетчика, режимом работы процессора, указателями на открытые файлы, информацией о незавершенных операциях внедрения-висновка, кодами ошибок выполняемых данным процессом системных вызовов и т.д. Эта информация называется контекстом процесса.
К признакам корпоративных ОС могут быть отнесенные также такой особенности.
Поддержка приложений. В корпоративных сетях выполняются сложные приложения, которые нуждаются в для выполнения большой вычислительной мощности. Такие приложения разделяются на несколько частей, например, на одном компьютере выполняется часть приложения, связанный с выполнением запросов к базы данных, на другое - запросов к файловому сервису, а на клиентских машинах - часть, которая реализует логику обработки данных приложения и организующего интерфейса с пользователем.
Важным понятием синхронизации процессов есть понятия "критическая секция" программы. Критическая секция - это часть программы, в которой осуществляется доступ к что разделяются данным. Чтобы исключить эффект гонок относительно некоторого ресурса, необходимо обеспечить, чтобы в каждый момент в критической секции, связанной с этим ресурсом, находился максимум один процесс. Этот прием называют взаимным исключением.
Простейшее средство обеспечить взаимное исключение - позволить процессу, который находится в критической секции, запрещать все прерывания.
1. Без использования дискового пространства
Все методы управления памятью могут быть разделены на два класса: методы, которые используют перемещение процессов между оперативной памятью и диском, и методы, которые не делают этого (рисунок 2.8). Начнем с последнего, более простого класса методов.
Рис. 2.8. Классификация методов распределения памяти
2. Распределение памяти фиксированными делениями
Самым простым средством управления оперативной памятью является низменность ее на несколько делений фиксированного размера.
Понятие виртуальной памяти
Уже достаточно давно пользователи столкнулись с проблемой размещения в памяти программ, размер которых превышал имеющуюся в наличии свободную память. Решением была разбивка программы на части, называемые оверлеями. 0-ой оверлей начинал выполняться первым. Когда он заканчивал свое выполнение, он вызвал другой оверлей. Все оверлеи хранились на диске и перемещались между памятью и диском средствами операционной системы. Однако разбивка программы на части и планирование их загрузка в оперативную память должный был осуществлять программист.
При многозадачности, что не выжимает, механизм планирования распределен между системой и прикладными программами. Прикладная программа, получивши управление от операционной системы, самая определяет момент завершения своей очередной итерации и передает управление ОС с помощью некоторого системного вызова, а ОС формирует очереди задач и выбирает согласно некоторому алгоритму (например, с учетом приоритетов) такую задачу на выполнение. Такой механизм создает проблемы как для пользователей, так и для разработчиков.
В некоторых системах используется понятия рабочего множества страниц. Рабочее множество определяется для каждого процесса и представляет собой перечень более всего часто используемых страниц, которые должны постоянно находиться в оперативной памяти и потому не подлежат розаантаженню.
После того, как избранная страница, которая должна покинуть оперативную память, анализируется ее признак модификации (из таблицы страниц). Если что выталкивается страница с момента загрузки было модифицировано, то ее новая версия должна быть переписана на диск.
Многозадачность является важнейшим свойством ОС. Для поддержки этого свойства ОС определяет и оформляет для себя те внутренние единицы работы, между которыми и будет разделяться процессор и другие ресурсы компьютера. Эти внутренние единицы работы в разных ОС носят разные названия - задача, задача, процесс, нить. В некоторых случаях сущности, которые обозначаются этими понятиями, принципиально отличаются друг от друга.
Говоря о процессах, мы отмечали, что операционная система поддерживает их обособленность: у каждого процесса есть свое виртуальное адресное пространство, каждого процесса назначаются свои ресурсы - файлы, окна, семафоры и т.
Нити иногда называют облегченными процессами или мини-процессами. Действительно, нити во многих отношениях подобный процессам. Каждая нить выполняется строго последовательно и имеет свой собственный программный счетчик и сток. Нити, как и процессы, могут, например, порождать нити-потомки, могут переходить с состояния в состояние. Подобно традиционным процессам (то есть процессам, которые составляются с одной нити), нити могут находится в одном из таких состояний: ВЫПОЛНЕНИЕ, ОЖИДАНИЕ и ГОТОВНОСТЬ.
В зависимости от того, как распределенные функции между компьютерами сети, сетевые операционные системы, а следовательно, и сети делятся на два класса: одноранговые и двухранговые (рисунок 1.4). Последние чаще называют сетями с выделенными серверами.
(а)
(б)
Рис. 1.4. (а) - Одноранговая сеть, (б) - Двухранговая сеть
Если компьютер предоставляет свои ресурсы другим пользователям сети, то он играет роль серверу.
Операционная система в найбольшей мере определяет образ всей вычислительной системы в целом. Несмотря на это, пользователе, которые активно используют вычислительную технику, чаще всего ощущают затруднение при попытке даты определения операционной системе. Частично это связано с тем, что ОС выполняет две по существу мало связанные функции: обеспечение пользователю-программисту удобств с помощью предоставления для него расширенной машины и повышения эффективности использования компьютера путем рационального управления его ресурсами.
Сетевые операционные системы имеют разные свойства в зависимости от того, предназначенные они для сетей масштаба рабочей группы (отдела), для сетей масштаба кампуса или для сетей масштаба предприятия.
Сети отделов - используются небольшой группой сотрудников, которые решают общие задачи. Главной целью сети отдела есть низменность локальных ресурсов, таких как приложения, данные, лазерные принтеры и модемы. Сети отделов обычно не разделяются на подсети.
Сети кампусов - соединяют несколько сетей отделов внутри отдельного дома или внутри одной территории предприятия.
Использование большинства компьютеров на уровне машинного языка тяжело, особенно это касается запровадження-висновка. Например, для организации чтения блока данных из гибкого диска программист может использовать 16 разных команд, каждая с который нуждается в 13 параметрах, таких как номер блока на диске, номер сектора на дорожке и т.п. Когда выполнение операции с диском завершается, контроллер возвращает 23 значение, которые отбивают наличие и типы ошибок, которые, очевидно, надо анализировать. Даже если не входить в курс реальных проблем программирования внедрения, ясно, что среди программистов нашлось бы не много желающих непосредственно заниматься программированием этих операций.
Идея о том, что ОС прежде всего система, которая обеспечивает удобный интерфейс пользователям, отвечает рассмотрению сверх вниз. Другой взгляд, снизу вверх, дает представление об ОС как о некотором механизме, управляющем всеми частями сложной системы. Современные вычислительные системы составляются из процессоров, памяти, таймеров, дисков, накопителей на магнитных лентах, сетевых коммуникационной аппаратуры, принтеров и других устройств. В соответствии со вторым подходом функцией ОС есть распределение процессоров, памяти, устройств и данных между процессами, которые конкурируют за эти ресурсы.
На свойстве операционной системы непосредственное влияние делают аппаратные средства, на которые она ориентирована. По типу аппаратуры различают операционные системы персональных компьютеров, мини-компьютеров, мейнфреймов, кластеров и сетей ЭВМ. Среди перечисленных типов компьютеров могут встречаться как однопроцессорные варианты, так и многопроцессорные. В любом случае специфика аппаратных средств, как правило, отбивается на специфике операционных систем.
Очевидно, что ОС большой машины есть более сложной и функциональной, чем ОС персонального компьютера.
При описании операционной системы часто указываются особенности ее структурной организации и основные концепции, предназначенные в ее основу.
К таким базовым концепциям относятся:
Средства построения ядра системы - монолитное ядро или микроядерный подход. Большинство ОС использует монолитное ядро, которое компонуется как одна программа, которая работает в привилегированном режиме и использует быстрых переходах с одной процедуры на другую, что не нуждаются в переключении из привилегированного режима в пользовательский и наоборот.
Многозадачные ОС подразделяются на трех типа согласно использованному при их разработке критериями эффективности:
системы пакетного обработки (например, OC EC),
системы деления времени (UNIX, VMS),
системы реального времени (QNX, RT/11).
Системы пакетного обработки назначались для решения задач в основном вычислительного характера, которые не нуждаются в быстром получении результатов. Главной целью и критерием эффективности систем пакетного обработки есть максимальная пропускная способность, то есть решение максимального числа задач в единицу времени.
В этом случае память машины не делится заранее на деления. Сначала вся память свободная. Каждой задачи, которая снова поступает, выделяется необходимая ей память. Если достаточный объем памяти отсутствующих, то задача не принимается на выполнение и стоит в очереди. После завершения задачи память освобождается, и на это место может быть загруженная другая задача. Таким образом, в произвольный момент времени оперативная память представляет собой случайную последовательность занятых и свободных участков (делений) произвольного размера.
Важно понять, что несмотря на то, что в сети с выделенным сервером все компьютеры в общем случае могут выполнять одновременно роли и серверу, и клиента, эта сеть функционально не симметричная: аппаратно и программно в ней реализованные два типа компьютеров - одни, в большей степени ориентированные на выполнение серверных функций и работающие под управлением специализированных серверных ОС, а другие - в основном исполняющее клиентские функции и работающие под управлением соответствующему этому назначению варианта ОС.
При страничной организации виртуальное адресное пространство процесса делится механически на уровне части. Это не позволяет дифференцировать средства доступа к разным частям программы (сегментам), а это свойство часто бывает очень полезным. Например, можно запретить оборачиваться с операциями записи и чтение в кодовый сегмент программы, а для сегмента данных решить только чтение. Кроме того, разбивка программы на "осмысленные" части делает принципиально возможным низменность одного сегмента несколькими процессами.
Структура сетевой операционной системы
Сетевая операционная система составляет основу любой вычислительной сети. Каждый компьютер в сети в значительной мере автономен, поэтому под сетевой операционной системой в широком содержании понимается совокупность операционных систем отдельных компьютеров, которые взаимодействуют с целью обмена сообщениями и деления ресурсов по единым правилам - протоколам. В узком содержании сетевая ОС - это операционная система отдельного компьютера, который обеспечивает ему возможность работать в сети.
Средство синхронизации , которая обоется , процессов предложил Дейкстра, что ввел два новых примитива. В абстрактной форме эти примитивы, которые обозначаются P и V, оперируют над целыми неотрицательными переменными, называемыми семафорами. Пусть S такой семафор. Операции определяются таким способом:
V(S) : переменная S увеличивается на 1 одним неделимым действием; выборка, инкремент и запоминание не могут быть прерваны, и к S нет доступа другим процессам во время выполнения этой операции.
P(S) : уменьшение S на 1, если это возможно.
В многозадачной (многопроцессной) системе процесс может находиться в одном из трех основных состояний:
ВЫПОЛНЕНИЕ - активное стостояние процесса, во время которого процесс имеет все необходимые ресурсы и непосредственно выполняется процессором;
ОЖИДАНИЕ - пассивное состояние процесса, процесс заблокирован, он не может выполняться по своим внутренним причинам, он ждет осуществления некоторого события, например, завершения операции внедрения-висновка, получение сообщения от другого процесса, освобождение какого-то необходимого ему ресурса;
ГОТОВНОСТЬ - также пассивное состояние процесса, но в этом случае процесс заблокирован в связи с внешними относительно него обстоятельствами: процесс имеет все необходимые для него ресурсы, он готов выполняться, однако процессор занят выполнениям другого процесса.
s#0