- •Структурно-функціональна організація апаратного та програмного забезпечення обчислювачів.
- •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 Методи та засоби захисту від віддалених мережевих атак.
Int fprintf(file *fp, char *format [,аргумент]…);
Эта функция выводит данные с преобразованием по формату в открытый поток fp, связанный с файлом. В случае успеха возвращает число выведенных байтов, а в случае ошибки или достижения конца файла – EOF.
Пример. Запись чисел и массива чисел в открытый файл
int a=5; float b=3.56; long c=50000;
fprintf(fp,”%d %f %ld\n”,a,b,c); //запись чисел в файл через поток fp
int arr[5]={1,2,3,4,5}; float mas[5]={1.1,2.2,3.3,4.4,5.5};
for (int i=0;i<5;i++)
fprintf(fp,”%d %f\n”,arr[i],mas[i]);//запись чисел типа в поток fp
Функция форматированного ввода (чтения) из файла имеет прототип:
Int fscanf(file *fp, char *format [,указатель]…);
Эта функция выполняет ввод из открытого файла данных с преобразованием по формату, занесение их в ячейки памяти, определяемые указателями. В случае успеха возвращает число обработанных при вводе полей, или EOF (–1) в случае ошибки или достижения конца файла.
Пример. Чтение чисел и массива чисел из открытого файла
int n; float f; long l; int a[5]; float m[5];
fscanf (fp,”%d %f %ld\n”,&n,&f,&l);//чтение чисел из файла через поток
for (int i=0;i<5;i++)
fscanf (fp,”%d %f\n”,&a[i],&m[i]);// чтение исел из файл через поток
Блоковый ввод данных в файл и вывод данных из файла
Эти функции предназначены для ввода-вывода блоков байт, где под блоком байт подразумевают группу рядом расположенных байт, между которых нет никаких специальных разделителей. Блоковый ввод-вывод обычно выполняют в бинарном режиме
Функция блокового вывода (записи) в файл имеет прототип:
int fwrite(void *ptr, int size, int n, FILE *fp);
Эта функция записывает через поток fp в открытый файл n блоков, размером size байт каждый, из области памяти, определяемой указателем ptr. В случае успеха возвращает число блоков (не байтов!), а в случае ошибки или достижения конца файла – EOF.
Пример. Запись блока и массива блоков данных в открытый файл через поток stream
struct REC {int a; float b[3];};
REC str1={1,2.2,3.3,4.4};
fwrite (&str1,sizeof(REC),1, stream);
REC str2[3]={{1,1.2,1.3,1.4},{2,2.2,2.3,2.4},{2,2.2,2.3,2.4}};
fwrite (str2,sizeof(REC),3, stream);
Функция блокового ввода (чтения) из файла имеет прототип:
int fread(void *ptr,int size,int n,FILE *fp);
Эта функция считывает через поток fp из открытого файла n блоков, размером size байт каждый, в область памяти, определяемой указателем ptr. В случае успеха возвращает число блоков, а в случае ошибки или достижения конца файла – EOF.
Пример. Запись блока и массива блоков данных в открытый файл через поток stream для ввода (чтения) данных в двоичном режиме
struct REC {int a; float b[3];};
REC str3, str4[3];
fread(&str3,sizeof(REC),1, stream);
fread (str4,sizeof(REC),3, stream);
8.7 Поняття класу. Компоненти класу. Функції класу. Доступ до членів класу. Специфікатори доступу. Конструктори та деструктори.
Визначення класу. Компоненти класу. Спеціфікатори доступу до компонентів класу. Різниця між методами класу, визначеними в класі та поза межами класу.
Основой языка С++ является понятие класса.
Класс – это производный структурированный тип, позволяющий задать некоторую структурированную совокупность данных и определить набор операций над этими данными.
Класс в языке С++ определяется конструкцией:
ключ_класса имя_класса {список_компонентов};
где ключ_класса – одно из зарезервированных слов: class, struct, union; имя_класса – идентификатор; список_компонентов – определения и описания типизированных данных и принадлежащих классу функций.
Компонентами класса могут быть переменные, функции, классы.
Различают заголовок класса и тело класса, которое заключается в фигурные скобки.
Функции класса называют членами-функциями, компонентными функциями, методами.
Напишем простейший класс:
struct complex{
double real;
double imag;
void define(double re,double im)
{real=re; imag=im;}
void display()
{cout<<real<<"i"<<imag<<endl;}
};
введенный нами класс обладает правами типа. Таким образом, с его помощью можно определить объекты класса, или, как говорят, экземпляры класса:
complex x,y;
complex *py=&y;
complex z[5];
В созданных объектах имеются методы define() и display(), которые могут работать с членами-данными своих объектов. В памяти для каждого объекта создаются участки памяти и в этих участках размещаются собственные члены-данные. В отличие от членов данных, функции создаются в одном экземпляре.
После создания объектов, к их компонентам можно обращаться с помощью квалифицированных имен. Синтаксис доступа следующий:
имя_объекта.имя_элемента;
имя_объекта.имя_метода();
указатель_на_объект–>имя_компонента;
Например:
x.real=2;
x.imag=3;
py–>real=7;
py–>imag=8;
x.define(1,2);
x.display(); //1+i2
py–>define(6,9);
py–>display(); //6+i9
Мы, только что, рассмотрели одну форму определения компонентных функций. Существует и другая форма, при которой в определении класса функции только описываются, т.е. помещается только прототип функции. А определение функции выполняется отдельно. Синтаксис такой:
тип_функции имя_класса :: имя_функции(параметры)
{тело функции;}
Например:
struct myclass{
int a;
void set(int);
int get():
};
void myclass::set(int c)
{a=c;}
int myclass::get()
{return a;}
Здесь знак :: – это оператор расширения области видимости.
Такая форма обычно используется и имеет преимущество, поскольку описание класса можно поместить в любой заголовочный файл *.h, а реализацию методов, т.е. определение функций поместить в файл *.срр, оформить этот файл в виде библиотеки и, таким образом, защитить собственную реализацию методов от пользователя. Кроме того, поскольку функции обычно бывают большими, отсутствие их определений в описании класса повышает наглядность последних.
У созданного нами класса complex есть несколько существенных недостатков. Прежде всего, общедоступность его членов-данных. Для регулирования видимости или доступа к членам класса существует спецификаторы доступа: private, protected, public, после которых ставится двоеточие.
Все члены класса (члены-данные, члены-функции) приобретают тот статус по доступу, после какого спецификатора они стоят, вплоть до следующего встретившегося спецификатора. Например:
stuct complex1{
private:
double real;
double imag;
void display();
public:
void define(double,double);
};
void complex1::display()
{cout<<real<<"+i"<<imag<<endl;}
void complex1::define(double r,double i)
{real=r;
imag=i;
display();
}
int main()
{ complex1 x;
x.define(3,5);
//x.real=8; ошибка
//x.display(); ошибка
}
Ключевое слово protected регулирует доступ при наследовании, о нем будет сказано позднее.
Таким образом, введением механизма регулирования доступа к членам класса мы защищаем данные и методы от их возможного неправильного использования. Создание класса с использованием ключевого слова class по умолчанию защищает все члены класса, т.е. делает их приватными и изменить их видимость можно также с помощью названных спецификаторов. Приведем более сложный пример:
class complex{
double real, imag;
void display();
public:
void define(double,double);
void add(complex *,complex *);
};
void complex::display()
{cout<<real<<"+i"<<imag<<endl;}
void complex::define(double re,double im)
{real=re;
imag=im;
display();
}
void complex::add(complex *a,complex *b)
{real=a–>real+b–>real;
imag=a–>imag+b–>imag;
display();
}
int main()
{complex x,y,z;
x.define(3,5); //3+i5
y.define(2,4); //2+i4
z.define(&x,&y); //5+i9
return 0;
}