- •Структурно-функціональна організація апаратного та програмного забезпечення обчислювачів.
- •1.4 Структура аом
- •1.5 Структура гом
- •Системи машинних команд процесорів, формати даних і способи кодування команд і даних.
- •Способи організації доступу до даних та методи адресування команд і даних.
- •1.4 Організація підсистеми пам’яті комп’ютера.
- •1.5 Способи організації взаємодії апаратного забезпечення із системним програмним забезпеченням.
- •1.6 Взаємодія комп’ютера із зовнішніми пристроями.
- •Елементна база комп’ютерів.
- •2.2 Архітектура мп 80486, Pentium, мп adsp.
- •Базовая архитектура процессоров adsp-21xx
- •2.3 Архітектура процесора 80с51.
- •2.4 Risc-процесори ті їх архітектура.
- •2.5 Адресний простір. Способи адресації операндів.
- •2.6 Оперативна пам’ять: архітектура та принципи управління.
- •2.7 Система переривань та їх характеристики.
- •2.8 Динамічний розподіл пам’яті. Організація віртуальної пам’яті.
- •3.1 Склад системного програмного забезпечення.
- •3.2 Класифікація операційних систем.
- •Особенности алгоритмов управления ресурсами
- •Особенности аппаратных платформ
- •Особенности областей использования
- •Особенности методов построения
- •3.3 Різновиди мультизадачності в операційних системах.
- •3.4 Процеси та потоки в операційних системах.
- •Реальний та захищений режими адресації.
- •Особенности процессора 80286
- •Особенности процессоров 80386 — 80486
- •Страничная организация памяти
- •Описание
- •Использование
- •Структура адресного пространства ibm pc в реальном режиме Основная область памяти
- •Дополнительная область памяти
- •3.6 Оперативна пам’ять в мультизадачному режимі.
- •Алгоритми заміщення сегментів та сторінок у віртуальній пам’яті.
- •Структура жорсткого диску.
- •Vfat и длинные имена файлов
- •Файлова система hpfs.
- •Файлова система ntfs.
- •Керування процесами у операційних системах, їх стани та переходи. Управление процессами
- •Состояние процессов
- •Контекст и дескриптор процесса
- •Алгоритмы планирования процессов
- •Вытесняющие и невытесняющие алгоритмы планирования
- •3.11 Основні режими введення-виведення.
- •3.12 Оптимізація роботи з жорстким диском.
- •4.1 Структура системних областей пам’яті (ms-dos).
- •4.2 Програмування дискової підсистеми комп’ютера (mbr, Partition Table, fat12/16/32).
- •4.3 Програмування відеосистеми комп’ютера (cga, ega, vga).
- •4.4 Особливості програмування текстового та графічного режимів відеоадаптера.
- •4.5 Робота з маніпулятором миші (ms-dos, ms-Windows).
- •4.6 Обробка переривань.
- •4.1. Таблица векторов прерываний
- •4.2. Маскирование прерываний
- •4.4. Особенности обработки аппаратных прерываний
- •4.8 Ініціалізація dll-бібліотек, динамічний експорт та імпорт функцій у середовищі Microsoft Windows. Бібліотеки динамічної компоновки. Ініціалізація dll.
- •2.23.1. Статическая и динамическая компоновка
- •Експорт та імпорт функцій при використанні dll-бібліотек.
- •5.1 Системні та локальні шини, основні характеристики.
- •5.2 Шини з комутацією ланцюгів та комутацією пакетів. Розщеплення транзакцій.
- •5.3 Шини Firewire (ieee 1394), pci, pci-e, основні характеристики.
- •Особенности ieee - 1394
- •Шини pci основні характеристики.
- •ШиниPci-е, основні характеристики.
- •5.4 Стандарт ieee 1284 – 1994, фізичний та електричний інтерфейси.
- •5.6 Характеристики сучасних жорстких дисків.
- •5.7 Інтерфейси жорстких дисків в ibm pc, їх особливості.
- •5.8 Характеристики сучасних принтерів, сканерів.
- •5.9 Структура та принцип роботи сучасних модемів.
- •5.10 Основні характеристики джерел безперервного живлення.
- •6.1 Архітектура і стандартизація комп’ютерних мереж.
- •6.2 Лінії зв’язку: класифікація, характеристики, типи кабелів.
- •6.3 Методи кодування даних у комп’ютерних мережах.
- •6.4 Технології канального рівня tcp/ip та їх специфікації. Стек протоколов tcp/ip История и перспективы стека tcp/ip
- •Структура стека tcp/ip. Краткая характеристика протоколов
- •6.5 Мережеве обладнання: класифікація, функції.
- •Параметры сетевого адаптера
- •Функции и характеристики сетевых адаптеров
- •Классификация сетевых адаптеров
- •6.6 Протоколи локальних мереж: tcp, udp, iPv4, iPv6 та ін.
- •36. Протоколи транспортного рівня tcp и udp (загальна характеристика, порти)
- •37. Протокол транспортного рівня udp
- •Адресация iPv4
- •Синтаксис адреса iPv4
- •Типы адресов iPv4
- •Индивидуальные адреса iPv4
- •Групповые адреса iPv4
- •Широковещательные адреса iPv4
- •История создания
- •Исчерпание iPv4 адресов в 2011 году
- •Тестирование протокола
- •Внедрение протокола
- •Сравнение с iPv4
- •Автоконфигурация
- •Метки потоков
- •Механизмы безопасности
- •Основы адресации iPv6
- •Типы Unicast адресов
- •Формат пакета
- •Нотация
- •Зарезервированные адреса iPv6
- •6.7 Адресація в комп’ютерних мережах.
- •Ip адресация, классы ip адресов и значение маски подсети
- •Для чего нужны ip адреса?
- •Структура ip адреса
- •Разделение ip адреса на сетевую и узловую части
- •Классы ip адресов и маски подсети по умолчанию
- •Классовая и бесклассовая адресация
- •Назначение маски подсети
- •Публичные и частные ip-адреса
- •Адреса одноадресных, широковещательных и многоадресных рассылок
- •Одноадресная рассылка
- •Широковещательная рассылка
- •Многоадресная рассылка
- •Сравнение протоколов ip версии 4 (iPv4) и ip версии 6 (iPv6)
- •6.8 Об’єктивні характеристики комп’ютерних мереж.
- •6.9 Схема ip-маршрутизації.
- •6.10 Фрагментація ip-пакетів. Фрагментация ip-пакетов
- •6.11 Служби dns та dhcp.
- •Ключевые характеристики dns
- •Дополнительные возможности
- •Терминология и принципы работы
- •Рекурсия
- •Обратный dns-запрос
- •Записи dns
- •6.12 Протоколи маршрутизації. Протоколы маршрутизации
- •Віртуальні приватні мережі.
- •Уровни реализации
- •Структура vpn
- •Классификация vpn
- •По степени защищенности используемой среды
- •По способу реализации
- •По назначению
- •По типу протокола
- •По уровню сетевого протокола
- •6.14 Засоби забезпечення надійності функціонування та захисту комп’ютерних мереж.
- •7.1 Основи мови програмування Java.
- •7.2 Проміжне програмне забезпечення розподілених комп’ютерних систем. Архітектура rpc (Remote Procedure Calls).
- •7.3 Технологія rmi (Remote Method Invocation).
- •24. Java rmi Достоинства и недостатки Java rmi
- •7.4 Технологія corba .
- •7.5 Сервлет-технологія Java.
- •7.6 Сторінки jsp. Теги та вбудовані об’єкти jsp.
- •26. Теги и встроенные объекты jsp:
- •7.7 Технологія jms. Моделі jms-повідомлень.
- •Введение
- •Архитектура jms
- •Первое знакомство
- •Модель сообщений jms
- •Поля заголовка
- •Свойства (properties) сообщений
- •Уведомления сообщений
- •Интерфейс Message
- •Выборка сообщений
- •Доступ к отправленным сообщениям
- •Изменение полученного сообщения
- •Тело сообщения
- •7.8 Основи мови xml.
- •7.9 Протокол soap. Структура soap – документа.
- •1.4. Операторы
- •1.4.1. Оператор выражение
- •1.4.2. Пустой оператор
- •1.4.3. Составной оператор
- •1.4.4. Оператор if
- •1.4.5. Оператор switch
- •1.4.6. Оператор break
- •1.4.7. Оператор for
- •1.4.8. Оператор while
- •1.4.9. Оператор do while
- •1.4.10. Оператор continue
- •1.4.11. Оператор return
- •1.4.12. Оператор goto
- •8.2 Одновимірні та багатовимірні масиви. Покажчики. Масиви динамічної пам’яті.
- •8.3 Структури, об’єднання, бітові поля структур та об’єднань.
- •Объявление битовых полей
- •Доступ к элементам структур с битовыми полями
- •Размещение битовых полей в памяти
- •Призначення функції. Опис, визначення, виклик функції. Передача даних за значенням та за покажчиком.
- •Функції з параметрами, що замовчуються, зі зміними параметрами
- •8.5 Перевантаження функцій. Шаблони функцій. Покажчики на функції. Перевантажені функції, шаблони функцій.
- •8.6 Функції роботи з файлами. Введення/виведення даних різного типу у файл/з файлу.
- •Int fprintf(file *fp, char *format [,аргумент]…);
- •Int fscanf(file *fp, char *format [,указатель]…);
- •Визначення класу. Конструктор, перевантажені конструктори, деструктор.
- •8.8 Статичні члени класу. Дружні функції класу. Перевантаження операцій.
- •18 Ооп. Поняття дружніх функціїй. Різниця між дружньою функцією - членом класу та не членом класу.
- •19 Ооп. Поняття перевантаження операцій. Правила її використання.
- •8.9 Успадкування класів. Множинне успадкування.
- •9.1 Векторні, паралельні, конвеєрні системи.
- •9.2 Основні характеристики паралельних алгоритмів: ступінь паралелізму, прискорення, ефективність. Закон Амдала.
- •Математическое выражение
- •Иллюстрация
- •Идейное значение
- •9.3 Метод логарифмічного здвоєння та рекурсивного подвоєння.
- •9.4 Методи паралельного множення матриць. §34. Алгоритм умножения матриц
- •9.5 Стандарт mpi, основні функції для організації паралельних програм: ініціалізації та завершення паралельної програми, визначення рангу процесу, визначення загального числа процесів.
- •9.6 Функції двохточкового обміну.
- •9.7 Функції колективного обміну: розподілення, широкомовної розсилки, збору, зведення, сканування.
- •10.1 Архітектура субд. Функції субд.
- •2.1. Основные функции субд
- •2.1.1. Непосредственное управление данными во внешней памяти
- •2.1.2. Управление буферами оперативной памяти
- •2.1.3. Управление транзакциями
- •2.1.4. Журнализация
- •2.1.5. Поддержка языков бд
- •10.2 Реляційна модель та її характеристики.
- •10.3 Потенційні, первинні та зовнішні ключі.
- •10.4 Цілісність реляційних даних. Целостность реляционных данных
- •10.5 Операції реляційної алгебри.
- •10.6 Основні поняття sql: прості запити, склеювання таблиць; умови відбору рядків таблиць; агрегатні функції, запити з групуванням, складні запити. Sql. Простые запросы
- •Агрегатные функции, группировка данных
- •Запрос с группировкой
- •Пояснения
- •Сложные запросы
- •Объединение таблиц
- •Имена таблиц и столбцов
- •Создание обьединения
- •Объединение таблиц через справочную целостность
- •Объединения таблиц по равенству значений в столбцах и другие виды объединений
- •Объединение более двух таблиц
- •Объединение таблицы с собой псевдонимы
- •10.7 Інфологічна, логічна або концептуальна модель даних. Основные этапы проектирования баз данных Концептуальное (инфологическое) проектирование
- •Логическое (даталогическое) проектирование
- •Физическое проектирование
- •10.8 Функціональні залежності. 1, 2 та 3 нормальні форми відношень.
- •8 Нормалізація відношень. 1 та 2 нормальні форми.
- •9 Нормалізація відношень. 3 нормальна форма та нормальна форма Бойса-Кодда. Навести приклади
- •Нормальные формы er-диаграмм
- •Первая нормальная форма er-диаграммы
- •Вторая нормальная форма er-диаграммы
- •Третья нормальная форма er-диаграммы
- •Семантическая модель Entity-Relationship (Сущность-Связь)
- •Основные понятия er-модели
- •Уникальные идентификаторы типов сущности
- •Нормальные формы er-диаграмм
- •Первая нормальная форма er-диаграммы
- •Вторая нормальная форма er-диаграммы
- •Третья нормальная форма er-диаграммы
- •10.9 Багатозначні залежності та залежності з’єднання. 4 та 5 нормальні форми відношень.
- •9.3. Зависимости проекции/соединения и пятая нормальная форма
- •9.3.2. Зависимость проекции/соединения
- •9.3.3. Аномалии, вызываемые наличием зависимости проекции/соединения
- •9.3.4. Устранение аномалий обновления в 3-декомпозиции
- •2.5.5. Пятая нормальная форма
- •4.5. Нормальные формы
- •10.10 Проектування бд методом сутність-зв’язок. Er-діаграми. Моделирование методом "сущность-связь" Основные понятия модели "сущность-связь"
- •Графическая нотация модели: диаграммы "сущность-связь"
- •Нормализация модели "сущность-связь"
- •11.1 Властивості інформації. Класифікація загроз інформації.
- •11.2 Рівні захисту інформації в комп’ютерних мережах.
- •11.3 Законодавчий рівень захисту інформації.
- •11.4 Криптографічний захист інформації.
- •11.5 Стандарти симетричного шифрування даних.
- •11.6 Системи ідентифікації та аутентифікації користувачів.
- •11.7 Парольна система. Вимоги до паролів.
- •11.8 Методи та засоби захисту від віддалених мережевих атак.
8.3 Структури, об’єднання, бітові поля структур та об’єднань.
8 С++. Структури даних: опис, визначення, ініціалізация, доступ до елементів структури, розташування елементів структури у пам’яті. Вкладені структури.
Структуры ‑ это совокупность поименованных объектов в общем случае разных типов. Каждая структура включает в себя один или несколько объектов (переменных, массивов, указателей, структур), называемых элементами структуры..
Структурный тип определяет, сколько элементов и какого типа, входят в структуру. Объявление структуры начинается со служебного слова struct, за которым помещаются описания входящих в структуру элементов, заключенные в фигурные скобки. Элементы структуры могут быть базового и производного типа, в том числе структурами и массивами. Объявление структуры иногда называют созданием структурного типа или шаблона структуры. Шаблон структуры имеет права типа.
Синтаксис объявления шаблона структуры следующий:
struct имя_структурного_типа{type_1 элемент_1;
type_2 элемент_2;
. . . . . . ;
type_n элемент_n;
};
После объявления структурного типа с его помощью можно определить конкретные структуры следующим образом: имя_структурного_типа имя_структуры; Например:
struct STR {char ch;
float f;
int a[3];};
STR rec1, rec2, rec3[2];
Здесь объявлен структурный тип STR с элементами char ch, float f,int a[3] и определены две структуры: rec1 и rec2, а также массив из 2-х структур rec3.
Каждая из определенных структур rec1, rec2, rec3[2] содержит в качестве элементов свои собственные данные, состав которых определяется структурным типом с именем STR, то есть все структуры имеют в данном случае одинаковое внутреннее строение и у каждой их них имеются поля char ch, float f,int a[3].
Для обращения (доступа) к элементам структуры используются уточненные имена. Используется следующая конструкция языка: имя_структуры.имя_элемента_структуры. Например:
rec1.ch=’z’; rec1.f=3.2;
rec1.a[0]=1; rec2.ch=’w’;
rec2.f=4.5; rec2.a[1]=10;
rec3[0].ch=’d’; rec3[1].a[2]=100;
Выделение памяти под структурную переменную осуществляется по шаблону. Например, для структур rec1, rec2 распределение памяти следующее:
1 б. |
2 б. |
3 б. |
4 б. |
5 б. |
6 б. |
7 б. |
8 б. |
9 б. |
10 б. |
11 б. |
||
ch |
f |
a[0] |
a[1] |
a[2] |
Например, для структур rec3 распределение памяти следующее:
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
|||||||||
ch |
f |
a[0] |
a[1] |
a[2] |
ch |
f |
a[0] |
a[1] |
a[2] |
|
||||||||||||||||||||
rec3[0] |
rec3[1] |
|
Размер структуры можно определить с помощью оператора sizeof().
int n1= sizeof(rec1); // 11 байт
int n2= sizeof(STR); // 11 байт
При определении структуры возможна её инициализация, она по синтаксису аналогична инициализации массивов:
struct STR{ char ch;
float f;
int a[3];};
STR r1={‘a’,1.1,1,2,3};
Если определен массив структур, то инициализация осуществляется следующим образом:
STR r3[2]={{‘w’,6.6,10,20,30},{‘v’,7.7,40,50,60}};
Можно создавать указатели структурного типа. Если создан указатель структурного типа, то память выделяется только под указатель (4 байта). Поэтому необходимо указатель на структуру проинициализировать адресом (или присвоить адрес) уже объявленной структуры этого же типа.
STR *pst1=&rec2,*pst2;
pst2=&rec2;
После такого определения доступ к элементам структуры выполняется через разыменование указателя:
(*pts1).f=8.8; (*pts2).a[0]=100;
Еще одна возможность доступа к элементам структуры с помощью операции ’->’.
pts2->f=9.9; pts1->a[0]=1000;
В языке С (С++) определена операция по созданию и уничтожению объектов с динамической продолжительностью существования. Для этого используются соответственно либо функции malloc() и free(), либо операции new и delete.
#include <alloc.h>
struct STD{char name[20];float rating;};
STD *st;
st=(STD*)malloc(sizeof(STD));//Запрос памяти
gets(st->name);
st->rating=4.5;
free(st);//освобождение памяти
Аналогично можно воспользоваться операциями new и delete:
Можно создать массив структур с динамической продолжительностью существования:
MYSTR *b; int N;
puts(“Ведите размер массива”);
scanf(“%d”,&N);
b=new MYSTR[N];//Запрос памяти
for (int i=0; i<N; i++)
scanf("%s%d",b[i].name, &b[i].age);
for (int i=0; i<N; i++)
printf("%s\n%d\n",b[i].name,b[i].age);
delete [] b;//освобождение памяти
9 С++. Об'єднання даних: визначення, ініціалізация, доступ до елементів об'єднання, відображення елементів об'єднання у пам’яті
Объединение – это совокупность объектов различных типов, все члены которой начинаются с одного адреса. Этот тип объектов вводится с помощью служебного слова union.
В отличие от структуры, в которой все элементы расположены последовательно, объединение совмещает в себе несколько различных типов. При этом компилятор выделяет под объединение память, равную размеру максимального элемента объединения.
Синтаксис определения объединения подобен синтаксису определения структуры. Сначала определяем тип объединения, а затем – объединение:
union имя_типа_объединения {type_1 поле_1;
type_2 поле_2;
. . . . . . ;
type_n поле_n;};
имя_типа_объединения имя_объединения;
Рассмотрим этот тип на примерах:
union UN1{int a;char ch;long b;};
UN1 un1;
union UN2{double d;float f[3];};
UN2 un2;
Компилятор выделит под объединение un1 память, равную длине элемента типа long.
1 байт |
1 байт |
1 байт |
1 байт |
|
ch |
|
|
|
|
a |
|
|
||
b |
Компилятор выделит под объединение un2 память, равную длине массива f типа float.
4 байта |
4 байта |
4 байта |
f[0] |
f[1] |
f[2] |
d |
|
Для обращения к элементам объединения используются уточненные имена. Например:
un1.a=10; un1.ch=’k’; un1.b=100L;
un2.f[0]=1.2; un2.f[1]=3.2; un2.f[2]=4.5; un2.d=7.4;
Необходимо помнить, что в каждый момент памяти в объединении храниться только одно значение. Поэтому после таких присвоений для объединения un1 в памяти будет находиться только un1.b=100, а переменные un1.a, un1.ch будут равняться. Для объединения un2 в памяти будут находиться un2.d=7.4 и un2.f[2]=4.5, а переменные un2.f[0], un2.f[1] свои значения изменят.
При определении объединений их можно инициализировать, но в отличие от структур инициализируется только первый элемент. Например:
union{int i;char ch;} un7={200};
union UN3{char c[4];int a[2];long g;};
union UN4{ int a[2];long g; char c[4];};
UN3 un8 ={“abc”}; UN4 un9={8,9};
Так как элементы объединения охватывают один и тот же участок памяти, то они могут использоваться для различных трактовок одного и того же кода:
union COM{int a;char c[2];};
COM common={24930}; //инициализация объединения common 24930=0х6162
printf("%c %c\n",common.c[0],common.c[1]);
На печать выведутся символы b и а, так как их коды в согласно ASCII–таблице соответственно 62 и 61. В дампе памяти числа 61 и 62 будут записаны в обратном порядке. Таким образом, переменная а будет выведена на экран в виде двух символов. Схема размещения элементов объединения в двух соседних ячейках памяти приведена ниже:
a |
c[0] |
Aдрес |
0x62 |
c[1] |
Aдрес+1 |
0x61 |
Заносить значения в участок памяти, выделенный для объединения, можно с помощью любого из его элементов. И доступ возможен так же с помощью любого из его элементов:
union{float pi; long l;}upi;
union{float exp;long l;}uex;
upi.pi=3.141593;
printf("l=%ld\n",upi.l); //l=1078530012
uex.l=1076754517L;
printf("e=%f\n",uex.exp); //e=2.718282
В отличие от других языков программирования С++ имеет структуру, называемую битовыми полями (полями битов), которая позволяет работать с отдельными битами.Битовое поле – это особый компонент структуры, определяющий длину отдельного ее элемента. Битовые поля полезны по нескольким причинам.
Если ограничено место для хранения информации, можно сохранить несколько логических переменных в одном байте.
Некоторые интерфейсы устройств передают информацию, закодировав биты в один байт.
Некоторым процессам кодирования необходимо получить доступ к отдельным битам в байте.
Хотя все эти функции могут выполняться с помощью битовых операторов, битовые поля могут внести большую ясность в программу. Метод использования битовых полей для доступа к битам основан на структурах.
Битовое поле – это элемент структуры, определенный как некоторое число битов, обычно меньшее, чем число битов в целом числе (оно по величине не превосходит машинного слова и зависит от реализации компилятора). Они предназначены для экономного размещения в памяти данных небольшого диапазона, обеспечивают удобный доступ к отдельным битам данных. Кроме того, с помощью битовых полей можно формировать объекты с длиной внутреннего представления, не кратной байту.
Битовые поля обычно применяются в низкоуровневом программировании.