
- •1.Дайте объяснение понятиям операционной среды и операционной системы. Приведите классификацию операционных систем.
- •2. Дайте объяснение понятиям процесса и задачи. Опишите переходы процесса из одного состояния в другие.
- •3. Объясните понятие ресурса. Почему понятие ресурса является одним из фундаментальных при рассмотрении ос? Какие виды и типы ресурсов вы знаете?
- •7. Приведите основные характеристики fat16, fat32, ntfs.
- •8. Перечислите и поясните основные принципы построения ос. Что такое posix? Какими преимуществами обладают программы, созданные с использованием только стандартных функций, предусмотренных posix?
- •9. Основные характеристики и возможности операционных систем фирмы Microsoft. Платформа Windows 9х Операционная система Windows 95
- •Операционная система Windows 98
- •Windows Millennium Edition
- •Платформа Windows nt
- •Windows nt Server 4.0
- •Платформа Windows 2000 Windows 2000 Server
- •Windows 2000 Professional
- •Windows xp
- •Windows 2003 Server
- •10. Основные характеристики и возможности операционных систем семейства unix. Общее представление семейства ос unix
- •Основные понятия семейства ос unix
- •Межпроцессные коммуникации в unix
- •11.Основные характеристики и возможности операционных систем семейства os/2.
- •12. Основные характеристики и возможности операционных систем реального времени (qnx). Общее представление ос реального времени qnx.
- •Особенности архитектуры системы qnx.
- •Основные механизмы qnx.
3. Объясните понятие ресурса. Почему понятие ресурса является одним из фундаментальных при рассмотрении ос? Какие виды и типы ресурсов вы знаете?
Термин «ресурс» обычно применяется по отношению к неоднократно используемым, относительно стабильным и «дефицитным» объектам, которые запрашиваются, используются и освобождаются процессами в период их активности. Другими словами, ресурсом является любой объект, который может распределяться внутри системы [2]. Ресурсы могут быть разделяемыми, когда несколько процессов могут их использовать одновременно (в один и тот же момент времени) или параллельно (в течение некоторого интервала времени процессы используют ресурс попеременно), а могут быть и неделимыми (рис. 1.1).
При разработке первых систем программирования под понятием «ресурсы» понимали процессорное время, память, каналы ввода/вывода и периферийные устройства. Однако скоро понятие ресурса стало более универсальным и общим. Различного рода программные и информационные ресурсы также могут быть определены для системы как объекты, которые могут разделяться и распределяться, и доступ к которым необходимо соответствующим образом контролировать. В настоящее время понятие ресурса превратилось в абстрактную структуру с целым рядом атрибутов, характеризующих способы доступа к этой структуре и ее физическое представление в системе. Более того, к ресурсам стали относиться и такие объекты, как сообщения и синхросигналы, которыми обмениваются задачи.
Перечислите и поясните основные функции ОС, которые связаны с управлением задачами. Какие дисциплины диспетчеризации задач вы знаете? Опишите их.
Система управления задачами обеспечивает прохождение их через компьютер. Операционная система выполняет следующие основные функции, связанные с управлением задачами:
- создание и удаление задач;
- планирование процессов и диспетчеризация задач;
- синхронизация задач, обеспечение их средствами коммуникации.
Создание и удаление задач осуществляется по соответствующим запросам от пользователей или от самих задач. Задача может породить новую задачу. При этом между процессами появляются «родственные» отношения. Порождающая задача называется «предком», «родителем», а порожденная – «потомком», «сыном» или «дочерней задачей». «Предок» может приостановить или удалить свою дочернюю задачу, тогда как «потомок» не может управлять «предком».
Основным подходом к организации того или иного метода управления процессами, обеспечивающего эффективную загрузку ресурсов или выполнение каких-либо иных целей, является организация очередей процессов и ресурсов. Очевидно, что на распределение ресурсов влияют конкретные потребности тех задач, которые должны выполняться параллельно. Другими словами, можно столкнуться с ситуациями, когда невозможно эффективно распределить ресурсы, исключив возможность их простаивания. Например, всем выполняющимся процессам требуется некоторое устройство с последовательным доступом. Но поскольку оно не может распределяться между параллельно выполняющимися процессами, то процессы вынуждены будут очень долго ждать своей очереди. Таким образом, недоступность одного ресурса может привести к тому, что длительное время не будут использоваться и многие другие ресурсы.
Если же возьмем набор таких процессов, которые не будут конкурировать между собой за неразделяемые ресурсы при параллельном выполнении, то, скорее всего, процессы смогут выполниться быстрее (из-за отсутствия дополнительных ожиданий), да и имеющиеся в системе ресурсы будут использоваться более эффективно. Итак, возникает задача планирования вычислительного процесса, т.е. организация бесконфликтного выполнения множества процессов.
Задача планирования процессов возникла на этапе создания первых пакетных ОС при планировании пакетов задач, которые должны были выполняться на компьютере и оптимально использовать его ресурсы. На первый план уже очень давно вышли задачи динамического (или краткосрочного) планирования, то есть текущего наиболее эффективного распределения ресурсов, возникающего практически при каждом событии. Организация работ по выполнению задач динамического планирования получила название диспетчеризации.
Очевидно, что долгосрочное планирование осуществляется гораздо реже, чем задача текущего распределения ресурсов между уже выполняющимися процессами и потоками. Основное отличие между долгосрочным и краткосрочным планировщиками заключается в частоте запуска: краткосрочный планировщик, например, может запускаться каждые 30 или 100 мс; долгосрочный – один раз за несколько минут или чаще (здесь многое зависит от общей длительности решения заданий пользователей).
С помощью долгосрочного планировщика определяется, какой из процессов, находящихся во входной очереди, должен быть переведен в очередь готовых процессов в случае освобождения ресурсов памяти и выбираются процессы из входной очереди с целью создания неоднородной мультипрограммной смеси. Это означает, что в очереди готовых к выполнению процессов должны находиться (в разной пропорции) как процессы, ориентированные на ввод/вывод, так и процессы, ориентированные на преимущественную работу с центральным процессором.
Функция краткосрочного планировщика состоит в определении конкретных задач из находящихся в очереди, готовых к выполнению, которые должны быть переданы на исполнение. В большинстве современных операционных систем долгосрочный планировщик отсутствует.
В основе определения дисциплины диспетчеризации лежит выбор стратегии планирования. Стратегия планирования определяет, какие именно процессы могут быть направлены на выполнение для достижения целей, поставленных перед данными процессами.
Известно большое количество правил (дисциплин) диспетчеризации, в соответствии с которыми формируется список (очередь) готовых к выполнению задач. Различают два больших класса дисциплин диспетчеризации (дисциплин обслуживания) – бесприоритетные и приоритетные. При бесприоритетном обслуживании выбор задач производится в некотором заранее установленном порядке без учета их относительной важности и времени обслуживания. При реализации приоритетных дисциплин обслуживания отдельным задачам предоставляется преимущественное право попасть в состояние исполнения. Классификация дисциплин диспетчеризации приведена на рис. 2.1.
Самой
простой в реализации являетсядисциплина
FCFS (first come –
first served), согласно которой задачи
обслуживаются в порядке очереди, то
есть в порядке их появления. Те задачи,
которые были заблокированы в процессе
работы (попали в какое-либо из состояний
ожидания, например, из-за операций
ввода/вывода), после перехода в состояние
готовности ставятся в эту очередь перед
теми задачами, которые еще не выполнялись.
Другими словами, образуются две очереди
(рис. 2.2): одна очередь образуется из
новых задач, а вторая очередь – из ранее
выполнявшихся, но попавших в состояние
ожидание. Такой подход позволяет
реализовать стратегию обслуживания,
формулируемую как «по возможности
заканчивать вычисления в порядке их
появления». Эта дисциплина обслуживания
не требует внешнего вмешательства в
ход вычислений и перераспределения
процессорного времени.
К достоинствам этой дисциплины диспетчеризации, прежде всего, можно отнести простоту реализации и малые расходы системных ресурсов на формирование очереди задач. Однако эта дисциплина приводит к тому, что при увеличении загрузки вычислительной системы растет и среднее время ожидания обслуживания, причем короткие задания, требующие небольших затрат машинного времени, вынуждены ожидать столько же, сколько и трудоемкие задания.
Дисциплина обслуживания SJN (Shortest Job Next) предполагает, что следующим будет выполняться кратчайшее задание. Для ее реализации необходимо, чтобы для каждого задания была известна оценка в потребностях машинного времени. Необходимость сообщать ОС характеристики задач, в которых
описывались бы потребности в ресурсах вычислительной системы, привела к тому, что были разработаны соответствующие языковые средства. Одним из наиболее известных был, в частности, язык управления заданиями JCL (Job Control Language). Пользователи вынуждены были указывать предполагаемое время выполнения задания. Для того чтобы они не злоупотребляли возможностью указать заведомо меньшее время выполнения с целью получить результаты раньше других, ввели подсчет реальных потребностей. Диспетчер задач сравнивал заказанное время и время выполнения и в случае превышения указанной оценки в данном ресурсе ставил данное задание не в начало, а в конец очереди. В некоторых ОС в таких случаях использовалась система штрафов, при которой в случае превышения заказанного машинного времени оплата вычислительных ресурсов осуществлялась уже по другим расценкам.
Дисциплина обслуживания SJN предполагает, что имеется только одна очередь заданий, готовых к выполнению. Задания, которые в процессе своего исполнения были временно заблокированы (например, ожидали завершения операций ввода/вывода), вновь попадают в конец очереди готовых к выполнению наравне с вновь поступающими. Это приводит к тому, что задания, которым требуется очень немного времени для своего завершения, вынуждены ожидать процессор наравне с длительными работами, что не всегда целесообразно.
Для устранения этого недостатка и была предложена дисциплина SRT (Shortest Remaining Time), в соответствии с которой следующим будет выполняться задание, требующее наименьшего времени для своего завершения.
Назовите основные принципы фон-неймановской архитектуры вычислительных машин. Как строится адресация ячеек памяти в реальном режиме? Как строится адресация ячеек памяти в защищенном режиме?
Любой IBM PC-совместимый компьютер представляет собой реализацию так называемой фон-неймановской архитектуры вычислительных машин. Машина состоит из блока управления, арифметико-логического устройства (АЛУ), памяти и устройств ввода-вывода. В ней реализуются следующие принципы организации архитектуры:
Концепция хранимой программы: программы и данные хранятся в одной и той же памяти;
Последовательная передача управления. Выполняемые действия определяются блоком управления и АЛУ, которые вместе являются основой центрального процессора. Центральный процессор выбирает и исполняет команды из памяти последовательно, адрес очередной команды задается «счетчиком адреса» в блоке управления.
Фон-неймановская архитектура – это не единственный вариант построения ЭВМ, есть и другие, которые не соответствуют указанным принципам (например, потоковые машины). Однако подавляющее большинство современных компьютеров основаны именно на указанных принципах, включая и сложные многопроцессорные комплексы, которые можно рассматривать как объединение фон-неймановских машин.
В реальном
В «наследство» от процессоров 8086/88 достался своеобразный способ задания адреса ячейки памяти в виде указателя «seg:offset», состоящего из двух слов: сегмента (seg – segment) и смещения (offset). Такая запись предполагает вычисление полного адреса по формуле:
Addr = 16 * seg + offset (3.1).
Такое представление 20-битного адреса двумя 16-битными числами в процессорах 8086/88 поддерживается и в реальном режиме всех последующих процессоров х86. Здесь сегмент указывает адрес параграфа - 16-байтной области памяти. Выравнивание адреса по границе параграфа означает, что он кратен 16 (4 младших бита нулевые). Нетрудно видеть, что один и тот же адрес можно задавать разными сочетаниями этих двух компонентов. Так, например, адрес начала области данных BIOS (BIOS Data Area) 00400h представляют как 0000:0400, так и 0040:0000 (шестнадцатеричное представление подразумевается). Возможны и другие варианты, но их не используют.
Обозначение и порядок бит и байт шин адреса и данных, принятое в аппаратуре PC, пришло от процессоров Intel 8086/88 (и даже от 8080). Самый младший бит LSB (Least Significant Bit) имеет номер 0, старший (MSB – Most Significant Bit) бит байта – 7, слова – 15, двойного слова –31. На рисунках принято старший бит изображать слева, а младший – справа.
В защищенном
Впроцессорах х86 предусматривается
разделение пространств памяти и
ввода-вывода.Пространство
памяти (Memory
Space)
предназначено для хранения кодов
инструкций и данных, для доступа к
которым имеется богатый выбор способов
адресации (24 режима). Память может
логически организовываться в виде
одного или множества сегментов переменной
длины (в реальном режиме – фиксированной).
Кроме сегментации в защищенном режиме
возможно разбиение (Paging)
логической памяти на страницы размером
4 Кбайт, каждая из которых может
отображаться на любую область физической
памяти. Начиная с 5-го поколения,
появилась возможность увеличения
размера страницы до 4 Мбайт. Сегментация
и разбиение на страницы могут применяться
в любых сочетаниях. Сегментация
является средством организации логической
памяти на прикладном уровне. Разбиение
на страницы применяется на системном
уровне для управления физической
памятью. Сегменты и страницы могут
выгружаться из физической оперативной
памяти на диск и по мере необходимости
подкачиваться с него обратно в физическую
память. Таким образом, реализуется
виртуальная память.
Применительно к памяти различают три адресных пространства: логическое, линейное и физическое. Основным режимом работы 32-разрядных процессоров считается защищенный режим, в котором работают все механизмы преобразования адресных пространств (рис. 4.2).
Рис. 4.2. Формирование адреса памяти 32-разрядных процессоров в защищенном режиме
Логический адрес, также называемый виртуальным, состоит из селектора сегмента Seg (в реальном режиме – просто адреса сегмента) и эффективного адреса, называемого также смещением (Offset). Логический адрес обозначается в форме Seg:Offset. Селектор сегмента хранится в старших 14 битах сегментного регистра (CS, DS, ES, SS, FS или GS), участвующего в адресации конкретного элемента памяти. По значению селектора из специальных таблиц, хранящихся в памяти, извлекается начальный адрес сегмента. Эффективный адрес формируется суммированием компонентов base, index, displacement с учетом масштаба scale. Поскольку каждая задача может иметь до 16 Кбайт селекторов (214), а смещение, ограниченное размером сегмента, может достигать 4 Гбайт, логическое адресное пространство для каждой задачи может достигать 64 Тбайт. Все это пространство виртуальной памяти в принципе доступно программисту (при условии поддержки со стороны операционной системы).
Блок сегментации транслирует логическое адресное пространство в 32-битное пространство линейных адресов. Линейный адрес образуется сложением базового адреса сегмента с эффективным адресом. Базовый адрес сегмента в реальном режиме образуется умножением содержимого используемого сегментного регистра на 16 (как и в 8086). В защищенном режиме базовый адрес загружается из дескриптора, хранящегося в таблице, по селектору, загруженному в используемый сегментный регистр.
32-битный физический адрес памяти образуется после преобразования линейного адреса блоком страничной переадресации. Он выводится на внешнюю шину адреса процессора. В простейшем случае (при отключенном блоке страничной переадресации) физический адрес совпадает с линейным. Включенный блок страничной переадресации осуществляет трансляцию линейного адреса в физический страницами размером 4 Кбайт (для последних поколений процессоров также возножны страницы размером 2 или 4 Мбайт). Блок обеспечивает и расширение разрядности физического адреса процессоров шестого поколения до 36 бит. Блок переадресации может включаться только в защищенном режиме.
Для обращения к памяти процессор (совместно с внешними схемами) формирует шинные сигналы для операций записи и чтения. Шина адреса разрядностью 32/36 бит позволяет адресовать 4/64 Гбайт физической памяти, но в реальном режиме доступен только 1 Мбайт, начинающийся с младших адресов.
Опишите распределение оперативной памяти в MS DOS, Windows 9x, Windows NT.
в MS DOS.
Основную
часть адресного пространства занимает
оперативная память. Объем установленной
памяти определяется тестом POST при
начальном включении (перезагрузке)
компьютера, начиная с младших адресов.
Натолкнувшись на отсутствие памяти
(ошибку), тест останавливается на
достигнутом и сообщает системе объем
реально работающей памяти.
Распределение памяти PC, непосредственно адресуемой процессором, представляется следующим образом (рис. 3.1).
00000h-9FFFFh – стандартная (базовая) память (Conventional (Base) Memory) объемом 640 Кбайт – доступная DOS и программам реального режима. В некоторых системах с видеоадаптером MDA верхняя граница сдвигается к AFFFFh (704 Кбайт). Иногда верхние 128 Кбайт стандартной памяти (область 80000h-9FFFFh) называют Extended Conventional Memory. Стандартная память распределяется следующим образом [12]:
00000h-003FFh – Interrupt Vectors – векторы прерываний (256 двойных слов);
00400h-004FFh – BIOS Data Area – область переменных BIOS;
00500h-00xxxh – DOS Area – область DOS;
00xxxh-9FFFFh – User RAM – память, предоставляемая пользователю (до 638 Кбайт)
A0000h-FFFFFh – верхняя память UMA (Upper Memory Area) объемом 384 Кбайт, зарезервированная для системных нужд. В ней размещаются области буферной памяти адаптеров (например, видеопамять) и постоянная память (BIOS с расширениями). Эта область, обычно используемая не в полном объеме, ставит непреодолимый архитектурный барьер на пути непрерывной (нефрагментированной) памяти, о которой мечтают программисты.
Память выше 100000h – дополнительная (расширенная) память Extended Memory, непосредственно доступная только в защищенном (и в «большом реальном») режиме для компьютеров с процессорами 286 и выше. В ней выделяется область 100000h-10FFEFh – высокая память НМА – это единственная область расширенной памяти, доступная 286+ в реальном режиме при открытом вентиле Gate A20.
Будем придерживаться терминологии, укрепившейся в литературе, и область всей физической памяти, расположенной в адресном пространстве выше 1 Мбайта, будем называть дополнительной памятью. Ее объем у современных компьютеров указывается строкой Extended Memory xxxxx Kbyte в таблице, выводимой после прохождения теста POST.
Отображаемая память EMS (Expanded Memory Specification) – программная спецификация использования дополнительной памяти DOS-программами реального режима. С помощью специальных аппаратных или программных средств любая область дополнительной памяти может быть отображена на небольшие страницы, расположенные в области UMA.
Расширенная память XMS (Extended Memory Specification) – иная программная спецификация использования дополнительной памяти DOS-программами, разработанная для компьютеров на процессорах 286 и выше. Эта спецификация позволяет программе получить в распоряжение одну или несколько областей дополнительной памяти, а также использовать область НМА.
Вышеприведенное разделение памяти актуально только для приложений и ОС реального режима типа MS DOS. Для ОС защищенного режима (в том числе Windows 9x/NT/2000) доступна вся оперативная память, причем без каких-либо ухищрений вроде EMS и XMS, описанных ниже. Однако область UMA, сохраняемая ради совместимости, остается барьером на пути к единой однородной памяти.
в Windows 9x.
Приложения
ОСWindows
пользуются виртуальной
памятью и
никакие старые спецификации EMS
и XMS
им не нужны. Суммарный объем виртуальной
памяти, доступной всем приложениям,
определяется размером ОЗУ и файлов
подкачки (их может быть и несколько). В
Windows
9x
размер файла подкачки изменяется
динамически, по мере потребностей
системы.
в Windows NT
Воперационных системах Windows NT тоже
используется плоская модель памяти.
Заметим, что Windows NT 4,0 Server практически
не отличается от Windows NT 4.0 Workstation; разница
лишь в наличии у сервера некоторых
дополнительных
служб, дополнительных утилит для управления доменом и несколько иных значений в настройках системного реестра. Однако схема распределения возможного виртуального адресного пространства в системах Windows NT разительно отличается от модели памяти Windows 95/98. Прежде всего, в отличие от Windows 95/98 в Win NT в гораздо большей степени используется ряд серьезных аппаратных средств защиты, имеющихся в микропроцессорах, а также применено принципиально другое логическое распределение адресного пространства. Во-первых, все системныпрограммные модули находятся в своих собственных виртуальных адресных пространствах, и
доступ к ним со стороны прикладных программ невозможен. Ядро системы и несколько драйверов работают в нулевом кольце защиты в отдельном адресном пространстве. Во-вторых, остальные программные модули самой операционной системы, которые выступают как серверные процессы по отношению к прикладным программам (клиентам), функционируют также в своем собственном системном виртуальном адресном пространстве, невидимом для прикладных процессов.