ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

         
     
    Операційні системи
         

     

    Інформатика, програмування

    Лекція № 5

    Операційна система

    1. Призначення та основні функції операційної системи.

    Під терміном «операційна система» ми будемо розуміти комплекспрограм, функціями якого є контроль за використанням тарозподілом ресурсів обчислювальної системи. Ми говорили, що вобчислювальної системі є фізичні ресурси, тобто ті ресурси, якіпов'язані з реальним обладнанням (магнітні диски, оперативна пам'ять,час роботи процесора). Ми говорили також, що в системі для її успішногофункціонування є логічні (іноді їх називають віртуальними)ресурси, тобто ресурси, які у вигляді реального обладнання неіснують, але реалізуються у вигляді деяких засобів, що надаютьсякористувачеві. Фізичні та логічні ресурси ми будемо називати просторесурсами обчислювальної системи.

    Будь-яка операційна система (ОС) оперує деякими сутностями,які разом зі способами управління ними багато в чому характеризують їївластивості. До таких сутностей можуть ставитися поняття файлу, процесу,об'єкта, і т.д. Кожна ОС має свій набір таких сутностей. Наприклад, в ОС
    Windows NT до таких сутностей можна віднести поняття об'єкта, і вже черезуправління цією сутністю надаються всі можливі функції. Якщо миподивимося UNIX, то в ній такий сутністю, в першу чергу, єпоняття файлу, а в другу чергу, поняття процесу.

    Процес - це певна сутність, яка присутня практично увсіх ОС. Процес - це програма, що має права власності на ресурси.
    Розглянемо дві програми (тобто код і дані, які використовуються) ірозглянемо всі ті ресурси, які належать програмі (це можуть бути:простір оперативної пам'яті, дані на зовнішньому пристрої, що запам'ятовує,права володіння іншими ресурсами, приміром, лініями зв'язку). Якщо безлічіресурсів, що належать двом програмам, збігаються, то в цьому випадку ми неможемо говорити про ці програми, як про двох процесах, - це одинпроцес. Якщо у кожної програми є своє безліч ресурсів, причому, цімножини можуть перетинатися, але не збігатися, то ми говоримо про двіпроцесах.

    У тому випадку, коли безлічі ресурсів декількох процесів маютьнепорожній перехід, то у нас виникає питання про використання, такзваних, поділюваних ресурсів. Частково ми говорили про це минулоголекції: згадайте приклад з пристроєм друку. У нас може бути кількапроцесів, кожен з яких має в якості свого ресурсу пристрійдруку і в кожний момент часу може звернутися до цього ресурсу із замовленнямна друк якоїсь інформації. Синхронізація роботи процесів на прикладіпристрої друку ілюструвала нам одну з функцій ОС, яка полягає вуправлінні функціонуванням процесів. Давайте подивимося, що розумієтьсяпід управлінням процесом.

    Управління процесами:

    1. Управління використанням часу центрального процесора.

    2. Управління «підкачкою» і буфером введення.

    3. Управління розділяються ресурсами.

    Основні проблеми управління процесами.

    Перше - управління використанням часу центрального процесора
    (ЦП), або цю проблему іноді називають плануванням ЦП, тобто управліннятим, в який момент часу якась із завдань або який з процесів будеволодіти активністю ЦП: на який з процесів буде працювати ЦП.

    Друге - управління «підкачкою» і буфером введення. Припустимо ситуацію,коли велика кількість людей, наприклад весь курс, сидить за комп'ютерами,і всі одночасно запустили якісь завдання у вигляді процесів. У системіутворилася маса завдань (гарантовано більше ста). А вся обчислювальнасистема не може прийняти для роботи в режимі мультипрограмному сто завдань --це занадто багато. У цьому випадку утворюється, так званий, буфер вводузавдань, або буфер введення процесів, то є буфер, в якому акумулюютьсяті процеси, які чекають на початок своєї обробки процесором. Виникаєпроблема черговості вибору процесів з цього буферу для початку обробки.
    Це завдання планування буфера.

    Тепер розглянемо завдання планування «підкачки». Процесоромобробляється кілька процесів, і перед нами стоїть завдання звільнитиреальну оперативну пам'ять для інших завдань. У цьому випадку виникаєнеобхідність якісь з оброблюваних завдань відкачати на зовнішнєзапам'ятовуючий пристрій. А за яким алгоритмом ми будемо відкачувати цізавдання? Яка буде стратегія відкачування? Можна відкачувати, наприклад, кожнупарну завдання. Як більш-менш вигідно організувати процес відкачування --це проблема.

    Третє - управління розділяються ресурсами. Є набір ресурсів,доступ до яких у певні моменти часу організується від іменірізних процесів. Це та сама колізія з пристроєм друку. Одна зфункцій, яка багато в чому визначає властивості ОС, це функція,забезпечує організацію взаємодії процесів і використання загальнихресурсів. Проблема з прикладу з пристроєм друку легко вирішується, а осьякщо дві програми мають загальний фрагмент оперативної пам'яті, то управліннярозділяються таким ресурсом - складне завдання.

    Тепер давайте подивимося на конструкцію ОС. Практично будь-яка ОС маєпоняття ядра. Ядром ОС зазвичай є її резидентна частину, то є тачастина ОС, що не бере участь у процесах підкачки (вона завждиприсутня в оперативній пам'яті) і працює в режимі ОС, або в режимісупервізора (у тому самому спеціалізованому режим, про який ми говорилиминулого лекції). У ядро входять базові засоби управління основнимисутностями, характерними для цієї ОС, а також може входити набірпрограм, що забезпечують управління деякими фізичними пристроями. Уфункції ядра, зокрема, входить обробка переривань.

    Ми іноді будемо називати програми, що керують ресурсами, драйверамипристроїв (фізичних або логічних). Наприклад, в ядро ОС повинен входитидрайвер оперативного запам'ятовуючого пристрою.

    Далі, навколо ядра нарощуються програми управління ресурсамиобчислювальної системи. Перший рівень в основному складається з драйверівфізичних пристроїв. Наступний рівень - управління логічнимипристроями. І так далі. Таких рівнів може бути досить багато. Чимдалі від ядра, тим більша абстрактність має місце бути. Наприклад, де -то в нашій схемі можуть з'явитися драйвери управління файлами, які, наНасправді, пов'язані з драйверами управління логічними дисками, а ті, усвою чергу, пов'язані з драйверами реальних фізичних пристроїв і такдалі.

    Зовсім не обов'язково, що всі компоненти ОС працюють в режимісупервізора, або в режимі ОС. Багато хто з компонентів, які логічнодосить віддалені від ядра, можуть працювати в звичайному призначеному для користувачарежимі. Так само не обов'язково, всі ці компоненти ОС працюють в резидентнимрежимі. Звичайно, для багатьох функцій це не потрібно.

    Тепер перейдемо до більш докладного розгляду основних функцій ОС.

    Управління використанням часу центрального процесора.

    Насправді, від того, який алгоритм вибору завдання для передачі їйактивності ЦП реалізований в ОС, залежать багато реальні експлуатаційнівластивості цієї ОС. Вибір алгоритму майже цілком визначається тимикритеріями ефективності, які використовуються для оцінки ефективностіроботи ОС. Тому управління використанням часу ЦП ми з вамирозглянемо на тлі розгляду типів ОС.

    Перша ситуація. У мене є велика кількість завдань або програм,вимагають великого обсягу обчислювальних потужностей системи. Це ті завдання,які називають рахунковими завданнями; вони вимагають великого обсягу обчисленьі мало звертаються до зовнішніх пристроїв. Ці завдання мають виконуватися наоднієї обчислювальної системи. Що буде критерієм ефективностідля роботи системи при виконанні цього пакету завдань? Який набірпараметрів можна взяти і сказати: якщо вони великі - то добре, якщонавпаки - то погано? Для такої ситуації критерієм ефективності роботиобчислювальної системи є ступінь завантаження ЦП. Якщо він малопростоює (тобто працює в режимі очікування, а всі процеси займаютьсяобміном, або ОС бере на себе час), то ми можемо сказати, що такасистема працює ефективно. Цього можна досягти з використаннямвідповідного алгоритму планування, який полягає в наступному.
    Ми запускаємо для обробки той набір завдань, який у нас є поможливостям ОС (або максимум, або всі завдання), що забезпечуєтьсярежимом мультипрограмування. Алгоритм планування часу ЦП в цьомувипадку буде наступний: якщо ЦП виділений одному з процесів, то цейпроцес буде займати ЦП до настання однієї з наступних ситуацій:

    1. Звернення до зовнішнього пристрою.

    2. Завершення процесу.

    3. Зафіксований факт зациклення процесу.

    Як тільки настала одна з цих ситуацій, управління передаєтьсяіншому процесу. Кількість передач керування від одного процесу доіншому мінімізовано. Так як при передачі управління з одного процесуна іншій ОС повинна виконати набір деяких дій, а це втратачасу, то тут ці втрати мінімізовані. Такий режим роботи ОСназивається пакетним режимом. ОС, яка працює в такому режимі,називається пакетної ОС.

    Тепер уявімо ситуацію, коли значна кількість людейзнаходиться в комп'ютерному класі і кожен з них редагує деякийтекст. З кожним із терміналів, пов'язана своя копія текстового редактора.
    Подивимося, що буде з системою, якщо ми застосуємо алгоритм планування,викладений для першого випадку. Припустимо, хтось з користувачів злегказадрімав за терміналом і не проявляє ніякої активності. Час ЦП будепов'язане з цим процесом, тому що цей процес не виконує обміну і незавершився, тому що редактор готовий до роботи. У цей час всі залишилисякористувачі будуть змушені чекати пробудження заснув. Складетьсяситуація зависання. Це означає, що алгоритм, який хороший для першоговипадку, для цієї системи не годиться навіть при наявності самої потужної машини.
    Тому для завдань, які вирішують проблеми забезпечення великої кількостікористувачів обчислювальними послугами (інтерактивних завдань), застосовуютьсяінші алгоритми, що походять з інших критеріїв ефективності.

    Для такої системи підійде критерій часу очікування користувача: змоменту, як він послав замовлення на виконання якоїсь дії, до моментувідповіді системи на це замовлення. Чим ефективніше працює система, тим цесередньостатистичне час очікування в системі менше.

    Розглянемо ситуацію для другого випадку. У системі знаходиться деякийкількість процесів, і завдання планувальника розподілити час ЦП такимчином, щоб час реакції системи на запит користувача буломінімальним, або принаймні, гарантованим. Пропонується наступнасхема. У системі використовується деякий параметр (t, який називаютьквантом часу (у загальному випадку, квант часу - це деяке значення,яке може змінюватися під час налаштування системи). Всі безліч процесів,яке знаходиться в мультипрограмній обробці, поділяється на двапідмножини. Перше підмножина складають ті процеси, які ще неготові до продовження виконання: наприклад, ті процеси, які замовилисобі обмін і чекають його результатів. А є процеси, які готові довиконанню. Робота буде здійснюватися в такий спосіб. Той процес,який в даний момент часу займає ЦП, буде володіти ним донастання однієї з таких подій:

    1. Звернення із замовленням на обмін.

    2. Завершення процесу.

    3. Вичерпання виділеного даному процесу кванта часу (t.

    При настанні одного з цих подій планувальник ОС вибирає зпроцесів, готових до виконання, певний процес і передає йому ресурси
    ЦП. А вибирає він цей процес залежно від того алгоритмупланування, який був використаний в даній конкретній ОС. Наприклад,процес може вибиратися випадково. Другий спосіб полягає в тому, щовідбувається як би послідовний обхід процесів, тобто ми взяли вроботу спочатку один з процесів, потім він звільнився, і час ЦП буденадано наступного по порядку процесу з готових до виконання.
    Третім критерієм, за яким відбирається чергове завдання, може бутичас, що даний процес не обслуговувався ЦП. У цьому випадку системаможе вибирати процес, у якого такий час є найбільшим. Ці алгоритмиповинні бути реалізовані в ОС, а отже, вони повинні бути простими, інакшесистема буде працювати неефективно, сама на себе (хоча такі системи є:зокрема, цим страждає сімейство Windows).

    Такий тип ОС називається ОС поділу часу. Вона працює в режимі,при якому мінімізується час реакції системи на запит користувача. Уідеалі, за рахунок того, що час відповіді на запит мінімально, укористувача має створюватися ілюзія, що всі ресурси системинадані тільки йому.

    Тепер подивимося наступне завдання. Припустимо, у нас є літак,керований автопілотом, який на автопілоті проводить операціюзниження. У кожного літака є прилад, який вимірює висоту відлітака до поверхні землі. Режим роботи літака такий, що управлінняйого функціями за деякою заданою програмою здійснює комп'ютер.
    Отже, якщо у нас є система автопілота, і літак знижується, це системаповинна контролювати висоту польоту. Центральний комп'ютер цього літакаможе вирішувати кілька завдань: він може контролювати висоту польоту,рівень палива в баках, якісь показники роботи двигунів і т.д.
    Управлінням кожної з цих функцій займається свій процес. Припустимо, унас пакетна ОС, і ми уважно контролюємо рівень палива в баках. Прице, очевидно, виникає аварійна ситуація, адже літак продовжуєзнижуватися, а ОС цього не помічає.

    Припустимо, у нас система поділу часу. Одним з якостейсистеми поділу часу є неефективність за рахунок того, що всистемі передбачена велика кількість перемикань з процесу напроцес, а ця функція досить трудомістка. Та ж ситуація: висотапідходить до нуля, а ОС займається перевстановлення таблиць приписки. Такийваріант теж не підходить.

    Для вирішення такого роду завдань потрібні свої засоби планування. Уцьому випадку використовуються, так звані, ОС реального часу, основнимкритерієм яких є час гарантованої реакції системи навиникнення тієї чи іншої події з набору заздалегідь визначенихподій. Тобто в системі є набір подій, на які система в будь-якийситуації прореагує та розпізнає їх за деякий наперед заданий час.
    Для нашого прикладу такою подією може бути надходження інформації віддатчика висоти. Реально для ОС цього класу використовуються досить простіалгоритми. Всі планування полягає в цьому критерії, тобтогарантується обробка події за час, що не перевищує деякогопорогового значення. Але ОС реального часу звичайно має своєспецифічний пристрій, який визначається не тільки цим простималгоритмом планування, але і внутрішнім перебудовою системи.

    Підводячи певну риску під функцією управління використаннямчасу ЦП і планування ЦП, звертаю увагу на два факти. Перший фактце те, що ті алгоритми, які реалізовані в системі плануваннярозподілом часу ЦП багато в чому визначають експлуатаційні властивостіобчислювальної системи. Я спеціально наводив приклади, пропонуючивикористовувати різні ОС для різних цілей. Другий факт. Ми розглянули тритипових різновиди ОС: системи пакетної обробки, системи розділеннячасу і системи реального часу. На сьогоднішній день можна говорити проте, що система реального часу це окремий клас ОС. Гарантовано,
    ОС Windows не буде керувати якимись об'єктами, у яких це реальнечас дуже критично. Також не буде керувати такими об'єктами і ОС
    СОЛЯРИС або LINUX і т.д., тому що ці системи не є системамиреального часу.

    Перші два режими, пакетний і поділу часу, можна семуліроватьна таких загальноприйнятих ОС. Реально, великі і серйозні ОС єзмішаними системами, тобто у них є присутнім в елементах планування ЦПяк алгоритми, що дозволяють керувати рахунковими завданнями, так і алгоритми,що дозволяють управляти інтерактивними завданнями або завданнями налагоджувальний,для яких треба трохи ЦП.

    Прикладом такої організації планування ЦП може?? бути наступнасхема. Планувальник побудований на дворівневою схемою. Ми вважаємо, щобезліч завдань може містити, припустимо, рахункові завдання іінтерактивні завдання. Перший рівень визначає пріоритет між двомакласами задач і або віддає ЦП спочатку лічильної задачі, або інтерактивноїзавданню. А другий рівень визначає те, про що ми говорили перед цим, тобтояк вибрати завдання в межах одного класу і як її перервати. Таказмішана система може працювати таким чином. Перший рівеньпланування буде працювати за таким принципом: якщо на даний момент немаєжодної інтерактивної завдання, готової до виконання (а це цілком реальнаситуація, якщо користувачі займаються редагуванням тексту), то ЦПпередається рахунковим завданням, але додається одна умова: як тількиз'являється хоча б одна інтерактивна завдання, рахункова завдання переривається іуправління передається блоку інтерактивних завдань. Це те, що стосуєтьсяперші функції управління процесами.

    Управління підкачкою і буфером введення.

    Тут алгоритми планування потрібні, але не настільки критичні. Уреальних системах часто поєднується буфер підкачки, тобто той простірна зовнішніх носіях, куди здійснюється відкачування інформації з оперативноїпам'яті, і буфер введення процесів. Це перше зауваження.

    Друге зауваження. Сучасні ОС досить «ліниві» і відкачуваннячасто здійснюють не одиницями блоків пам'яті процесів, а відкачуєтьсявесь процес. Тут виникає два питання: який критерій заміщенняпроцесу і який критерій вибору з буфера того процесу, який нампотрібно ввести для мультипрограмній обробки. Самий найпростіший варіантполягає у використанні часу перебування в тому чи іншому стані. Упершому випадку, якщо ми вирішуємо питання про відкачування процесу з активногостану з числа оброблюваних в область підкачки, то можемо взяти тойпроцес, який найдовше перебуває в стані обробки поастрономічного часу. Зворотний процес може бути симетричний, тобто миможемо брати з буфера введення процесів той процес, який найдовше тамзнаходиться. Насправді, це прості і реальні алгоритми планування, івони можуть змінюватися, з міркування різних критеріїв. Один зкритеріїв, якщо всі завдання поділені на різні категорії, тобто можутьбути завдання ОС - в цьому випадку вони розглядаються в першу чергу (ісеред них діє алгоритм оцінки часу перебування їх там-то) і всеінші завдання. Така модель схожа на модель життєвої несправедливостів суспільстві, де є всемогутні люди, яким все можна, а єлюди, які можуть і почекати.

    Управління розділяються ресурсами.

    Тут ми позначимо тільки проблему, тому що конкретні її рішеннями розглянемо на прикладі ОС UNIX.

    Припустимо, є два процеси, які працюють на загальнихпросторі оперативної пам'яті. При цьому колективні ресурси можутьпрацювати в різних режимах, тобто не виключена ситуація, коли два процесиреально знаходяться на різних машинах, але вони пов'язані загальному полем оперативноїпам'яті. У цьому випадку виникає проблема з буферизацією роботи з пам'яттю,тому що на кожній з машин є свої механізми буферизації читання -запису. Тут виникає нехороша ситуація, коли стан фізичноїпам'яті не відповідає реальному її вмісту. А також виникаютьдеякі проблеми для ОС, що працює на двох машинах.

    Наступна проблема. Нехай є два процеси, які працюють наодній машині. Повинні бути певні кошти, які дозволятьсинхронізувати доступ до поділюваного пам'яті, тобто дозволять створитиумови, за яких обмін кожного з працюючих процесів з оперативноюпам'яттю буде відбуватися коректно. Це означає, що при кожному читанніінформації з розділяється пам'яті повинно бути гарантовано, що всікористувачі, які почали писати щось у цю пам'ять, вже цей процесзавершили - повинна бути синхронізація по обміну з пам'яттю, що розділяється.

    Насправді при вирішенні завдань часто не потрібно такихподілюваних ресурсів, як спільна пам'ять, але хотілося б, щоб процеси,які функціонують одночасно, могли чинити якийсь вплив одинна одного. Вплив, аналогічне апарату переривань. Для реалізації цього убагатьох ОС є засоби передачі сигналів між процесами, тодівиникає деяка програмна емуляція переривань. Один процес каже --передай сигнал іншому процесу. В іншому процесі виникає перериваннявиконання цього процесу і передача управління на деякувизначену функцію, яка має опрацювати отриманий сигнал. Цетретя функція ОС.

    Я звернув вашу увагу на такі функції ОС, які впливають на їїексплуатаційні властивості. Реально будь-яка ОС також містить величезний набірінших функцій, які забезпечують роботу цієї системи.

    Лекція № 6

    Минулого лекції ми говорили про те, що практично будь-якаопераційна система забезпечує буферизацію введення/виводу. Насправді,це одна з основних функцій операційної системи. За аналогією боротьби зрізними швидкостями доступу до різних компонентів обчислювальної системиопераційна система вводить у своїх межах програмну буферизацію,яка також вирішує проблеми згладжування часу доступу і проблемисинхронізації в цілому (приклад з пристроєм друку). Згладжування проблемдоступу полягає в тому, що практично кожна операційна системамає КЕШ-буфера, які акумулюють звернення до зовнішніх запам'ятовуючихпристрою (ВЗП) аналогічно апаратної буферизації при роботі з оперативноюпам'яттю. Це дозволяє істотно оптимізувати операційну систему.
    Ознакою наявності такої буферизації є вимога припинитивиконання операційної системи перед завершенням роботи машини. Наприклад, працюючиз операційною системою MS-DOS, можна вимкнути комп'ютер в будь-який моментчасу, тому що такий буферизації в ній немає. В операційних системахтипу Windows і UNIX вважається некоректним просто вимкнути машину припрацюючій системі, в цьому випадку є ймовірність, що відбудетьсядеяка втрата інформації (так як, наприклад, моменти замовлення на обмін ібезпосередньо обміну далеко не збігаються). Ступінь цієї буферизаціївизначає реальну ефективність системи. Коли на нашому факультеті стализ'являтися Pentium-и, то виявилося, що при роботі з Windows 95практично немає якісного розходження між тим, чи працює система на
    486 процесорі або на Pentium-е. Це говорить про те, що ефективністьсистеми не впирається в ефективність роботи із зовнішнім пристроєм. Якщовзяти операційну систему UNIX, то ця різниця буде помітна, тому щотут швидкодію процесора сильніше впливає на якість роботи системи,ніж чим для Windows 95, тому що в системі Windows 95 обмінів ззовнішнім носієм значно більше за рахунок деякої «тупості» алгоритмівбуферизації роботи із зовнішніми пристроями.

    2. Файлова система.

    Ми з вами говорили, що кожна з операційних систем оперуєдеякими сутностями, однією з яких є процес. Є другийсутність, що також важлива - це поняття файлу. Файлова система - цекомпонент операційної системи, що забезпечує організацію створення,зберігання та доступу до іменованих розділами даних. Ці іменовані набориданих називаються файлами.

    Основні властивості файлів

    1. Файл - це якийсь об'єкт, що має ім'я, і що дозволяє оперувати звмістом файлу через посилання на це ім'я. Зазвичай ім'я - цепослідовність деяких символів, довжина якої залежить від конкретноїопераційної системи.

    2. Незалежність файлу від розташування. Для роботи з конкретним файломне потрібно мати інформацію про місцезнаходження цього файлу на зовнішньомупристрої.

    3. Набір функцій введення/виводу. Практично кожна операційна системаоднозначно визначає набір функцій, що забезпечує обмін з файлом. Зазвичай,Цей набір функцій складається з наступних запитів:

    1. Відкрити файл для роботи. Відкрити можна або вже існуючий, або новий файл. Може виникнути питання - навіщо відкривати файл?

    Чому не можна відразу читати і писати в цей файл? Насправді, це є засіб, для того щоб централізовано оголосити операційній системі, що файл буде працювати з конкретним процесом. А вона вже з цих відомостей може прийняти якісь рішення (наприклад, блокування доступу в цей файл для інших процесів).

    2. Читання/запис. Зазвичай обмін з файлами може організовуватися деякими блоками даних. Блок даних, з яким відбувається обмін, несе двояку сутність. З одного боку, для будь-якої обчислювальної системи відомі розміри блоків даних, які найбільш ефективні для обміну, тобто це програмно-апаратні розміри. З іншого боку, ці блоки даних при реальному обміні можуть варіюватися досить довільно програмістом. У функції читання/запису звичайно фігурує розмір блоку даних для обміну та кількість блоків даних, які необхідно прочитати або записати. Від обраного розміру блоку даних може залежати ефективність реальних обмінів, тому що, припустимо для деякої машини розміром ефективного блоку даних є 256Кб, а ви хочете обміни проводити за

    128Кб, і ви виконуєте два звернення для прочитання ваших логічних блоків по 128Кб. Дуже ймовірно, що замість того, щоб за один обмін прочитати блок у 256Кб, ви звертаєтеся два рази до одного блоку і читаєте спочатку одну половину, а потім іншу. Тут є елементи неефективності, хоча вони можуть згладжуватися «розумною» операційною системою, а якщо вона не згладжує, то це вже ваша вина.

    3. Управління файловим вказівником. Практично з кожним відкритим файлом зв'язується поняття файлового вказівника. Цей покажчик, за аналогією з регістром лічильника команд, в кожний момент часу показує на наступний відносний адреса по файлу, з яким можна зробити обмін. Після обміну даними з блоком покажчик переноситься на позицію через блок. Для організації роботи з файлом потрібно вміти керувати цим покажчиком. Є функція управління файловим вказівником, яка дозволяє довільно (в межах доступного) переміщати покажчик по файлу. Покажчик є деяка невелика, доступна програмі, яка пов'язана з функцією відкриття файлу (що створює цю змінну).

    4. Закриття файлу. Ця операція може здійснюватися двома функціями: 1) Закрити і зберегти поточний зміст файлу. 2) Знищити файл.

    Після закриття файлу всі зв'язки з ним припиняються, і він приходить в деякий канонічне стан.

    4. Захист даних. Багато стратегічні рішення повторюються як наапаратному рівні, так і на рівні операційної системи. Якщо ми згадаємомультипрограмному режим, то однією з необхідних умов його існуванняє забезпечення захисту (пам'яті і даних). Якщо ми розглянемо файловусистему, то вона так само, як і операційна система, може бутиоднокористувацький. У цьому випадку проблеми захисту даних не існує,тому що людина, яка працює з цією операційною системою, єгосподарем всіх файлів. Приклади однокористувацьких систем - MS-DOS або
    Windows 95. Можна завантажити машину і знищити всі файли іншихкористувачів, які розміщені на диску, тому що в цих системахзахисту немає ніякої. Многопользовательская система забезпечує коректнуроботу багатьох користувачів. MS-DOS також може працювати в режимімультипрограмування, але він не досить коректний, тому що помилка водному процесі може привести до затирання операційної системи і сусідньогопроцесу. Також і в операційній системі Windows 95 може працювати багатокористувачів, але ця робота некоректна, тому що ця операційнасистема не забезпечує всі права захисту. Отже, розрахована на багато користувачівсистема повинна забезпечувати захист інформації від несанкціонованогодоступу. Насправді, проблема захисту пов'язана не тільки з файловоюсистемою. Реально операційна система забезпечує захист даних у всіхобластях: це і файли, і процеси, та ресурси, що належать процесам,запущеним від імені одного користувача. Тут я звертаю вашу увагу нацей факт, тому що для файлів це найбільш критична точка.

    Основні властивості файлових систем.

    Файлова система природно включає в себе всі ті властивості, якібули перераховані для файлів, але додає ще деякі. Ці властивостіпов'язані зі структурною організацією файлової системи.

    Давайте розглянемо якийсь простору ВЗП, і розглянемо, як миможемо організувати розміщення файлів в межах цього простору.

    1. Одноуровневая організація файлів безперервними сегментами. Термін
    «Однорівнева» означає, що система забезпечує роботу з файламиунікально іменованих. У межах простору ВЗП виділяється деякаобласть для зберігання даних, яка називається каталог. Каталог маєнаступну структуру:

    | ім'я | початковий блок | кінцевий блок |
    | | | |
    | | | |
    | | | |

    «Початковий блок» посилається на деякий відносний адресапростору ВЗП, з якого починається файл із заданим ім'ям. «Кінцевийблок »визначає останній блок даного файлу. Функція відкриття файлузводиться до знаходження в каталозі імені файлу і визначення його початку ікінця (реально дані можуть займати кілька менше місця, про це будесказано пізніше). Ця дія дуже просте, до того ж каталог можна зберігатив пам'яті операційної системи, і тим самим зменшити кількість обмінів.
    Якщо створюється новий файл, то він записується на вільне місце.
    Аналогічно каталогу імен може матися таблиця вільних просторів
    (фрагментів).

    Читання/запис відбувається майже без додаткових обмінів, тому що привідкритті ми отримуємо діапазон розміщення даних. Читання відбувається вВідповідно до цієї блокової структурою і ніяка додаткова інформаціяне вимагається, відповідно обмін відбувається дуже швидко.

    Що буде, коли потрібно записати в такий файл додатковуінформацію, а вільного простору за цим файлом немає? У цьому випадкусистема може надійти двояко. Перше, вона скаже, що немає місця і виповинні зробити щось самі, наприклад, запустити якийсь процес, якийперенесе це фото в інше місце і додасть потрібну інформацію. Цейперенесення - функція досить дорога. Друга можливість - в обмінібуде відмовлено. Це означає, що при відкритті файла потрібно було заздалегідьзарезервувати додаткове місце; при цьому файлова система перевіряєрозмір вільного буфера, і якщо його мало, то шукає вільне місце там, деце фото розміститься.

    Отже, ми бачимо, що ця організація проста, при обмінах ефективна, алеті, кому бракує простору для файлу починається неефективність. До тогож, при довготривалій роботі такої файлової системи на диску трапляється тож, що у нас траплялося з оперативною пам'яттю - фрагментація. Тобтоситуація, коли є вільні фрагменти, але серед них немає такого, кудиможна було б розмістити файл. Боротьба з фрагментацією для такої організаціїфайлової системи - це періодична компресія, коли запускається довгий,важкий і небезпечний для вмісту файлової системи процес, якийпритискає всі файли щільно один до одного.

    Така організація може бути придатна для однокористувацькийфайлової системи, тому що при великій кількості користувачів дужешвидко відбудеться фрагментація, а постійна запуск компресії - смерть длясистеми. З іншого боку, система проста і не вимагає майже ніякихнакладних витрат.

    2. Файлова система з блокової організацією файлів. Простір ВЗПрозділено на блоки (ті самі блоки, які ефективні для обміну). Уфайлової системи такого типу розподіл інформації відбувається аналогічнопоширенню інформації процесу в оперативній пам'яті з сторінковоїорганізацією. У загальному випадку, з кожним ім'ям файлу пов'язаний набір номерівблоків пристрої, у яких розміщені дані цього файлу. Причому, номерицих блоків мають довільний порядок, тобто блоки можуть бути розкиданіпо всьому пристрою в довільному порядку. При такій організації немаєфрагментації, хоча можуть бути втрати кратні блоку (якщо файл зайняв хоча бодин байт в блоці, то весь блок вважається зайнятим). Отже, немаєпроблем компресії, і ця система може використовуватися прибагатокористувацької організації.

    У цьому випадку з кожним файлом пов'язаний набір атрибутів: ім'я файлу, ім'якористувача, по яких відбувається доступ до файлу. Така організаціядозволяє уникнутиунікальності імен, яка була потрібна в попередньомувипадку. У такій системі потрібно унікальність імен лише серед файліводного користувача.

    Організація таких файлів може бути через каталог. Структура каталогуможе бути наступна. Каталог містить рядки, кожна i-та рядоквідповідає i-тому блоку файлової системи. У цьому рядку міститьсяінформація про те, чи є цей блок вільним або зайнятим. Якщо вінзайнятий, то в цьому рядку вказується ім'я файлу (або посилання на нього), ім'якористувача, і може знаходитися якась додаткова інформація.

    При обміні система може діяти по-різному. Або при відкриттіфайлу система пробігає по всьому каталогу і будує таблицю відповідностілогічних блоків файлу, їх розміщення на диску. Або при кожному обмініздійснюється пошук цієї відповідності.

    Така організація файлової системи є однорівневої в рамкаходного користувача, то є всі файли пов'язані в групи за приналежністю доякомусь користувачеві.

    3. Ієрархічна файлова система. Всі файли файлової системипобудовані у структуру, що називається деревом. У корені деревазнаходиться, так званий, корінь файлової системи. Якщо вузол дереває листом, то це файл, який може містити дані користувача,або бути файлом-каталогом. Вузли дерева відмінні від листа єфайлами-каталогами. Іменування в такій ієрархічної файлової системи можевідбуватися різними способами. Перший тип - іменування файлу щодонайближчого каталогу, тобто якщо ми подивимося файли, які єнайближчими для каталогу F0, - це файл F1, який є такожкаталогом, і файл F2. Для успішного іменування в такій системі на одномурівні не можуть повторюватися імена. З іншого боку, так як всі файлизв'язані за допомогою дерева, ми можемо говорити про, так званому, повному іменіфайлу, яке складається з усіх імен файлів, які складають шлях відкореня файлової системи до конкретного файлу. Повне ім'я файлу F3 будепозначається:/F0/F1/F3. Така організація хороша тим, що вонадозволяє працювати як з коротким ім'ям файлу (якщо системномається на увазі, що ми працюємо в цьому каталогі), так і з повним ім'ямфайлу. Повні імена файлів є шляхи, а в будь-якому дереві від його кореня добудь-якого вузла існує єдиний шлях, отже, цим вирішуєтьсяпроблема уніфікації імен. Перший раз такий підхід був використаний вопераційній системі Multix, яка розроблялася в університеті Берклів кінці 60-х років. Це гарне рішення стало з'являтися згодом добагатьох операційних системах. Відповідно до цієї ієрархії, кожному з файлівможна прив'язувати якісь атрибути, пов'язані з правами доступу. Правамидоступу можуть володіти як для користувача файли, так і каталоги.
    Структура цієї системи хороша для організації розрахованої на багато роботи,за рахунок відсутності проблеми іменування, і така система може дуже добренарощуватися.

    4. Персоніфікація і захист даних в операційній системі. Цей нюанс,який ми зараз розглянути

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status