Контрольная работа по дисциплине: «Системное программное обеспечение»

Автор работы: Пользователь скрыл имя, 22 Февраля 2013 в 00:06, контрольная работа

Краткое описание

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

Ответ:
Большинство современных ОС – хорошо структурированные модульные системы, способные к развитию, расширению и переносу на новые платформы. Единой архитектуры ОС не существует, но есть универсальные подходы к структурированию ОС

Прикрепленные файлы: 1 файл

Моя 2 вариант.docx

— 147.44 Кб (Скачать документ)

Подробно рассматривать архитектуру  первых 16-разрядных микропроцессоров i8086/i8088 мы не будем, поскольку этот материал должен изучаться в других дисциплинах. Итак, мы исходим из того, что читатель знаком с архитектурой процессора i8086/i8088 и с программированием на ассемблере для этих 16-разрядных процессоров Intel. Для тех же, кто с ней незнаком, можно рекомендовать, например, такие книги, как [12, 24, 40] и многие другие. Однако мы напомним, что в этих микропроцессорах (а значит, и в остальных микропроцессорах семейства i80x86 при работе их в реальном режиме) обращение к памяти с возможным адресным пространством в 1 Мбайт осуществляется посредством механизма сегментной адресации (рис. 4.1). Этот механизм был использован для того, чтобы увеличить с 16 до 20 количество разрядов, участвующих в формировании адреса ячейки памяти, по которому идет обращение, и тем самым увеличить доступный объем памяти.

Для конкретности будем рассматривать  определение адреса команд, хотя для  адресации операндов используется аналогичный механизм, только участвуют  в этом случае другие сегментные регистры. Напомним, что для определения  физического адреса команды содержимое регистра сегмента кода (Code Segment, CS)умножается на 16 за счет добавления справа (к младшим битам) четырех нулей, после чего к полученному значению прибавляется содержимое регистра указателя ко- манд (Instruction Pointer, IP). Получается 20-разрядное значение1, которое и позволяет указать любой байт из 2020.

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

Для изучения этих возможностей рассмотрим сначала новые архитектурные  возможности микропроцессоров i80x86.

 

Системные регистры микропроцессоров i80x86.

Основные регистры микропроцессора i80x86, знание которых необходимо для понимания защищенного режима работы, приведены на рис. 4.2. На этом рисунке следует обратить внимание на следующее:

  • указатель команды (EIP) — это 32-разрядный регистр, младшие 16 разрядов которого представляют регистр IP;
  • регистр флагов (EFLAGS) — это 32-разрядный регистр, младшие 16 разрядов которого представляют регистр FLAGS;
  • регистры общего назначения ЕАХ, ЕВХ, ЕСХ, EDX, а также регистры ESP, EBP, ESI, EDI 32-разрядные, однако их младшие 16 разрядов представляют собой известные регистры АХ, ВХ, CX,DX, SP, BP, SI, DI;
  • сегментные регистры CS, SS, DS, ES, FS, GS 16-разрядные, при каждом из них пунктиром изображены скрытые от программистов (недоступные никому, кроме собственно микропроцессора) 64-разрядные регистры, в которые загружаются дескрипторы соответствующих сегментов;
  • при 16-разрядном регистре-указателе на локальную таблицу дескрипторов (Local Descriptor Table Register, LDTR) также имеется «теневой» (скрытый от программиста) 64-разрядный регистр, в который микропроцессор заносит дескриптор, указывающий на таблицу дескрипторов сегментов задачи, описывающих ее локальное виртуальное адресное пространство;
  • 16-разрядный регистр задачи (Task Register, TR) указывает на дескриптор в глобальной таблице дескрипторов, который позволяет получить доступ к дескриптору сегмента состояния задачи (Task State Segment, TSS) — информационной структуре, которую поддерживает микропроцессор для управления задачами;
  • 48-разрядный регистр GDTR (Global Descriptor Table Register) глобальной таблицы дескрипторов (Global Descriptor Table, GDT) содержит как дескрипторы общих сегментов, так и специальные системные дескрипторы, в частности, в GDT находятся дескрипторы, с помощью которых можно получить доступ к сегментамTSS;
  • 48-разрядный регистр таблицы дескрипторов прерываний (IDTR) содержит информацию, необходимую для доступа к таблице прерываний (IDT);
  • 32-разрядные регистры CRO-CR3 являются управляющими.

Помимо перечисленных имеются и некоторые другие регистры.

Управляющий регистр CRO содержит целый ряд флагов, которые определяют режимы работы микропроцессора. Подробности об этих флагах можно найти, например, в [1, 8, 20]. Мы же просто ограничимся тем фактом, что самый младший бит РЕ (Protect Enable) этого регистра определяет режим работы процессора. При РЕ = 0 процессор функционирует в реальном режиме работы, а при единичном значении микропроцессор переключается в защищенный режим. Самый старший бит регистра CRO — бит PG (PaGing) — определяет, включен (PG =1) или нет (PG = 0) режим страничного преобразования адресов.

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

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

 

Задание 2.

Разработать и описать алгоритм, используя семафоры и разделяемые переменные.

2) Запрограммировать схему "клиенты – официант", используя семафорную переменную. Процесс-официант выполняет запрос на обслуживание процесса-клиента. Процессов-клиентов может быть много, но в любой момент времени может обслуживаться только один из них. При отсутствии клиентов официант находится в режиме ожидания. Рассмотреть варианты с ограничением количества обслуживаемых клиентов (количество посадочных мест ограничено).

 

 

 

 

Задание 3.

3.1: Есть диск с N цилиндрами (от 0 до N). Время перемещения головки между соседними цилиндрами составляет Tмс. В текущий момент времени головка находится на K- ом цилиндре и двигается в сторону увеличения номеров цилиндров. Нарисуйте диаграммы, показывающие, в каком порядке будет обрабатываться последовательность запросов на чтение цилиндров: для каждого из алгоритмов. (например:71, 62, 13, 48, 1, 77 для : алгоритмов FCFS (FIFO), SSTF, C-SCAN ).. Вычислите полное время обработки последовательности запросов (временами чтения цилиндров, смены направления движения и перевода головок с N- го цилиндра на 0-й пренебречь).

вариант

2

N

80

T

1

K

60

последовательность

79,1,48,13,62,13

алгоритмы

FCFS, SSTF, LOOK.




 

 

 

 

 

 

Решение:

Алгоритм FCFS - первым пришел, первым обслужен.

Последовательность выполнения: 60→79→1→48→13→62→13 30—*• 71—> 62^13—>48—> 1—► 79

Полное время обработки запросов: (79-60)+(79-1)+(48-1)+(48-13)+(62-13)+(62-13)=277мс.

 

Алгоритм SSTF - короткое время поиска первым.

Последовательность выполнения: 79→62→60→48→13→13→1 30—► 13—> 1—> 48—> 62—> 71—* 79

Полное время обработки запросов: (79-62)+(62-60)+(60-48)+(48-13)+(13-1)=78мс.

 

Алгоритм LOOK - циклический просмотр и выполнение заданий от одного края диска до

другого и выполняя все встречающиеся запросы.

Последовательность выполнения: 60→79→62→48→13→13→1 

Полное время обработки запросов: (79-60)+(79-62)+(62-48)+(48-13)+(13-1)=97мс.

 

 

3.2: Для некоторого процесса известна строка запросов страниц памяти. Сколько ситуаций отказа страницы (page fault) возникнет для данного процесса при каждом из трех алгоритмов замещения страниц — FIFO, LRU, NFU, если процессу выделено N кадров памяти?

 

вариант

строка запросов страниц памяти

N

2

2, 1, 5, 7, 0, 4, 5, 2, 1, 5, 3, 7, 1, 7, 5, 2, 1, 3, 7, 5, 2, 2, 3

3


 

Алгоритм замещения страниц - FIFO

 

     1 5 7 0 4 5 2 1 5 3 7 1 7 5 2 1 3 7 5 2 2 3

1  

2

3

 

Алгоритм замещения страниц  – LRU

 

     1 5 7 0 4 5 2 1 5 3 7 1 7 5 2 1 3 7 5 2 2 3

1  

2

3

 

Алгоритм замещения страниц  – NFU

 

     1 5 7 0 4 5 2 1 5 3 7 1 7 5 2 1 3 7 5 2 2 3

1  

2

3

 

 

 

 

3.3: Пусть в вычислительную систему поступает набор из пяти процессов различной длительности со статическими приоритетами. 
       Вычислите среднее время между стартом процесса и его завершением (turnaroud time) и среднее время ожидания процесса (waiting time) для каждого из алгоритмов планирования, указанных в таблице выбора варианта.  При вычислениях считать, что процессы не совершают операций ввода-вывода, временем переключения контекста пренебречь. Для алгоритма RR принять, что вновь прибывший процесс попадает в САМЫЙ конец очереди готовых (после процесса, отработавшего свой квант). Наивысшим приоритетом является приоритет 0. В таблице принято: PPP- вытесняющее приоритетное планирование, SJFP - вытесняющее SJF.

 

Набор процессов-1

Номер процесса

Момент поступления в систему

Время исполнения

Приоритет

1

3

10

1

2

6

4

0

3

0

5

3

4

2

1

4

5

4

3

2




 

 

Набор процессов-2

Номер процесса

Момент поступления в систему

Время исполнения

Приоритет

1

0

11

2

2

2

5

3

3

5

7

0

4

7

2

4

5

9

4

1




 

 

 

вариант

0

1

2

3

4

5

6

7

8

9

набор процессов

1

1

1

1

1

2

2

2

2

2

квант времени

3

3

3

3

4

4

4

4

4

5

алгоритмы

FCFS, RR

FCFS, PPP

SJF,

RR

SJF,

PPP

SJFР FCFS,

FCFS, RR

FCFS,

PPP

SJF,

RR

SJF,

PPP

FCFS,

SJFР


 

 

 




Информация о работе Контрольная работа по дисциплине: «Системное программное обеспечение»