Читайте также:
|
На протяжении существования процесса его выполнение может быть многократно прервано и продолжено. Для того, чтобы возобновить выполнение процесса, необходимо восстановить состояние его операционной среды. Состояние операционной среды отображается состоянием регистров и программного счетчика, режимом работы процессора, указателями на открытые файлы, информацией о незавершенных операциях ввода-вывода, кодами ошибок выполняемых данным процессом системных вызовов и т.д. Эта информация называется контекстом процесса.
Кроме этого, операционной системе для реализации планирования процессов требуется дополнительная информация: идентификатор процесса, состояние процесса, данные о степени привилегированности процесса, место нахождения кодового сегмента и другая информация. В некоторых ОС (например, в ОС UNIX) информацию такого рода, используемую ОС для планирования процессов, называют дескриптором процесса.
Дескриптор процесса по сравнению с контекстом содержит более оперативную информацию, которая должна быть легко доступна подсистеме планирования процессов. Контекст процесса содержит менее актуальную информацию и используется операционной системой только после того, как принято решение о возобновлении прерванного процесса.
Очереди процессов представляют собой дескрипторы отдельных процессов, объединенные в списки. Таким образом, каждый дескриптор, кроме всего прочего, содержит по крайней мере один указатель на другой дескриптор, соседствующий с ним в очереди. Такая организация очередей позволяет легко их переупорядочивать, включать и исключать процессы, переводить процессы из одного состояния в другое.
Программный код только тогда начнет выполняться, когда для него операционной системой будет создан процесс. Создать процесс - это значит:
1. создать информационные структуры, описывающие данный процесс, то есть его дескриптор и контекст;
2. включить дескриптор нового процесса в очередь готовых процессов;
3. загрузить кодовый сегмент процесса в оперативную память или в область свопинга.
Алгоритмы планирования процессов
Планирование процессов включает в себя решение следующих задач:
1. определение момента времени для смены выполняемого процесса;
2. выбор процесса на выполнение из очереди готовых процессов;
3. переключение контекстов "старого" и "нового" процессов.
Первые две задачи решаются программными средствами, а последняя в значительной степени аппаратно (см. раздел 2.3. "Средства аппаратной поддержки управления памятью и многозадачной среды в микропроцессорах Intel 80386, 80486 и Pentium").
Существует множество различных алгоритмов планирования процессов, по разному решающих вышеперечисленные задачи, преследующих различные цели и обеспечивающих различное качествомультипрограммирования. Среди этого множества алгоритмов рассмотрим подробнее две группы наиболее часто встречающихся алгоритмов: алгоритмы, основанные на квантовании, и алгоритмы, основанные на приоритетах.
В соответствии с алгоритмами, основанными на квантовании, смена активного процесса происходит, если:
Процесс, который исчерпал свой квант, переводится в состояние ГОТОВНОСТЬ и ожидает, когда ему будет предоставлен новый квант процессорного времени, а на выполнение в соответствии с определенным правилом выбирается новый процесс из очереди готовых. Таким образом, ни один процесс не занимает процессор надолго, поэтому квантование широко используется в системах разделения времени. Граф состояний процесса, изображенный на рисунке 2.1, соответствует алгоритму планирования, основанному на квантовании.
Кванты, выделяемые процессам, могут быть одинаковыми для всех процессов или различными. Кванты, выделяемые одному процессу, могут быть фиксированной величины или изменяться в разные периоды жизни процесса. Процессы, которые не полностью использовали выделенный им квант (например, из-за ухода на выполнение операций ввода-вывода), могут получить или не получить компенсацию в виде привилегий при последующем обслуживании. По разному может быть организована очередь готовых процессов: циклически, по правилу "первый пришел - первый обслужился" (FIFO) или по правилу "последний пришел - первый обслужился" (LIFO).
Другая группа алгоритмов использует понятие "приоритет" процесса. Приоритет - это число,характеризующее степень привилегированности процесса при использовании ресурсов вычислительной машины, в частности, процессорного времени: чем выше приоритет, тем выше привилегии.
Приоритет может выражаться целыми или дробными, положительным или отрицательным значением.Чем выше привилегии процесса, тем меньше времени он будет проводить в очередях. Приоритет может назначаться директивно администратором системы в зависимости от важности работы или внесенной платы, либо вычисляться самой ОС по определенным правилам, он может оставаться фиксированным на протяжении всей жизни процесса либо изменяться во времени в соответствии с некоторым законом. В последнем случае приоритеты называются динамическими.
Существует две разновидности приоритетных алгоритмов: алгоритмы, использующие относительные приоритеты, и алгоритмы, использующие абсолютные приоритеты.
В обоих случаях выбор процесса на выполнение из очереди готовых осуществляется одинаково: выбирается процесс, имеющий наивысший приоритет. По разному решается проблема определения момента смены активного процесса. В системах с относительными приоритетами активный процесс выполняется до тех пор, пока он сам не покинет процессор, перейдя в состояние ОЖИДАНИЕ (или же произойдет ошибка, или процесс завершится). В системах с абсолютными приоритетами выполнение активного процесса прерывается еще при одном условии: если в очереди готовых процессов появился процесс, приоритет которого выше приоритета активного процесса. В этом случае прерванный процесс переходит в состояние готовности. На рисунке 2.2 показаны графы состояний процесса для алгоритмов с относительными (а) и абсолютными (б) приоритетами.

Рис. 2.2. Графы состояний процессов в системах
(а) с относительными приоритетами; (б)с абсолютными приоритетами
Во многих операционных системах алгоритмы планирования построены с использованием как квантования, так и приоритетов. Например, в основе планирования лежит квантование, но величина кванта и/или порядок выбора процесса из очереди готовых определяется приоритетами процессов.
2 вопросЧасто при подготовке компьютера к установке операционной системы или в ходе «аварийно-восстановительных работ» на винчестере возникает необходимость перенести достаточно большой объем данных на жесткий диск. Объема стандартной дискеты для этого категорически не хватает. Для подобных операций можно было бы использовать USB-флэш-диск или винчестер с USB-интерфейсом, но как это сделать, если поддержки USB-интерфейса в DOS не предусмотрено. Так есть ли возможность использовать USB-накопители в среде DOS?
Изначально поддержки USB-накопителей в операционной системе DOS действительно нет, но ее можно добавить самостоятельно. Для начала нужно создать обычную загрузочную дискету.
В Windows 98 это можно сделать, двигаясь следующим образом:
"Панель управления" -> "Установка и удаление программ" -> "Загрузочный диск".
В Windows XP создать загрузочную дискету еще проще: нужно просто отметить пункт "Копировать системные файлы" при форматировании дискеты.
На загрузочную дискету следует скопировать файлы USBASPI.SYS, USBCD.SYS, DI1000DD.SYS, MSCDEX.EXE и HIMEM.SYS. Скачать архив с этими файлами можно отсюда (размер файла 55 килобайт).
Драйвер USBASPI.SYS от компании Panasonic позволяет системе видеть подключенный к USB-порту USB-накопитель (винчестер, флэш-диск или привод CD-ROM) как устройство SCSI, поддерживает интерфейс USB 2.0 и корректно сканирует USB-контроллеры на компьютере, находя все устройства, к ним подключенные.
Драйвер DI1000DD.SYS от компании Novac поддерживает файловую систему FAT32, а также точно и правильно реагирует на ограничения ранних версий операционной системы DOS.
Драйвер USBCD.SYS от компании Panasonic позволяет системе видеть подключенный к USB-порту привод CD-ROM'а.
Драйвер MSCDEX.EXE от компании Microsoft обеспечивает работу системы с приводом CD-ROM.
Драйвер HIMEM.SYS от компании Microsoft поддерживает работу системы с расширенной памятью (XMS) компьютера.
Работа под DOS USB-флэш-диска и винчестера с интерфейсом USB
После того как на загрузочную дискету скопированы все указанные драйвера в файл CONFIG.SYS на загрузочном диске нужно добавить следующие строки:
DEVICE=HIMEM.SYS /TEST:OFF
DOS=HIGH
DEVICEHIGH=USBASPI.SYS /V /W
DEVICEHIGH=DI1000DD.SYS
Далее перезагружаем компьютер с дискеты. Драйвер USBASPI.SYS при загрузке предложит подключить к компьютеру USB-накопитель. Когда USB-накопитель будет обнаружен, для него будет выделен соответствующий логический том.
Вот что увидит пользователь на экране монитора в ходе загрузки компьютера, к USB-порту которого подключен USB-флэш-диск компании TwinMOS объемом 132 мегабайта:

Работа под DOS привода CDROM с интерфейсом USB
Работать под DOS можно не только с USB-флэш-диском или USB-винчестером, но и с подключенным к USB-порту внешним приводом CD-ROM с интерфейсом USB.
В этом случае в файл CONFIG.SYS на загрузочной дискете нужно добавить следующие строки:
DEVICE=HIMEM.SYS /TEST:OFF
DOS=HIGH
DEVICEHIGH=USBASPI.SYS /V /NORST
DEVICEHIGH=USBCD.SYS /D:USBCD001
А файл AUTOEXEC.BAT должен содержать строку:
LH MSCDEX.EXE /D:USBCD001
7 билет 1 вопрос
Планирование и диспетчеризация процессов и задач
Когда говорят о диспетчеризации, то всегда в явном или неявном виде подразумевают понятие задачи (потока выполнения). Если операционная система не поддерживает механизм потоковых вычислений, то можно заменять понятие задачи понятием процесса. Ко всему прочему, часто понятие задачи используется в таком контексте, что для его трактовки приходится использовать термин «процесс».
Очевидно, что на распределение ресурсов влияют конкретные потребности тех задач, которые должны выполняться параллельно. Другими словами, можно столкнуться с ситуациями, когда невозможно эффективно распределять ресурсы с тем, чтобы они не простаивали. Например, пусть всем выполняющимся процессам требуется некоторое устройство с последовательным доступом. Но поскольку, как мы уже знаем, оно не может разделяться между параллельно выполняющимися процессами, то процессы вынуждены будут очень долго ждать своей очереди, то есть недоступность одного ресурса может привести к тому, что длительное время не будут использоваться многие другие ресурсы.
Если же мы возьмем такой набор процессов, что они не будут конкурировать между собой за неразделяемые ресурсы при своем параллельном выполнении, то, скорее всего, процессы смогут выполниться быстрее (из-за отсутствия дополнительных ожиданий), да и имеющиеся в системе ресурсы, скорее всего, будут использоваться более эффективно. Таким образом, возникает задача подбора такого множества процессов, которые при своем выполнении будут как можно реже конфликтовать за имеющиеся в системе ресурсы. Такая задача называется планированием вычислительных процессов.
Задача планирования процессов возникла очень давно — в первых пакетных операционных системах при планировании пакетов задач, которые должны были выполняться на компьютере и по возможности бесконфликтно и оптимально использовать его ресурсы. В настоящее время актуальность этой задачи стала меньше. На первый план уже очень давно вышли задачи динамического (или краткосрочного) планирования, то есть текущего наиболее эффективного распределения ресурсов, возникающего практически по каждому событию. Задачи динамического планирования стали называть диспетчеризацией1. Очевидно, что планирование процессов осуществляется гораздо реже, чем текущее распределение ресурсов между уже выполняющимися задачами. Основное различие между долгосрочным и краткосрочным планировщиками заключается в частоте их запуска, например: краткосрочный планировщик может запускаться каждые 30 или 100 мс, долгосрочный — один раз в несколько минут (или чаще; тут многое зависит от общей длительности решения заданий пользователей).
Долгосрочный планировщик решает, какой из процессов, находящихся во входной очереди, в случае освобождения ресурсов памяти должен быть переведен в очередь процессов, готовых к выполнению. Долгосрочный планировщик выбирает процесс из входной очереди с целью создания неоднородной мультипрограммной смеси. Это означает, что в очереди готовых к выполнению процессов должны находиться в разной пропорции как процессы, ориентированные на ввод-вывод, так и процессы, ориентированные преимущественно на активное использование центрального процессора.
Краткосрочный планировщик решает, какая из задач, находящихся в очереди готовых к выполнению, должна быть передана на исполнение. В большинстве современных операционных систем, с которыми мы сталкиваемся, долгосрочный планировщик отсутствует.
8 билет 1 вопрос
Диспетчер[править | править исходный текст]
Диспетчер — это еще один компонент системы планирования. Это модуль, который передает управление процессором тому процессу, который был выбран на уровне кратковременного планирования. В его задачи входит переключение контекста, переключение в пользовательский режим и прыжок к нужному месту пользовательской программы, чтобы начать или продолжить ее исполнение. Главное требование к диспетчеру — это быстродействие, поскольку он осуществляет каждое переключение процессов.
Планирование выполнения задач — одна из ключевых концепций в многозадачности и многопроцессорности как в операционных системах общего назначения, так и в операционных системах реального времени. Планирование заключается в назначении приоритетов процессам в очереди с приоритетами. Программный код, выполняющий эту задачу, называется планировщиком.
Самой важной целью планирования задач является наиболее полная загрузка процессора. Производительность — количество процессов, которые завершают выполнение за единицу времени. Время ожидания — время, которое процесс ожидает в очереди готовности. Время отклика — время, которое проходит от начала запроса до первого ответа на запрос.
В средах вычислений реального времени, например, на мобильных устройствах, предназначенных для автоматического управления в промышленности (например, робототехника), планировщик задач должен обеспечить отработку процессов в течение заданных временны́х промежутков (время отклика); это критично для поддержания корректной работы системы реального времени.
9 билет 1 вопрос
.Память в ЭВМ имеет модульную структуру. В основе которой лежит модульное построение, дающее возможность формирование переменного объема накопительного блока путем наращивания или уменьшения числа модулей в конфигурации.
Физическая память вычислительной системы разделяют на внешнюю и оперативную. Внешняя память предназначена для долговременного хранения информации и сохраняется в пассивном состоянии вычислительной системы даже в выключенном состоянии.
Внешняя память в современных вычислительных системах реализована в основном на дисках и магнитных лентах,а также различного рода энергонезависимой памяти.
Внешняя память физически реализуется как устройства системы ввода вывода, которые имеют связь с процессором и памятью посредством интерфейсов ввода вывода, функционирование которых основано на двух различных архитектурных решениях: системная шина и каналы ввода вывода.
Что же касается оперативной памяти,физическая и логическая организация которой является предметом рассмотрения данной темы, конструктивно разделена на две части: запоминающее устройство и блок управления или контроллер памяти.
Контроллер памяти является координатором оперативной памяти, он связан с интерфейсами с процессором и системой ввода вывода, получая от них запросы за данными как для записи их память,так чтение из нее.Получив запрос,контроллер ставит его в очередь обращения к запоминающему устройству (ЗУ) согласно приоритету, отдавая предпочтение системе ввода вывода, организует связь с ЗУ с соответствии с протоколом интерфейса, соединяющим их.Функциональные возможности контроллера памяти находятся в прямой зависимости от сложности функциональных возможностей системы. Так, например, в симметричных мультипроцессорных системах контроллер памяти является координатором запросов за данными от всех процессоров системы,принимая их на исполнение или временно блокируя, если данные уже находятся в обработке у другого процессора,таким образом обеспечивая когерентность данных в системе.
Локальность
Оказывается, при таком способе организации по мере снижения скорости доступа к уровню памяти снижается также и частота обращений к нему.
Ключевую роль здесь играет свойство реальных программ, в течение ограниченного отрезка времени способных работать с небольшим набором адресов памяти. Это эмпирически наблюдаемое свойство известно как принцип локальности или локализации обращений.
Свойство локальности (соседние в пространстве и времени объекты характеризуются похожими свойствами) присуще не только функционированию ОС, но и природе вообще. В случае ОС свойство локальности объяснимо, если учесть, как пишутся программы и как хранятся данные, то есть обычно в течение какого-то отрезка времени ограниченный фрагмент кода работает с ограниченным набором данных. Эту часть кода и данных удается разместить в памяти с быстрым доступом. В результате реальное время доступа к памяти определяется временем доступа к верхним уровням, что и обусловливает эффективность использования иерархической схемы. Надо сказать, что описываемая организация вычислительной системы во многом имитирует деятельность человеческого мозга при переработке информации. Действительно, решая конкретную проблему, человек работает с небольшим объемом информации, храня не относящиеся к делу сведения в своей памяти или во внешней памяти (например, в книгах).
Кэш процессора обычно является частью аппаратуры, поэтому менеджер памяти ОС занимается распределением информации главным образом в основной и внешней памяти компьютера. В некоторых схемах потоки между оперативной и внешней памятью регулируются программистом (см. например, далее оверлейные структуры), однако это связано с затратами времени программиста, так что подобную деятельность стараются возложить на ОС.
Адреса в основной памяти, характеризующие реальное расположение данных в физической памяти, называются физическими адресами. Набор физических адресов, с которым работает программа, называют физическим адресным пространством.
10 билет 1 вопрос
Виртуальная организация памяти – это процесс расширения логической памяти за пределы физической.
В разных операционных системах используются разные способы структуризации виртуального адресного пространства.
В одних – виртуальное адресное пространство подобно физической памяти представлено в виде непрерывной линейной последовательности виртуальных адресов. Такую структуру адресного пространства называют плоской (flat). При этом виртуальным адресом является число, представляющее собой смещение относительно начала виртуального адресного пространства. Адрес такого типа называется линейным виртуальным адресом.
В других операционных системах виртуальное адресное пространство делится на части, называемые сегментами. Здесь, помимо линейного, может быть использован виртуальный адрес, представляющий собой пару чисел (n,m), где первое определяет сегмент, а второе – смещение внутри сегмента.
Есть и более сложные способы структуризации виртуального адресного пространства, когда виртуальный адрес образуется тремя или даже более числами.
Задачей операционной системы является отображение индивидуальных виртуальных адресных пространств всех одновременно выполняющихся процессов на общую физическую память. При этом операционная система отображает или все виртуальное адресное пространство, или только определенную его часть.
Следует различать максимально возможное виртуальное адресное пространство процесса и назначенное (выделенное) процессу виртуальное адресное пространство.
Виртуализация оперативной памяти осуществляется множеством программных модулей операционной системы и аппаратных схем процессора и включает решение следующих задач:
– размещение данных в запоминающих устройствах разного типа (например, часть кодов программы – в оперативной памяти, а часть – на диске);
– выбор образов процессов или их частей для перемещения из оперативной памяти на диск и обратно;
– перемещение по мере необходимости данных между памятью и диском;
– преобразование виртуальных адресов в физические.
11 билет 1 вопрос
Стратегии размещения
Стратегии управления памятью направлены на то, чтобы обеспечить наилучшее возможное использование ресурсов основной памяти. Стратегии управления памятью делятся на следующие категории.1. Стратегии выборки:а) стратегии выборки по запросу (по требованию);б) стратегии упреждающей выборки.2. Стратегии размещения.3. Стратегии замещения.
Стратегии выборки
ставят своей целью определять, когда следует “втолкнуть” очередной блок программы или данных в основную память. В течение многих лет полагали, что наиболее целесообразно осуществлять
выборку по запросу
: согласно этому принципу, очередной блок программы или данных загружается в основную память, когда его запрашивает работающая программа. Считалось, что поскольку в общем случае мы не можем предсказать, куда будет передаваться управление по программе, дополнительные затраты, связанные с прогнозированием дальнейшего хода программы и упреждающей выборкой, будут значительно превышать ожидаемые выгоды. А сегодня многие специалисты уверены в том, что упреждающая выборка вполне может обеспечить повышение быстродействия системы. Стратегии
размещения
ставят своей целью определить, в какое место основнойпамяти следует помещать поступающую программу. Существует три основных стратегии размещения:“первый подходящий”, ”наиболее подходящий”, ”наименее подходящий”. Выборпервого подходящего свободного участка предусматривает помещение программы в первыйнайденный свободный участок, который достаточно велик для ее размещения. Выборнаиболее подходящего свободного участка предусматривает помещение программы в“самый тесный” подходящий участок, т е в минимальный из имеющихся свободных участковпамяти, где программа может уместиться. Выбор наименее подходящего свободного участкапредусматривает помещение блока программы или данных в имеющийся свободный участокмаксимального размера. Выбор первого подходящего участка характеризуется малымииздержками. Выбор наиболее подходящего участка большинству людей интуитивно кажетсянаиболее выгодным. Выбор наименее подходящего участка имеет то преимущество, что онне оставляет в памяти маленьких дыр.Стратегии
замещения
ставят своей целью определить, какой блок программы следуетвывести (“вытолкнуть”) из основной памяти, чтобы освободить место для записипоступающих программ или данных.
1.5.Эволюция видов организации памяти
РеальнаяВиртуальнаяОднопользовательскиесистемыМультипрограммные системы среальной памятьюМультипрограммныесистемы с виртуальнойпамятьюМультипрограммированиес фиксированнымиразделамиМультипрограммирование спеременнымиразделамиЧистыестраницыЧистыесегментыКомбинациястраницисегментовАбсолютные модулиПеремещаемые модули
Эволюция видов организации памяти
1.6.Связное и несвязное распределение памяти
Самые первые вычислительные машины требовали
связного
распределения памяти -каждая программа должна была занимать один сплошной блок ячеек памяти. Только послепоявления мультипрограммирования с разделами переменного размера стало ясно, чтогораздо более эффективным может быть несвязное распределение памяти.При
несвязном распределении памяти
программа разбивается на ряд блоков, или
сегментов
, которые могут размещаться в основной памяти в участках, необязательнососедствующих друг с другом. Операционной системе гораздо сложнее обеспечитьнесвязное распределение памяти, однако подобный подход обладает важнымпреимуществом: если основная память имеет ряд небольших свободных участков вместоодного большого, то, как правило, операционная система все же может загрузить ивыполнить программу, которой в противном случае пришлось бы ждать.Первые вычислительные машины предоставлялись в каждый момент времени одномупользователю.Эти однопрограммные машины содержали самыепримитивные операционные системы, как правило, системыуправления вводом-выводом, существенно упрощающиепрограммирование операций ввода-вывода на машинномуровне. В однопрограммных системах защита памятиосуществлялась при помощи одного граничного регистра,который позволял отделить программу пользователя отоперационной системы.Со временем стало ясно, что несколько пользователеймогли бы одновременно работать с одной машиной, однаконеобходимо было обеспечить их защиту друг от друга. Вмультипрограммных системах с фиксированными разделами,с трансляцией и загрузкой модулей в абсолютных адресахпрограммы пользователя подготавливаются таким образом,чтобы выполняться в конкретных разделах. Если раздел,предусмотренный для конкретной программы пользователязанят, то этому пользователю приходится ждать, даже еслиимеется другой достаточно большой свободный раздел. В мультипрограммных системах сфиксированными разделами, с трансляцией и загрузкой перемещаемых модулей программуможно загружать в любой свободный раздел, размеры которого это позволяют
13 билет 1 вопрос
Стратегии замещения страниц
Когда происходит страничный сбой, основная задача состоит в определении той страницы, на место которой будет загружена требуемая виртуальная страница (замещение). При этом в многозадачной ОС замещение может быть ЛОКАЛЬНЫМ, то есть новая страница может быть загружена на место страницы той же самой задачи, и ГЛОБАЛЬНЫМ, когда страница может быть загружена на место страницы любой задачи. Кроме того, необходим некоторый критерий, по которому происходит определение замещаемой страницы: то есть замена должна быть произведена таким образом, чтобы снизить в будущем количество страничных сбоев. Это можно сделать на основе анализа предедущих обращений программы к своим страницам. На практике используют два следующих критерия:
LRU - замещается страница, к которой дольше всего не было обращений, то есть наименее используемая в последнее время. Для этого в каждой странице необходимо фиксироровать время обращения к ней;
FIFO - замещается страница, ранее всех загруженная в ОП (обычная "очередь"). Для этого необходимо фиксировать время загрузки страницы в ОП.
14 билет 1 вопрос
Управление вводом-выводом
Одной из главных функций ОС является управление всеми устройствами ввода-вывода компьютера. ОС должна передавать устройствам команды, перехватывать прерывания и обрабатывать ошибки; она также должна обеспечивать интерфейс между устройствами и остальной частью системы. В целях развития интерфейс должен быть одинаковым для всех типов устройств (независимость от устройств).
Физическая организация устройств ввода-вывода
Устройства ввода-вывода делятся на два типа: блок-ориентированные устройства и байт-ориентированные устройства. Блок-ориентированные устройства хранят информацию в блоках фиксированного размера, каждый из которых имеет свой собственный адрес. Самое распространенное блок-ориентированное устройство - диск. Байт-ориентированные устройства не адресуемы и не позволяют производить операцию поиска, они генерируют или потребляют последовательность байтов. Примерами являются терминалы, строчные принтеры, сетевые адаптеры. Однако некоторые внешние устройства не относятся ни к одному классу, например, часы, которые, с одной стороны, не адресуемы, а с другой стороны, не порождают потока байтов. Это устройство только выдает сигнал прерывания в некоторые моменты времени.
Внешнее устройство обычно состоит из механического и электронного компонента. Электронный компонент называется контроллером устройства или адаптером. Механический компонент представляет собственно устройство. Некоторые контроллеры могут управлять несколькими устройствами. Если интерфейс между контроллером и устройством стандартизован, то независимые производители могут выпускать совместимые как контроллеры, так и устройства.
Операционная система обычно имеет дело не с устройством, а с контроллером. Контроллер, как правило, выполняет простые функции, например, преобразует поток бит в блоки, состоящие из байт, и осуществляют контроль и исправление ошибок. Каждый контроллер имеет несколько регистров, которые используются для взаимодействия с центральным процессором. В некоторых компьютерах эти регистры являются частью физического адресного пространства. В таких компьютерах нет специальных операций ввода-вывода. В других компьютерах адреса регистров ввода-вывода, называемых часто портами, образуют собственное адресное пространство за счет введения специальных операций ввода-вывода (например, команд IN и OUT в процессорах i86).
ОС выполняет ввод-вывод, записывая команды в регистры контроллера. Например, контроллер гибкого диска IBM PC принимает 15 команд, таких как READ, WRITE, SEEK, FORMAT и т.д. Когда команда принята, процессор оставляет контроллер и занимается другой работой. При завершении команды контроллер организует прерывание для того, чтобы передать управление процессором операционной системе, которая должна проверить результаты операции. Процессор получает результаты и статус устройства, читая информацию из регистров контроллера.
Билет 15 1 вопрос
Устройство ввода-вы́вода — компонент типовой архитектуры ЭВМ, предоставляющий компьютеру возможность взаимодействия с внешним миром и, в частности, с пользователями.
Подразделяются на:
Устройство ввода
Устройство вывода
Устройства ввода-вывода — компоненты ЭВМ с переносными носителями (дисководы), двунаправленные интерфейсы (различные порты компьютера, различные сетевые интерфейсы)
Содержание [убрать]
1 Устройства ввода
2 Устройства вывода
3 Устройства ввода-вывода
4 См. также
Устройства ввода[править | править исходный текст]
Клавиатура
Мышь и тачпад
Планшет
Джойстик
Сканер
Цифровые фото, видеокамеры, веб-камеры
Микрофон
Устройства вывода[править | править исходный текст]
Монитор
Графопостроитель
Принтер
Акустическая система
Устройства ввода-вывода[править | править исходный текст]
Стример
Дисковод
Сетевая плата
Модем
16 билет 1 воопрос
1. Основные принципы управления вводом-выводом
Необходимость обеспечить программам возможность осуществлять обмен данными с внешними устройствами и при этом не включать в каждую двоичную программу соответствующий двоичный код, осуществляющий собственно управление устройствами ввода/вывода, привела разработчиков к созданию системного программного обеспечения и, в частности, самих операционных систем. Программирование задач управления вводом/выводом является наиболее сложным и трудоёмким, требующим очень высокой квалификации. Поэтому код, позволяющий осуществлять операции ввода/вывода, стали оформлять в виде системных библиотечных процедур; потом его стали включать не в системы программирования, а в операционную систему с тем, чтобы в каждую отдельно взятую программу его не вставлять, а только позволить обращаться к такому коду. Системы программирования стали генерировать обращения к этому системному коду ввода/вывода и осуществлять только подготовку к собственно операциям ввода/вывода, то есть автоматизировать преобразование данных к соответствующему формату, понятному устройствам, избавляя прикладных программистов от этой сложной и трудоёмкой работы. Другими словами, системы программирования вставляют в машинный код необходимые библиотечные подпрограммы ввода/вывода и обращения к тем системным программным модулям, которые, собственно, и управляют операциями обмена между оперативной памятью и внешними устройствами. Таким образом, управление вводом/выводом - это одна из основных функций любой ОС.
С одной стороны, в организации ввода/вывода в различных ОС много общего. С другой стороны, реализация ввода/вывода в ОС так сильно отличается от системы к системе, что очень нелегко выделить и описать именно основные принципы реализации этих функций. Проблема усугубляется ещё тем, что в большинстве ныне используемых систем эти моменты вообще, как правило, подробно не описаны, и исключение по этому вопросу касается только системы Linux, для которой имеются комментированные исходные тексты. Детально описываются функции API, реализующие ввод/вывод. Поскольку внешняя память, как правило, реализуется на таких устройствах ввода/вывода, как накопители на магнитных дисках, мы также рассмотрим логическую структуру диска.
17 билет 1 вопрос
Дата добавления: 2015-01-30; просмотров: 267 | Поможем написать вашу работу | Нарушение авторских прав |