- •Содержание
- •Лекция №7. Планирование процессов. Алгоритмы планирования процессов. 35
- •Лекция №8. Вытесняющие и невытесняющие алгоритмы планирования. Взаимодействие процессов. 40
- •Лекция №13. Файлы. Типы файлов. 83
- •Предисловие
- •Лекция №1. Этапы развития операционных систем.
- •Лекция №2. Общие сведения об ос.
- •По способу организации вычислений:
- •По назначению (областям использования):
- •По режиму обработки (Поддержка многозадачности):
- •По количеству одновременно работающих пользователей:
- •По концепции организации:
- •По особенностям аппаратных платформ:
- •Лекция №3. Интерфейс. Операционное окружение.
- •Вспомогательные модули ос (модули-приложения)
- •2. Микроядерная архитектура ос
- •3. Монолитное ядро.
- •Лекция №5. Обработка прерываний.
- •Лекция №6. Процессы.
- •Лекция №7. Планирование процессов. Алгоритмы синхронизации процессов.
- •Лекция №8. Вытесняющие и невытесняющие алгоритмы планирования. Взаимодействие процессов.
- •Взаимодействие процессов
- •Лекция №9. Ввод-вывод. Управление вводом-выводом.
- •Организация программного обеспечения ввода-вывода
- •3. Независимое от устройств программное обеспечение ввода-вывода
- •4. Пользовательский слой программного обеспечения.
- •Лекция №10. Память. Управление реальной памятью.
- •Лекция №11. Методы распределения без использования внешней памяти.
- •1. Распределение памяти фиксированными разделами (схема с фиксированными разделами).
- •2. Распределение памяти разделами переменной величины
- •3. Перемещаемые разделы
- •Лекция №12. Виртуальная память. Методы виртуализации памяти. Понятие виртуальной памяти
- •Рассмотрим подробнее каждый из методов виртуальной памяти. Страничное распределение
- •Свопинг.
- •Лекция №13. Файлы. Типы файлов.
- •Лекция №14. Логическая и физическая организация файлов. Логическая организация файла.
- •Физическая организация файла.
- •4. Перечень номеров блоков.
- •Лекция № 15. Доступ к файлам.
- •Лекция № 16. Файловая система. Надежность файловой системы.
- •1. Резервное копирование
- •2. Непротиворечивость файловой системы
- •1. Кэширование.
- •2. Опережающее чтение блока.
- •3. Снижение времени перемещения блока головок.
- •Лекция № 17. Общая модель файловой системы
- •Современные архитектуры файловых систем.
- •Лекция № 18. Обзор файловых систем.
Свопинг.
Виртуализация памяти может быть осуществлена и на основе свопинга.
При свопинге, в отличие от рассмотренных ранее методов реализации виртуальной памяти, процесс перемещается между памятью и диском целиком, то есть в течение некоторого времени процесс может полностью отсутствовать в оперативной памяти. Существуют различные алгоритмы выбора процессов на загрузку и выгрузку, а также различные способы выделения оперативной и дисковой памяти загружаемому процессу. Свопинг представляет собой частный случай виртуальной памяти и, следовательно, более простой в реализации способ совместного использования оперативной памяти и диска.
Достоинства свопинга.
Простой в реализации способ совместного использования оперативной памяти и диска.
Недостатки.
Избыточность. Когда ОС решает активизировать процесс, для его выполнения, как правило, не требуется загружать в оперативную память все его сегменты полностью — достаточно загрузить небольшую часть кодового сегмента с подлежащей выполнению инструкцией и частью сегментов Данных, с которыми работает эта инструкция, а также отвести место под сегмент стека. Аналогично при освобождении памяти для загрузки нового процесса очень часто вовсе не требуется выгружать другой процесс на диск целиком, достаточно вытеснить на диск только часть его образа.
Замедление работы системы вследствие перемещения избыточной информации.
Системы не способны загрузить на выполнение процесс, виртуальное адресное пространство которого превышает имеющуюся в наличии свободную память.
Именно из-за указанных недостатков свопинг как основной механизм управления памятью почти не используется в современных ОС. На смену ему пришел более совершенный механизм виртуальной памяти, который, как уже было сказано, заключается в том, что при нехватке места в оперативной памяти на диск выгружаются только части образов процессов.
Лекция №13. Файлы. Типы файлов.
При хранении данных решаются две проблемы: как сохранить данные в наиболее компактном виде и как обеспечить к ним удобный и быстрый доступ (если доступ не обеспечен, то это не хранение).
Поскольку адресные данные тоже имеют размер и тоже подлежат хранению, данные в виде мелких единиц, таких, как байты, неудобно. Их неудобно хранить и в более крупных единицах (килобайтах, мегабайтах и т. п.), поскольку неполное заполнение одной единицы хранения приводит к неэффективности хранения. В качестве единицы хранения данных принят объект переменной длины, названный файлом
Файл - это последовательность произвольного числа байтов, уникальным собственным именем.
Внешние накопители (диски), используемые для хранения информации, именуются латинскими буквами А, С вслед за которыми пишут двоеточие.
Информация на диске хранится в виде файлов.
Файл - поименованная область памяти на физическом носителе.
Для однозначной идентификации файла используется уникальное имя файла и тип, приписываемый файлу в соответствии с характером хранимой информации. Задание типа осуществляет либо сам пользователь, либо программа, порождающая файл.
Можно представить себе имеющий 0 байтов (пустой файл), и файл, имеющий любое число байтов.
Примечание.
1 Мбайт = 1024 Кбайт = 220 байт
1 Гбайт =1024 Мбайт = 230 байт
1 Тбайт = 1024 Гбайт = 240 байт
Имена файлов
Файлы – абстрактные объекты. Они предоставляют пользователям возможность сохранять информацию, скрывая от него детали того, как и где она хранится и то, как диски в действительности работают. Вероятно, одна из наиболее важных характеристик любого абстрактного механизма – способ именования объектов, которыми он управляет. Когда процесс создает файл, он дает файлу имя. После завершения процесса файл продолжает существовать и через свое имя может быть доступен другим процессам.
Многие ОС поддерживают имена из двух частей (имя+расширение), например progr.c(файл, содержащий текст программы на языке Си) или autoexec.bat (файл, содержащий команды интерпретатора командного языка). Тип расширения файла позволяет ОС организовать работу с ним различных прикладных программ в соответствии с заранее оговоренными соглашениями.
Обычно ОС накладывают некоторые ограничения, как на используемые в имени символы, так и на длину имени. Например, в ОС Unix учитывается регистр при вводе имени файла (case sensitive), а в MS-DOS – нет. В популярной файловой системе FAT длина имен ограничивается известной схемой 8.3 (8 символов - собственно имя, 3 символа - расширение имени). Современные файловые системы, как правило, поддерживают более удобные для пользователя длинные символьные имена файлов. Так, в соответствии со стандартом POSIX, в ОС UNIX допускаются имена длиной до 255 символов, та же самая длина устанавливается для имен файлов и в ОС Windows NT для файловой системы NTFS.
Типы файлов
Обычные (регулярные) файлы:
а) текстовые (ASCII) - Текстовые файлы состоят из строк символов, представленных в ASCII-коде. Это могут быть документы, исходные тексты программ и т.п. Текстовые файлы можно прочитать на экране и распечатать на принтере.
б) двоичные (бинарные). Двоичные файлы не используют ASCII-коды, они часто имеют сложную внутреннюю структуру, например, объектный код программы или архивный файл. Все операционные системы должны уметь распознавать хотя бы один тип файлов - их собственные исполняемые файлы. Основные типы двоичных файлов (рис. 36):
Исполняемые - программы, их может обрабатывать сама операционная система, хотя они записаны в виде последовательности байт.
Неисполняемые - все остальные.
Рис 36. Исполняемый и неисполняемый файлы.
«Магическое число» - идентифицирующее файл как исполняющий.
Специальные файлы. Это файлы, ассоциированные с устройствами ввода-вывода. Они позволяют пользователю выполнять операции ввода-вывода, используя обычные команды записи в файл или чтения из файла. Эти команды обрабатываются вначале программами файловой системы, а затем на некотором этапе выполнения запроса преобразуются ОС в команды управления соответствующим устройством. Специальные файлы, так же как и устройства ввода-вывода, делятся на блок-ориентированные и байт-ориентированные.
Файлы-каталоги. Это, с одной стороны, группа файлов, объединенных пользователем исходя из некоторых соображений (например, файлы, содержащие программы игр, или файлы, составляющие один программный пакет), а с другой стороны - это файл, содержащий системную информацию о группе файлов, его составляющих. В каталоге содержится список файлов, входящих в него, и устанавливается соответствие между файлами и их характеристиками (атрибутами). (Используются в Windows и UNIX).
Основные атрибуты файла:
Защита - кто, и каким образом может получить доступ к файлу (пользователи, группы, чтение/запись). Используются в Windows и UNIX.
Пароль - пароль к файлу
Создатель - кто создал файл
Владелец - текущий владелец файла
Флаг "только чтение" - 0 - для чтения/записи, 1 - только для чтения. Используются в Windows.
Флаг "скрытый" - 0 - виден, 1 - невиден в перечне файлов каталога (по умолчанию). Используются в Windows.
Флаг "системный" - 0 - нормальный, 1 - системный. Используются в Windows.
Флаг "архивный" - готов или нет для архивации (не путать сжатием). Используются в Windows.
Флаг "сжатый" - файл сжимается (подобие zip архивов). Используются в Windows.
Флаг "шифрованный" - используется алгоритм шифрования. Если кто-то попытается прочесть файл, не имеющий на это прав, он не сможет его прочесть. Используются в Windows.
Флаг ASCII/двоичный - 0 - ASCII, 1 - двоичный
Флаг произвольного доступа - 0 - только последовательный, 1 - произвольный доступ
Флаг "временный" - 0 - нормальный, 1 - для удаления файла по окончании работы процесса
Флаг блокировки - блокировка доступа к файлу. Если он занят для редактирования.
Время создания - дата и время создания. Используются UNIX.
Время последнего доступа - дата и время последнего доступа
Время последнего изменения - дата и время последнего изменения. Используются в Windows и UNIX.
Текущий размер - размер файла. Используются в Windows и UNIX.
Список атрибутов может варьироваться от одной ОС к другой.
Виды файлов-каталогов:
Одноуровневые каталоговые системы (рис 37).
В этой системе все файлы содержатся в одном каталоге.
Рис. 37. Однокаталоговая система, содержащая четыре файла, файлов А два, но разных владельцев.
Достоинства системы:
Простота
Возможность быстро найти файл, не надо лазить по каталогам
Недостатки системы:
Различные пользователи могут создать файлы с одинаковыми именами.
Двухуровневые каталоговые системы (рис. 38).
Для каждого пользователя создается свой собственный каталог.
Рис. 38. Двухуровневая каталоговая система
Пользователь, при входе в систему, попадает в свой каталог и работает только с ним. Это делает проблематичным использование системных файлов.
Эту проблему можно решить созданием системного каталога, с общим доступом.
Если у одного пользователя много файлов, то у него тоже может возникнуть необходимость в файлах с одинаковыми именами.
Иерархические каталоговые системы (рис. 39).
Каждый пользователь может создавать столько каталогов, сколько ему нужно.
Рис. 39. Иерархическая каталоговая система.
Почти все современные универсальные ОС, организованы таким образом. Специализированным ОС это может быть не нужным.
Имя пути
Для организации дерева каталогов нужен некоторый способ указания файла.
Существует два основных метода указания файла:
абсолютное имя пути - указывает путь от корневого каталога, например: для Windows \usr\ast\mailbox- для UNIX /usr/ast/mailbox; для MULTICS >usr>ast>mailbox;
относительное имя пути - путь указывается от текущего каталога (рабочего каталога), например: если текущий каталог /usr/, то абсолютный путь /usr/ast/mailbox перепишется в ast/mailbox, если текущий каталог /usr/ast/, то абсолютный путь /usr/ast/mailbox перепишется в mailbox, если текущий каталог /var/log/, то абсолютный путь /usr/ast/mailbox перепишется в ../../usr/ast/mailbox
./ - означает текущий каталог
../ - означает родительский каталог.
Основные системные вызовы для работы с файлами:
Create - создание файла без данных;
Delete - удаление файла;
Open - открытие файла;
Close - закрытие файла;
Read - чтение из файла, с текущей позиции файла;
Write - запись в файл, в текущую позицию файла;
Append - добавление в конец файла;
Seek - устанавливает файловый указатель в определенную позицию в файле;
Get attributes - получение атрибутов файла;
Set attributes - установить атрибутов файла;
Rename - переименование файла.
Основные системные вызовы для работы с каталогами:
Create - создать каталог;
Delete - удалить каталог;
OpenDir - закрыть каталог;
CloseDir - закрыть каталог;
ReadDir - прочитать следующий элемент открытого каталога;
Rename - переименование каталога.
Link - создание жесткой ссылки, позволяет файлу присутствовать сразу в нескольких каталогах;
Unlink - удаление ссылки из каталога.
