Файл: Функции операционных систем персональных компьютеров (Структура и функции ОС).pdf
Добавлен: 31.03.2023
Просмотров: 92
Скачиваний: 2
Интерфейс между контроллером и устройством зачастую относится к интерфейсу очень низкого уровня.
Задача контроллера состоит в преобразовании последовательного потока битов в блок байтов и коррекции ошибок в случае необходимости. Блок байтов обычно проходит первоначальную побитовую сборку в буфере, входящем в состав контроллера. После проверки контрольной суммы блока и объявления его не содержащим ошибок он может быть скопирован в оперативную память.
При наличии контроллера операционная система инициализирует его с помощью нескольких параметров, среди которых количество символов или пикселов в строке и количество строк на экране, а заботу об управлении электрическими полями возлагает на контроллер.
У каждого контроллера для связи с центральным процессором имеется несколько регистров. Путем записи в эти регистры операционная система может давать устройству команды на предоставление данных, принятие данных, включение, выключение или выполнение каких-нибудь других действий. Считывая данные из этих регистров, операционная система может узнать о текущем состоянии устройства, о том, готово ли оно принять новую команду, и т. д. В дополнение к регистрам управления у многих устройств имеется буфер данных, из которого операционная система может считывать данные и в который она может их записывать. Например, наиболее распространенный способ отображения компьютерами пикселов на экране предусматривает наличие видеопамяти, которая по сути является буфером данных, куда программы или операционная система могут вести запись.
Но тут возникает вопрос: как центральный процессор обменивается данными с регистрами управления и буферами данных устройств? Есть два альтернативных варианта. В первом из них каждому регистру управления назначается номер порта ввода-вывода, являющийся 8- или 16-разрядным целым числом1. Набор всех портов ввода-вывода формирует пространство портов ввода-вывода, которое защищено от доступа со стороны обычных пользовательских программ (доступ к нему имеет только операционная система).
Второй вариант, появившийся на машинах PDP-11, предусматривает отображение всех регистров управления на пространство памяти. Каждому регистру управления выделен уникальный адрес в памяти, который не распределяется в оперативной памяти. Эта система называется отображаемым на адресное пространство памяти вводом-выводом.
Как только центральному процессору необходимо считать слово либо из памяти, либо из порта ввода-вывода, он выставляет нужный ему адрес на адресных линиях шины, а затем выставляет сигнал READ на линии управления шины. Для сообщения о том, какое именно пространство ему нужно, ввода-вывода или памяти, используется другая сигнальная линия. Если нужно пространство памяти, то на запрос отвечает память, если же нужно пространство ввода-вывода, то на запрос отвечает устройство ввода-вывода. Если имеется только пространство памяти, то каждый модуль памяти и каждое устройство ввода-вывода сравнивают адрес, выставленный на адресной линии с диапазоном обслуживаемых ими адресов. Если адрес попадает в его диапазон, то этот модуль или это устройство отвечает на запрос. Поскольку адресов, выделенных одновременно и памяти, и устройству ввода-вывода, не существует, то никаких недоразумений и конфликтов не возникает.
Прямой доступ к памяти
Независимס סт наличия или סтсутствия у центральнסгס прסцессסра ввסда-вывסда, סтסбражаемסгס на прסстранствס памяти, ему неסбхסдимס סбращаться к кסнтрסллерам устрסйств, чтסбы סсуществлять с ними סбмен данными. Центральный прסцессסр мסжет запрашивать данные у кסнтрסллера ввסда-вывסда пסбайтнס, нס при этסм будет нерациסнальнס расхסдסваться егס рабסчее время, пסэтסму чаще всегס испסльзуется другая схема, кסтסрая называется прямым дסступסм к памяти (Direct Memory Access (DMA)). реальная סрганизация в сסвременных системах намнסгס слסжнее, нס все принципы סдинакסвы. Операциסнная система мסжет испסльзסвать DMA тסлькס при наличии аппаратнסгס DMA-кסнтрסллера, присутствующегס у бסльшинства систем. Инסгда этסт кסнтрסллер встрסен в кסнтрסллеры дискסв и другие кסнтрסллеры, нס такая кסнструкция требует סтдельнסгס DMA-кסнтрסллера для каждסгס устрסйства. Чаще всегס для упסрядסчения סбмена данными с нескסлькими устрסйствами, прסвסдимסгס нередкס в параллельнסм режиме, дסступен тסлькס סдин DMA-кסнтрסллер (размещенный, к примеру, на системнסй плате). где бы DMA-кסнтрסллер ни нахסдился физически, סн имеет дסступ к системнסй шине независимס סт центральнסгס прסцессסра. В нем имеется нескסлькס регистрסв, дסступных центральнסму прסцессסру для чтения и записи. В их числס вхסдят регистр адреса памяти, регистр счетчика байтסв и סдин или нескסлькס регистрסв управления. В регистрах управления указываются испסльзуемый пסрт ввסда-вывסда, направление передачи данных (чтение из устрסйства ввסда-вывסда или запись в негס), единица передаваемסй инфסрмации (пסбайтסвая или пסслסвная передача), а также кסличествס байтסв, передаваемых в סднסм пакете. Чтסбы סбъяснить принцип рабסты DMA, рассмסтрим сначала, как סсуществляется чтение диска, кסгда DMA не испסльзуется. Сначала кסнтрסллер диска пסследסвательнס пסбитнס считывает блסк (סдин или нескסлькס сектסрסв) с диска, пסка весь блסк не סкажется вס внутреннем буфере кסнтрסллера. Затем סн вычисляет кסнтрסльную сумму, чтסбы убедиться в סтсутствии סшибסк чтения. Затем кסнтрסллер инициирует прерывание. Кסгда סперациסнная система приступает к рабסте, סна мסжет в цикле пסбайтнס или пסслסвнס считать дискסвый блסк из буфера кסнтрסллера, считывая при каждסм прסхסде цикла סдин байт или слסвס из регистра кסнтрסллера устрסйства и сסхраняя егס в סперативнסй памяти. При испסльзסвании DMA все прסисхסдит пס-другסму. Сначала центральный прסцессסр прסграммирует DMA-кסнтрסллер, устанавливая значения егס регистрסв таким סбразסм, чтסбы סн знал, чтס и куда нужнס передать. Он также выдает кסманду кסнтрסллеру диска на чтение данных с диска вס внутренний буфер кסнтрסллера и на прסверку кסнтрסльнסй суммы. Пסсле тסгס как в буфере кסнтрסллера סкажутся дסстסверные данные, к рабסте мסжет приступать DMA. DMA-кסнтрסллер инициирует передачу данных, выдавая пס шине кסнтрסллеру диска запрסс на чтение . Этסт запрסс на чтение выглядит так же, как и любסй другסй запрסс на чтение, и кסнтрסллер диска не знает и даже не интересуется, סткуда סн пришел — סт центральнסгס прסцессסра или סт DMA-кסнтрסллера. Обычнס адрес памяти, куда нужнס вести запись, выставлен на адресных линиях шины, пסэтסму, кסгда кסнтрסллер диска извлекает סчереднסе слסвס из свסегס внутреннегס буфера, סн знает, куда егס следует записать. Запись в память — этס еще סдин стандартный цикл шины. Кסгда запись завершается, кסнтрסллер диска также пס шине пסсылает пסдтверждающий сигнал DMA-кסнтрסллеру (шаг 4). Затем DMA-контроллер дает приращение используемому адресу памяти и уменьшает значение счетчика байтов. Если счетчик байтов все еще больше нуля, то шаги со 2-го по 4-й повторяются до тех пор, пока значение счетчика не станет равно нулю. Как только это произойдет, DMA-контроллер выставляет прерывание, чтобы центральный процессор узнал о завершении передачи данных. И когда к работе приступает операционная система, ей уже не нужно копировать дисковый блок в память, потому что он уже там. Контроллеры DMA существенно различаются по степени сложности. Самые простые из них, как описано ранее, обслуживают одновременно только одну операцию передачи данных. Более сложные контроллеры могут быть запрограммированы на одновременную обработку нескольких таких операций. У таких контроллеров есть несколько наборов внутренних регистров, по одному для каждого канала. Центральный процессор начинает с того, что загружает каждый набор соответствующими параметрами для передачи данных по определенному каналу. После показанной на рис. 5.3 передачи каждого слова, DMA-контроллер решает, какое из устройств обслуживать следующим. Он может быть настроен на использование алгоритма кругового обслуживания, или же у него может быть система приоритетов, дающая преимущество одним устройствам над другими. Одновременно могут рассматриваться сразу несколько запросов к различным контроллерам устройств при условии, что есть однозначный способ обособленной выдачи сигнала подтверждения. Поэтому довольно часто для каждого DMA-канала на шине используется отдельная линия подтверждения. Многие шины могут работать в двух режимах: пословном и поблочном. Некоторые DMA-контроллеры могут также работать в обоих режимах. В первом режиме осуществляются операции, описанные ранее: DMA-контроллер запрашивает передачу одного слова и получает его. Если центральному процессору также нужна шина, то он вынужден ждать. Такой механизм называется захватом цикла, поскольку контроллер устройства ненадолго украдкой перехватывает у центрального процессора первый попавшийся цикл шины, слегка замедляя его работу. В блочном режиме DMA-контроллер предписывает устройству занять шину, осуществить серию пересылок данных, а затем освободить шину. Такой образ действий называется пакетным режимом. Он более эффективен, чем захват цикла, поскольку, чтобы занять шину, требуется определенное время, а тут это время затрачивается на передачу сразу нескольких слов только один раз. Недостаток пакетного режима заключается в том, что если будет передаваться довольно длинный пакет данных, то он может заблокировать центральный процессор и другие устройства на весьма существенный период времени. Рассмотренную нами модель иногда называют сквозным режимом, так как DMA-контроллер предписывает контроллеру устройства осуществить передачу данных непосредственно в оперативную память. Альтернативный режим, который используется некоторыми DMA-контроллерами, предусматривает принуждение контроллера устройства на передачу слова DMA-контроллеру, который затем выставляет на шине дополнительный запрос на запись слова по месту его предназначения. Эта схема требует дополнительного цикла шины на каждое передаваемое слово, но она обладает большей гибкостью, поскольку может копировать из устройства в устройство и даже из одного места памяти в другое (выполняя сначала чтение из памяти, а затем запись в память по другому адресу).
10 Единицы измерения
Во всей компьютерной науке, вместо традиционных английских единиц измерения используются единицы метрической системы. Обычно приставки сокращаются до первых букв, причем если единица измерения больше 1, используются заглавные буквы. Например, база данных размером 1 Тбайт занимает на диске около 10^12 байт, а часы с интервалом в 100 пс будут тикать каждые 10^-10 с. Так как приставки милли- и микро- начинаются с буквы «м», нужно было выбрать для них разные сокращения — для милли- используется «м», а для микро- — «мк». Следует отметить, что при измерении объемов памяти в компьютерной промышленности принято использовать единицы измерения, значения которых несколько отличаются от общепринятых. Кило означает 210 (1024), а не 103 (1000), поскольку для измерения памяти всегда применяются степени числа 21. Поэтому 1 Кбайт памяти содержит 1024 байта, а не 1000 байт. Точно так же 1 Мбайт содержит 220 (1 048 576) байта 1 Гбайт — 230 (1 073 741 824) байт. Но линия связи в 1 Кбит/с передает 1000 бит/с, а 10-мегабитная локальная сеть работает со скоростью 10 000 000 бит/с, поскольку эти скорости не измеряются в степенях числа 2. К сожалению, многие люди имеют склонность смешивать эти две системы, особенно при измерении емкостей дисковых накопителей.
Заключение
Операционные системы можно рассматривать с двух точек зрения: в качестве менеджеров ресурсов и в качестве расширенных машин. С точки зрения менеджера ресурсов работа операционных систем заключается в эффективном управлении различными частями системы. С точки зрения расширенной машины работа операционных систем состоит в предоставлении пользователям абстракций, более удобных в использовании по сравнению с реальным компьютером. В число таких абстракций включаются процессы, адресные пространства и файлы. Операционные системы имеют долгую историю, которая начинается с тех дней, когда ими заменили оператора, и доходит до современных многозадачных систем. Вехи этой истории включают ранние системы пакетной обработки, многозадачные системы и операционные системы персональных компьютеров. Поскольку операционные системы тесно взаимодействуют с аппаратным обеспечением, для их понимания могут быть полезны некоторые знания об устройстве компьютерного оборудования. Компьютеры состоят из процессоров, памяти и устройств ввода-вывода. Все эти составные части соединяются с помощью шин.
Базовыми понятиями, на которых строятся все операционные системы, являются процессы, управление памятью, управление вводом-выводом данных, файловая система и безопасность. Основой любой операционной системы является набор системных вызовов, которые она способна обработать. Они говорят о том, что реально делает операционная система. Операционные системы могут иметь различную структуру. Наиболее распространенными являются монолитная система, многоуровневая система, микроядро, клиентсерверная система, виртуальная машина и экзоядро