Системне програмування і операційні системи

Коломийський коледж комп’ютерних наук









Кафедра комп’ютерних технологій









Контрольна робота





з предмету: Системне програмування і операційні системи



Виконала:

студентка заочного відділу

ІІІ курсу групи З-КН-31

Гаврищук Оксана

Перевірила:

Яворська З.В.















Коломия 2000 рік

Сторінкова організація пам’яті.



Сторінкова організація пам’яті представляє собою інше рішення проблеми фрагментації. Сторінкова організація використовується в цілому ряді сучасних обчислювальних машин, наприклад, в ЕВМ х DS 940.

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

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

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

	В результаті компромісу враховуючого ці і другі заперечуючі тенденції у багатьох системах з сторінковою організацією сторінки мають розмір 4000 байтів.

	З сторінковою організацією зв’язаний ряд важливих проблем.

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

Сегментна організація пам’яті.



	Сегментація представляє собою одночасно схему управління памяттю і інформацією.

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

	Сегментація полегшує реалізацію динамічних зв’язків.

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

	При практичній реалізації системи з сегментним адресним простором для спрощення апаратури і програмування використовуються цілий ряд методів. Звернення до сегменту робиться по його номеру, а не по імені.

	З точки зору програміста, сегментація адресного простору володіє рядом привілей. З кожним сегментом можуть бути зв’язані спеціальні атрибути, виділяючі правила доступу, такі як <тільки читати і тільки читати> <тільки виконувати> слова всередині сегмента, які виділені як доступні тільки для виконання не можуть бути прочитані як дані, і на це місце не може бути записана яка-небудь нова  інформація.

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

	При застосуванні сегментації виникають ті ж самі проблеми, що і при розподіленні пам’яті переміщуючими розділами.





	Сегментно-сторінкова організація пам’яті.



Було б дуже привабливо об’єднати переваги всіх раніше розглянутих методів.

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

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

	Для подолання цієї проблеми дуже ефективним є  показовий метод запам’ятовування найбільш часто використаних сегментів і сторінок в невеликих швидкодіючих асоціативних пам’ятях. Цей метод використаний в обчислювальних машинах ІВМ модель 67 і НіS645. Але навіть примінення буферів асоціативної пам’яті не виключає повністю зниження швидкодії визиваюче багаторівневою схемою адресації. Звичайно це зниження швидкодії вдається зробити меншим десяти процентів, однак воно суттєво залежить від характеристик програми і ефективності роботи буферів асоціативної пам’яті.

	Само собою розуміється сегментація і робота з сторінками приводить до збільшення вартості обчислювальної системи.

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





















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



	Система UNIX  реалізована на багатьох макро- і мікрокомпютерів. 

	Дискова операційна система UNIX є промисловим стандартом для багатокористувацьких 16-бітних мікропроцесорних систем. Якщо система СР/М стандрартна для 8-бітних однокористувацьких мікропроцесорних систем, а РС/MS-DOS - для однокористувацьких 16-бітних систем, то UNIX домінує на ринку 16-бітних багатокористувацьких компютерів. Вперше вона була розроблена К. Топмпсоном і Д.Рітчі на початку 70-х років для мінікомпютерів DEC PDP-11 (PDP-11/45 i PDP-11/70)  на фірмі Bell Laboratories. Пізніше система була адаптована для мідікомпютерів DEC VAX.

	Звичайно, з часом її адаптували для 16-бітних мікропроцесорних систем на базі ЦП 8086, Z8000 i MCS 68000. Система UNIX написана на мові Сі, тому її легко реалізувати на будь-якому комп’ютері, який має компілятор Сі.

	Ця система найбільш популярна для мультипрограмних систем з розподілом часу (СР/М підтримує тільки однопрограмні системи). Останнім часом з’явилось досить багато різновидностей UNIX, наприклад, XENIX, CROMIX, ZEUS i ISIS. Система UNIX широко застосовується в університетах для навчання студентів мовам програмування. Керуючи апаратними ресурсами комп’ютера і забезпечуючи планування завдань (програм), UNIX в той же час пропонує багато програм-утиліт, які в інших операційних системах переважно поставляються окремо. У всі встроєні утиліти входять редактори і компілятори таких мов, як ПАСКАЛЬ, Сі, ФОРТРАН-77, БЕЙСІК і КОБОЛ.

	Основні відмінності між однокористувацькими системами (СР/М і РС/MS-DOS) і системою UNIX заключається в наступному:

	1) це система для багатьох користувачів, тобто багато користувачів можуть робити запити програм і використовувати ресурси компютера;

	2) це мультизадачна система, тобто користувач може виконувати одночасно декілька завдань, наприклад, редактувати один файл і друкувати інший.

	

Файлова структура.

	Якщо в системі СР/М є єдиний каталог,  який містить імена всіх файлів, то UNIX дозволяє користувачу мати окремий каталог, в якому при необхідності можна побудувати інші підкаталоги.

	У кожного користувача є свій особистий каталог. Переважно його ім’я співпадає з реєстраційним іменем користувача (тобто з іменем, яке користувач вводить на початку роботи з системою). Особисті каталоги можуть мати підкаталоги, а будь-який підкаталог може бути сумішшю підкаталогів і файлів. Малюнок нагадує дерево (особисті каталоги - це гілки, підкаталоги -  менші гілки, файли - листки, а корінь по суті є стовбуром.

	При наявності декількох рівнів каталогів ім’я файла повністю представляється його маршрутним іменем

	/usr/smith/accounts/tax

	/usr/smith/accounts/sales

	/usr/smith/accounts/current

	/usr/smith/chapter2

	

	В командах і іменах файлів системи UNIX застосовують малі букви.

	Коли користувач працює в конкретному каталозі, він вправі звертатися до файлу чи каталогу по скороченому імені. Наприклад, при роботі в каталозі smith  імя файла має вид

	/accounts/current.

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

	Для управління каталогами призначені наступні команди:

	1. mkdir.  Створює каталог. Якщо, наприклад, працюючи в особистому каталозі jones, ввести команду

	mkdir reports,

	то створюється новий каталог з маршрутним іменем

	/jones/reports.

	2. cd. Ця команда (в ранніх версіях UNIX вона називається chdir) вона називається chdir) призначена для зміна каталога. Наприклад, команда

	cd/smith/accounts

	викликає зміну поточного робочого каталога користувача в каталозі jones на каталог /smith/accounts. Зазначимо, що команда переміщає користувача на один рівень каталогів вверх.	

	3. rmdir. Ця команда здійснює знищення каталога. Наприклад, наступна команда дозволяє користувачу, який працює в свому особистому каталозі  jones, знищити каталог ledger:

	rmdir leger.

	Каталог знищується лише в тому випадку, якщо він не містить файлів (про знищення файлів).

	4. pwd. (індикація робочого каталогу). Ця команда не потребує аргументів і показує повне маршрутне ім’я поточного робочого каталога. Вона зручна в тих ситуаціях, коли користувач забув, в якому каталозі він працює. Якщо, наприклад, користувач працює в каталозі ledger, то при вводі команди

	pwd 

система UNIX реагує індикацією

	/usr/jones/ledger.

	

Управління файлами.



	Коли система UNIX очікує команди користувача, вона виводить на екран знак % (або $). Користувач може вводити більше 20 команд оболонки UNIX. Оболонка представляє собою командний процесор UNIX; є дві версії програми оболонки: С-оболонка виводить в якості стимула знак %, а Bourne-оболонка – 

знак $.

	В системі UNIX файли складаються тільки з потоку байт, тобто символів, які вводить користувач. Файли користувача не мають визначеної структури і можуть бути документами, програмами або чимось ще.

	1. ls.  Ця команда розкриває зміст каталога. Наприклад, при вводі

		ls 

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

	 	ls ledger

	вказаний аргумент ledger, тому вона показує, що міститься в конкретному каталозі ledger. 

	Total=30

	drwxrwxrwx   1 smith   72   Feb   23   16.35   accounts

	-zwxrwx--x      1 smith      648    Mar     02   09.43



	Тут:

	а) перша буква d означає каталог, а дефіс - файл;

	б) наступні три букви rwx означають користувача;

	в) наступні три букви показують групу;

	 г) останні три  символа першого поля (rwx i - -x означають "глобальний);	д) ім’я smith  відповідає реєстраційному номеру;

	ж) числа 72 і 648 визначають довжину в байтах;

	з) далі вказані дата і час останньої зміни файла або каталога;

	і) в останньому полі міститься ім’я файла або каталога.

	Букви rwx показують права на доступ і використовування файлів: r-зчитування, w-запис, x- виконання.

	2. cat. Ця команда здійснює  зчитування файла. Наприклад, в команді

	cat letters 

	на термінал виводиться лістинг файла letters. Якщо вказаний файл в каталозі відсутній, слід натиснути клавішу  CONTROL - D, щоб UNIX не намагався створити файл.

	У випадку довгого файла вихід команди cat швидко заповнює екран, а потім спостерігається скролінг.

	3. rm. Ця команда призначена для  знищення файла. Наприклад, по команді

	rm gloria

	із поточного каталога видаляється файл gloria.

	4. ср. Це команда копіювання. Вона записується у вигляді cp orders purchased

	і копіює файл ordered  в файл purchased (звичайно, файл ordered при цьому зберігається).

	5. mv. Ця команда, наприклад, у вигляді 

	 mv experments results

	змінює імя файла experiments на results. Ця ж команда застосовується для зміни імен каталогів.

	6. pr. Дана команда призначена для друку файла на системному принтері.

	В системі 	UNIX є інші команди управління файлами, наприклад, команди для злиття файлів (sort), пошуку в файлі конкретного набору (grep) і підрахунку числа символів в файлі (wc).

	





Додаткові засоби оболонки UNIX.



	Багато команд оболонки UNIX потребують наявності засобів вводу-і (або) виводу, і без спеціальних вказівок для цього застосовується термінал оператора. Наприклад, команда

	Cat analysis6 

Виводить файл analysis6 на термінал. Однак в системі UNIX  передбачені засоби пере направлення вводу і виводу.

Оператор >. Він перенаправляє  вихід в файл.

Оператор >>.  Він додає вихід в файл.

Оператор <. Він призначений для перенаправленя входу з файла.

Оператор |.  Оператор кнвейєризації у вигляді lswc-w 

	Направляє вихід команди ls (список імен всіх файлів в поточному робочому каталозі) в команду ws-w підрахунку числа слів. На екрані спостерігається тільки вихід команди ws-w. Вихід першої команди є водом для другої команди. Така можливість спільно з об’єднанням операторів пере направлення в одній команді робить систему UNIX надзвичайно гнучкою.

Наведемо інші корисні команди оболонки:

Date – ініціює поточний час і дат;

Who – показує інших користувачів, які зареєстровані в системі;

Learn – доступ до довідника  по роботі з системою UNIX;

Man – отримання інформації про будь-яку команду UNIX (оперативне керівництво).



Реєстрація і організація пошти.



	Після запуску UNIX (завантаження її з диска в пам’ять) на кожному терміналі користувача з’являється повідомлення:

login:

	Перш ніж отримати доступ до засобів UNIX, користувач повинен вести своє зареєстроване ім’я. Потім UNIX запитує пароль

password:

	При друкуванні пароля він не індукується на екрані, щоб його не могли побачити інші люди. Якщо введений правильний пароль, то UNIX виводить стимул % (або $), і користувачу тепер доступні всі розглянуті вище команди UNIX. Після закінчення роботи користувач повинен  вийти з системи, ввівши

logout

	Якщо користувач не отримав повідомлення login  на свому терміналі, то він мoже натиснути клавішу CONTROL-D для реініціації UNIXна свому терміналі.

	Після реєстрації користувач може обмінюватися поштою між своїм терміналом і іншими користувачами. Зразу після реєстрації UNIX виводить:

you have mail  (для вас є почта).

Якщо користувачу були надіслані повідомлення іншими користувачами, їх можна прочитати, ввівши

mail

Система UNIX відповідає числом повідомлень і виводить стимул &. Щоб прочитати свою пошту, користувач вводить

	p – для зчитування першого повідомлення;

	d – для видалення першого повідомлення.

і т.д. для кожного повідомлення. Для виходу із пошти слід ввести  q (quit).

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

mail jones

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

	Користувач jones буде повідомлений про наявність пшти, коли він буде реєструватися або запитувати пошту. Можна навіть послати повідомлення самому собі, наприклад, для якого-небудь нагадування при наступній реєстрації.

З допомогою команди write  реалізується діалогова форма спілкування між користувачами. Якщо користувач з реєстраційним іменемthomas  вводить команду

write jones

то на екрані користувача jones  з’являється повідомлення

message from thomas

	Потім thomas  відповідає своїм повідомленням, і коли він закінчує кожний рядок натисканням клавіші Return,  рядок з’являється на терміналі jones.  Для закінчення діалога слід натиснути клавішу  CONRROL-D. 	Користувач jones,  бажаючи продовжити діалог, може ввести

write thomas

	Дозволяється заблокувати почту і засіб write,  якщо користувач хоче попрацювати без переривань. Наступні команди блокують електронну передачу повідомлень:  biff n -  блокує почту,  mesg n - блокує write.

Для вирішення передачі застосовуються команди  biff у – дозволяє пошту,  mesg y  - дозволяє write/