Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Билет 13. 1. Прерывания, исключения, системные вызовы



1. Прерывания, исключения, системные вызовы

Современные ОС реализуют поддержку системных вызовов, обработку прерываний и исключительных ситуаций, которые относят к основным механизмам ОС.

Системные вызовы (system calls) - механизм, позволяющий пользовательским программам обращаться к услугам ядра ОС. Концептуально системный вызов похож на обычный вызов подпрограммы. Основное отличие состоит в том, что при системном вызове выполнение программы осуществляется в привилегированном режиме или режиме ядра. Поэтому системные вызовы иногда еще называют программными прерываниями, в отличие от аппаратных прерываний, которые чаще называют просто прерываниями. В большинстве операционных систем системный вызов является результатом выполнения команды программного прерывания (INT). Таким образом, системный вызов - это синхронное событие.

Прерывание (hardware interrupt) - это событие, генерируемое внешним (по отношению к процессору) устройством. Посредством аппаратных прерываний. Аппаратура либо информирует центральный процессор о том, что произошло событие, требующее немедленной реакции (н-р, пользователь нажал клавишу), либо сообщает о завершении операции ввода вывода (н-р, закончено чтение данных с диска в основную память

Исключительная ситуация (exception) - событие, возникающее в результате попытки выполнения программой команды, которая по каким-то причинам не может быть выполнена до конца. Примерами таких команд могут быть попытки доступа к ресурсу при отсутствии достаточных привилегий или обращение к отсутствующей странице памяти. Исключительные ситуации, как и системные вызовы, являются синхронными событиями, возникающими в контексте текущей задачи. Исключительные ситуации можно разделить на исправимые и неисправимые. К исправимым относятся такие исключительные ситуации, как отсутствие нужной информации в оперативной памяти. Неисправимые исключительные ситуации чаще всего возникают в результате ошибок в программах (например, деление на ноль).

2. Алгоритмы сканирования ФС

Проверка целостности файловой системы при помощи утилит.

Если же нарушение все же произошло, то для устранения проблемы несовместимости можно прибегнуть к утилитам (fsck, chkdsk, scandisk и др.), которые проверяют целостность файловой системы. Они могут запускаться после загрузки или после сбоя и осуществляют многократное сканирование разнообразных структур данных файловой системы в поисках противоречий.

fsck — команда UNIX, которая проверяет и устраняет ошибки в файловой системе. Обычно fsck параллельно проверяет данные на разных физических дисках, чтобы сократить общее время, необходимое для полной проверки всех дисков.

Если файловых систем не указано и не указана опция -A, то fsck по порядку проверит файловые системы, указанные в /etc/fstab. Код, возвращаемый fsck, является суммой следующих условий:0 — нет ошибок, 1 — ошибки файловой системы исправлены,2 — необходима перезагрузка системы, 4 — ошибки файловой системы не исправлены,8 — в процессе проверки произошли ошибки и т.д.

Код, возвращаемый fsck при проверке нескольких файловых систем, получается с помощью применения побитовой операции ИЛИ к кодам, возвращаемым каждой проверкой.

CHKDSK (сокращение от check disk — проверка диска) — стандартное приложение в операционных системах DOS и Microsoft Windows, которое проверяет жёсткий диск или дискету на ошибки файловой системы (например, один и тот же сектор отмечен как принадлежащий двум разным файлам). CHKDSK также может исправлять найденные ошибки файловой системы. Для исправления ошибок необходимо задать флаг /F. Для поиска повреждённых секторов (наряду с ошибками файловой системы) необходимо задать флаг /R.

Microsoft Scandisk — утилита компании Microsoft, с помощью которой можно исправлять ошибки в структуре жёсткого диска, искать и помечать «испорченные» блоки, преобразовывать в файлы, или удалять «потерянные» кластеры.

Алгоритм сканирования может работать в следующих режимах: простое сканирование, с защитой, сканирование по флажку, по запросу.

3. Устройство дисков, параметры планирования доступа к дискам

Существуют различные виды дисков: floppy, hard disk, flash и другие. Всех их объединяет одно – наличие файловой системы(ФС). Информация на них организуется в зависимости от ФС на данном диске. Можно отметить 2 ФС – это NTFS и FAT. В FAT данные организуются линейно, а в NTFS посредством двоичного дерева, что обеспечивает ряд плюсов. Н-р, облегчает поиск файлов. Ведь поиск по двоичному дереву гораздо продуктивнее, чем линейный перебор.

Для хранения файлов обычно используются устройства прямого доступа (диски), которые позволяют обращаться напрямую к любому блоку диска. Это обеспечивает произвольный доступ к байтам файла, поскольку номер блока однозначно определяется текущей позицией внутри файла. Таким образом, файловая подсистема ОС Windows имеет дело с файлами, байты которых могут быть считаны в любом порядке. Такие файлы называется файлами прямого доступа. Непосредственное обращение к любому байту внутри файла предполагает наличие операции позиционирования, целью которой является задание текущей позиции для считывания или записи. Поскольку файл может иметь большой размер, указатель текущей позиции - 64-разрядное число, для задания которого обычно используются два 32-разрядных.





Дата публикования: 2015-10-09; Прочитано: 2148 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.009 с)...