Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы по информатике1.doc
Скачиваний:
39
Добавлен:
02.05.2014
Размер:
598.02 Кб
Скачать

3. Формат команды – количество и интерпретация разрядов, представляющих машинную команду.

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

Количество двоичных разрядов, отведенных под код операции, выбирается таким, чтобы можно было представить все выполняемые операции. Если ЭВМ выполняет М различных операции, то число разрядов в КОП должно быть не меньше log2M.

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

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

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

Можно установить, как это принято для большинства машин, что после выполнения данной команды, расположенной в ячейке k, выполняется команда из следующей по порядку (k+1)-й ячейки. Такой порядок выборки команд называется естественным. Он нарушается только специальными командами. В таком случае теряется необхо­димость указывать в команде адрес следующей команды.

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

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

- команды арифметических операций для чисел с фиксированной и плавающей запятой;

- команды десятичной арифметики;

- команды логических (поразрядных) операций (И, ИЛИ и др.);

- команды пересылки;

- команды операций ввода-вывода;

- команды управления порядком исполнения команд (команды передачи управления) и некоторые другие.

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

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

2) системные обрабатывающие программы – текстовые или графические редакторы, компиляторы, компоновщики, отладчики и другие программы, входящие в комплект поставки данной ОС;

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

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

5. program Calcul1;

uses

Forms,

Calcu in ‘Calcu.pas’ {fmCalcu};

{$R *.RES}

begin

Application.Initialize;

Application.CreateForm(TfmCalcu, fmCalcu);

Application.Run;

End.

Билет №23

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

Массивовый тип – это одномерная или многомерная совокупность фиксированного числа однотипных элементов.

Массивы (регулярные типы данных) представляют собой упорядоченную последовательность переменных одного типа. Элементы массива являются его компонентами. Все компоненты относятся к одному типу, его называют типом компонент. Каждая компонента может быть явно обозначена с помощью имени переменной массива, за которым в квадратных скобках следует индекс. Индекс – это величина, характеризующая положение элемента относительно начала массива. Индексом может быть произвольное выражение порядкового типа, заключенное в квадратные скобки. Переменные b[1], b[2], ..., b[40] являются элементами массива b; с[1], c[2], ..., c[40] – элементы массива с. b[12] – двенадцатый элемент массива b, c[39] – тридцать девятый элемент массива с. Если массив состоит только из 40 элементов, то нельзя использовать переменную b[41], так как такой переменной нет в массиве. В качестве индекса может использоваться выражение, например: a [ i + 2 ], b [2 * ( i + 1) + 1].

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

2. Четвертая нормальная форма (4НФ). В ходе исследований был выявлен еще один тип зависимости – многозначная зависимость, которая может вызвать проблеммы, связанные с избыточностью данных.

В случае многозадачной зависимости, существующей между атрибутами А, В и С некоторого отношения, для каждого значения А имеется набор значений атрибута B и набор значений атрибута C. Однако входящие в эти наборы значения атрибутов B и С не зависят друг от друга.

4НФ – это отношение в нормальной форме Бойса–Кодда, которое не содержит нетривиальных многозадачных зависимостей.

3. Последовательные данные передаются в синхронном или асинхронном режимах.

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

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

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

Конечно, второй режим сложнее, но у него есть серьезное преимущество: не нужен отдельный сигнал синхронизации.

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

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

Используется два метода передачи параллельного кода по нескольким линиям: со стробированием, применяющим синхронную передачу, и с квитированием, в котором используется асинхронная передача.

При передаче со стробированием кроме N информационных линий используется линия «готовность данных»: вначале устанавливаются значения передаваемых сигналов на информационных линиях, затем на линии готовности устанавливается уровень 1. Через строго определенный период времени (превышающий максимальное время передачи) сигнал готовности сбрасывается в 0, процесс передачи завершается, после чего можно изменить сигналы на информационных линиях и передавать следующую порцию данных.

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

4. Одиночное непрерывное распределение – это самая простая схема, согласно кото­рой вся память условно может быть разделена на три части:1) область, занимаемая операционной системой;2) область, в которой размещается исполняемая задача;3) незанятая ничем (свободная) область памяти.Программные модули, необходимые для всех программ, располагаются в области самой ОС, а вся оставшаяся память может быть предоставлена задаче. Чтобы для задач отвести как можно больший объем памяти, операционная сис­тема строится таким образом, что постоянно в оперативной памяти располагает­ся только самая нужная ее часть. Эту часть ОС стали называть ядром. Осталь­ные модули ОС могут быть обычными диск-резидентными (или транзитными), т. е. загружаться в оперативную память только по необходимости и после своего выполнения вновь освобождать памятьТакая схема распределения влечет за собой два вида потерь вычислительных ре­сурсов – потеря процессорного времени, потому что процессор простаивает, пока задача ожидает завершения операций ввода/вывода, и потеря самой опера­тивной памяти, потому что далеко не каждая программа использует всю память, а режим работы в этом случае однопрограммный. Схема одиночного непрерывного рас­пределения памяти характерна для MS-DOS.

5. Type Sklad = Record

Name : String [30];

Num : String [10];

Count : Integer;

Date : String [10];

End;

Var f1 : File Of Sklad; f2 : Text; f3 : File; f4 : File Of Integer;

Билет №24

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

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

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

база данных (БД) – поименованная, целостная, единая система данных, организованная по определенным правилам, которые предусматривают общие принципы описания, хранения и обработки данных;

база знаний (БЗ) – формализованная система сведений о некоторой предметной области, содержащая данные о свойствах объектов, закономерностях процессов и явлений и правила использования в задаваемых ситуациях этих данных для принятия новых решений.

В БЗ центральным понятием является – представление знаний в информационных системах, т.е. формализация метапроцедур, используемых биологическими объектами при решении интеллектуальных задач.

В современных АИС все средства обработки данных организовываются в виде системы управления базами данных (СУБД) – совокупности программных и языковых средств, предназначенных для управления данными в базе данных, ведения базы данных, обеспечения многопользовательского доступа к данным. В СУБД информация описывается с помощью метаданных – данных, которые являются описанием других данных, их характеристик, местонахождения, способов использования и тому подобное.

Кроме того вводится понятие – автоматизированного банка данных (АБД), как совокупности системы управления базами данных и конкретной базы (баз) данных, находящейся (находящихся) под ее управлением.

В последнее время в публикациях по информационным системам все чаще стало использоваться понятие хранилища данных, которые работают по принципу центрального склада. Хранилища данных от­личаются от традиционных БД тем, что они проектируются для поддержки процессов принятия решений, а не просто для эффективного сбора и обработки данных. Как правило хранилище содержит многолетние версии обычной БД, физически размещаемые в той же самой базе. Данные в хранилище не обновляются на основа­нии отдельных запросов пользователей. Вместо этого вся база данных периодически обновляется целиком. Хранилища данных могут быть очень внушительных размеров. Например банк Chase Manhatten Bank имеет хранилище объемом более 560 Гбайт, компания MasterCard OnLine – 1200 Гбайт.

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

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

АСНИ выпускаются в виде как специализированных компьютерных систем, так и прикладных пакетов общего назначения.

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

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

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

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

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

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

Массивовый тип – это одномерная или многомерная совокупность фиксированного числа однотипных элементов.

Массивы (регулярные типы данных) представляют собой упорядоченную последовательность переменных одного типа. Элементы массива являются его компонентами. Все компоненты относятся к одному типу, его называют типом компонент. Каждая компонента может быть явно обозначена с помощью имени переменной массива, за которым в квадратных скобках следует индекс. Индекс – это величина, характеризующая положение элемента относительно начала массива. Индексом может быть произвольное выражение порядкового типа, заключенное в квадратные скобки. Переменные b[1], b[2], ..., b[40] являются элементами массива b; с[1], c[2], ..., c[40] – элементы массива с. b[12] – двенадцатый элемент массива b, c[39] – тридцать девятый элемент массива с. Если массив состоит только из 40 элементов, то нельзя использовать переменную b[41], так как такой переменной нет в массиве. В качестве индекса может использоваться выражение, например: a [ i + 2 ], b [2 * ( i + 1) + 1].

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

5. type

list = record

n : integer;

fio : array [1..20] of char;

mark : array [1..3] of integer

end;

var B : list;

Билет №25

1. Слова или тексты, являющиеся собирательными именами (групповыми именами) предметов, обозначим х, у, …, z. Групповое имя обозначает произвольный предмет, принадлежащий некоторой группе предметов, имеющих собственные имена. Например, текст “житель Москвы” является групповым именем людей, каждый из которых является конкретным предметом и имеет свое собственное имя (для простоты примера мы отвлекаемся от факта наличия жителей Москвы, имеющих одинаковые фамилию, имя и отчество).

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

Текст Р(х, у, …, z) называется предикатом; входящие в него групповые имена называются предметными переменными; о предметах, соответст­вую­щих групповому имени, являющемуся предметной переменной, говорят, что они принадлежат предметной области данной переменной; собственные имена указанных предметов называют значениями предметной переменной; логические значения получаемых высказываний называются значениями предиката. Количество различных предметных переменных, входящих в состав текста Р(х, у, …, z), называется рангом предиката (иногда – его “местностью” или “арностью”). Например, бывают предикаты первого ранга (одноместные, унарные), второго ранга (двухместные, бинарные), третьего ранга (трехместные, тернарные) и т.д.

Если высказывание является логической константой, то предикат – логической функцией.

2. 16-разрядный регистр состояния FLAGS содержит всю необходимую информацию о состоянии процессора 8086 и результатах выполнения последней команды.

Битовые флаги:

OF - флаг переполнения;

DF - флаг направления;

IF - флаг прерывания;

TF - флаг трассировки;

SF - флаг знака;

ZF - флаг нуля;

AF - флаг дополнительного переноса;

PF - флаг четности;

CF - флаг переноса;

Флаг переполнения OF сигнализирует о переполнении, возникшем в результате сложения или вычитания.

Флаг направления DF определяет порядок сканирования цепочек байтов или слов в соответствующих командах: от меньших адресов к большим (DF = 0) или наоборот (DF = 1).

Флаг прерывания IF определяет реакцию процессора на запросы внешних прерываний по входу INT. Если IF = 0, запросы прерываний игнорируются (говорят также, что прерывания запрещены или замаскированы), а если IF = 1, процессор распознает запросы на прерывания и реагирует на них соответствующим образом. Состояние флага IF не влияет на восприятие внешних немаскируемых прерываний по входу NMI, а также внутренних (программных) прерываний.

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

Флаг знака SF повторяет значение старшего бита результата, который при использовании дополнительного кода соответствует знаку числа.

Флаг нуля ZF сигнализирует о получении нулевого результата операции.

Флаг вспомогательного переноса AF фиксирует перенос (заем) из младшей тетрады в старшую 8- или 16-битного результата. Он необходим только для команд десятичной арифметики.

Флаг четности (паритета) PF фиксирует наличие четного числа единиц в младших 8 разрядах результата операции. Этот флаг предназначен для контроля правильности передачи данных.

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

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

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

Для 32-разрядных процессоров регистр флагов EFLAGS также расширен до 32 бит. Биты 0-15, опреде­ленные для 8086 и 80286, имеют прежнее назначение. Ряд флагов добавился с появлением процессоров 4-го и 5-го поколений.

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

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

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

2) Объем машинно-зависимых частей кода, непосредственно взаимодействующих с аппаратными средствами, должен быть по возможности минимизирован. Всегда следует избегать прямого манипулирования регистрами и другими аппаратными средствами процессора. Для уменьшения аппаратной зависимости разработчики ОС должны также исключить возможность использования по умолчанию стандартных конфигураций аппаратуры или их характеристик. Аппаратно-зависимые параметры можно “спрятать” в программно-задаваемые пользователем данные абстрактного типа. Для осуществления всех необходимых действий по управлению аппаратурой, представленной этими параметрами, должен быть написан набор аппаратно-зависимых функций. Каждый раз, когда какому-либо модулю ОС требуется выполнить некоторое действие, связанное с аппаратурой, он манипулирует абстрактными данными, используя соответствующую функцию из имеющегося набора. Когда ОС переносится, то соответственно изменяются только эти данные и функции, которые ими манипулируют. Например, в ОС Windows NT диспетчер прерываний преобразует аппаратные уровни прерываний конкретного типа процессора в стандартный набор уровней прерываний IRQL, с которым работают остальные модули ОС. Поэтому при переносе Windows NT на новую аппаратную платформу необходимо переписать те коды диспетчера прерываний, которые, в частности, занимаются отображением уровней прерывания на абстрактные уровни IRQL, а модули ОС, пользующиеся этими абстрактными уровнями, изменений не потребуют. Более того, в Windows NT любой ресурс системы, одновременно задействованной более чем в одном процессе, включая файлы, совместно используемую память и физические устройства, реализован в виде объекта и управляется рядом функций. Такой подход сокращает число преобразований, которые необходимо внести в ОС в процессе ее эксплуатации. Если, скажем, изменилось что-то в аппаратуре, то все, что необходимо сделать, – это заменить соответствующий объект. Аналогично, если требуется поддержка новых ресурсов, то надо только добавить новый объект, не меняя при этом остального кода ОС. Наиболее фундаментальное отличие между объектом и обыкновенной структурой данных заключается в том, что внутренняя структура данных объекта скрыта от наблюдения. Вы должны вызвать объектную функцию для того, чтобы получить данные из объекта или поместить данные в объект. Вы не можете непосредственно изменять данные, находящиеся внутри объекта. Это отделяет средства реализации объекта от кода, который только использует его, такая техника позволяет легко изменять впоследствии реализацию объектов.

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

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

Соседние файлы в предмете Информатика