- •Глава 1
- •Введення
- •Операційна система як менеджер ресурсів
- •Історія операційних систем
- •Ibm 1401 записує пакет завдань на магнітну стрічку (б); оператор приносить вхідні
- •360. Ми не можемо тут дати повну оцінку цієї книги, але достатньо буде сказати, що на її обкладинці зображено стадо доісторичних тварин, загрузли у
- •77, 82, 253, 285]. Системі multics також присвячений все ще активний web-сайт www.Multicians.Org, з великою кількістю інформації про систему, її проектувальників і користувачів.
- •Ibm захотіла деяких удосконалень у програмі, Білл Гейтс запрошуємо
- •Xerox [307]. Тоді Джобе приступив до створення Apple з графічним інтерфейсом. Це привело до проекту Lisa, який був дуже дорогий і зазнав комерційних
- •Онтогенез повторює філогенез
- •Серверні операційні системи
- •Операційні системи реального часу
- •VX Works і qnx є добре відомими операційними системами реального часу.
- •Вбудовані операційні системи
- •Огляд апаратного забезпечення комп'ютера
- •Процесори
- •Пристрої введення-виведення
- •Процесори
- •Взаємоблокировка
- •Управління пам'яттю
- •Введення-виведення даних
- •Безпека
- •Оболонка
- •Повторне використання ідей
- •Системні виклики
- •Системні виклики для управління процессами
- •Лістинг 1.1. Усічена оболочка1
- •Системні виклики для управління файлами
- •Системні виклики для управління каталогами
- •Iink ("/ usr/jim/memo", "/ usr / ast / note"): то файл memo в каталозі Джима з'явиться у каталозі Аста під назвою note.
- •Різні системні виклики
- •Багаторівневі системи
- •Віртуальні машини
- •Екзоядро
- •Модель клієнт-сервер
- •Дослідження в області операційних систем
- •Короткий огляд наступних глав
- •Одиниці виміру
- •1024 Байта, а не 1000 байт. Точно так же 1 Мбайт містить 220 a 048 576) байт,
Системні виклики для управління файлами
Багато системні виклики мають відношення до файлової системи. У цьому розділі ми розглянемо виклики, що працюють з окремими файлами, а в наступному розділі звернемося до тих, які оперують каталогами або файлової системи у цілому. Щоб прочитати або записати файл, його спочатку потрібно відкрити за допомогою виклику open. Для цього виклику вказується ім'я файлу (задається або абсолютний шлях до файлу, або посилання на робочий каталог) і код O_RDONLY, O_WRONLYnnH O_RDWR, що означає, що файл відкривається для читання, запису або і того й іншого. Для створення нового файлу використо-вується код O_CREAT. Повертається дескриптор файлу потім можна вжити при читанні або запису. Потім файл закривається за допомогою виклику close, який робить дескриптор файлу доступним при наступному відкритті (open).
Найбільш часто використовуваними викликами, без сумніву, є read і write.
Виклик read ми вже обговорювали, write має ті ж самі параметри. Незважаючи на те що більшість програм читає і записує файли з по-
допомогою послідовного доступу, деяким прикладним програмам необхідна можливість доступу до будь-якої, випадково вибраної частини файлу. Зв'язаний
з кожним файлом покажчик містить поточну позицію у файлі. Коли читання
(Запис) здійснюється послідовно, він зазвичай вказує на байт, який повинен бути прочитаний (записано) наступним. Виклик lseek може змінити значення
значення позиції покажчика, так що наступний виклик read або write розпочне операцію де-небудь в іншій ділянці файла.
У дзвінка 1 seek є три параметри: Перший - це ідентифікатор файлу, другий - позиція у файлі, а третій каже, чи є другий параметр позицією у файлі відносно початку файлу (абсолютна позиція), щодо поточної позиції або щодо кінця файлу. Виклик 1 seek повертає абсолютну позицію у файлі після зміни покажчика. Для кожного файлу UNIX зберігає такі дані: тип файлу (звичайний, спеціальний, каталог і т. д.), розмір, час останньої зміни та іншу інформацію. Програма може запитати цю інформацію через системний виклик stat. Його перший параметр визначає необхідний файл, а другий вказує на структуру, куди потрібно помі-стити інформацію.
Системні виклики для управління каталогами
У цьому розділі ми розглянемо деякі системні виклики, пов'язані швидше до каталогів і файлової системи в цілому, ніж просто до певного файлу, як у попере-дньому розділі. Перші два виклики, mkdir і rmdir, відповідно створюють і видаляють порожні каталоги. Наступний виклик-link. Він дозволяє одному файлу з'являтися під двома або більше іменами, часто в різних каталогах.Цей виклик зазвичай використовується, коли кілька програмістів, які працюють в одній команді, повинні спільно використовувати один загальний файл. Тоді цей
файл може з'явитися в каталозі в кожного з програмістів, можливо, під іншим ім'ям. Поділ (спільне використання) файлу - це не те ж саме, що копіювання файлу для кожного члена команди. При поділі файлу зміни, вироблені одним програмістом, негайно стають видимими для інших - все відбувається в одному файлі. А при створенні копії файлу подальші зміни не впливають на інші копії цього файлу.Щоб побачити, як працює виклик link, розглянемо ситуацію на рис. 1.19, а.Два користувача, ast wjim, мають свої власні каталоги ast і jim з файлами.
Якщо тепер користувач ast запустить програму, що містить системний виклик