Файл: Функции операционных систем персональных компьютеров.docx

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 24.04.2024

Просмотров: 13

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.




  1. Адресные пространства

Каждый компьютер обладает определенным объемом оперативной памяти, используемой для хранения исполняемых программ. В самых простых операционных системах в памяти присутствует только одна программа. Для запуска второй программы сначала нужно удалить первую, а затем на ее место загрузить в память вторую. Более изощренные операционные системы позволяют одновременно находиться в памяти нескольким программам. Чтобы исключить помехи в работе операционной системы, нужен защитный механизм, который входит в состав оборудования. Вышеупомянутая точка зрения связана с вопросами управления и защиты оперативной памяти компьютера. Другой, но не менее важный вопрос, связанный с памятью, — это управление адресным пространством процессов. Обычно каждому процессу отводится для использования некоторый непрерывный набор адресов, как правило, с нуля и до некоторого максимума. В простейшем случае максимальный объем адресного пространства, выделяемого процессу, меньше объема оперативной памяти. Таким образом, процесс может заполнить свое адресное пространство и для его размещения в оперативной памяти будет достаточно места. При этом на многих компьютерах используется 32- или 64-разрядная адресация. По сути, операционная система создает абстракцию адресного пространства в виде набора адресов, на которые может ссылаться процесс. Адресное пространство отделено от физической памяти машины и может быть как больше, так и меньше нее. Управление адресными пространствами и физической памятью является важной частью работы операционной системы.

  1. Ввод-вывод данных

У всех компьютеров имеются физические устройства для получения входной и вывода выходной информации. Действительно, какой будет прок от компьютера, если пользователи не смогут поставить ему задачу и получить результаты по завершении заданной работы? Существует масса разнообразных устройств ввода-вывода: клавиатуры, мониторы, принтеры и т. д. Управление всеми этими устройствами возлагается на операционную систему. Поэтому у каждой операционной системы для управления такими устройствами существует своя подсистема ввода-вывода. Некоторые программы ввода-вывода не зависят от конкретного устройства, то есть в равной мере подходят для применения со многими или со всеми устройствами ввода-вывода. Другая часть программ, например драйверы устройств, предназначена для определенных устройств ввода-вывода.


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

Устройства ввода-вывода можно условно разделить на две категории: блочные устройства и символьные устройства. К блочным относятся такие устройства, которые хранят информацию в блоках фиксированной длины, у каждого из которых есть собственный адрес. Обычно размеры блоков варьируются от 512 до 65 536 байт. Вся передача данных ведется пакетами из одного или нескольких целых (последовательных) блоков. Важным свойством блочного устройства является то, что оно способно читать или записывать каждый блок независимо от всех других блоков.

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

Эта классификационная схема далека от совершенства. Некоторые устройства под нее не подпадают. Часы, к примеру, не являются блочно адресуемыми. Они также не генерируют и не воспринимают символьные строки. Все, чем они занимаются, — вызывают прерывания через четко определенные интервалы времени. Экраны, имеющие отображение в памяти, также не вписываются в эту модель. По этой же причине под нее не подпадают и сенсорные экраны. Тем не менее модель блочных и символьных устройств является достаточно общей для того, чтобы использовать ее в качестве основы для придания части программного обеспечения операционной системы независимости от устройства ввода-вывода. Файловая система, к примеру, работает только с абстрактными блочными устройствами, а зависимую от конкретного устройства часть оставляет на долю программного обеспечения низкого уровня.

  1. Контроллеры устройств

Устройства ввода-вывода зачастую состоят из механической и электронной составляющих. Зачастую эти две составляющие удается разделить, чтобы получить модульную конструкцию и придать устройству более общий вид. Электронный компонент называется контроллером устройства, или адаптером. На персональных компьютерах он часто присутствует в виде микросхемы на системной плате или печатной платы, вставляемой в слот расширения (PCIe). Механический компонент представлен самим устройством. На

плате контроллера обычно имеется разъем, к которому может быть подключен кабель, ведущий непосредственно к самому устройству. Многие контроллеры способны управлять двумя, четырьмя или даже восемью одинаковыми устройствами. Если интерфейс между контроллером и устройством подпадает под какой-нибудь стандарт, будь то один из официальных стандартов ANSI, IEEE или ISO или же один из ставших де-факто стандартов, то компании могут производить контроллеры или устройства, соответствующие этому интерфейсу. К примеру, многие компании производят дисковые приводы, соответствующие интерфейсу SATA, SCSI, USB, Thunderbolt или FireWire (IEEE 1394).

Интерфейс между контроллером и устройством зачастую относится к интерфейсу очень низкого уровня.

Задача контроллера состоит в преобразовании последовательного потока битов в блок байтов и коррекции ошибок в случае необходимости. Блок байтов обычно проходит первоначальную побитовую сборку в буфере, входящем в состав контроллера. После проверки контрольной суммы блока и объявления его не содержащим ошибок он может быть скопирован в оперативную память.

При наличии контроллера операционная система инициализирует его с помощью нескольких параметров, среди которых количество символов или пикселов в строке и количество строк на экране, а заботу об управлении электрическими полями возлагает на контроллер.

У каждого контроллера для связи с центральным процессором имеется несколько регистров. Путем записи в эти регистры операционная система может давать устройству команды на предоставление данных, принятие данных, включение, выключение или выполнение каких-нибудь других действий. Считывая данные из этих регистров, операционная система может узнать о текущем состоянии устройства, о том, готово ли оно принять новую команду, и т. д. В дополнение к регистрам управления у многих устройств имеется буфер данных, из которого операционная система может считывать данные и в который она может их записывать. Например, наиболее распространенный способ отображения компьютерами пикселов на экране предусматривает наличие видеопамяти, которая по сути является буфером данных, куда программы или операционная система могут вести запись.

Но тут возникает вопрос: как центральный процессор обменивается данными с регистрами управления и буферами данных устройств? Есть два альтернативных варианта. В первом из них каждому регистру управления назначается номер порта ввода-вывода, являющийся 8- или 16-разрядным целым числом1. Набор всех портов ввода-вывода формирует пространство портов ввода-вывода, которое защищено от доступа со стороны обычных пользовательских программ (доступ к нему имеет только операционная система).


Второй вариант, появившийся на машинах PDP-11, предусматривает отображение всех регистров управления на пространство памяти. Каждому регистру управления выделен уникальный адрес в памяти, который не распределяется в оперативной памяти. Эта система называется отображаемым на адресное пространство памяти вводом-выводом.

Как только центральному процессору необходимо считать слово либо из памяти, либо из порта ввода-вывода, он выставляет нужный ему адрес на адресных линиях шины, а затем выставляет сигнал READ на линии управления шины. Для сообщения о том, какое именно пространство ему нужно, ввода-вывода или памяти, используется другая сигнальная линия. Если нужно пространство памяти, то на запрос отвечает память, если же нужно пространство ввода-вывода, то на запрос отвечает устройство ввода-вывода. Если имеется только пространство памяти, то каждый модуль памяти и каждое устройство ввода-вывода сравнивают адрес, выставленный на адресной линии с диапазоном обслуживаемых ими адресов. Если адрес попадает в его диапазон, то этот модуль или это устройство отвечает на запрос. Поскольку адресов, выделенных одновременно и памяти, и устройству ввода-вывода, не существует, то никаких недоразумений и конфликтов не возникает.


  1. Прямой доступ к памяти

Независимס סт наличия или סтсутствия у центральнסгס прסцессסра ввסда-вывסда, סтסбражаемסгס на прסстранствס памяти, ему неסбхסдимס סбращаться к кסнтрסллерам устрסйств, чтסбы סсуществлять с ними סбмен данными. Центральный прסцессסр мסжет запрашивать данные у кסнтрסллера ввסда-вывסда пסбайтнס, нס при этסм будет нерациסнальнס расхסдסваться егס рабסчее время, пסэтסму чаще всегס испסльзуется другая схема, кסтסрая называется прямым дסступסм к памяти (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-контроллер решает, какое из устройств обслуживать следующим. Он может быть настроен на использование алгоритма кругового обслуживания, или же у