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

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

Является "прослойкой" между аппаратурой и прикладным программный интерфейсом, позволяет не думать программисту или пользователю об аппартаной части вычислительной системы и методах его функционирования.
что ещё добавить - пока не знаю....
3. Эволюция ОС
• Первый период - их ещё нет, но есть ЭВМ (1
В середине 40-х были созданы первые ламповые вычислительные устройства. В то время одна и та же группа людей участвовала и в проектировании, и в эксплуатации, и в программировании вычислительной машины. Это была скорее научно-исследовательская работа в области вычислительной техники, а не использование компьютеров в качестве инструмента решения каких-либо практических задач из других прикладных областей. Программирование осуществлялось исключительно на машинном языке. Об операционных системах не было и речи, все задачи организации вычислительного процесса решались вручную каждым программистом с пульта управления. Не было никакого другого системного программного обеспечения, кроме библиотек математических и служебных подпрограмм.
• Второй период - появляется прообраз, системы пакетной обработки (1
В эти годы появились первые алгоритмические языки, а следовательно и первые системные программы - компиляторы. Стоимость процессорного времени возросла, что потребовало уменьшения непроизводительных затрат времени между запусками программ. Появились первые системы пакетной обработки, которые просто автоматизировали запуск одной программ за другой и тем самым увеличивали коэффициент загрузки процессора. Системы пакетной обработки явились прообразом современных операционных систем, они стали первыми системными программами, предназначенными для управления вычислительным процессом. В ходе реализации систем пакетной обработки был разработан формализованный язык управления заданиями, с помощью которого программист сообщал системе и оператору, какую работу он хочет выполнить на вычислительной машине. Совокупность нескольких заданий, как правило в виде колоды перфокарт, получила название пакета заданий.
• Третий период - первые ОС, универсальные, сложные, багнутые, но работающие(1
В это время в технической базе произошел переход от отдельных полупроводниковых элементов типа транзисторов к интегральным микросхемам, что дало гораздо большие возможности новому, третьему поколению компьютеров
Для этого периода характерно также создание семейств программно-совместимых машин. Первым семейством программно-совместимых машин, построенных на интегральных микросхемах, явилась серия машин IBM/360. Построенное в начале 60-х годов это семейство значительно превосходило машины второго поколения по критерию цена/произ-водительность. Вскоре идея программно-совместимых машин стала общепризнанной.
Программная совместимость требовала и совместимости операционных систем. Такие операционные системы должны были бы работать и на больших, и на малых вычислительных системах, с большим и с малым количеством разнообразной периферии, в коммерческой области и в области научных исследований. Операционные системы, построенные с намерением удовлетворить всем этим противоречивым требованиям, оказались чрезвычайно сложными "монстрами". Они состояли из многих миллионов ассемблерных строк, написанных тысячами программистов, и содержали тысячи ошибок, вызывающих нескончаемый поток исправлений. В каждой новой версии операционной системы исправлялись одни ошибки и вносились другие Однако, несмотря на необозримые размеры и множество проблем, OS/360 и другие ей подобные операционные системы машин третьего поколения действительно удовлетворяли большинству требований потребителей. Важнейшим достижением ОС данного поколения явилась реализация мультипрограммирования. Мультипрограммирование - это способ организации вычислительного процесса, при котором на одном процессоре попеременно выполняются несколько программ. Пока одна программа выполняет операцию ввода-вывода, процессор не простаивает, как это происходило при последовательном выполнении программ (однопрограммный режим), а выполняет другую программу (многопрограммный режим). При этом каждая программа загружается в свой участок оперативной памяти, называемый разделом. Наряду с мультипрограммной реализацией систем пакетной обработки появился новый тип ОС - системы разделения времени. Вариант мультипрограммирования, применяемый в системах разделения времени, нацелен на создание для каждого отдельного пользователя иллюзии единоличного использования вычислительной машины.
Другое нововведение - спулинг (spooling). Спулинг в то время определялся как способ организации вычислительного процесса, в соответствии с которым задания считывались с перфокарт на диск в том темпе, в котором они появлялись в помещении вычислительного центра, а затем, когда очередное задание завершалось, новое задание с диска загружалось в освободившийся раздел.
• Четвертый период (1980 - настоящее время)
Следующий период в эволюции операционных систем связан с появлением больших интегральных схем (БИС). В эти годы произошло резкое возрастание степени интеграции и удешевление микросхем. Компьютер стал доступен отдельному человеку, и наступила эра персональных компьютеров. С точки зрения архитектуры персональные компьютеры ничем не отличались от класса миникомпьютеров типа PDP-11, но вот цена у них существенно отличалась. Если миникомпьютер дал возможность иметь собственную вычислительную машину отделу предприятия или университету, то персональный компьютер сделал это возможным для отдельного человека.
Компьютеры стали широко использоваться неспециалистами, что потребовало разработки "дружественного" программного обеспечения, это положило конец кастовости программистов.
На рынке операционных систем доминировали две системы: MS-DOS и UNIX. Однопрограммная однопользовательская ОС MS-DOS широко использовалась для компьютеров, построенных на базе микропроцессоров Intel 8088, а затем 80286, 80386 и 80486. Мультипрограммная многопользовательская ОС UNIX доминировала в среде "не-интеловских" компьютеров, особенно построенных на базе высокопроизводительных RISC-процессоров.
В середине 80-х стали бурно развиваться сети персональных компьютеров, работающие под управлением сетевых или распределенных ОС.
В сетевых ОС пользователи должны быть осведомлены о наличии других компьютеров и должны делать логический вход в другой компьютер, чтобы воспользоваться его ресурсами, преимущественно файлами. Каждая машина в сети выполняет свою собственную локальную операционную систему, отличающуюся от ОС автономного компьютера наличием дополнительных средств, позволяющих компьютеру работать в сети. Сетевая ОС не имеет фундаментальных отличий от ОС однопроцессорного компьютера. Она обязательно содержит программную поддержку для сетевых интерфейсных устройств (драйвер сетевого адаптера), а также средства для удаленного входа в другие компьютеры сети и средства доступа к удаленным файлам, однако эти дополнения существенно не меняют структуру самой операционной системы.
©2007 Google - Google Home - We're Hiring - Terms of Service - Privacy Policy - Discussion Group
4. Функциональные компоненты ОС
Функциональные компоненты ОС автономного характера делятся на две группы:
-управление ресурсами (процессы, память, ввод/вывод, файловая система);
-общесистемные функции
подсистемы пользовательского интерфейса;
защита данных
ОС выполняет процедуры логического входа, защиты от несанкционированного доступа;
функции аудита (фиксируются все события, влияющие на безопасность);
отказоустойчивость (за счёт резервирования).
Q5
Требования, предъявляемые к современным ОС.
Существует ряд требований, который сложился на протяжении эволюции компьютерных и операционных систем, а именно:
высокое быстродействие
гарантированная надёжность
минимальный программный код
прозрачность (в работе служебных программ)
использование стандартных средств для связи с прикладными программами
С течение времени, особенно в современном мире, к операционным системам требоавния возросли, стали жёстче и добавились новые:
переносимость
расширяемость
совместимость
1)Переносимость: Необходимость возможности работы ОС на разных компьютерах. Большая часть кода должен быть написана на стандартизированном языке (к примеру, С). Для разрешения задачи о переносимости системы должно быть реализована независимость от платформы. Для изоляции процессора применяют аппаратно зависимые части кода должны быть локальны, минимальны и заменяемы. Для изоляции самой платформы – введение программного уровня изолирующих аппаратур.
2)Расширяемость: Система должна быть дополняемой и по необходимости обновляемой и расширяющейся. Для этого применятся модульно построение ОС, между модулями – жёсткий и известный интерфейс. Применяется также структурирование по принципу «Клиент-сервер», или микроядерной архитектуры. Использование средств вызова удалённых процедур и загружаемых драйверов устройств и объектов предоставления системных ресурсов.
3)Совместимость: Различают двоичную совместимость на уровне исходных кодов. Для решения задачи совместимости применяют:
создание библиотек системных вызовов – множественные прикладные программные среды
Эмуляцию
6.Классическая архитектура ОС.
Любая сложная система должна иметь понятную и рациональную структуру, или делиться на модули, имеющие законченное функциональное назначение с четко оговоренными правилами взаимодействия. Ясное понимание каждого модуля существенно упрощает его понимание и развитие.
Широкая функциональность ОС неизбежно приводит к сложности ее архитектуры, под которой понимают структурную организацию ОС на основе различных модулей. Обычно в состав ОС входят исполняемые модули и объектные модули стандартных для данной ОС форматов, библиотеки разных типов, программные модули специальных формата (например, загрузчик и драйверы), конфигурационные файлы, документация и т. д.
Большинство современных ОС представляют собой хорошо структурированные модульные системы, способные к развитию, расширению и переносу на другие платформы. Какой либо единой архитектуры ОС не существует, но есть универсальные подходы к структурированию ОС.
Ядро и вспомогательные модули
В состав ядра входят функции решающие внутрисистемные задачи организации вычислительного процесса, такие как переключение контекстов, загрузка станиц, обработка прерываний. Эти функции недоступны для приложений. Другой задачей ядра является поддержка приложений, использую так называемую прикладную программную среду. Приложения могут обращаться к ядру с запросами - системными вызовами - для выполнения тех или иных действий. Функции ядра которые могут быть вызваны приложениями образуют интерфейс прикладного программирования - API.
Функции которые выполняет ядро наиболее часто востребованы, поэтому скорость их выполнения определяет производительность системы в целом. Для обеспечения высокой скорости работы ОС все модули ядра или большая их часть находятся постоянно в памяти, то есть являются резидентными.
Обычно ядро оформляется в виде программного модуля некоторого специального формата, отличающегося от формата пользовательских приложений.
Остальные модули ОС выполняют полезные, но менее обязательные функции. Решение о принадлежности программы к ОС принимает производитель.
Вспомогательные модули ОС обычно подразделяют на следующие группы:
Утилиты - программы, решающие задачи управления и сопровождения компьютерной системы.
Системные обрабатывающие программы - текстовые и графические редакторы, компиляторы и т. д.
Программы предоставления пользователю дополнительных услуг- специальный вариант пользовательского интерфейса или игры.
Библиотеки процедур различного назначения, упрощающие разработку приложений. Разделение ОС на ядро и модули обеспечивает легкую расширяемость.
Дополнительные модули ОС обычно загружаются в оперативную память только на время выполнения, т. е. являются транзитивными.
Важным свойством ОС основанной на ядре, является возможность защиты кодов и данных ОС за счет выполнения функций ядра в привилегированном режиме.
Ядро
Работает в привилегированном режиме, защищено от приложений пользователя
Распределяет основные ресурсы системы
Выполняет роль арбитра в споре приложений за ресурсы
Аппаратура компьютера должна поддерживать как минимум два режима работы:
Режим пользователя
Режим супервизора
ОС должна работать с исключительными полномочиями, для того чтобы играть роль арбитра в споре приложений за ресурсы компьютера в мультипрограммном режиме.
Для обеспечения уровней привилегий, без поддержки аппаратуры - не обойтись. Аппаратура должна поддерживать как минимум для режима - пользовательский и привилегированный режим.
7.Микроядерная архитектура ОС

Микроядерная архитектура является альтернативой классическому способу построения ОС. Под классической архитектурой понимается рассмотренная выше структурная организация ОС, в соответствии с которой все основные функции ОС, составляющие многослойное ядро, выполняются в привилегированном режиме. При этом некоторые вспомогательные функции ОС оформляются в виде приложений, выполняющихся в пользовательском режиме. Каждое приложение пользовательского режима работает в собственном адресном пространстве и защищено от вмешательства. Код ядра имеет доступ ко всей памяти, но сам полностью защищен. Приложения обращаются к ядру с запросами на выполнение системных функций.
Суть микроядерной архитектуры - в привилегированном режиме остается работать только очень небольшая часть ОС, называемая микроядром. Микроядро защищено от остальных частей ОС и приложений. В состав микроядра обычно входят машинно-зависимые модули, в также модули, выполняющие базовые функции ядра по управлению процессами, обработке прерываний, управлению виртуальной памятью, пересылке сообщений и управлению устройствами в/в. Данные функции очень трудно выполнить в пользовательском пространстве.
Все остальные функции ядра оформляются в виде приложений, работающих в пользовательском режиме.
Работающие в пользовательском режиме менеджеры имеют принципиальные отличия от традиционных утилит. Утилиты вызываются в основном пользователями, а для микроядерной архитектуры менеджеры вытесненные в пользовательский режим нужны часто для работы других приложений, поэтому они называются серверами ОС. Для микроядерной архитектуры необходимо наличие в ОС удобного эффективного способа вызова процедур одного процесса из другого. Поддержка такого механизма и является одной из главных задач миктоядра.
Преимущества и недостатки микроядерной архитектуры
Достоинства:
Переносимость
Расширяемость
Надежность
Поддержка распределенности
Недостатки:
Снижение производительности
ОС, основанные на концепции микроядра, в высокой степени удовлетворяют большинству требований, предъявляемых к современным ОС, обладая переносимостью, расширяемостью, надежностью и создавая хорошие предпосылки для поддержки распределенных приложений. За данные достоинства приходится платить снижением производительности, и это основной недостаток.
Высокая степень переносимости обусловлена тем, что весь машинно-зависимый код изолирован в микроядре.
Расширяемость присуща микроядерной ОС в очень высокой степени. В традиционных системах сложно удалить один слой и поменять его на другой по причине множественности и размытости интерфейсов между слоями. Обычно традиционные ОС позволяют динамически добавлять в ядро или удалять только драйвера устройств. При микроядерном подходе конфигурировать ОС не вызывает никаких проблем и не требует особых мер - достаточно изменить файл с начальной конфигурации системы или остановить ненужные серверы.
Использование микроядра повышает надежность ОС. Каждый сервер выполняется в виде отдельного процесса в своей собственной области памяти и таким образом защищен от других серверов. Если отдельный сервер терпит крах, то он может быть просто перезапущен. И кроме того небольшой размер ядра позволяет снизить вероятность возникновения ошибок.
Модель с микроядром хорошо подходит для реализации распределенных вычислений, так как использует механизмы, аналогичные сетевым: взаимодействие клиентов и серверов путем обмена сообщениями. Серверы микроядерной архитектуры могут работать как на одном так и на разных системах.
Производительность. При классической организации ОС выполнение системного вызова сопровождается двумя переключениями режимов, а при микроядерной - четыре. При прочих равных условиях классическая модель будет всегда быстрее чем микроядерная.
8.Многослойная модель ядра.

Средства аппаратной поддержки ОС непосредственно участвуют в организации вычислительной системы (поддержка системы прерываний и т. п.)
машинно-зависимые модули – программные модули, в которых отражается специфика аппаратной платформы и особенности работы с ней. В идеале, этот слой должен полностью экранировать вышестоящие слои от особенностей машинной (аппаратурной) реализации системы.
Базовые механизмы ядра – наиболее примитивные и основные операции ядра – уровень диспетчеризации.
Менеджеры ресурсов – состоят из мощных функций, реализующих стратегические задачи по управлению ресурсами.
Интерфейсы программных вызовов – взаимодействие с приложениями и утилитами представляет собой набор API-функций.
Характеристики многослойного подхода:
Универсальность
Каждый слой обслуживает вышележащий
Достоинства:
Упрощается разработка
Наращиваемость
Вычислительную систему, работающую под управлением ОС на основе ядра, можно рассматривать как систему, из трех иерархически расположенных слоев: нижний слой образует аппаратура, промежуточный - ядро, а утилиты составляют верхний слой.
При такой организации приложения не могут напрямую взаимодействовать с аппаратурой, а только через слой ядра.
Хотя такой структурный подход на практике обычно работал неплохо, сегодня он все больше воспринимается монолитным. В системах, имеющих многоуровневую структуру было нелегко удалить один слой и заменить его другим в силу множественности и размытости интерфейсов между слоями. Добавление новых функций и изменение существующих требовало хорошего знания операционной системы и массы времени. Когда стало ясно, что операционные системы живут долго и должны иметь возможности развития и расширения, монолитный подход стал давать трещину, и на смену ему пришла модель клиент-сервер и тесно связанная с ней концепция микроядра.
9.ОС пакетной обработки информации.

Системы пакетной обработки предназначались в основном для решения задач вычислительного характера, не требующих быстрого получения результатов. Главным критерием эффективности систем пакетной обработки является максимальная пропускная способность, то есть решение максимального числа задач в единицу времени.
Для достижения этой цели используется следующая схема: сначала формируется пакет заданий, каждое задание содержит требования к системным ресурсам; из этого пакета формируется мультипрограммная смесь. Для одновременного выполнения выбираются задачи, предъявляющие разные требования к ресурсам, так чтобы обеспечить сбалансированную загрузку всех устройств вычислительной машины. Таким образом, выбор нового задания осуществляется на основании текущего состояния системы, то есть выбирается выгодное задание. Следовательно, в вычислительных системах, работающих под управлением пакетных ОС, невозможно гарантировать выполнение того или иного задания в течение определенного времени.
Если посмотреть на совмещение во времени операций в/в и вычислений, то можно представить себе несколько различных способов. Один их них характерен для систем с выделенным процессором в/в. В мэйнфреймах процессоры ввода-вывода называются каналами. Обычно канал имеет систему команд, отличающуюся от системы команд центрального процессора. Эти команды специально предназначены для управления внешними устройствами. Канальные программы могут храниться в той же оперативной памяти, что и программы центрального процессора. В системе команд центрального процессора предусмотрена специальная инструкция, с помощью которой каналу передаются параметры и указания на то, какую программу ввода-вывода он должен выполнить. Начиная с этого момента центральный процессор и канал могут работать параллельно.
Другой способ совмещения вычислений с операциями в/в реализуется в компьютерах, в которых внешние управляются контроллерами. Каждое внешнее устройство имеет свой контроллер, который автономно отрабатывает команды, поступающие от центрального процессора. При этом контроллер и процессор работают асинхронно. Контроллеры выполняют свои команды медленнее чем процессор - свои. Это обстоятельство используется для реализации параллельного вычисления и операций в/в: в промежутке между передачей команд контроллеру центральный процессор может выполнять вычисления.
(более короткий вариант)
Системы пакетной обработки предназначались для решения задач в основном вычислительного характера, не требующих быстрого получения результатов. Главной целью и критерием эффективности систем пакетной обработки является максимальная пропускная способность, то есть решение максимального числа задач в единицу времени. в начале работы формируется пакет заданий, каждое задание содержит требование к системным ресурсам; из этого пакета заданий формируется множество одновременно выполняемых задач. Для одновременного выполнения выбираются задачи, предъявляющие отличающиеся требования к ресурсам, так, чтобы обеспечивалась сбалансированная загрузка всех устройств вычислительной машины, то есть выбирается "выгодное" для ОС задание. В таких ОС невозможно гарантировать выполнение того или иного задания в течение определенного периода времени. В системах пакетной обработки переключение процессора одной задачи на другую происходит только в случае, если активная задача сама отказывается от процессора по каким-либо причинамю Потому одна задача может надолго занять процессор, что делает невозможным выполнение интерактивных задач. Взаимодействие пользователя с вычислительной машиной: пользователь приносит задание, отдает его диспетчеру-оператору, а в конце дня после выполнения всего пакета заданий получает результат. Очевидно, что такой порядок снижает эффективность работы пользователя.
10.ОС разделения времени.
Пользователь интерактивно работает сразу с несколькими приложениями
Принудительная приостановка приложений, и выделение кванта времени другому приложению
Пропускная способность меньше, чем у систем пакетной обработки
Дополнительные накладные расходы на переключение контекстов
Более эффективное использование ресурсов системы
Повышение удобства и эффективности работы пользователя является целью другого способа мультипрограммирования - разделения времени. В данном случае каждое приложение должно регулярно получать возможность общения с пользователем. ОС принудительно периодически приостанавливает выполнение одного приложения и выполняет другое.
Системы разделения времени призваны исправить основной недостаток систем пакетной обработки - изолированность пользователя от процесса выполнения его задач. Так как в системах разделения времени каждому приложению выделяется только квант процессорного времени, ни одно приложение не использует процессор надолго и время ответа оказывается приемлемым. Если выбран квант времени очень небольшим, то у всех пользователей складывается впечатление, что каждый их них единолично использует систему.
Ясно что пропускная способность ниже, чем у систем пакетной обработки, так как на выполнение принимается каждая запущенная пользователем задача, а не та которая выгодна системе. Кроме того производительность системы снижается из-за дополнительных накладных расходов связанных с переключением контекста.
11.ОС реального времени.
Фиксированный набор заранее разработанных программ
Переключение между задачами основано на расписании плановых работ
Пропускная способность не главное
Основной критерий реактивность или время реакции системы
Проектируется с учетом запаса
Еще одна разновидность мультипрограммирования используется в системах реального времени, предназначенных для управления от компьютера различными техническими объектами или технологическими процессами. В обоих случаях существует предельно допустимое время в течении которого должна быть выполнена та или иная управляющая объектом программа. Иначе произойдет авария. Таким образом, критерием эффективности здесь является способность получения результата в заданные интервалы времени. Интервал времени между запуском программы и получением результата - называется временем реакции системы, а соответствующее свойство реактивностью.
В системах реального времени мультипрограммная смесь представляет собой фиксированный набор заранее заданных программ, а выбор на выполнение осуществляется по прерываниям или в соответствии с расписанием плановых работ.
Способность аппаратуры компьютера и ОС к быстрому ответу зависит в основном от скорости переключения между задачами. Если при возникновения прерывания процессор должен опросить сотни потенциальных источников, то реакция системы будет слишком медленной.
В системах реального времени не стремятся максимально загружать все устройства, наоборот, при проектировании программного управляющего комплекса обычно закладывается некоторый запас вычислительной мощности на случай пиковой нагрузки.
12.Процессы и потоки, планирование и диспетчеризация, состояния потока.
Процесс (или по-другому, задача) - абстракция, описывающая выполняющуюся программу.
Планирование процессов и потоков
Подсистема управления процессами и потоками в ОС ответственна за обеспечение процессов необходимыми ресурсами
ОС использует специальные информационные структуры, для хранения информации о том какие ресурсы выделены каждому процессу
Понятие процесс (задача) и поток (нить)
Понятие синхронизации потоков
Управление процессами
Важнейшей частью операционной системы, непосредственно влияющей на функционирование вычислительной машины, является подсистема управления процессами. Процесс (или по-другому, задача) - абстракция, описывающая выполняющуюся программу. Для операционной системы процесс представляет собой единицу работы, заявку на потребление системных ресурсов. Подсистема управления процессами планирует выполнение процессов, то есть распределяет процессорное время между несколькими одновременно существующими в системе процессами, а также занимается созданием и уничтожением процессов, обеспечивает процессы необходимыми системными ресурсами, поддерживает взаимодействие между процессами.
Создание процессов и потоков
Создать процесс - это прежде всего создать описатель процесса, который необходим ОС для управления им (например: идентификатор процесса, степень привилегированности)
Примеры описателей процесса:
Блок управления задачей (ТСВ) в OS/360
Управляющий блок процесса (РСВ) в OS/2
Дескриптор процесса в UNIX
Объект-процесс в Windows
Создание процесса включает загрузку кодов и данных в оперативную память
В многопоточной системе при создании процесса ОС создает поток
Поток-потомок
Планирование и диспетчеризация потоков
Планирование - это работа по определению того, в какой момент прервать выполнение одного потока и какому потоку предоставить возможность выполняться Задачи планирования:
Определение момента времени для смены текущего активного потока
Выбор для выполнения потока из очереди готовых потоков
Диспетчеризация - это реализация решения, найденного в результате планирования Задачи диспетчеризации:
Сохранение контекста текущего потока
Загрузка контекста нового потока
Запуск нового потока на выполнение
Контекст потока можно разделить на общую часть для всех потоков данного процесса и часть, относящуюся только к данному потоку Иерархия контекстов ускоряет переключение потоков
Управление процессами
Важнейшей частью операционной системы, непосредственно влияющей на функционирование вычислительной машины, является подсистема управления процессами.
Состояние потоков
ВЫПОЛНЕНИЕ - активное состояние потоков, во время которого поток обладает всеми необходимыми ресурсами и непосредственно выполняется процессором;
ОЖИДАНИЕ - пассивное состояние потока, процесс заблокирован, он не может выполняться по своим внутренним причинам, он ждет осуществления некоторого события, например, завершения операции ввода-вывода, получения сообщения от другого потока, освобождения какого-либо необходимого ему ресурса;
ГОТОВНОСТЬ - также пассивное состояние потока, но в этом случае процесс заблокирован в связи с внешними по отношению к нему обстоятельствами: поток имеет все требуемые для него ресурсы, он готов выполняться, однако процессор занят выполнением другого потока.
В ходе жизненного цикла каждый процесс переходит из одного состояния в другое в соответствии с алгоритмом планирования процессов, реализуемым в данной операционной системе.
В состоянии ВЫПОЛНЕНИЕ в однопроцессорной системе может находиться только один процесс, а в каждом из состояний ОЖИДАНИЕ и ГОТОВНОСТЬ - несколько процессов, эти процессы образуют очереди соответственно ожидающих и готовых процессов. Жизненный цикл процесса начинается с состояния ГОТОВНОСТЬ, когда процесс готов к выполнению и ждет своей очереди. При активизации процесс переходит в состояние ВЫПОЛНЕНИЕ и находится в нем до тех пор, пока либо он сам освободит процессор, перейдя в состояние ОЖИДАНИЯ какого-нибудь события, либо будет насильно "вытеснен" из процессора, например, вследствие исчерпания отведенного данному процессу кванта процессорного времени. В последнем случае процесс возвращается в состояние ГОТОВНОСТЬ. В это же состояние процесс переходит из состояния ОЖИДАНИЕ, после того, как ожидаемое событие произойдет.
13.Алгоритм планирования, основанный на квантовании.
В соответствии с алгоритмами, основанными на квантовании, смена активного процесса происходит, если:
роцесс завершился и покинул систему,
роизошла ошибка,
процесс перешел в состояние ОЖИДАНИЕ,
исчерпан квант процессорного времени, отведенный данному процессу.
Поток, который исчерпал свой квант, переводится в состояние готовности и ожидает, когда ему будет предоставлен новый квант процессорного времени, а на выполнение в соответствии с определенным правилом выбирается новый поток из очереди готовых.
Кванты, выделяемые потокам, могут быть одинаковыми для всех потоков или различными.
Q14
Приоритетное планирование
Два основных способа планирования - планирование, основанное на квантовании и приоритетное планирование.
Приоритетное планированеи использует приоритет процесса - число, характеризующее степень привилегированности процесса при использовании ресурсов вычислительной машины, в частности, процессорного времени: чем выше приоритет, тем выше привилегии.
Существует две разновидности приоритетных алгоритмов: алгоритмы, использующие относительные приоритеты, и алгоритмы, использующие абсолютные приоритеты.
В обоих случаях выбор процесса на выполнение из очереди готовых осуществляется одинаково: выбирается процесс, имеющий наивысший приоритет. По разному решается проблема определения момента смены активного процесса. В системах с относительными приоритетами активный процесс выполняется до тех пор, пока он сам не покинет процессор, перейдя в состояние ОЖИДАНИЕ (или же произойдет ошибка, или процесс завершится). В системах с абсолютными приоритетами выполнение активного процесса прерывается еще при одном условии: если в очереди готовых процессов появился процесс, приоритет которого выше приоритета активного процесса. В этом случае прерванный процесс переходит в состояние готовности.
Q15
Алгоритмы планирования ОС пакетной обработки
Первым пришел - первым обслужен
Алгоритм без переключений "первым пришел - первым обслужен" является самым простым из алгоритмов планирования. Процессам предоставляется доступ к процессору в том порядке, в котором они его запрашивают. Чаще всего формируется единая очередь ждущих процессов. Как только появляется первая задача, она немедленно запускается и работает столько, сколько необходимо. Остальные задачи ставятся в конец очереди. Когда текущий процесс блокируется, запускается следующий в очереди, а когда блокировка снимается, процесс попадает в конец очереди.
Основное преимущество алгоритма - легкость понимания и программирования. В этом алгоритме все процессы в состоянии готовности контролируются одним связным списком. Чтобы выбрать процесс для запуска, нужно всего лишь взять первый элемент списка и удалить его. Появление нового процесса приводит к помещению его в конец списка.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 |



