Системное программное обеспечение

Автор работы: Пользователь скрыл имя, 28 Января 2013 в 15:44, шпаргалка

Описание

Работа содержит ответы на вопросы для экзамена (или зачета) по дисциплине "Системное программное обеспечение"

Работа состоит из  1 файл

ОС Шпоры.docx

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

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

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

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

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

Для компьютеров на основе процессоров  Intel x86/Pentium разработка экранирующего машинно-зависимого слоя ОС несколько упрощается за счет встроенной в постоянную память компьютера базовой системы ввода-вывода — BIOS. BIOS содержит драйверы для всех устройств, входящих в базовую конфигурацию компьютера: жестких и гибких дисков, клавиатуры, дисплея и т. д. Эти драйверы выполняют весьма примитивные операции с управляемыми устройствами, например чтение группы секторов данных с определенной дорожки диска, но за счет этих операций экранируются различия аппаратных платформ персональных компьютеров и серверов на процессорах Intel разных производителей. Разработчики операционной системы могут пользоваться слоем драйверов BIOS как частью машинно-зависимого слоя ОС, а могут и заменить все или часть драйверов BIOS компонентами ОС.

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

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

Последовательность  действий при обработке  прерываний:

  • восприятие запроса на прерывание
  • запоминание состояния прерванного процесса
  • передача управления прерывающей программе
  • обработка прерывания
  • восстановление прерванного процесса

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

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

  1. Мультипрограммирование и мультипроцессорная обработка. Понятия «процесс» и «поток». Создание, планирование и диспетчеризация потоков.

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

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

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

Мультипроцессорная обработка  — это способ организации вычислительного  процесса в системах с несколькими  процессорами, при котором несколько  задач (процессов, потоков) могут одновременно выполняться на разных процессорах  системы.

  Концепция мультипроцессирования ненова, она известна с 70-х годов, но до середины 80-х доступных многопроцессорных систем не существовало. Однако к настоящему времени стало обычным включение нескольких процессоров в архитектуру даже персонального компьютера. Более того, многопроцессорность теперь является одним из необходимых требований, которые предъявляются к компьютерам, используемым в качестве центрального сервера более-менее крупной сети.

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

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

В наши дни становится общепринятым введение в ОС, функций поддержки  мультипроцессорной обработки данных. Такие функции имеются во всех популярных ОС, таких как Sun Solaris 2.x, Santa Crus Operations Open Server 3.x, IBM OS/2, Microsoft Windows NT и Novell NetWare, начиная с 4.1.

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

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

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

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

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

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

Информация о работе Системное программное обеспечение