Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Informatika.pdf
Скачиваний:
240
Добавлен:
26.03.2015
Размер:
6.48 Mб
Скачать

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

При этом все потоки остаются в одном адресном пространстве и совместно используют одни и те же выделенные ресурсы.

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

3.5. Управление памятью

Память в компьютере имеет иерархическую структуру. Небольшая её часть, находящаяся прямо в центральном процессоре, представляет собой очень быструю энергозависимую кэш-память. Далее идёт более обширная энергозависимая оперативная память ОЗУ (RAM), следующая ступень иерархии медленная энергонезависимая память на жёстких дисках (ПЗУ), объём которой может достигать сотен гигабайт.

Часть операционной системы, отвечающая за управление памятью, называется

модулем управления памяти или менеджером памяти. Этот модуль следит за использованием памяти, выделяет её процессам, освобождает ресурсы, управляет обменом между ОЗУ и диском. Системы управления памятью делятся на два класса. К первому относятся системы, перемещающие процессы во время их выполнения между оперативной памятью и диском, т. е. осуществляющие подкачку процессов целиком или постранично. Ко второму классу относятся системы, которые этого не делают.

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

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

Описанные алгоритмы организации памяти эффективны для работы с пакетными системами, но не подходят для систем с разделённым временем или ориентированным на работу с графикой. Для таких случаев оперативной памяти оказывается недостаточно, чтобы

83

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

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

совершенствования компьютерной техники размеры разделов в виртуальной памяти всё время растут.

3.6 Организация ввода-вывода

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

Устройства ввода-вывода условно делят на две категории: блочные устройства и символьные устройства. Блочные хранят информацию в виде блоков фиксированного объёма, причём у каждого блока есть свой адрес. Каждый блок может быть прочитан независимо от остальных блоков. Наиболее распространённое блочное устройство магнитный диск. Символьное устройство принимает поток символов без какой-либо блочной структуры. Это устройство не адресуемо и не выполняет операцию поиска. Это, например, принтеры, сетевые адаптеры, мыши и т. п.

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

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

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

84

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

Существует три способа осуществления операций ввода-вывода:

§программный ввод-вывод. Здесь всю работу осуществляет центральный процессор, который ожидает готовности устройства во время проведения операции;

§управляемый прерываниями ввод-вывод, при котором центральный процессор начинает передачу ввода-вывода и переключается на другой процесс, пока прерывание от устройства не просигналит ему об окончании операции ввода- вывода;

§прямой доступ к памяти. При таком способе отдельная микросхема управляет

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

3.7 Драйверы устройств

Программа управления каждым устройством ввода-вывода, подключённым к компьютеру, называется драйвером устройства. Поскольку различаются все внешние устройства ЭВМ, то и их управляющие программы тоже будут сильно различаться.

Драйверы обычно пишутся производителями устройств и распространяются вместе с устройствами. Каждый драйвер устройства поддерживает один тип устройства или,

максимум,

класс близких устройств. Драйвер либо бывает

частью

ядра

операционной

 

 

 

 

 

 

 

 

 

 

 

 

системы

(см.

рис.

3.4),

либо

частью

 

 

Программа пользователя

 

 

Простран-

 

 

 

 

 

 

пространства

пользователя.

Чтобы

 

 

 

 

ство поль-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

зователя

 

получить доступ к аппаратной части

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

устройства, т. е. к регистрам

контроллера,

 

 

Операционная система

 

 

 

 

 

 

 

 

 

 

 

 

драйвер должен быть частью ядра

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

операционной системы. Если же драйвер

 

 

 

 

 

 

 

 

 

 

Простран-

 

Драйвер

 

Драйвер

 

Драйвер

 

 

 

принтера

 

видеокарты

 

CD-ROM

 

 

ство ядра

работает в пространстве пользователя, то

 

 

 

 

 

 

 

 

 

 

 

 

это позволяет изолировать ядро от

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

драйверов,

а драйверы друг от друга. При

 

Контроллер

 

Контроллер

 

Контроллер

 

 

 

 

 

 

 

 

Аппаратура

этом устраняется причина сбоев ОС, когда

 

принтера

 

видеокарты

 

CD-ROM

 

 

 

 

 

 

 

 

 

 

 

 

 

драйверы,

 

содержащие

 

ошибки,

 

Принтер

 

Монитор

 

CD-ROM

 

Устройства

сталкиваются с ядром тем или иным

 

 

 

 

 

 

 

 

 

 

 

 

способом. Чаще же драйверы работают в

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 3.4. Логическое расположение драйверов устройств

пространстве ядра. В этом случае

 

 

 

 

 

 

 

 

 

 

 

 

необходима

специальная

архитектура,

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

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

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

85

На персональных компьютерах эта модель не эффективна, т. к. не все пользователи могут самостоятельно перекомпилировать и собрать ядро. Поэтому ОС, начиная с MS-DOS, перешли к модели динамической подгрузки драйверов.

Драйвер устройства выполняет следующие основные функции:

§обрабатывает запросы чтения и записи независимого от устройств программного обеспечения;

§инициализирует устройства;

§управляет энергопотреблением устройств и регистрацией событий;

§проверяет входные параметры при обращении к устройству. Если параметры ошибочны, драйвер возвращает ошибку в оперативную систему; если параметры правильны, управляет работой устройства;

§проверяет использование устройства в данный момент, т. е. контролирует работу устройства.

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

§драйвер ждёт, пока контроллер не выполнит для него определённую работу; пока он ждёт, он блокируется до тех пор, пока прерывание от устройства его не разблокирует;

§если работа контроллера быстрая, драйвер не блокируется, а начинает

обрабатывать следующий запрос.

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

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

3.8 Файловые системы

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

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

86

Соседние файлы в предмете Информатика