Базовые алгоритмические структуры

Понятие процесса

Процесс (задача) - программа, находящаяся в режиме выполнения.

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

Адресное пространство содержит:

- саму программу

- данные к программе

- стек программы

С каждым процессом связывается набор регистров, например:

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

- указатель стека

- и д.р.

 

Понятие потока

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

 

№ 20 Базы данных. Модели данных.

База данных — представленная в объективной форме совокупность самостоятельных материалов (статей, расчётов, нормативных актов, судебных решений и иных подобных материалов), систематизированных таким образом, чтобы эти материалы могли быть найдены и обработаны с помощью электронной вычислительной машины (ЭВМ) (Гражданский кодекс РФ, ст. 1260).

Существует огромное количество разновидностей баз данных, отличающихся по различным критериям. Например, в «Энциклопедии технологий баз данных»,[1] по материалам которой написан данный раздел, определяются свыше 50 видов БД.

 

В классической теории баз данных, модель данных есть формальная теория представления и обработки данных в системе управления базами данных (СУБД), которая включает, по меньшей мере, три аспекта:

1) аспект структуры: методы описания типов и логических структур данных в базе данных;

2) аспект манипуляции: методы манипулирования данными;

3) аспект целостности: методы описания и поддержки целостности базы данных.

 

№21 Назначение и классификация компьютерных сетей. Сетевые стандарты.

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

Классификация

- По территориальной распространенности

PAN (Personal Area Network) — персональная сеть, предназначенная для взаимодействия различных устройств, принадлежащих одному владельцу.

LAN (Local Area Network) — локальные сети, имеющие замкнутую инфраструктуру до выхода на поставщиков услуг. Термин «LAN» может описывать и маленькую офисную сеть, и сеть уровня большого завода, занимающего несколько сотен гектаров. Зарубежные источники дают даже близкую оценку — около шести миль (10 км) в радиусе. Локальные сети являются сетями закрытого типа, доступ к ним разрешен только ограниченному кругу пользователей, для которых работа в такой сети непосредственно связана с их профессиональной деятельностью.

CAN (Campus Area Network — кампусная сеть) — объединяет локальные сети близко расположенных зданий.

MAN (Metropolitan Area Network) — городские сети между учреждениями в пределах одного или нескольких городов, связывающие много локальных вычислительных сетей.

WAN (Wide Area Network) — глобальная сеть, покрывающая большие географические регионы, включающие в себя как локальные сети, так и прочие телекоммуникационные сети и устройства. Пример WAN — сети с коммутацией пакетов (Frame relay), через которую могут «разговаривать» между собой различные компьютерные сети. Глобальные сети являются открытыми и ориентированы на обслуживание любых пользователей.

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

- По типу функционального взаимодействия

Клиент-сервер

Смешанная сеть

Одноранговая сеть

Многоранговые сети

- По типу сетевой топологии

Шина

Кольцо

Двойное кольцо

Звезда

Ячеистая

Решётка

Дерево

Fat Tree

- По типу среды передачи

Проводные (телефонный провод, коаксиальный кабель, витая пара, волоконно-оптический кабель)

Беспроводные (передачей информации по радиоволнам в определенном частотном диапазоне)

- По функциональному назначению

Сети хранения данных

Серверные фермы

Сети управления процессом

Сети SOHO, домовые сети

- По скорости передач

низкоскоростные (до 10 Мбит/с),

среднескоростные (до 100 Мбит/с),

высокоскоростные (свыше 100 Мбит/с);

- По сетевым операционным системам

На основе Windows

На основе UNIX

На основе NetWare

- По необходимости поддержания постоянного соединения

Пакетная сеть, например Фидонет и UUCP

Онлайновая сеть, например Интернет и GSM

 

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

Функционирование локальной сети обусловлено разнообразными стандартами, в частности моделью взаимодействия открытых систем. Кроме того, на основе модели ISO/OSI создано множество стандартов, которые ориентированы на передачу данных в локальной сети с достаточными по современным меркам скоростью и безопасностью. - IEEE 802.1.

 

№22 Понятие алгоритма. Основные алгоритмические конструкции.

 

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

Алгоритм обладает следующими свойствами (они следуют из определения):

1) определенность (детерминированность)– каждая команда (или предписание) понятна исполнителю (человеку или компьютеру) и исключает неоднозначность исполнения;

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

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

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

Различают следующие простейшие виды алгоритмов:

1) линейный, когда предписания алгоритма выполняются в той последовательности, в которой они представлены в алгоритме;

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

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

Основные алгоритмические конструкции

 

 

№22 Понятие алгоритма. Основные алгоритмические конструкции.

 

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

Блок – схемы. Условные обозначения

Начало - конец

Процесс

Ввод-вывод

Типовой процесс

Решение (условие)

Базовые алгоритмические структуры

Следование Ветвление Повторение (цикл)

 

№ 23 Языки программирования. Компиляторы и интерпретаторы.

 

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

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