Professional Documents
Culture Documents
Екзамен
Екзамен
ОС мейнфреймів
Продуктивність введення-сервер ФТІвиведення
Підтримка обробки значних обсягів даних
Серверні ОС
Обслуговування великої кількості запитів до спільно використовуваних
ресурсів
Підтримка мережної взаємодії
Багатопроцесорні ОС
Спеціальні функції зв’язку, сполучення і синхронізації
ОС персональних комп’ютерів
Підтримка графічного інтерфейсу користувача
Підтримка мультимедіа-технологій
ОС карманних ПК
Функції реального часу (підтримка модуля комунікації)
Мультимедіа
Сенсорний екран
Вбудовані ОС
Розміщення в малому обсязі пам’яті
Можливість прошивання в ПЗП
Функції реального часу
ОС сенсорних вузлів
Розміщення в дуже малому обсязі пам’яті
Прошивання в ПЗП
Мале енергоспоживання
ОС смарт-карт
Вимоги, ще більш жорсткі, ніж до ОС сенсорних вузлів
8.Основні функції ОС
10.Поняття архітектури ОС
функціональна надлишковість;
функціональна вибірковість;
параметрическая універсальність;
11.Механізми і політики
12.Поняття ядра ОС
Для надійного управління ходом виконання додатків операційна система повинна мати
по відношенню до додатків певні привілеї. Інакше некоректно працюючий додаток
може втрутитися в роботу ОС і, наприклад, зруйнувати частину її кодів.Так як ядро
виконує всі основні функції ОС, то найчастіше саме ядро стає тією частиною ОС, яка
працює в привілейованому режимі
Всі операції, пов'язані з процесами, виконуються під управлінням тієї частини ОС, яка
входить до складу її ядра.Це лише невелика, але найбільш інтенсивно
використовується частина ОС, тому ядро зазвичай резидентно розміщується у
внутрішній пам'яті ЕОМ, в той час як інші частини ОС переміщаються із зовнішньої
пам'яті у внутрішню і назад по мірі необхідності.
Обробка переривань
Керування пам'яттю
Керування введенням/виведенням
Два режиму: користувача і ядра, чотири рівні привілеїв (кільця) для захисту від менш
привілейованого коду.
Монолітні системи
Приклади: Традиційні ядра UNIX (такі як BSD), Linux; ядро MS-DOS, ядро KolibriOS.
Багаторівневі системи
Мікроядрова архітектура
Екзоядро - ядро операційної системи, що надає лише функції для взаємодії між
процесами, безпечного виділення і звільнення ресурсів. Передбачається, що
програмний інтерфейс для прикладних програм будуть надаватися зовнішніми по
відношенню до ядра бібліотеками (звідки і назва архітектури). Переваги: Можливість
доступу до пристроїв на рівні контролерів дозволить ефективніше вирішувати деякі
завдання, які погано вписуються в рамки універсальної операційної системи,
наприклад, реалізація систем управління базами даних матиме доступ до диска на
рівні секторів диска, а не файлів і кластерів, що позитивно позначиться на швидкодії.
Недоліки: Для забезпечення одночасного виконання декількох прикладних програм їм
не можна надавати доступ для прямого управління пам'яттю. Занадто низький рівень
надаваних абстракцій може зробити згубний вплив на переносимість прикладних
програм, а реалізація досить високорівневих абстрактних функцій в наданих
програмами системних бібліотеках не дає відчутних переваг в порівнянні з реалізацією
їх у вигляді системних викликів, які виконуються ядром операційної системи.
Наноядро - архітектура ядра операційної системи, в рамках якої вкрай спрощене ядро
виконує лише одну задачу - обробку апаратних переривань, що генеруються
пристроями комп'ютера. Переваги: Простота реалізації, самої операційної системи. Що
дозволяє зробити саме ядро дуже надійним і захищеним від збоїв. Недоліки: Більшу
частину роботи доводиться покладати на драйвера, значить їх код стає складніше і
доводиться концентрувати увагу не тільки на реалізації безпосередніх функцій
драйвера, але і на додаткових аспектах його реалізації.
20.Об’єктна архітектура
В основу NetWare була покладена дуже проста ідея: один або кілька виділених
серверів підключаються до мережі і надають для спільного використання своє
дисковий простір у вигляді «томів». На комп'ютерах-клієнтах з операційною системою
MS-DOS запускається кілька спеціальних резидентних програм, які дозволяють
«призначати» букви дисків на томи. Користувачам необхідно зареєструватися в
мережі, щоб отримати доступ до томів і мати можливість призначати букви дисків.
Доступ до мережевих ресурсів визначається ім'ям реєстрації.Користувачі можуть також
підключатися до спільно використовуваних принтерів на виділеному сервері і
виконувати друк на мережевих принтерах так само, як і на локальних.
23.Архітектура ОС Windows
(https://www.intuit.ru/studies/courses/10471/1078/lecture/16569)
Windows являє собою операційну систему з гібридним ядром.У ній основні системні
функції по управлінню процесами, пам'яттю, пристроями, файлової системою і
безпекою реалізовані в компонентах, які працюють в режимі ядра; але існує ряд
важливих системних компонентів для користувача режиму, наприклад системні
процеси входу в систему, локальної аутентифікації, диспетчера сеансів, а також
підсистеми оточення.процеси користувальницького режиму,для взаємодії з модулями
режиму ядра використовують бібліотеки Windows DLL
24.Функціональні вимоги до сучасних ОС
Якщо код ОС може бути порівняно легко перенесений з процесора одного типу на
процесор другого типу і апаратної платформи одного типу на апаратну платформу
другого типу, то таку ОС називають переносимою (portable).Для того щоб забезпечити
властивість переносимості ОС, розробники повинні дотримуватися наступних правил:
, Які лежать вище шару машинно-залежних компонентів, можуть бути написані для
управління саме цієї віртуальної апаратурою. Таким чином, у розробників з'являється
можливість створювати один варіант машинно-незалежної частини ОС (включаючи
компоненти ядра, утиліти, системні обробні програми) для всього набору
підтримуваних платформ
27.Програмна сумісність
https://sites.google.com/site/pedagogiceskaakopilocka/prikladnye-programmnye-sredstva
29.Розширюваність
Код повинен бути написаний так, щоб систему можна було легко нарощувати і
модифікувати в міру зміни потреб ринку. У той час як апаратна частина комп'ютера
застаріває за кілька років, корисна життя операційних систем може вимірюватися
десятиліттями. Збереження цілісності коду, які б зміни не вносилися в операційну
систему, є головною метою.Можливість розширення може досягатися за рахунок:
30.Віртуалізація, її види
Існує два види гіпервізора: Type 1 і Type 2. Гіпервізор Type 1, які іноді ще називають
нативними або металевими, працюють прямо на апаратному забезпеченні хоста, щоб
контролювати його і управляти гостьовими машинами. Сучасні Гіпервізор включають
Xen, Oracle VM Server для SPARC, Oracle VM Server для x86, Microsoft Hyper-V і
VMware's ESX / ESXi.
32.Емуляція
Пов’язані терміни:
Job (Завдання) — характерно для систем пакетної обробки (batch
systems)
Task (Задача) — характерно для систем розділення часу, звідки
Multitasking (Багатозадачність)
Process — більш сучасний термін
Потік (нитка, thread) – набір послідовно виконуваних команд процесора. Часто виникає
потреба виконувати різні набори команд (різні завдання) в одному адресному просторі
( Приклад: текстовий редактор — паралельно здійснює оброблення введення з
клавіатури, відображення на екрані, вирівнювання по правому краю, перевірку
орфографії тощо)
У більшості сучасних ОС (таких, як лінія Windows ХР, сучасні версії UNIX) може бути
багато процесів, а в адресному просторі кожного процесу - багато потоків. Ці системи
підтримують багатопоточність або реалізують модель потоків. Процес в такій системі
називають багатопотокових процесом.
У програмі, робота якої повністю заснована на потоках, які працюють на рівні ядра, всі
дії з управління потоками виконуються ядром. В області додатків відсутній код,
призначений для управління потоками. Замість нього використовується інтерфейс
прикладного програмування API.Будь-який додаток при цьому можна запрограмувати
як багатопоточний; всі потоки додатки підтримуються в рамках єдиного процесу. Ядро
підтримує інформацію контексту процесу як єдиного цілого, а також контекстів кожного
окремого потоку процесу. Планування виконується ядром виходячи зі стану потоків
38.Схеми багатопотоковості
Переваги
Недоліки
Іноді дуже корисно створити програму, яка виконує дві справи одночасно. Класичний
приклад - підрахунок в режимі реального часу слів в документі в ході редагування
тексту. Один потік може управляти призначеним для користувача введенням і
виконувати редагування. Інший, здатний бачити те ж вміст документа, може
безперервно оновлювати змінну-лічильник кількості слів. Перший потік (або навіть
третій) може використовувати цю змінну для інформування користувача.
Продуктивність додатки, в якому змішані введення, обчислення і виведення, можна
підвищити, запустивши ці операції як три окремих потоку. Поки потік введення або
виведення чекає приєднання, один з решти потоків може продовжити обчислення.
Серверний додаток, обробляє численні мережеві підключення, також може підійти для
організації програми з множинними потоками.Але у багатопотокової програми є такі
недоліки:
Для того щоб операційна система могла керувати процесами, вона повинна мати всю
необхідну для цього інформацією. З цією метою на кожен процес зводиться спеціальна
інформаційна структура, яка містить певну важливу інформацію про процес, і звана
дескриптором процесу (блоком управління процесом - Process Control Block - PCB). У
загальному випадку дескриптор процесу містить наступну інформацію:
Таким чином, в блоці управління процесом операційна система може зосередити всю
ключову інформацію про процес. Блоки управління процесами, як правило, постійно
розташовуються в оперативній пам'яті з метою прискорити роботу супервізора, який
організовує їх в списки (черги) і відображає зміну стану процесу переміщенням
відповідного описателя з одного списку в інший.
Якщо всі потоки мають однаковий приорітет,то Процесор обслуговує потоки в порядку
FIFO (first in - first out), т. Е. Першим прийшов -першим вийшов, і перервані потоки
стають в кінець черги. Така дисципліна обслуговування називається циклічним
обслуговуванням.Якщо потоки мають різні пріоритети, то для управління ними
використовуються більш складні дисципліни обслуговування з декількома чергами. У
цьому випадку кожна чергу включає потоки, які мають однаковий пріоритет
Образ потоку
Образ процесу
• Ідентифікатор процесу
• Стан процесу
• Пріоритет процесу
• Розміщення процесу в оперативній пам'яті і на диску
• Ідентифікатор користувача, що створив процес
Дескриптор процесу включає в себе всі ті дані про процес, які можуть знадобитися ОС
при різних станах процесу. У число елементів дескриптора можуть входити, наприклад,
ідентифікатор процесу (якесь умовне число, що позначає цей процес); поточний стан
процесу; його пріоритет; власник процесу (тобто ідентифікатор користувача, що
запустив процес); статистика витраченого процесом загального і процесорного часу;
покажчик місця розташування контексту процесу та ін. Дескриптори всіх процесів, що
існують в системі, зібрані в таблицю процесів.
Контекст процесу містить дані, необхідні тільки для поточного процесу. Суду
відносяться, перш за все, значення всіх регістрів процесора, включаючи покажчик
поточної команди; таблиця файлів, відкритих процесом; покажчики на області пам'яті,
які повинен займати процес при його виконанні; значення системних змінних, які
використовуються процесом (наприклад, поточний диск і каталог, інформація про
останню помилку при виконанні системних функцій); інші системні прапори і режими,
які можуть мати різні значення для різних процесів.
Виконання - активний стан потоку, під час якого потік має всі необхідні ресурси і
безпосередньо виконується процесором;
Готовність - також пасивний стан потоку, але в цьому випадку потік заблокований у
зв'язку з зовнішніми по відношенню до нього обставиною (має всі необхідні для нього
ресурси, готовий виконуватися, однак процесор зайнятий виконанням іншого потоку);
Коли потік создається він в стані готовності,коли івдбувається операція run потік зі
стану готовності переходить у стан виконаня,операція interrupt переводить зі стану
виконується у стан готовності.
Необхідні дії
Три основних події, що призводять до створення процесів (виклик fork (в UNIX) або
CreateProcess (вWindows)):
• завантаження системи;
• працюючий процес подає системний виклик на створення процесу;
• запит користувача на створення процесу.
Для створення процесів використовуються два системних виклику: fork () і exec. fork ()
створює нове адресний простір, яке повністю ідентично адресного простору основного
процесу. Після виконання цього системного виклику ми отримуємо два абсолютно
однакових процесу - основний і породжений. Функція fork () повертає 0 в породженому
процесі і PID (Process ID - ідентифікатор породженого процесу) - в основному. PID - це
ціле число. Тепер, коли ми вже створили процес, ми можемо запустити програму за
допомогою виклику exec. Параметрами функції exec є ім'я виконуваного файлу і, якщо
потрібно, параметри, які будуть передані цій програмі. В адресний простір
породженого за допомогою fork () процесу буде завантажена нова програма і її
виконання почнеться з точки входу (адреса функції main).
при виконанні виклику fork ():
Створюється логічна копія процесу, який виконує fork () - повне копіювання вмісту
віртуальної пам'яті батьківського процесу, копіювання складових ядерного статичного і
динамічного контекстів процесу-предка
50.Багатопотоковість у Linux
Традиційна реалізація: бібліотека LinuxThreads
• Потоки – це процеси, що користуються спільними структурами даних, але
мають окремі стеки
• Створення потоку: системний виклик clone()
• Недоліки:
• Створення потоку збільшує кількість процесів у системі • Кожний потік має
власний PID (це суперечить POSIX)
• Існує зв’язок предок-нащадок (чого не повинно бути)
• Кожне багатопотокове застосування обов'язково створює додатковий потік-
менеджер
Нова реалізація: NPTL (Native POSIX Threads Library), що спирається на нові
функціональні можливості ядра
• Як процес у системі реєструють лише перший потік застосування
• Усі потоки процесу повертають один і той самий PID
• Зв’язок предок-нащадок між потоками не підтримується
• Потік-менеджер не потрібен
• Зняті обмеження на кількість потоків у системі
У більшості UNIX-систем, на відміну від Linux, реалізована повна підтримка POSIX
Threads
Библиотека потоков POSIX (англ. Native POSIX Thread Library, англ. NPTL) — набор
программного кода, позволяющего ядру операционной системы Linux достаточно эффективно
выполнять программы, использующие потоки POSIX. В настоящее время интегрирована в
библиотеку glibc.
51.Багатопотоковість у Solaris
У Windows під процесом розуміється об'єкт ядра, якому належать системні ресурси,
використовувані виконуваним додатком. Виконання процесу закінчується при
завершенні роботи всіх його потоків. Кожен процес в операційній системі Windows
володіє наступними ресурсами:
Потоки описуються структурою даних ETHREAD в якій містяться наступні поля (час
створення, структура процесу-власника, адреса стартової користувацької функції, id,
тощо)
Завдання планування:
56.Квантування
Зміна потоку відбувається, якщо:
Потік завершився
Виникла помилка (переривання)
Потік перейшов у стан очікування
Вичерпано квант процесорного часу
Квантування – це один з підходів, що реалізує витісняльну багатозадачність
Кванти можуть бути фіксованої величини, або змінюватись. Концепція квантування
лежить в основі багатьох витісняють алгоритмів планування. Відповідно до цієї
концепції кожному потоку по черзі для виконання надається обмежений безперервний
період процесорного часу - квант. Кванти, що виділяються потокам, можуть бути
однаковими для всіх потоків або різними
59.Кругове планування
60.Багаторівневі черги
63.Лотерейне планування
Принцип:
Потік отримує певну кількість “лотерейних квитків”, кожен з яких дає
право користуватись процесором упродовж часу Т
Планувальник через проміжок часу Т проводить “розіграш”; потік, що
“виграв”, дістає керування
Шляхом розподілу і динамічного перерозподілу квитків можна:
Емулювати кругове планування
Емулювати планування з пріоритетами
Емулювати CRTCF
Забезпечити заданий розподіл процесорного часу між потоками
Динамічно змінювати пріоритети
Планування працює лише для потоків, які свій пріорітет отримують від батьківського
процесу. Процесс отримує свій пріорітет у момент створення, значення якого
присваюється системою за замовчуванням, або системним адміністратором.
69.Планування в RTOS
перший процес зменшує рахунок на 3 млн. доларів і записує залишок (2 млн. доларів)
на поточний рахунок;
73.Атомарна операція
Атомарна операція – така послідовність дій, яка гарантовано виконується від початку
до кінця без втручання інших потоків (тобто, є неподільною) в атомарній операції група
дій виконується без преривань,прикладами атомарних операцій можна вважати up і
down в семафорі.
74.Блокування.
76.Семафор
Семафор (semaphore) – цілочисловий невід'ємний лічильник (позначають S). Окремий
випадок: якщо семафор може приймати лише значення 0 і 1 (двійковий семафор), він
фактично є змінною блокування . Семафор – універсальний засіб, що забезпечує як
взаємне виключення, так і очікування події Цілочисленна змінна для підрахунку
кількості активацій.коли значення семафора 0 це свідчить про відсутність збережених
активацій.є дві операції з семафорами up і down,
77.Задача виробник-споживач
78.Взаємні блокування
Виникає коли кілька потоків при спроби синхронізації по декількох точках блокуються в
очікуванні один одного. Наприклад один потік володіє однією точкою синхронізації,
другий інший і кожен з них чекає захоплення точки яка вже захоплена. Це відбувається
через неконтрольованого порядку захоплення точок синхронізації.
81.Умовна змінна
Умовна змінна призначена для очікування події , вона пов'язана з певним м’ютексом і
даними, які він захищає
Визначені три операції:
сигналізація (signal) – потік, що виконав дії з даними у критичній секції,
перевіряє, чи не очікують на умовній змінній інші потоки, і якщо очікують –
переводить один з них у стан готовності (потік буде поновлено після звільнення
м’ютексу)
широкомовна сигналізація (broadcast) – те ж, що й сигналізація, але у стан
готовності переводить усі потоки очікування (wait) – викликається, коли потік у
критичній секції не може продовжувати роботу через невиконання певної умови
м’ютекс звільняють і інші потоки можуть мати доступ до даних
після того, як інший потік здійснив виклик signal() або broadcast(), потік знову
повертається до виконання • потік захоплює м’ютекс і продовжує роботу в
критичній секції
82.Монітор
Монітор – це набір функцій, які використовують один загальний м’ютекс і нуль або
більше умовних змінних для керування паралельним доступом до спільно
використовуваних даних. Монітор являє собою колекцію змінних і структур даних,
згрупованих разом в спеціальну різновид модуля або пакета процедур.в любой момент
времени в мониторе может быть активен только один процесс.Реалізація взаємного
виключення при вході в монітор покладається на компілятор, але найчастіше для цього
використовується м'ютекс або двійковий семафор. Оскільки забезпеченням взаємного
виключення займається компілятор, а не програміст,ймовірність того, що будуть
допущені якісь неправильні дії, стає значно менше
Сигнали
Передавання повідомлень
Поділювана пам’ять (shared memory)
Відображувана пам’ять (mapped memory)
84.Cигнали
Сигнали (аналог переривань) — найпростіший метод (UNIX) Сигнали бувають:
Синхронні – під час виконання процесу, наприклад, через ділення на нуль або
через помилку звернення до пам'яті
Асинхронні – повідомлення від іншого процесу або в результаті апаратної події
Канал являє собою кільцевої буфер в ядрі операційної системи. З точки зору процесів,
канал виглядає як пара відкритих файлових дескрипторів - один на читання і один на
запис (можна більше, але незручно). Ми можемо писати в канал до тих пір поки є місце
в буфері, якщо місце в буфері скінчиться - процес буде заблокований на записи
86.Поділювана пам’ять
Поділювана пам’ять дає змогу двом процесам обмінюватись даними через спільний
буфер
87.Відображувана пам’ять
Фізичні адреси - комірки памяті,кожна з яких має фіичний адрес,, который является
кодом
90.Моделі пам’яті
суть полскої моделі памяті заключаєтся у тому,що код, дані та стек програми
об'єднуються в один фізичний сегмент розміром 4 Гб
Сегментний розподіл
Сторінковий розподіл
Сегментно-сторінковий розподіл
Крім того, в таблиці сторінок міститься керуюча інформація, така як ознака модифікації
сторінки, ознака невигружаемості (вивантаження деяких сторінок може бути
заборонена), ознака звертання до сторінки (використовується для підрахунку числа
звернень за певний період часу) та інші дані, що формуються і використовуються
механізмом віртуальної пам'яті.
96.Сторінково-сегментний розподіл
Часова локальність
поля дескриптора:
Байт доступу (5-й байт дескриптора) містить інформацію, яка використовується для
прийняття рішення про можливість або неможливість звернення до даного сегменту.
Біт Р (Present) визначає, чи знаходиться відповідний сегмент в даний
Три рівня
Елементи таблиць сторінок PTE вказують на фрейми фізичної пам’яті. Кожний процес
має свій PGD і набір таблиць сторінок. На архітектурі Intel x86 PMD пустий , PGD
відповідає каталогу сторінок х86 Між таблицями сторінок Linux і таблицями сторінок
х86 завжди дотримується однозначна відповідність
109.Блок-орієнтовані пристрої
112.Адресація регістрів
Операції
Виведення даних – це записування даних у регістр виведення контролеру (data
out)
Введення даних – це зчитування даних з регістра введення контролеру (data in)
Керування пристроєм – це записування даних у регістр керування контролеру
(control)
Перевірка стану пристрою і результату попередньої операції – це зчитування
даних з регістра статусу контролеру (status)
Варіанти архітектури комп’ютерів:
Регістри контролерів є частиною адресного простору оперативної пам’яті
(memory-mapped I/O)
Регістри контролерів утворюють власний адресний простір – порти введення-
виведення (I/O port)
114.Оброблення переривань
Рівні переривань
116.Драйвери пристроїв
Старший номер пристрою, що позначає тип пристрою, наприклад, жорсткий диск або
звукова плата.
Обробник переривань
Файлова система – це підсистема ОС, яка призначена для того, щоби забезпечити
користувачеві зручний інтерфейс для роботи з даними, що зберігаються в
енергонезалежній пам’яті (на диску), і забезпечити спільне використання файлів
кількома користувачами і процесами Файлова система надає прикладним програмам
абстракцію файлу
Файлова система – це підсистема ОС, яка призначена для того, щоби забезпечити
користувачеві зручний інтерфейс для роботи з даними, що зберігаються в
енергонезалежній пам’яті (на диску), і забезпечити спільне використання файлів
кількома користувачами і процесами . Файлова система надає прикладним програмам
абстракцію файлу
127.Імена файлів
Для користувачів – символьні імена
Обмеження на алфавіт
Які символи припускаються (ASCII, Unicode))
Чутливість до регістра (myfile).txt vs MYFILE.TXT)
Наявність і формат розширення
У деяких системах розширення обов’язкове (система і прикладні програми
розрізняють типи файлів за розширенням)
Обмеження довжини імені • DOS (FAT) – 8.3 • UNIX Syste)m V – 14 • Windows
(NTFS) – 255
Унікальне ім’я
У більшості систем – повний шлях до файлу + ім’я файлу
Система не обов’язково працює із символьними іменами
Наприклад, у UNIX за іменем файлу визначають його
індексний дескриптор (i-node))
128.Типи файлів
Звичайні файли
Текстові – рядки символів (деякі символи можуть мати спеціальне значення –
кінець рядка, кінець файлу
Бінарні – послідовність байт (біт) •
Окремий тип – виконувані файли
Файли-каталоги (directory)
З одного боку це група файлів З іншого боку, це спеціальний файл, який містить
інформацію про файли, що до нього входять
Спеціальні файли
Файли пристроїв
Блок-орієнтовані пристрої – файли із прямим доступом
Байт-орієнтовані (символьні) пристрої – файли із послідовним доступом
130.Каталоги
Каталог (directory) містить список файлів і встановлює відповідність між файлами та
їхніми характеристиками (атрибутами)
Ім’я
Тип (бінарний/символьний, каталог, зв’язок, спеціальний)
Розмір файлу
Атрибути безпеки (власник, re)ad only, hidde)n, syste)m, te)mporary, атрибути
доступу)
Часові атрибути (час створення, час останньої модифікації)
Каталоги можуть містити усю інформацію (MS-DOS) або лише посилання на таблиці
(UNIX)
Каталоги можуть утворювати ієрархічну структуру
дерево (MS-DOS)
мережа (UNIX)
https://ru.bmstu.wiki/%D0%9E%D1%82%D0%BE
%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD
%D0%B8%D0%B5_%D1%84%D0%B0%D0%B9%D0%BB%D0%B0_
%D0%B2_%D0%BF%D0%B0%D0%BC%D1%8F
%D1%82%D1%8C_(%D0%9E%D0%BF
%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD
%D0%BD%D1%8B%D0%B5_
%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC
%D1%8B)#:~:text=%D0%9E%D1%82%D0%BE
%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD
%D0%B8%D0%B5%20%D1%84%D0%B0%D0%B9%D0%BB
%D0%B0%20%D0%B2%20%D0%BF%D0%B0%D0%BC%D1%8F
%D1%82%D1%8C%20(%D0%9E%D0%BF
%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD
%D0%BD%D1%8B
%D0%B5%20%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC
%D1%8B),(%D0%B4%D0%B8%D0%B0%D0%BF
%D0%B0%D0%B7%D0%BE%D0%BD
%20%D0%B0%D0%B4%D1%80%D0%B5%D1%81%D0%BE
%D0%B2%20%D0%BE%D0%BF
%D0%B5%D1%80%D0%B0%D1%82%D0%B8%D0%B2%D0%BD
%D0%BE%D0%B9%20%D0%BF%D0%B0%D0%BC%D1%8F
%D1%82%D0%B8).
хуита
Лекція 14 20/24
146.Реплікація файлів
Лекція 14 22/24
149.Динамічне зв'язування
Лекція 15 11/11
хуита
хуита
152.Неподільні транзакції
хуита