Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Организация данных и основные характеристики CD-ROM




Компакт-диск –оптический или магнитно-оптический диск, предназначенный для записи и чтения цифровых данных при помощи лазерного луча. Технология лазерных компакт-дисков продолжает развиваться сразу в нескольких направлениях. Это CD-ROM, DVD-ROM, устройства с однократной и многократной записью CD-R и CD-RW, перезаписываемые DVD.

Технологии изготовления CD-ROM уже более десяти лет. За этот немалый для компьютерных технологий срок сменилось несколько поколений накопителей CD-ROM. Рассмотрим основы технологии CD-ROM и ее главные характерис­тики. Толщина диска составляет 1,2 мм, диаметр – 120 мм. Диск изготавлива­ется из прозрачного поликарбоната, который покрыт с одной стороны тонким металлическим отражающим слоем (алюминия, реже золота) и защитной плен­кой специального прозрачного лака. Информация на диске записана в виде чередования углублений в поверхности металлического слоя (load). Двоичный нуль представляется на диске как в виде углубления, так и в виде основной по­верхности, а двоичная единица – в виде границы между ними.

В соответствии с принятыми стандартами поверхность диска разделена на три области.

• Входная директория (lead in) – область в форме кольца шириной 4 мм, ближайшего к центру диска. Считывание информации с диска начина­ется именно со входной директории, где содержатся оглавление (Table of Contents – ТОС), адреса записей, число заголовков, суммарное вре­мя записи (объем), название диска (Dick Label).

• Основная область данных, или файловая система, представлена на дис­ке кольцом шириной 33 мм.

• Выходная директория (lead out) с меткой конца диска.

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

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

• установка и обновление программного обеспечения;

• работа с программными продуктами;

• поиск информации в базах данных, архивах, энциклопедиях, справоч­никах;

• работа с обучающими, развлекательными и игровыми программами;

• просмотр видеофильмов и фотоизображений;

• использование накопителя CD-ROM в качестве разделяемого ресурса локальной компьютерной сети;

• прослушивание музыкальных компакт-дисков.

Рассмотрим основные характеристики приводов CD-ROM с точки зрения их влияния на производительность накопителя в составе персонального компь­ютера и качество решения задач, возлагаемых на накопитель. К основным ха­рактеристикам приводов CD-ROM относятся:

• скорость передачи данных (Data Transfer Rate – DTR);

• среднее время доступа (Access Time – AT);

• объем буферной памяти (Buffer Memory);

• коэффициент ошибок (Error Rate);

• средняя наработка на отказ (Mean Time Between Failure – MTBF);

• тип интерфейса;

• перечень поддерживаемых форматов CD;

• параметры трактов воспроизведения.

Скорость передачи данных DTR – это максимальная скорость, с которой дан­ные пересылаются от носителя информации в оперативную память компьютера. Это наиболее важная характеристика привода CD-ROM, которая прак­тически всегда упоминается вместе с названием модели. Непосредственно со скоростью передачи данных связан такой параметр, как скорость враще­ния диска (“кратность”). Первое поколение приводов (или дисководов) CD-ROM имели скорость передачи данных 150 Кбайт/с, как и проигрыватели аудиоCD. Скорости передачи данных следующих поколений устройств, как правило, кратны этому числу (150 Кбайт/с). Такие приводы получили назва­ние “накопителей с двух-, трех-, четырехкратной и т.д. скоростью”. Причем скорость передачи данных приводов с n-кратной скоростью зависит от типа читаемой информации. Например, если считывается информация со звуко­вого диска, то скорость передачи составляет 150 Кбайт/с (normal speed), а если считываются файлы данных, то скорость передачи может быть равна 300, 450, 600 Кбайт/с и т. д. Иногда для характеристики накопителей на CD-ROM ис­пользуют такой показатель, как скорость постоянной передачи данных (Sustained Data Transfer – SDT).

Скорость передачи данных приводов CD-ROM различной кратности представлена ниже:

 

Кратность скорости привода CD-ROM Время доступа, мс
10х
12х
16х
20х
24х
32х 80-100

 

С переходом на быстродействующие модели приводов наметилась тенденция к размыванию понятия “кратность”. Дело в том, что термин “кратность” соот­ветствует не угловой скорости вращения диска, а линейной скорости движе­ния дорожки диска относительно считывающего устройства. В этом состоит важное отличие накопителя CD-ROM, например, от накопителя на жестких дисках. Если одной из главных целей конструкторов жестких дисков было повышение средней производительнос­ти накопителей, то дисководы CD-ROM изначально проектировались для нужд аудиотехники, где требовалось, прежде всего, постоянство скорости передачи данных, независимо от того, с какой области диска в данный момент произво­дится считывание – с внешней или внутренней. До недавнего времени приво­ды CD-ROM, в отличие от накопителей на магнитных дисках, использовали метод считывания информации с постоянной линейной скоростью (Constant Linear Velocity – CLV), при котором угловая скорость вращения диска являет­ся величиной переменной, зависящей от места считывания информации (умень­шается по мере продвижения головки от центра к краю диска).

Для преодоления серьезных технических проблем, возникающих при скоро­стях передачи информации 2400 Кбайт/с (кратность 16х) и более, производи­тели CD-ROM начали выпускать накопители с частично-постоянной угловой скоростью вращения диска PCAV (Partial Constant Angular Velocity). При ис­пользовании метода PCAV (иногда встречается обозначение CLV-CAV) пас­портное значение скорости передачи информации достигается только при считывании данных из области на внешнем крае диска, а в области, ближай­шей к центру, этот параметр может быть меньше указанного почти в два раза.

Интересное решение предложено специалистами фирмы Hitachi для поддер­жания постоянной производительности накопителя при чтении как на вне­шних, так и во внутренних областях диска (Hitachi 16maX Partial CAV-технология). По мере того как оптическая головка перемещается от внутренних областей диска к внешним, скорость передачи данных растет благодаря по­стоянной скорости вращения диска (CAV-режим).

Современные приводы CD-ROM по максимальной скорости считывания данных превосходят устройства первого поколения в 32–50 раз (32х – 50х, где 1х соответствует 150 Кб/c). Увеличение скорости чтения приводов CD-ROM – это фактически единственное направление совершенствования. Для 40–50-скоростных приводов скорость вращения достигает очень высоких величин – 8600–10400 об/мин. При таких скоростях для обеспечения надежного считывания требуются особые меры. В частности, фирма ASUSTEK снабжает свои приводы 43х, 36х, 40х, 50х специальной виброзащитой, обеспечивая надежное считывание на любой скорости.

В последнее время предложено принципиально новое решение, которое позволяет резко увеличить скорость чтения без увеличения скорости вращения диска. Технология, получившая название TrueX, разработана фирмой Zen Research. Основана она на параллельном считывании данных с нескольких соседних витков дорожки. Первой приводы CD-ROM, использующие эту технологию, выпустила фирма Kenwood. В новых приводах применен более широкий луч лазера, засвечивающий одновременно 7 дорожек, данные с которых считываются параллельно с помощью специального датчика матричного типа.

Уровень качества считывания характеризуется коэффициентом, или скоростью ошибок (Error Rate). Данный параметр отражает способность привода CD-ROM корректировать ошибки записи/чтения. Паспортные значения коэффициен­та ошибок составляют 10–10–10–12. Коэффициент ошибок представляет со­бой оценку вероятности искажения информационного бита при его считы­вании. Когда привод считывает данные с загрязненного или поцарапанного участка диска, он регистрирует группу ошибочных битов. Если ошибку не удается устранить за счет избыточности помехоустойчивого кода (приме­няемого при записи/чтении), то привод переходит на пониженную скорость считывания данных с многократным его повтором. Если механизм коррек­ции ошибок не справляется с устранением сбоя, то на мониторе компьюте­ра появляется сообщение “Сектор не найден” (Sector not found). В случае устранения сбоя привод переключается на максимальную скорость считы­вания данных.

Среднее время доступа AT (Access Time) – это время (в миллисекундах), ко­торое требуется приводу для нахождения на носителе нужных данных.

Очевидно, что при работе на внутренних участках диска время доступа будет меньше, чем при считывании информации с внешних участков. Поэтому в паспорте накопителя приводится среднее время доступа, определяемое как среднее значение при выполнении нескольких считываний данных с различ­ных (выбранных случайным образом) участков диска. По мере совершенство­вания приводов CD-ROM величина среднего времени доступа уменьшается, но все же этот параметр значительно отличается от аналогичного для нако­пителей на жестких дисках (100–200 мс для CD-ROM и 8–12 мс для жест­ких дисков). Столь существенная разница объясняется принципиальными различиями конструкций: в накопителях на жестких дисках используется несколько магнитных головок, и диапазон их механического перемещения меньше, чем диапазон перемещения оптической головки в приводе CD-ROM. Типовые значения среднего времени доступа приводов CD-ROM представ­лены ниже:

 

Кратность скорости привода CD-ROM Время доступа, мс
10х
12х
16х
20х
24х
32х 80-100

 

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

Объем буферной памяти (Buffer Memory – ВМ) – это объем оперативного запоминающего устройства привода CD-ROM, используемого для увеличе­ния скорости доступа к данным, записанным на носителе. Буферная память (или кэш-память) представляет собой устанавливаемые на плате накопителя микросхемы памяти для хранения считанных данных. Благодаря буферной памяти данные в компьютер могут передаваться с постоянной скоростью. На­пример, данные обычно размещены в различных областях диска, а поскольку накопители на CD-ROM имеют относительно большое время доступа, это может привести к задержке поступления данных в компьютер. Это практи­чески незаметно при работе с текстовыми файлами, но при выводе видеоизоб­ражений или звукового сопровождения паузы недопустимы. Если для управ­ления приводом CD-ROM используются специальные программы-драйверы, то в буферную память может быть заранее записано оглавление диска. В этом случае обращение к фрагменту запрашиваемых данных происходит значи­тельно быстрее.

Оптимальный объем буферной памяти определяется многими факторами. Принято считать, что для приводов CD-ROM с двукратной скоростью объем буферной памяти должен составлять не менее 64 Кбайт, а для накопителей с кратностью 4х и выше – не менее 256 Кбайт. Современные устройства име­ют буферную память объемом 256–512 Кбайт.

Средняя наработка на отказ MTBF (Mean Time Between Failure) – это сред­нее время (в часах), характеризующее безотказность работы привода CD-ROM. MTBF определяет надежность накопителя как технического устройства.

Для первых моделей приводов CD-ROM средняя наработка на отказ состав­ляла около 30 тыс. ч, или 3,5 года круглосуточной работы. У современных мо­делей этот показатель лежит в пределах 50–125 тыс. ч, что почти на порядок превышает срок морального старения накопителя.

Параметры аудиотракта. Поскольку приводы CD-ROM используются и для воспроизведения аудиодисков формата CD-DA (Compact Disk-Digital Audio), то они характеризуются и параметрами, описывающими качественные показатели тракта звуковоспро­изведения, а именно:

• полосой воспроизводимых частот;

• динамическим диапазоном;

• отношением сигнал/шум;

• коэффициентом нелинейных искажений;

• сопротивлением на выходе;

• э. д. с. сигналов на выходе;

• переходным затуханием между каналами и др.

По этим характеристикам можно судить о том, способен ли привод CD-ROM заменить пользователю аудиоCD-проигрыватель.

 

3.7.2. Типы интерфейсов

 

Как и для жестких дисков, основное разделение приводов CD-ROM на классы производится по типу интерфейса. Для подключения к компьютеру в приводах CD-ROM могут использоваться следующие интерфейсы:

• стандартные интерфейсы типов IDE, EIDE/ATAPI;

• стандартные интерфейсы SCSI;

• нестандартные интерфейсы, применяемые производителями CD-ROM в одной или серии моделей своих приводов.

Интерфейс IDE хорошо известен и широко используется как интерфейс на­копителей на жестких дисках. Попытка устранения ограничений по скорос­ти передачи данных для интерфейса IDE и ограничений по емкости накопи­телей привели к появлению модифицированного интерфейса EIDE/ATAPI, предложенного фирмой Western Digital. Этот интерфейс поддерживает ра­боту до четырех устройств, в том числе приводов CD-ROM. Включение при­вода CD-ROM с интерфейсом EIDE в систему компьютера осуществляется с помощью драйверов привода и/или операционной системы без изменения установок программы Setup BIOS, т.е. не требуется информирование BIOS о наличии нового периферийного устройства. Для новых моделей IDE приводов CD-ROM начинают все шире использоваться скоростные варианты интерфейса, то есть поддерживающие режим UltraATA/33.

Приводы с интерфейсом SCSI относятся к более высокому классу. Для них характерен более сбалансированный подход, в частности, скорость чтения чрезмерно не форсируется, используются большие объемы кэш-памяти.

Интерфейс SCSI предусматривает подключение к одному адаптеру до семи устройств, в том числе приводов CD-ROM. Интерфейс SCSI является наиболее универсаль­ным, имеет явные преимущества при просмотре видеоизображений, однако его аппаратная реализация дороже, чем реализация интерфейса EIDE.

 

3.7.3. Стандарты записи данных на CD

 

На протяжении всей истории развития накопителей на оптических дисках создано несколько стандартов на форматы представления данных на CD. Боль­шинство этих форматов были описаны в так называемой “радужной серии книг”. Первой в этой серии появилась “красная книга” (красная обложка кни­ги дала ей название), изданная фирмами Phillips и Sony, в которой описан диск CD-DA.

Предшественником цифрового диска был аналоговый компакт-диск CD-A размером 120 мм и длительностью звучания 60 мин.

В “красной книге” были определены основные требования к качеству запи­си звука, описан метод кодирования данных, обоснованы размеры диска (form-factor). В “желтой книге” были расширены способы представления данных на CD, обоснованы стандарты для текстовой и графической инфор­мации. В дальнейшем они были определены Международной организацией по стандартизации ISO. В этой же книге указано, что на диске лю­бой фирмы-изготовителя должен записываться раздел с оглавлением тома. “Зеленая книга” регламентирует форматы для мультимедийных дисков типа CD-I (Interactive).

“Оранжевая книга” описывает физический формат для записываемых и сти­раемых CD. Основные параметры Video CD, предназначенных для хранения в цифровой форме и воспроизведения видеоизображения, были описаны в “белой книге”, анонсированной в 1993 г. Следующая – “синяя книга” – опи­сывает комбинированный формат CD Extra, позволяющий создать диск с дву­мя типами записей: аудиоинформации и цифровых данных. В сентябре 1995 г. фирма Sony, совместно с восьмью другими фирмами, направила свои усилия на создание единого унифицированного стандарта на формат записи данных на CD – DVD.

Рассмотрим основные форматы записи информации на CD.

Формат CD-DA – цифровой аудиокомпакт-диск со временем звучания 74 мин.

Формат ISO 9660 – наиболее распространенный стандарт логической орга­низации записанных данных.

С появлени­ем формата High Sierra стало возможным чтение данных, записанных на диск в формате ISO 9660 с помощью приводов всех типов, что, в свою очередь, привело к массовому тиражированию программ на CD.

Формат Photo-CD разработан компаниями Kodak и Philips в 1990–92 гг. и пред­назначен для записи на CD, хранения и воспроизведения высококачествен­ных фотоизображений (статической видеоинформации). На диске формата Photo-CD может храниться от 100 (разрешение 2048 х 3072 точек) до 800 (раз­решение 256 х 384 точек) фотоизображений, а также звуковая информация.

Формат CD/XA (extended Architecture) – расширенный формат CD, позво­ляющий объединять аудиоинформацию и видеоизображения для их синх­ронного воспроизведения.

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

Диск формата CD-DV позволяет записывать и хранить до 74 мин высококаче­ственного видеоизображения со стереозвуком. Хранение данных основано на методе сжатия MPEG-1 (Motion Picture Experts Group). Для чтения дисков, кроме привода, требуется аппаратный или программный декодер стандарта MPEG.

Формат 3DO разработан для игровых CD-приставок, например Mega-CD фир­мы Sega.

Иногда в литературе встречается так называемый формат Multimedia CD-ROM, однако это не стандарт, а описательный термин для любого CD, допус­кающего запись данных, аудио- и видеоинформации.

 

3.7.4. Накопители DVD

Устройства для чтения дисков высокой плотности DVD-ROM по техническим характеристикам, объемам выпуска и цене достигли, наконец, степени полной готовности к быстрому и массовому внедрению в компьютеры любого уровня. Основные аргументы в пользу приводов DVD заключаются в том, что они способны полностью заменить CD-ROM при ненамного более высокой стоимости и дают при этом, кроме выполнения обычных функций (чтение дисков CD-ROM, CD-R и CD-RW), множество дополнительных возможностей: чтение дисков DVD-ROM (объем информации от 4,7 Гб до 17 Гб) и видеоDVD (высококачественное видеоизображение в формате MPEG-2 и многоканальный звук), а в ближайшей перспективе – воспроизведение звуковых дисков нового формата DVD Audio. На DVD носителях появились программные продукты (энциклопедии, игры), не говоря уже об огромном количестве фильмов.

Процесс совершенствования устройств DVD во многом повторяет путь, пройденный CD, и затрагивает улучшение скоростных характеристик и введение функции записи. Первое поколение устройств DVD-ROM использовало режим CLV и имело скорость чтения с диска DVD 1,38 Мб/с (это 1х DVD). Устройства второго поколения могли читать DVD в два раза быстрее, со скоростью 2х (2,8 Мб/с). Современный этап – это уже устройства третьего поколения, использующие режим CAV, с максимальной скоростью чтения 4х–6х (5,5–8,3 Мб/с). Скоро должны появиться модели со скоростью 8х.

Для DVD разработано несколько типов устройств с функцией записи: DVD-R (с однократной записью), DVD-RAM и DVD-RW (с многократной). Устройства с многократной записью должны получить самое широкое распространение и войти в комплектацию большинства компьютеров. Среди всех форматов DVD-RAM является наиболее перспективным и уже начал применяться на практике. Пока емкость диска составляет 2,6 Гб на одну сторону, в дальнейшем планируется довести ее до 4,7 Гб (и в других форматах тоже).

Диск DVD имеет такой же диаметр, как и обычные компакт-диски, однако это уже не одинарный диск толщиной 1,2 мм. Он состоит из двух отдельных дисков толщиной 0,6 мм каждый, со­единенных между собой своими тыльными сторонами. Благодаря такой структуре информационный слой, с которого производится считывание данных, удален от внешней поверхности только на 0,6 мм вместо прежних 1,2 мм. Это обеспечивает более точную фокусировку лазера для чтения более плотно расположенных данных.

Точная фокусировка достигается также изменением длины волны лазера. В отличие от CD-ROM, который работает с лазером инфракрасного диапазона с длиной волны 780 нм, для DVD при­меняется красный лазер с длиной волны 650 или 635 нм.

 

3.7.5. CD-RW и CD-R

Приводы CD-R дают возможность считывать данные с компакт-дисков и делать запись только на одноразовые (Recordable) диски. Устройства CD-RW (ReWritable) позволяют осуществлять запись на многоразовые, перезаписываемые диски и более универсальны, чем CD-R.

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

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

Технические характеристики. Скорость записи, перезаписи и чтения указывается в единицах, кратных стандартной скорости аудиозаписи (153,8 Кб/с), например 4х. Маркировка CD-RW 4 x 8 x 32 означает, что скорость перезаписи, записи на одноразовых дисках и чтения равна 4, 8 и 32 соответственно. Иногда встречается маркировка типа 16 х 10 х 40, но всегда наименьшее число обозначает скорость перезаписи (rewrite).

Интерфейс IDE применяется в большинстве устройств. Появляются и модели с более совершенным интерфейсом USB. Сейчас некоторые фирмы начали выпуск моделей с еще более современным интерфейсом IEEE 1394 (он же Fire Ware). Скоростные устройства SCSI в последнее время предлагаются редко.

Объем буфера имеет значение, в первую очередь, для записи на высоких скоростях. У современных моделей он обычно составляет 2 Мб.

Устройство должно читать как обычные диски CD-ROM, так и записываемые CD-R и перезаписываемые CD-RW.

Ранее выпускавшиеся модели пишущих и перезаписывающих устройств имели относительно низкую скорость чтения (4х–6х). Большинство же современных программ требуют не менее чем 8-скоростного устройства, а мультимедийные приложения и игры – еще больше. Наиболее скоростные приводы на данный момент:

- 16 х 12 х 32 Teac;

- 16 x 12 x 32 Yamaha;

- 18 x 8 x 32 Teac.

Строение CD-R диска. В структуре CD-R диска можно выделить четыре основных слоя, наносимых поэтапно (рис. 3.7).

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

Затем диск покрывается специальным слоем светоотражающего материала. В обычных CD-ROM для этой цели применяется алюминий, в CD-R дисках применяется чистое серебро, позволяющее добиться 65–80% коэффициента отражения.

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

 

Рис 3.7. Строение CD-R диска

 

4. Введение в архитектуру ЭВМ

 

4.1. RISC и CISC архитектуры

 

Архитектура – аппаратные средства и программное обеспечение данного устройства.

Термин “архитектура системы” часто употребляется как в узком, так и в широком смысле этого слова. В узком смысле под архитектурой понимается архитектура системы команд.

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

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

Двумя основными архитектурами набора команд, используемыми компьютерной промышленностью на современном этапе развития вычислительной техники, являются архитектуры CISC и RISC.

RISC(Reduced (Restricted) Instruction Set Computer) – уменьшенный набор команд, которыми пользуется микропроцессор компьютера, содержащий только наиболее простые команды.

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

CISC (Complete Instruction Set Computer) – полный набор команд микропроцессора.

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

Лидером в разработке CISC-процессоров считается компания Intel со своей серией x86 и Pentium. Эта архитектура является практическим стандартом для рынка микрокомпьютеров. Для CISC-процессоров характерно:

- сравнительно небольшое число регистров общего назначения;

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

- большое количество методов адресации;

- большое количество форматов команд различной разрядности;

- преобладание двухадресного формата команд;

- наличие команд обработки типа регистр-память.

Основой архитектуры современных рабочих станций и серверов является RISC архитектура. Понятие RISC сформировалось на базе трех исследовательских проектов: процессора 801 компании IBM, процессора RISC университета Беркли и процессора MIPS Стенфордского университета. Главными идеями этих машин было отделение медленной памяти от высокоскоростных регистров и использование регистровых окон. Эти три процессора имели много общего. Все они придерживались архитектуры, отделяющей команды обработки от команд работы с памятью, и делали упор на эффективную конвейерную обработку. Система команд разрабатывалась таким образом, чтобы выполнение любой команды занимало небольшое количество машинных тактов (предпочтительно один машинный такт). Сама логика выполнения команд с целью повышения производительности ориентировалась на аппаратную, а не на микропрограммную реализацию. Чтобы упростить логику декодирования команд, использовались команды фиксированной длины и фиксированного формата.

Среди других особенностей RISC архитектур следует отметить наличие достаточно большого регистрового файла (в типовых RISC-процессорах реализуются 32 или большее число регистров по сравнению с 8–16 регистрами в CISC архитектурах), что позволяет большему объему данных храниться в регистрах на процессорном кристалле более длительное время и упрощает работу компилятора по распределению регистров под переменные. Для обработки данных процессора с RISC архитектурой, как правило, используются трехадресные команды, что помимо упрощения дешифрации дает возможность сохранять большее число переменных в регистрах без их последующей перезагрузки.

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

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

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

 

4.2. Система команд ЭВМ общего назначения

 

4.2.1. Методы адресации

 

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

Система команд 32-разрядных процессоров предусматривает 11 режимов адреса­ции. При этом только в двух случаях операнды не связаны с памятью. Это операнд-содержимое регистра, которое берется из любого 8-, 16- или 32-битного регистра процессора, и непосредственный операнд (8, 16 или 32 бит), который содержится в самой команде. Остальные девять режимов так или иначе обращаются к памяти.

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

Смещение (Displacement или Disp) – 8-, 16- или 32-битное число, включенное в команду.

База (Base) – содержимое базового регистра. Обычно используется для указа­ния на начало некоторого массива.

Индекс (Index) – содержимое индексного регистра. Обычно используется для выбора элемента массива.

Масштаб (Scale) – множитель (1, 2, 4 или 8), указанный в коде инструкции. Этот элемент используется для указания размера элемента массива, доступен только при 32-битной адресации.

Эффективный адрес вычисляется по формуле:

EA=Base + Index  Scale + Disp.

Отдельные слагаемые в этой формуле могут отсутствовать. Возможные режимы адресации приведены ниже:

 

Режим Адрес
Прямая адресация EA = Disp
Косвенная регистровая адресация EA = Base
Базовая адресация EA = Base + Disp
Индексная адресация EA = Index + Disp
Масштабированная индексная адресация EA = Scale · Index + Disp
Базово-индексная адресация EA = Base + Index
Масштабированная базово-индексная адресация EA = Base + Scale · Index
Базово-индексная адресация со смещением EA = Base + Index + Disp
Масштабированная базово-индексная адресация со смещением EA = Base + Scale · Index + Disp

 

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

 

4.2.2. Типы команд

 

Команды 32-разрядных процессоров содержат одно- или двухбайтный код инструкции, за ко­торым могут следовать несколько байт, определяющих режим исполнения коман­ды, и операнды. Команды могут использовать до трех операндов (или ни одного). Операнды могут находиться в памяти, регистрах процессора или непосредственно в команде. Для 32-разрядных процессоров разрядность слова (word) по умолчанию может составлять 32 бит. Это распространяется на многие инструкции, включая и строковые. В реальном режиме и режиме виртуального процессора 8086 по умолчанию используется 16-битная адресация и 16-битные операнды-слова. В защищенном режиме режим адресации и разрядность слова по умолчанию оп­ределяются дескриптором кодового сегмента. Перед любой инструкцией может быть использован префикс переключения разрядности адреса или слова.

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

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

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

3.Инструкции десятичной арифметики являются дополнением к предыдущим. Они позволяют оперировать с неупакованными (биты 7–4 равны нулю, биты 3–0 содер­жат десятичную цифру 0–9) или упакованными (биты 7–4 содержат старшую, биты 3–0 – младшую десятичную цифру 0–9) двоично-десятичными числами. Арифметические операции над этими числами требуют применения инструкций коррекции форматов.

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

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

6.Инструкции обработки бит и байт позволяют проверять и устанавливать значение указанного операнда, а также искать установленный бит. Битовые операции выполняются над 16- или 32-битными словами. Инструкция тестирования может выполняться над байтом, словом или двойным словом.

7.Передача управления осуществляется с помощью инструкций безусловных и условных переходов, вызовов процедур и прерываний (исключений). Безусловный переход (JMP) может быть как внутрисегментным (ближним или коротким), так и межсегментным (дальним). Адрес перехода может непосредственно указываться в команде, а при косвенной адресации он находится в регистре или памяти и может иметь дополнительные слагае­мые. Короткий переход (short) может передавать управление только на адрес на­значения, удаленный от текущего в пределах -128...+127 байт, ближний (near) – в пределах сегмента. При дальнем (far) переходе адрес назначения (непосредствен­ный или косвенный) включает новое значение указателя инструкций и значение (или селектор) сегмента кода, обеспечивая доступ к любой точке памяти (в преде­лах, разрешенных защитой).

Условные переходы в 8086 и 80286 возможны только короткие (8-байтное смеще­ние), процессоры 386+ допускают переход в пределах 16- или 32-байтного смеще­ния, в зависимости от режима адресации.

Инструкция вызова процедуры сохраняет адрес следующей за ней инст­рукции в стеке и передает управление в заданную точку.

8.Строковые операции выполняются с операн­дами в памяти. Операции могут использоваться с префиксами условно­го или безусловного повтора. Строковые инструкции ввода/вывода с префиксами повтора позволяют достигать высоких скоростей обмена с портами при условии полной загрузки процессора.

9.Операции с флагами позволяют изменять значе­ния отдельных флагов, а также сохранять их значение в стеке и восстанавливать сохраненные значения.

10.Инструкции загрузки указателей позволяют за­гружать дальние указатели из памяти в регистр общего назначения и соответствую­щий сегментный регистр.

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

 

4.2.3. Типы и размеры операндов

 

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

Обычно тип операнда (например, целый, вещественный с одинарной точностью или символ) определяет и его размер. Однако часто процессоры работают с целыми числами длиною 8, 16, 32 или 64 бит. Как правило, целые числа представляются в дополнительном коде. Для задания символов (1 байт = 8 бит) в машинах компании IBM используется код EBCDIC, но в машинах других производителей почти повсеместно применяется кодировка ASCII. Еще до сравнительно недавнего времени каждый производитель процессоров пользовался своим собственным представлением вещественных чисел (чисел с плавающей точкой). Однако за последние несколько лет ситуация изменилась. Большинство поставщиков процессоров в настоящее время для представления вещественных чисел с одинарной и двойной точностью придерживаются стандарта IEEE 754.

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

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

 

5. Многоуровневая схема программирования

 

5.1. Машинный уровень и микропрограммный уровень

 

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

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

Для формулирования чисто машинной программы важно знать и ее место в памяти (а также и ее отдельных ко­манд), так как знание адресов отдельных команд необходимо для команд перехода. Часто в машинных программах исходят из того, что адресами последовательных команд являются последовательные натуральные числа или натуральные числа с постоянным шагом, если все слова-команды имеют фиксированную длину. Тогда достаточно знать только начальный адрес программы, чтобы установить адрес любой команды.

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

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

 

5.2. Ассемблерный уровень

 

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

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

Транслятор – программа, преобразующая программу, написанную на одном языке программирования, в программу на другом языке или в машинные коды.

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

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

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

Языки Ассемблера по сравнению с чисто машинными языками обыч­но получают следующие дополнительные элементы:

• многократные метки (несколько меток для одной команды);

• ограниченные арифметические (адресные) выражения;

• прямая запись констант (непосредственные операнды);

• символическая адресация;

• сегментирование программы (области действия имен);

• определение и вставка заменяющих текстов (макросредства).

Для записи программы на языке Ассемблера используются следующие типы операторов: машинные команды, команды Ассемблера, команды генерации, макрокоманды, команды комментариев.

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

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

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

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

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

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

 

5.3. Проблемно-ориентированный язык

 

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

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

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

Термин “проблемно-ориентированный язык” часто распространяется не только на языки, специально разработанные для определенных задач, но и на все языки высокого уровня.

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

В языках программирования высокого уровня нет точного соответствия между языковыми конструкциями и машинными командами. Преобразование строк исходного кода в последовательности двоичных команд осуществляется транслятором. К таким языкам относятся PL /1, Pascal, C, C++, Java. Все они менее эффективно используют аппаратуру по сравнению с языками Ассемблера, но позволяют быстрее создавать приложения. В результате им удалось практически полностью вытеснить языки Ассемблера при создании крупных приложений.

Языки программирования высокого уровня отличаются от Ассемблеров, во-первых, тем, что они являются более высокоуровневыми, и, во-вторых, используют более строгий контроль типов данных. Термин “высокоуровневый” означает следующее: многие детали обрабатываются автоматически, а программисту для создания своего приложения приходится писать меньшее количество строк. В частности:

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

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

• для описания структур управления программист может использовать также такие ключевые слова, как if, while; последовательности машинных команд, соответствующие этим описаниям, транслятор генерирует динамически.

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

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

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

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

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

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

 

5.4. Операционная система

 

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

Под ОС понимается комплекс программ, функ­ции которых определяют ВС с точки зрения пользователя. Операционная система является посредником между компьютером и пользовательскими программами. Работая на машине с ОС, пользователь не обращается непосредственно к машинным операциям. Скорее, он дает запросы (задания) программам ОС, которые затем уже используют машинные операции. ОС, как правило, содержат большое семейство программ. Объем ядра достаточно простой ОС составляет примерно 100–500 Кбайт программного кода. Существуют и более компактные ОС, так ОС реального времени QNX имеет ядро порядка 20 Кб, а вся ОС, включая интерфейс пользователя и ряд служебных программ (например, браузер Интернет), помещается на дискете 1,44 Мбайт. Новейшие ОС могут иметь значительно больший объем – десятки и сотни мегабайт.

ОС обеспечивает выполнение основных двух задач:

• поддержку работы всех программ, обеспечение их взаимодействия с аппаратурой;

• предоставление пользователям возможностей общего управления машиной.

В простейшем случае ОС содержит следующие основные компоненты:

• файловую систему;

• драйверы внешних устройств;

• процессор командного языка.

Драйвер – специальная программа, обеспечивающая работу устройств ЭВМ. Драйверы загружаются в память компьютера при загрузке операционной системы.

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

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

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

Эта задача охватывает комплекс управления и распределения ресур­сов системы для:

• длительного хранения данных и управления ими (внешняя память);

• выполнения программ пользователей (процессор и оперативная па­мять);

• использования устройств ввода/вывода, включая устройства для дальней передачи данных (устройства ввода/вывода).

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

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

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

На эксплуатационную ситуацию ВС существенно влияют вид желае­мого использования ВС и число ее пользователей. В однопользователь­ском режиме ВС используется только одним пользователем. В этом слу­чае достаточно однопрограммного режима работы ВС. Однако если и здесь желательно определенные запросы пользователя выполнять парал­лельно, т.е. наряду друг с другом (типичный пример – печать результатов как фоновый процесс), то однопрограммного режима работы системы уже недостаточно даже в случае одного пользователя. В многопользова­тельском режиме многие пользователи одновременно применяют ВС. Ес­ли к тому же пользователи ведут диалог с ВС, то говорят о системе разде­ления времени (time sharing); в этом случае требуется мультипро­граммный режим работы ВС. При этом программы пользователей (которые считаются упорядоченными и замкнутыми в кольцо) поочеред­но получают определенный квант процессорного времени. Функциони­рование системы разделения времени требует учета готовых к выполне­нию программ, и благодаря этому ОС осуществляет управление выпол­нением программ.

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

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

Данная часть ОС устанавливает каждому пользователю рамки исполь­зования ресурсов системы, что предполагает следующие ограничения на:

• потребность процессорного времени;

• текущие потребности памяти;

• потребности для длительного хранения данных;

• приоритет;

• специальные правовые отношения.

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

Обычно ОС через имеющиеся в распоряжении пользователя опера­ции (команды, адресованные ОС) делает возможным доступ к соответст­вующим службам ОС, которые, в частности, охватывают следующие виды работ:

• вычислительную работу для выполнения пользовательских и систем­ных программ;

• хранение данных;

• передачу сообщений другим пользователям и (через сеть) другим ВС;

• доступ к специальным терминальным (конечным) устройствам (в ча­стности, к устройствам вывода).

ОС дает возможность


Поделиться:

Дата добавления: 2015-07-26; просмотров: 217; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.007 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты