Состояние процессора –значения регистров и значение счетчика команд.
Счетчик команд– адрес текущей выполняемой или прерванной команды процессора.
Таблица состояния устройств– таблица, хранимая и используемая операционной системой, в которой каждому устройству соответствует элемент, содержащий тип устройства, его адрес и состояние, а для занятого устройства – ссылку на очередь обрабатываемых запросов к нему.
Таймер –системный регистр, содержащий некоторое установленное специальной командой значение времени, которое уменьшается через каждый квант (такт) процессорного времени. Когда значение таймера становится равным нулю, происходит прерывание.
Флэш-память (флэшка)– модуль внешней памяти компактного размера (как правило, – 5 см), подключаемый через USB-порт и имеющий емкость до 128 ГБайт.
Цилиндр– часть жесткого диска, представляющая собой совокупность дорожекодного диаметра, находящихся на всех его параллельно расположенных магнитных дисках.
Краткие итоги
Компьютерная система состоит из модулей – процессора, памяти и внешних устройств, каждое из которых управляется своим контроллером, соединенных между собой системной шиной. В современных компьютерных системах имеются такие модули, как процессор, память, общая шина PCI, порты – USB, COM, IEEE 1394, SCSI, HDMI и другие,. SCSI-порт допускает подключение к нему гирлянды устройств. Инфракрасный порт (IrDA) неудобен и фактически устарел. Беспроводной интерфейс Bluetooth используется для связи компьютера с мобильным устройством, наушниками, плеером.
Модули компьютерной системы – процессор, память и внешние устройства с их контроллерами – функционируют параллельно. Контроллер имеет локальный буфер, через который осуществляется обмен с устройством.Оптимизация – режим DMA, при котором роль буферной памяти играет часть оперативной памяти. При необходимости выполнения ввода-вывода процессор информирует систему об этом через прерывание. По окончании операции контроллер также генерирует прерывание.
Обработка прерываний осуществляется через резидентный вектор прерываний, содержащий адреса подпрограмм обработки прерываний – модулей ОС. ОС – это фактически программа, управляемая прерываниями. Она вызывается либо по прерыванию, либо по программируемому прерыванию (ловушке), либо системным вызовом подпрограммы ОС из программы пользователя. В системе имеется очередь прерываний, с помощью которой обрабатывается последовательно вся цепочка возникающих прерываний. При прерывании ОС сохраняет состояние процессора, обработчик прерывания определяет, какого типа прерывание произошло и какие действия следует предпринять по его обработке. Возможны прерывания по таймеру с целью периодического опроса устройств.
Ввод-вывод может быть синхронным и асинхронным. Для обработки ввода-вывода ОС хранит и использует таблицу состояния устройств.
Устройства памяти имеют свою иерархию, от самых быстрых к наиболее медленным. Для оптимизации обращения к более медленной памяти используется ассоциативная память (кэш), организуемый в более быстрой памяти. Наиболее распространенные виды внешней памяти – жесткие диски, а также флэш-память, CD, DVD и BluRay – диски.
Для защиты памяти и всей системы вводятся два режима исполнения – привилегированный (для ядра ОС) и непривилегированный (для обычных программ). Для защиты памяти используются два регистра – базы и границы, задающие границы области памяти, выделенной пользовательской программе.Все команды ввода-вывода – привилегированные. Бит режима задает текущий режим выполнения. Ввод-вывод реализуется с помощью системных вызовов.
В системах с теговой архитектурой защита памяти осуществляется в помощью адресных слов со специальными тегами – дескрипторов. Дескриптор содержит адрес начала массива, длину и признаки защиты.
Прерывания по таймеру организуются системой для опроса устройств и для реализации режима разделения времени.
Вопросы для самопроверки:
1. Назовите основные компоненты, из которых состоит настольная или портативная компьютерная система.
2. Что такое системная шина и какова ее роль в компьютерной системе?
3. Что такое контроллер?
4. Назовите и кратко охарактеризуйте основные типы портов в компьютерной системе.
5. Какие области памяти используются в операциях ввода-вывода?
6. Каким образом контроллер устройства информирует процессор об окончании операции ввода-вывода?
7. Как организована обработка прерываний?
8. Что такое вектор прерываний?
9. Как система обрабатывает ситуацию, когда при обработке прерывания возникает другое прерывание?
10. Что такое программируемое прерывание (ловушка) и когда оно генерируется?
11. Каково назначение прерывания по таймеру?
12. Что такое опрос устройств и какова его роль в системе?
13. Чем синхронный ввод-вывод отличается от асинхронного?
14. Что такое таблица состояния устройств и для чего она используется операционной системой?
15. В чем отличие основной памяти от внешней памяти?
16. Опишите кратко устройство жесткого диска.
17. Что такое ассоциативная память (кэш) и как она позволяет оптимизировать обращение к более медленным видам памяти?
18. Назовите основные виды внешней памяти.
19. Какова цель введения привилегированного режима и какие действия в нем разрешены, по сравнению с обычным режимом исполнения программ?
20. Каким образом система определяет текущий режим исполнения?
21. Что такое системный вызов и как они используются для организации ввода-вывода?
22. Что такое регистр базы и регистр границы и как они используются для защиты памяти?
23. Что такое таймер и как прерывания по таймеру используются операционной системой?
24. Как организована защита памяти в системах с теговой архитектурой?
25. Что такое дескриптор и для чего он предназначен?
Упражнения
1. Составьте наиболее предпочтительную, с Вашей точки зрения, конфигурацию офисного настольного компьютера для Вашей повседневной работы. Укажите объем памяти, быстродействие, виды портов и внешних устройств.
2. То же – для портативного компьютера (ноутбука).
3. Предложите наиболее быстрый, надежный и удобный, с Вашей точки зрения, способ резервного копирования информации – сохранения наиболее важных файловых систем во внешней памяти.
4. Изобразите схему прерываний и активизации процессора и устройства вывода при выполнении фрагмента простой программы: x := 1; writeln(x); y := 2; writeln(y);
5. Предложите и реализуйте схему алгоритма умножения матриц m * m, хранящихся во внешней памяти, с записью результата также во внешнюю память, с использованием асинхронного ввода-вывода с целью распараллеливания программы.
6. Опишите и реализуйте алгоритм обращения к памяти с использованием кэша, с предварительным поиском адреса в кэше и его записью в кэш, в случае, если он не найден.
7. Пусть задаче выделена область памяти, начиная с адреса 400000 (содержимое регистра базы), длиной 100000 (содержимое регистра границы). Корректным ли будет обращение по адресу 400001? по адресу 500001? Опишите подробно, как происходит проверка адреса на корректность в каждом из двух случаев, и соответствующие действия системы.