Лекция 2: Информация, ее представление и измерение 4 страница

9. Лекция: Методы разработки и анализа алгоритмов Рассматриваются основные понятия о методах проектирования (нисходящем, восходящем, модульном, структурном) и разработки алгоритмов (программ), тестирование и верификация алгоритма, трассировка алгоритма.
  Нисходящим проектированием алгоритмов, проектированием алгоритмов "сверху вниз" или методом последовательной (пошаговой) нисходящей разработки алгоритмов называется такой метод составления алгоритмов, когда исходная задача (алгоритм) разбивается на ряд вспомогательных подзадач (подалгоритмов), формулируемых и решаемых в терминах более простых и элементарных операций (процедур). Последние, в свою очередь, вновь разбиваются на более простые и элементарные, и так до тех пор, пока не дойдём до команд исполнителя. В терминах этих команд можно представить и выполнить полученные на последнем шаге разбиений подалгоритмы (команд системы команд исполнителя). Восходящий метод, наоборот, опираясь на некоторый, заранее определяемый корректный набор подалгоритмов, строит функционально завершенные подзадачи более общего назначения, от них переходит к более общим, и так далее, до тех пор, пока не дойдем до уровня, на котором можно записать решение поставленной задачи. Этот метод известен как метод проектирования "снизу вверх". Структурные принципы алгоритмизации (структурные методы алгоритмизации) – это принципы формирования алгоритмов из базовых структурных алгоритмических единиц (следование, ветвление, повторение), используя их последовательное соединение или вложение друг в друга с соблюдением определённых правил, гарантирующих читабельность и исполняемость алгоритма сверху вниз и последовательно. Структурированный алгоритм – это алгоритм, представленный как следования и вложения базовых алгоритмических структур. У структурированного алгоритма статическое состояние (до актуализации алгоритма) и динамическое состояние (после актуализации) имеют одинаковую логическую структуру, которая прослеживается сверху вниз ("как читается, так и исполняется"). При структурированной разработке алгоритмов правильность алгоритма можно проследить на каждом этапе его построения и выполнения. Теорема (о структурировании). Любой алгоритм может быть эквивалентно представлен структурированным алгоритмом, состоящим из базовых алгоритмических структур. Одним из широко используемых методов проектирования и разработки алгоритмов (программ) является модульный метод (модульная технология). Модуль – это некоторый алгоритм или некоторый его блок, имеющий конкретное наименование, по которому его можно выделить и актуализировать. Иногда модуль называется вспомогательным алгоритмом, хотя все алгоритмы носят вспомогательный характер. Это название имеет смысл, когда рассматривается динамическое состояние алгоритма; в этом случае можно назвать вспомогательным любой алгоритм, используемый данным в качестве блока (составной части) тела этого динамического алгоритма. Используют и другое название модуля – подалгоритм. В программировании используются синонимы – процедура, подпрограмма. Свойства модулей: · функциональная целостность и завершенность (каждый модуль реализует одну функцию, но реализует хорошо и полностью); · автономность и независимость от других модулей (независимость работы модуля-преемника от работы модуля-предшественника; при этом их связь осуществляется только на уровне передачи/приема параметров и управления); · эволюционируемость (развиваемость); · открытость для пользователей и разработчиков (для модернизации и использования); · корректность и надежность; · ссылка на тело модуля происходит только по имени модуля, то есть вызов и актуализация модуля возможны только через его заголовок. Свойства (преимущества) модульного проектирования алгоритмов: · возможность разработки алгоритма большого объема (алгоритмического комплекса) различными исполнителями; · возможность создания и ведения библиотеки наиболее часто используемых алгоритмов (подалгоритмов); · облегчение тестирования алгоритмов и обоснования их правильности; · упрощение проектирования и модификации алгоритмов; · уменьшение сложности разработки (проектирования) алгоритмов (или комплексов алгоритмов); · наблюдаемость вычислительного процесса при реализации алгоритмов. Тестирование алгоритма – это проверка правильности или неправильности работы алгоритма на специально заданных тестах или тестовых примерах – задачах с известными входными данными и результатами (иногда достаточны их приближения). Тестовый набор должен быть минимальным и полным, то есть обеспечивающим проверку каждого отдельного типа наборов входных данных, особенно исключительных случаев. Пример. Для задачи решения квадратного уравнения ax2 + bx + c = 0 такими исключительными случаями, например, будут: 1) a = b = c = 0; 2) a = 0, b, c – отличны от нуля; 3) D = b2 – 4ac < 0 и др. Тестирование алгоритма не может дать полной (100%-ой) гарантии правильности алгоритма для всех возможных наборов входных данных, особенно для достаточно сложных алгоритмов. Полную гарантию правильности алгоритма может дать описание работы и результатов алгоритма с помощью системы аксиом и правил вывода или верификация алгоритма. Пример. Составим алгоритм нахождения числа всех различных двоичных сообщений (двоичных последовательностей) длины n битов, используя при этом не более одной операции умножения, и докажем правильность этого алгоритма. Вначале найдем число всех таких сообщений. Число двоичных сообщений длины 1 равно 2 = 21 (это "0" и "1"), длины 2 равно 4 = 22 ("00", "01", "10", "11"). Отправляясь от этих частных фактов, методом математической индукции докажем, что число различных сообщений длины n равно 2n. Этот индуктивный вывод докажет правильность алгоритма. Пусть это наше утверждение верно для n = k. Тогда для n = k + 1 получаем, что добавление каждого бита (0 или 1) к любому из 2k сообщений длины k приведет к увеличению числа сообщений в 2 раза, то есть их число будет равно 2 x 2k = 2k+1, что и доказывает наше индуктивное предположение. Составим теперь алгоритм вычисления числа x = 2n с использованием операции умножения только один раз. Прологарифмируем последнее равенство. Получим ln(x) = ln(2n) = n ln(2). Используя равенство exp(ln(x)) = x, получим, что exp(ln(x)) = x = exp(n ln(2)). Остается теперь записать простейший алгоритм вычисления числа x. Program Power;Uses Crt; Var x: real; n: integer;Begin ClrScr; WriteLn('Введите длину в битах n ='); { приглашение к вводу входного параметра } ReadLn(n); { ввод входного параметра } x:=exp(n*ln(2)); { вычисление степени } WriteLn('количество сообщений равно: ', int(x+0.5)); { вывод х с округлением }End. Для несложных алгоритмов грамотный подбор тестов и полное тестирование может дать полную картину работоспособности (неработоспособности). Трассировка – это метод пошаговой фиксации динамического состояния алгоритма на некотором тесте. Часто осуществляется с помощью трассировочных таблиц, в которых каждая строка соответствует определённому состоянию алгоритма, а столбец – определённому состоянию параметров алгоритма (входных, выходных и промежуточных). Трассировка облегчает отладку и понимание алгоритма. Процесс поиска и исправления (явных или неявных) ошибок в алгоритме называется отладкой алгоритма. Некоторые (скрытые, труднообнаруживаемые) ошибки в сложных программных комплексах могут выявиться только в процессе их эксплуатации, на последнем этапе поиска и исправления ошибок – этапе сопровождения. На этом этапе также уточняют и улучшают документацию, обучают персонал использованию алгорима (программы). Пример. Определим функцию фрагмента алгоритма вида на тесте n=2; x[1]=4; x[2]=9: k:=1;s:=x[1];for i:=1 to n if (s<x[i]) then begin s:=x[i] k:=i end;writeln (k); Если выписать трассировочную таблицу вида
i S x[i] K s<x[i] i<=n
        Нет Да
        Да Да
  Нет

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

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

Основные формы использования алгоритмов – автономное, библиотечное, пакетное.

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

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

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

10. Лекция: Исполнители алгоритмов - человек и автомат Рассматриваются основные понятия о базовых исполнителях алгоритмов – человеке и конечном автомате, об их управляющих и исполняющих подсистемах, структурах.
Исполнителем называется некоторая биологическая, техническая или смешанная структура, способная исполнять (покомандно или программно) некоторый класс алгоритмов в некоторой операционной среде (некотором множестве допустимых "инструментов" и "команд"). Наиболее используемые типы исполнителя алгоритмов – человек или автомат (компьютер). Человек как исполнитель алгоритмов – совокупность исполняющих подсистем (мышечная, двигательная, зрительная, обонятельная и др.) и управляющей подсистемы (нервная, нейронная). Нервная система передает информацию, получаемую от нервных окончаний кожи, глаз, ушей и других органов, к нервным центрам для ее последующей интеграции, обработки и выработке адекватной реакции. Нервная система – совокупность взаимодействующих нервных клеток или нейронов. У человека их – громадное количество. Пример. По различным оценкам физиологов, в коре переднего мозга человека – около 50 млрд нейронов. Нейроны, хотя и работают медленно (около сотни инструкций в секунду), но могут за счет более эффективного взаимодействия друг с другом и организации сложнейших нейроструктурных связей (кластеров) решать сложные мыслительные задачи, принимать решения. Пример. Такая плохо структурируемая, но "простая" для человека задача, как "одеться по погоде", решается быстро с помощью обработки зрительной, слуховой информации и согласованной "нейронной" оценки ситуации, хотя она и плохо формализуемая. Компьютеру эту задачу решать будет намного сложнее. С другой стороны, вычислительные ресурсы человека ограничены по сравнению с возможностями компьютера, который во много раз лучше (быстрее, точнее) решает хорошо формализуемые и хорошо структурируемые задачи. Нейроны служат для передачи информации за счет нервных импульсов, которая расшифровывается в соответствующих областях коры головного мозга. В непосредственную (сенсорную) память человека поступает информация от различных сенсоров: зрительных, слуховых, обонятельных и т.д. Затем эта информация переводится в оперативную память (память сознания). Далее она пересылается в долговременную память с привлечением подсознания ("укладывается на полочки" с соответствующими названиями "Формы поведения", "Объекты и образы", "Правила и процедуры обнаружения и идентификации объектов", "Правила выборки и организации информации", "Жизненный опыт", "Бытовые навыки и умения", "Профессиональные навыки и умения" и др.). Пример. Увиденный человеком конкретный компьютер ассоциируется с абстрактным понятием "Компьютер" (из долговременной памяти) – например со сведениями об этом устройстве – информационными кодами, которые определяют объект (связь, понятие). Коды связываются между собой, создавая образ конкретного компьютера. В живом организме передача, хранение или обработка информации происходит с помощью биохимических реакций и сообщений – сигнальных молекулярных систем и их превращений за счет химических реакций катализа и разностей концентрации химических веществ. Разность потенциалов действий (электрические сигналы) проводят нервные волокна, с помощью центральной нервной системы. При этом используется и генная информация, которая передается от ДНК к РНК, от РНК – к белку, определяя новую белковую структуру, ее функции. Второй важный тип исполнителей – конечные автоматы, автоматические (то есть функционирующие определенный промежуток времени без участия человека) устройства, вход, выход и состояния которых можно описать конечными последовательностями сообщений (слов над конечными алфавитами). Любой конечный автомат реализует некий непустой класс алгоритмов и состоит из совокупности управляющего автомата, который определяет порядок выполнения действий, и операционного автомата, реализующего сами действия, выполняемые автоматом. Пример. Пример конечного автомата – автомат для продажи газированной воды. Его функционирование можно изобразить графом (рис. 10.1), если ввести следующие множества и события: X = {1, 3, Г, Ø} – входное множество, Y = {В, С, О} – выходное множество, S = {s0, s1, s2, s3} – множество состояний, 1 – входной сигнал "опустить 1 руб.", 3 – входной сигнал "опустить 3 руб.", Г – входной сигнал "опустить гнутую монету", Ø– входной сигнал "монета не опущена", В – выходной сигнал "выдача воды газированной без сиропа", С – выходной сигнал "выдача газированной воды с сиропом", О – выходной сигнал "отказ выдать воду", s0 – первое состояние – "начальное состояние", s1 – второе состояние – "обработка 1 руб.", s2 – третье состояние – "обработка 3 руб.", s3 – четвертое состояние – "состояние неисправности".   Функционирование конечного автомата происходит в дискретные моменты времени t = 0, 1, 2,..., T. Изменение состояния автомата , то есть переход из текущего состояния в новое состояние, может быть осуществлено либо до выдачи выходного сигнала, либо – после выдачи этого сигнала. В связи с этим, выделяют два типа конечных автоматов – автоматы Мили и автоматы Мура, которые различаются законами функционирования автоматов. Законы функционирования автомата Мили: Законы функционирования автомата Мура: Функция выходов f автомата Мура явно не зависит от входного сигнала и полностью определяется только самим внутренним состоянием автомата, которое, в свою очередь, определяется входным сигналом. Пример. Пример конкретного автомата Мура приведен выше (автомат для газировки). Приведем абстрактный пример автомата Мили: Х = {х1, х2}, У = {у1, у2, у3}, S = {s0, s1, s2, s3, s4, s5}, функции перехода и выхода f зададим таблицами соответствий:
– функция перехода
s(t – 1) S1 s1 s2 s3 s3 s4 s5
x(t) Х1 х2 x1 x2 x1 x2 х2 x1
s(t) S2 s3 s4 s2 s4 s3 s5 s5
– функция выхода
s(t – 1) S1 s1 s2 s2 s3 s3 s4 s5
x(t) X1 x2 x1 x2 x1 х2 х2 х1
y(t) У2 у3 y1 y1 y3 у2 у3 y2

Компьютер можно рассматривать как совокупность взаимодействующих конечных автоматов. Рассмотрим такую структуру подробнее.

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

Пример. Запишем числа 1310, в формате целых чисел в восьмиразрядную ячейку памяти запишется в виде (старший бит будет содержать бит знака числа, например, 1 – если число отрицательно и 0 – если число положительно). Учитывая, что 1310 = 11012, получаем представление вида:

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

Пример. Если десятичное число равно 5,25, то есть в двоичной форме – 101,01, то оно записывается в нормализованной форме: 0,10101 с порядком, равным в двоичном виде 101.

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

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

Пример. Для компьютера с памятью 512 мегабайт основной памяти может быть характерна регистровая память в 64 мегабайта.

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

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

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

1. память состоит из однородных ячеек памяти с адресами;

2. программа состоит из последовательных команд;

3. хранение программы и обрабатываемых ею данных – одинаковое, в битовом виде;

4. команды выполняются последовательно, данные извлекаются в соответствии с командами;

5. процессор – один и имеет централизованное управление и доступ к памяти.

Структура ЭВМ фон Неймановской архитектуры приведена на рис. 10.2.

Арифметико-логическое устройство (АЛУ) выполняет арифметические, логические операции.

Пример. Команды АЛУ – просты: "сравнить два числа", "переслать число", "взять дизъюнкцию" и др.

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

Совокупность АЛУ и УУ, информационно-управляющих линий называется процессором компьютера

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

Пример. Устройствами ввода являются, например, клавиатура, мышь. Устройствами вывода — дисплей, принтер, плоттер.

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

Ядро персонального компьютера – системная (материнская плата), на которой размещаются: микропроцессор, микропроцессорная память, интерфейсная система микропроцессора для сопряжения и связи с другими устройствами, генератор тактовых импульсов, контроллеры устройств (схем), интегрированных в материнскую плату, микросхемы ОЗУ и ПЗУ и др.

Другими важными устройствами персонального компьютера являются:

1. дисковод гибких магнитных дисков; дисковод жестких магнитных дисков;

2. CD-ROM (устройство только для чтения компакт-дисков) или CD-RW (чтение и перезапись);

3. монитор (дисплей);

4. видеокарта (видеоадаптер) для обеспечения связи системного блока и монитора;

5. клавиатура;

6. принтер;

7. сканер;

8. плоттер (графопостроитель);

9. дигитайзер (кодирующий планшет);

10. манипулятор-мышь или манимулятор-трекбол;

11. звуковая карта (адаптер);

12. звуковые колонки;

13. модем и другие устройства.

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

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

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

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

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

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

Необходимо соблюдать простые санитарно-гигиенические и эргономические правила работы на компьютере, в компьютерном зале:

· работа с компьютером не более 4-х часов подряд с 10-минутными перерывами после каждого часа интенсивной работы или после 2-х часов менее интенсивной работы;

· расстояние от глаз до поверхности экрана – не менее 0,6 м;

· перемещаемость клавиатуры относительно экрана в пределах 0,5-1,0 м;

· преимущественно желтый, зеленый, серый или светло-голубой фон дисплея;

· температура воздуха в помещении – 15-25 градусов по Цельсию;

· относительная влажность помещения – 45-75%;

· наличие свободной площади рабочего стола не менее 0,3x1,0 м;

· размер экрана по диагонали – не меньше 17 дюймов;

· разрешение экрана – не менее 800x600;

· частота обновления кадра – не менее 70 Гц;

· размер зерна экрана (расстояние между точками на экране) – не более 0,26;

· частота кадров (мерцание экрана) – не менее 75 Гц;

· стандарты безопасности, например MPR-II.

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

11. Лекция: Программное и техническое обеспечение: версия для печати и PDA Рассматриваются основные понятия о вычислительной системе – совокупности программного и технического обеспечения, их структура.
  Любой компьютер состоит из технического обеспечения (hardware) и функционирует, решает задачи с помощью программного обеспечения (software). Структура программного обеспечения достаточно сложна и неоднозначна (в том смысле, что все программы не могут быть отнесены к тому или иному классу этой структуры однозначно, односложно). Эта структура несколько условная и производит классификацию программного обеспечения нестрого и только по назначению программ, хотя есть и другие критерии эффективности программного обеспечения (дружественность пользователю, тип использования и т.д.). Приведем эту структуру. 1. Базовое программное обеспечение (ПО). 1. Системное ПО программы обеспечения взаимодействия пользователя и компьютера). 1. Операционные системы (ОС) - программы ОС (отладчики, загрузчики и т.д.). 2. Программы обеспечения связи с устройствами (драйверы), тестирования их. 2. Инструментальное ПО (программы для массовой разработки других программ). 1. Трансляторы с языков программирования. 2. Интерфейсные системы – программы обеспечения дружественного интерфейса. 3. Проблемно-ориентированные инструментальные системы (САПР, АСУ, АРМ и др.). 2. Прикладное ПО - программы обеспечения решения прикладных задач пользователя). 1. Автономные программы (программы, не связываемые с другими из прикладного ПО). 2. Библиотеки программ (программы, организованные по принципу библиотек книг). 3. Пакеты прикладных программ, ППП (проблемно-ориентированные прикладные системы). 4. Интегрированные пакеты прикладных программ - системы, состоящие из связываемых ППП). 3. Специальное (уникальное) ПО - программы, используемые для решения уникальных проблем). Структура технического обеспечения приведена ниже и также является условной и классифицирует техническое обеспечение только по назначению. Приведем эту структуру (некоторые блоки могут интегрироваться в другие, например, видеопамять – в блок микропроцессора). 1. Базовое техническое обеспечение (ТО). 1. Микропроцессор. 2. Постоянная ("вшитая") память – ПЗУ. 3. Оперативная ("адресуемая пользователем") память – ОЗУ. 4. Регистровая память (аппаратная кэш-память). 5. Видеопамять (часто интегрируется в блоке микропроцессора). 6. Блок питания (энергетический блок). 2. Периферийное ТО (программы обеспечения решения прикладных задач пользователя). 1. Устройства ввода (клавиатура, мышь, трекбол, сканер, дигитайзер, джойстик и др.). 2. Устройства вывода (дисплей, принтер, плоттер и др.). 3. Устройства (накопители) внешней памяти (дискета, СD, оптический накопитель и др.). 4. Устройства согласования других устройств и сетевые [u3](модем и др.). 3. Специализированное ТО (устройства, используемые для решения уникальных проблем). Охарактеризуем программное обеспечение (ПО) компьютера (компьютерной системы, сети). Наиболее сложный и важный элемент ПО – это ОС. ОС – совокупность программ, которые обеспечивают нормальную работу всех основных устройств компьютера, всех программ и данных, используемых на компьютере при решении задач. ОС состоит из двух основных частей – управляющие программы и обрабатывающие программы и включает в себя следующие основные программы: 1. диспетчер – управляющая программа для координации работы различных устройств ЭВМ, планирования использования и распределения машинного времени, аппаратуры между программами, пересылка программ из ВЗУ в ОЗУ и наоборот, распределение данных в памяти, ввод программ в выделенные участки ОЗУ, управление выполнением задачи, принятие решений в аварийных ситуациях, обнаружение и классификация ошибок и др.; 2. супервизор – управляющая программа для контроля координации используемых ресурсов и последовательности действий процессора; 3. отладчик – обрабатывающая программа для отладки программы; 4. редактор связей – программа для формирования непосредственно выполняемой в памяти программы на машинном языке. Основными функциями ОС являются: 1. выполнение очередного по приоритету задания и отслеживание очередности; 2. управление распределением данных в памяти и извлечением их из памяти; 3. управление устройствами, их актуализация по мере необходимости (по требованиям программ); 4. восстановление работоспособности при сбоях; 5. управление работой арифметико-логического командного устройства процессора. Данные, привлекаемые при решении задач, ОС с помощью специальных программ отображает на реальные физические структуры, носители данных. [u4]Для этих целей используется так называемая файловая система обмена данными между программами пользователя и ОС. Файл – именованный структурированный набор однотипных последовательностей данных, обычно хранимый на внешнем носителе и копируемый для работы с ним по мере надобности в ОЗУ. Файловая система должна обеспечивать выполнение основных операций над файлами: создание, модификация (в том числе расширение и сжатие), уничтожение, чтение (запись), перемещение файла. Файловая система ведет справочник файлов, где регистрируются файлы активные, используемые в данном задании в данный момент. ОС бывают различного типа: · однозадачные, используемые для решения в каждый момент времени только одной задачи; · многозадачные мультипрограммной обработки, загружающие в ОЗУ последовательность (пакет) независимых задач, а затем решающие эти задачи по очереди, выделяя каждой из них ресурсы компьютера (память, процессор, внешнее устройство) на некоторый промежуток времени, например, на 0,1 с (за такой небольшой промежуток времени компьютер с быстродействием 1 млн операций в секунду и очередностью в 10 программ, в каждой программе произведет около 100000 операций); · реального времени, которые обрабатывают порции данных по мере их поступления от источника информации, например от летящей ракеты и др. Пример. ОС Linux – многопользовательская сетевая ОС с оконным графическим интерфейсом для персональных компьютеров и рабочих станций. Это открытая система (Open Code System) – исходные тексты распространяются с лицензией на свободное копирование, модификацию и установку для неограниченного числа пользователей. Разработана система Линусом Торвалдсом (Linus Torvalds) из университета Хельсинки и модифицируется всеми пользователями и др. Основные возможности ОС Linux: · возможность бесплатного и легального получения и использования исходных кодов ОС; · высокое быстродействие, надежность, устойчивость, защищенность от вирусов; · эффективная поддержка многопользовательского режима, многозадачности, интерактивности; · интегрируемость компьютера с ОС Linux в различные сети и Интернет; · возможность выполнения загрузочных файлов ОС Unix, DOS и Windows; · богатый набор инструментальных средств для разработки прикладных программ; · богатая, полная и открытая документация и исходные тексты всех компонент; · использование компьютера на полную мощность, "превращение" его в аналог сервера; · защита памяти процесса, экономная загрузка и динамически изменяемая память; · поддержка национальных алфавитов и соглашений, расширяемость и др. Программное базовое обеспечение системы Linux: · системы программирования (C++, Pascal, Perl, ADA, Modula, Prolog, Java, Python и другие); · динамические библиотеки программ; · сетевое обеспечение на базе протоколов TCP/IP; · поддержка электронной мультимедийной почты; · поддержка основных типов СУБД; · графическая сетевая оконная система; · издательская система TEX, текстовый процессор LyX, основанный на TEX; · многие другие сотни программ и пакетов. Пример. Программы обеспечения связей процессора с устройствами бывают различного типа и назначения – драйверы дисплея, клавиатуры, мыши, принтера и т.д. Еще больше различных программ для тестирования (диагностики неисправностей) устройств компьютера – программы тестирования памяти, принтера, дисплея и т.д. Инструментальная система – это программная система (лучше говорить о программной среде, куда включаем и пользователя, так как именно пользователь, его знания, умения, навыки делают эту систему менее или более эффективной) для ускоренной и малоресурсной разработки каких-то других программ (или обработки данных), как системных или прикладных, так и новых инструментальных. Пример. Рассмотрим инструментальную среду – графический редактор, который позволяет визуализировать графические объекты двумя основными способами: векторно или растрово. Векторный подход динамически постепенно формирует на экране (который рассматривается как некоторое координатное пространство) объект по его представлению, составленному из графических примитивов. Растровый подход формирует на экране весь объект целиком на основе его макета (шаблона, графических примитивов в видеопамяти), состоящего из отдельных кластеров пикселей в некоторой пиксельной двухмерной матрице (аналоге листа для рисования с декартовой системой координат). В этой матрице записывается информация о яркости и цвете кластера изображения (на один пиксель иногда 1-2 байта и более), а сама матрица может иметь размерность 1024x1024 пикселей и более. Сформированное в пиксельной матрице изображение хранится в видеопамяти дисплея и выводится на экран в режиме кадровой регенерации. Изображение в цвете (рисование в цвете) – это манипуляция пикселями этой матрицы. Графические 3D-редакторы изображений позволяют не только конструировать 3D-объекты, но и перемещать их по задаваемой траектории, то есть осуществлять анимацию. Одной из мощных графических сред является пакет 3D-Studio Max фирмы Autodesk. Кроме этого пакета, широко используются графические пакеты: · GRAFLotus Freelance – для работы с деловой и компьютерной графикой; · Splash и Fanta – для работы в области дизайна и компьютерных фильмов; · AutoCAD – для автоматизации проектно-конструкторских работ; · CorelDraw, PaintBrush, AdobeIllustrator – для разнообразных приложений. Трансляторы подробно рассматриваются нами ниже. Рассмотрим интерфейсные системы обеспечения дружественного интерфейса между пользователями и программами). Пример. Наиболее ранняя интерфейсная система – Norton Commander (Нортон Коммандер, автор – Питер Нортон). Системы, подобные Norton Commander (NC), называются операционными оболочками и их можно отнести к инструментальным средам (инструментарий более удобного, комфортного интерфейса с ОС, с файловой системой, минуя утомительный командный язык ОС). Такая система позволяет визуально и удобно выполнять копирование, создание, удаление, переименование, перемещение, просмотр и поиск файлов и т.д. NC использует управляющие и функциональные клавиши, которым соответствуют определенные операции и отклики системы: · Esc – отмена выполняемой функции; · Enter – выполнение функции; · Тab – смена текущей (активной) панели на другую (ранее пассивную); · PgUp (PgDn) – переход на страницу вперед (назад); · Home (End) – установка на начало (конец) каталога; · клавиши перемещения курсора влево, вверх, вправо, вниз; · Ctrl-S (одновременное нажатие клавиш Ctrl и S) — на символ влево; · Ctr-D (Ctr-A,Сtrl-F) – на символ вправо (на слово влево, на слово вправо); · F1 – клавиша помощи, подсказки по активному состоянию (клавиша help); · F2 – запись на диск активного файла; · F3 – просмотр содержимого активного файла; · F4 – редактирование активного файла; · F5 – копирование активного файла в активный каталог на другой панели; · F6 – переименование (перенос) активного файла; · F7 – создание нового каталога (подкаталога); · F8 – удаление активного файла; · F9 – активизация команд панели (системного меню) NC; · F10 – выход из NC. Более развитым отечественным аналогом NC для Windows-систем является, например, оболочка FAR-менеджер Проблемно-ориентированные инструментальные системы служат для решения достаточно широкого класса задач некоторой профессиональной, проблемной ориентации: САПР – системы автоматизации проектирования, АСУ – автоматизированные системы управления, АРМ – автоматизированные рабочие места, СУБД – система, обеспечивающая интерфейс программ пользователя и данных из базы данных, ЭС – экспертные системы, системы накопления, хранения и актуализации опыта, знаний, умений, навыков (экспертных суждений) экспертов и др. Автономные программы – это те программы, которые в громадном количестве ежедневно разрабатываются и используются для различных прикладных целей (обучения, вычисления, моделирования и т.д.). Библиотеки программ – совокупность программ для решения задач определенной направленности (например, решения систем алгебраических уравнений), с описанием, каталогом, инструкциями и размещенные на внешних носителях таким образом, чтобы иметь возможность легко подключаться к решаемой задаче (к выполняемой программе) по ходу ее решения. Пакет прикладных программ (ППП) состоит из следующих обязательных частей: 1. описание, представление класса задач, решаемых с помощью ППП; 2. комплекс программ, обеспечивающих построение прикладных программ ППП (технологической цепочки); 3. комплекс прикладных программ, обеспечивающих решение задач из предметной области ППП; 4. входной язык (язык запросов) ППП; 5. база данных для хранения данных, передача их модулям ППП; 6. монитор (управляющая программа) ППП, обеспечивающая ввод задания (запроса), его расшифровку и построение технологической цепочки из модулей ППП для поиска ответа. Пример. Простым и универсальным студенческим пакетом статистического анализа данных является пакет SPSS. Интерфейс пользователя с SPSS для Windows реализуется с помощью простых меню и диалоговых окон, то есть SPSS свободна от использования специально изучаемого командного языка пакета. Имеется редактор Data Editor для визуального контроля вводимых данных, функционально аналогичный редакторам табличных процессоров, например, Excel. По столбцам отображаются варьируемые переменные, а по строкам – наборы их вариации, причем с каждой из переменных можно ознакомиться путем вызова ее имени. Ввод данных – аналогичен вводу данных табличного типа (например, в Excel). В диалоговых окнах можно определять (вводить или вычислять) сложные выражения, используемые далее в расчетах. Есть возможность применения различных законов случайного распределения. Более мощным (но и более сложным в изучении и использовании) является математический пакет MathCAD. Функциональная система интегрированного пакета программ состоит не из модулей (как в ППП), а из ППП. Пример. Наиболее распространенный интегрированный пакет прикладных программ – MS Office (пакет автоматизации работы в офисе). В его ядро входят следующие пакеты: Word – текстовый редактор, Excel – электронная таблица, Access – СУБД, PowerPoint – система презентации и др. Специальное (или уникальное) ПО разрабатывается для решения очень важных, уникальных проблем. Пример. К такому классу ПО можно отнести программную систему управления кораблем "Буран".

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: