
- •Операційні системи
- •Функціонування комп'ютерної системи
- •Обработка переривань
- •Структура пам'яті
- •Лекція 5: Архітектура ос. Управління процессами: Основні поняття. Семафори і монітори План
- •2. Керування процесами
- •Віртуальні машини - інший розповсюджений підхід до розробки операційних систем й їхніх користувальницьких інтерфейсів
- •Механізми й політики
- •Реалізація операційних систем
- •Генерація операційної системи
- •Перемикання з одного процесу на інший
- •Планувальники, що виконують диспетчеризацію процесів
- •Лекція 10. Методи синхронізації процесів План
- •Алгоритм рішення проблеми критичної секції
- •Алгоритм «в пиріжковій» (bakery algorithm)
- •Синхронізація на основі загальних семафорів
- •Реалізація семафорів
- •Рішення за допомогою семафорів завдання
- •Рішення за допомогою семафорів завдання "читачі - письменники"
- •Рішення за допомогою семафорів завдання " філософи, що обідають,"
- •Монітори
- •Лекція № 11. Управління памяттю План
- •Динамічне завантаження й динамічна лінковка
- •Оверлейна структура програми
- •Відкачка й підкачування
- •Лекція 13. Сегментна організація пам’яті. Віртуальна пам’ять
- •Оптимальний алгоритм заміщення сторінок
- •Сторінкова організація на вимогу в Windows nt
- •Лекція № 14. Системи файлів План
- •Типова організація файлової системи зображена на мал. 19.3.
- •Логічна організація директорій
- •Монтування файлових систем
- •Структура файлової системи
- •Лекція № 15. Віртуальні файлові системи План
- •Лекція 17. Системи вводу-виводу План
- •Опитування пристроїв
- •Переривання
- •Ввід-вивід із прямим доступом до пам'яті (dma)
- •Блокові й символьні пристрої
- •Мережні пристрої істотних відрізняються від блоків і символьних; мають свій власний інтерфейс і систему команд
- •Годинники й таймери
- •Блокуємий (синхронний) і не блокуємий (асинхронний) ввід-вивід
- •Структури даних для вводу-виводу в ядрі ос
- •Життєвий цикл запиту на ввід-вивід
- •Продуктивність вводу-виводу
- •Лекція 18. Мережі й мережеві структури. Класичні и сучасні мережеві комунікаційні протоколи План
- •Мережі Ethernet
- •Протокол tcp/ip
- •Функционирование Ethernet-мереж
- •Лекція 19: Безпека операційних систем і мереж. План
- •Лекція 20. Огляд архітектури й можливостей системи Linux: архітектура, ядро, поширення й ліцензування, принципи проектування, керування процесами План
- •Історія Linux
- •Ядро Linux
- •Сучасний стан Linux, дистрибутиви й ліцензування
- •Принципи проектування й компоненти системи Linux
- •Модулі ядра, що завантажують, Linux
- •Керування процесами в Linux
- •Планування завдань ядра й синхронізація в ядрі
- •Лекція 21. Огляд архітектури й можливостей системи Linux: керування пам'яттю, ресурсами, файлові системи, драйвери пристроїв, мережі, безпека План
- •Керування фізичною пам'яттю в Linux
- •Віртуальна пам'ять в Linux
- •Виконання й завантаження користувальницьких програм в Linux
- •Системи файлів Linux
- •Ввод й вивід в Linux
- •Взаємодія процесів в Linux
- •Структура мережі в Linux
- •Безпека в Linux
- •Розвиток і використання Linux
- •Лекція 22. Огляд архітектури й можливостей систем Windows 2000/xp/2003/Vista/2008/7 План
- •Система Windows 2000
- •Історія Windows
- •Принципи проектування Windows 2000 - розширюваність, переносимость, надійність, безпека, сумісність, продуктивність, підтримка інтернаціоналізації й локалізації.
- •Архітектура Windows 2000
- •Ядро Windows 2000
- •Обработка переривань у ядрі
- •Виконавча підсистема (executive) ос Windows 2000
- •Підсистеми оточення в Windows 2000
- •Лекція 23. Системні механізми Windows План
- •Система файлів Windows
- •Рограммный інтерфейс Windows
- •Програмний інтерфейс Windows: Керування процесами
- •Керування віртуальною й фізичною пам'яттю й робочими наборами в Windows
- •Лекція 24. Ос для мобільних пристроїв. Windows Mobile План
- •Особливості ос для мобільних пристроїв
- •Ринок ос для мобільних пристроїв
- •Перспективи ос для мобільних пристроїв
- •Лекція 25. Перспективи операційних систем і мереж План
- •Операційні системи інших великих фірм
- •Solaris - операційна система розробки фірми Oracle / Sun
- •Сучасні тенденції в розвитку ос
- •Нові ос сімейства Windows
- •Нові тенденції в розвитку ос
- •Графічні оболонки ос
- •Підтримка паралельних обчислень
- •Розвиток бездротових мереж
- •Перспективи розвитку ос
Логічна організація директорій
Структуру директорій рекомендується організовувати логічно, тобто відповідно до логіки програми, зберігання й використання даних. У такої організації директорій – дві основні цілі: ефективність (забезпечити швидкий пошук файлу) і іменування (забезпечити зручність для користувачів, наприклад, у випадку, якщо декілька користувачів називають два різних файли у своїх директоріях тим самим ім'ям, відповідно до його призначення). Директорії дозволяють здійснити логічне угруповання файлів по їхньому призначенню, властивостям і т.д. (наприклад, пошта, документа, Java-код, ігри).
У зв'язі із цим, однорівнева організація директорій для всіх користувачів не рекомендується, тому що можуть виникнути проблеми зі зручним угрупованням файлів і зі збігом імен. Однорівнева структура директорій зображена на рис. 19.4.
Рис. 19.4. Одноуровневая організація директорій.
При дворівневій організації директорій у багатокористувальницькій системі з'являється можливість мати однакові імена файлів подібного призначення для різних користувачів. При такій організації створюється головна директорія, у якій зберігаються персональні піддиректорії користувачів. У кожній з них, у свою чергу, зберігаються файли конкретного користувача. Дворівнева схема зображена на рис. 19.5.
Рис. 19.5. Дворівнева організація директорій.
Однак дана організація не підтримує можливість подальшого угруповання файлів.
Найбільш загальної й зручної, що рекомендує читачам, є деревоподібна структура директорій (рис. 19.6).
Рис. 19.6. Деревоподібна структура директорій.
Саме деревоподібна структура директорій забезпечує ефективний пошук, можливість угруповання й підтримку вже розглянутих понять поточної (робочої) директорії й шляхи доступу до файлу.
Розрізняються абсолютний і відносний шлях. Абсолютний шлях указує повний шлях доступу до файлу, починаючи від логічного імені роздягнула, або від кореневої системної директорії, наприклад (у системі UNIX): /usr/bin/sh – шлях доступу до файлу командного процесора Bourne Shell. Відносний шлях указує шлях доступу до файлу щодо деякої поточної директорії. У тім же прикладі, якщо вважати, що поточна директорія - /usr, то відносний шлях до того ж файлу має вигляд: bin/sh. Недолік абсолютних шляхів у тім, що на різних комп'ютерах (наприклад, замовника й виконавця) абсолютні шляхи до того самого файлу або до однієї й тої ж директорії можуть виявитися різними. У результаті виникають помилки при зборці проекту, його архівуванні, розархівуванні й ін. Тому рекомендується в системних файлах, наприклад, в make-файлах для зборки проектів, указувати, по можливості, відносні шляхи, або позначати робочу директорію один раз за допомогою деякого макросу й використати це позначення в шляхах, наприклад: ${SYSDIR}/sh, де макрос SYSDIR задає конкретний шлях до системної директорії на даному комп'ютері.
Приклад деревоподібної структури директорій наведений на рис. 19.6.
Приклади операцій над директоріями (у позначеннях рис. 19.6):
cd /spell/mail/prog - установка поточної директорії.
type list - вивід на консоль уміст одного з її файлів.
Якщо поточна директорія /mail, то піддиректорія count створюється командою:
mkdir count
Структура директорій у вигляді ациклического графа (рис. 19.7) виникає внаслідок використання різними користувачами тих самих файлів і директорій.
Рис. 19.7. Структура директорій у вигляді ациклічного графа.
При цьому може виникнути ситуація, коли в того самого файлу (директорії) два різних імена (aliasing).
В рис. 19.7, якщо в директорії dict видалити посилання list, то утвориться підвисше посилання (dangling pointer). Можливі рішення даної проблеми:
зберігання зворотних посилань із файлу на директорію (з метою своєчасного видалення всіх посилань);
зберігання лічильника посилань на файл; при обнулінні посилань на файл останній вважається не використовуваним, і його пам'ять перерозподіляється.
Структура директорій у вигляді довільного графа створює ще більш серйозні проблеми, наприклад, як гарантувати відсутність циклів у графі директорій. Приклад структури директорій у вигляді довільного графа наведений на рис. 19.8.
Рис.
19.8. Структура
директорій у вигляді довільного графа.