Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Shpori_na_ekzamen_OS

.pdf
Скачиваний:
38
Добавлен:
17.03.2016
Размер:
5.45 Mб
Скачать

 

 

 

1

Оглавление

4

1.

Введение в Операционные системы .....................................

1.1.

Место и роль ОС в составе компьютерной системы ...................

4

1.2.

Две главные функции ОС ...........................................

4

1.3.

Архитектура ОС (Подсистемы) ......................................

5

1.4.

Структура ОС (Способы организации) ...............................

5

1.5.

Эволюция ОС (Режимы работы компьютера, поколения ОС) .............

6

1.6.

Пирамида (зоопарк) ОС ............................................

7

1.7.

Основные понятия ОС ..............................................

7

2.

Аппаратное обеспечение компьютерной системы .........................

8

2.1.

Абстрактная модель компьютера ....................................

8

2.2.

Процессоры .......................................................

8

2.3.

Память ..........................................................

10

2.4.

Устройства ввода-вывода + Понятия «контроллер», «драйвер» .......

11

2.5.

Шины ............................................................

12

2.6.

Способы защиты информации в памяти компьютера + Диспетчер памяти

 

ММИ

13

 

2.7.

Понятия физический и виртуальный адрес ..........................

13

2.8.Понятие «Прерывание», механизм прерываний, обработка прерываний,

вектор прерываний .....................................................

14

2.9.Контроллер прямого доступа к памяти DMA + Шинная система обмена

информацией ...........................................................

15

2.10. Ресурсы компьютерной системы ..................................

15

3. Процессы и потоки ..................................................

16

3.1.Процессы, их состояния, иерархия, операции над процессами, таблица

процессов, блоки управления процессами ................................

16

3.2.

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

18

4.

Межпроцессное взаимодействие .......................................

20

4.1.

Состояние состязания ............................................

20

4.2.

Критические области .............................................

20

4.3.

Условия исключения состязания ...................................

20

4.4.

Способы реализации взаимных исключений ..........................

21

4.5.

Классические проблемы межпроцессного взаимодействия .............

23

5.

Планирование процессов .............................................

24

5.1.

Цели и критерии планировании ....................................

24

5.2.

Модель планирования .............................................

25

5.3.

Дисциплины планирования с одной и несколькими очередями .........

26

5.4.

Планировщик .....................................................

28

5.5.

Планирование с переключениями и без .............................

28

5.6.Задачи алгоритмов планирования для различных систем обработки

данных; критерии оценки эффективности работы системы ..................

28

5.7.Алгоритмы планирования, используемые в различных системах обработки

данных ................................................................

29

6. Взаимоблокировки ...................................................

30

 

 

2

6.1.

Понятие «дедлок» ................................................

30

6.2.

Ресурсы, их типы, получение ресурсов ............................

30

6.3.

4 условия возникновения тупиков .................................

31

6.4.

Моделирование тупиков ...........................................

31

6.5.4 стратегии поведения при возникновении тупиковых ситуаций, их суть

(!)31

6.6.Понятия «двухфазовое блокирование», «тупики без ресурсов»,

«голодание» ...........................................................

32

7. Управление памятью. Управление основной памятью ....................

33

7.1.

Иерархия памяти + Физическая организация памяти компьютера ......

33

7.2.

Логическая организация памяти компьютера ........................

33

7.3.

Связывание логических и физических адресов ......................

34

7.4.

Функции системы управления памятью, менеджер памяти .............

34

7.5.

Простейшие схемы управления памятью (с фиксированными разделами;

 

один процесс в памяти; оверлейная структура; свопинг; схема с переменными

разделами) ............................................................

35

7.6.

Многозадачность и производительность многозадачных систем .......

37

7.7.

Способы управления памятью ......................................

37

7.8.

Стратегии размещения информации в памяти ........................

37

7.9.

Мультипрограммирование с переменными разделами ..................

37

8. Управление памятью. Организация виртуальной памяти .................

38

8.1.

Концепция «виртуальная память» ..................................

38

8.2.

Многоуровневая организация памяти ...............................

38

8.3.

Поблочное отображение ...........................................

38

8.4.

Архитектурные средства поддержки виртуальной памяти .............

38

8.5.

Страничная организация виртуальной памяти .......................

38

8.6.

Многоуровневые таблицы страниц ..................................

39

8.7.

Способы преобразования адресов страниц + MMU, TLB ...............

40

8.8.

Сегментная организация виртуальной памяти .......................

40

8.9.

Сегментно-страничная организация виртуальной памяти .............

40

9. Управление памятью. Управление виртуальной памятью .................

41

9.1.

Стратегии управления виртуальной памятью ........................

41

9.2.

Алгоритмы замещения страниц, их анализ и моделирование ..........

41

9.3.Вопросы разработки и реализации систем управления виртуальной

памятью ...............................................................

42

9.4. Сегментация, ее реализация ......................................

42

10. Прерывания. Модульный принцип программирования .....................

43

10.1.Прерывания; механизм обработки прерываний; технология обработки

прерываний ............................................................

43

10.2.Супервизор; ССП (PSW), структура PSW (на примере IBM/360) ..... 45

ССП ..................................................................

46

10.3.Структура программных модулей (Простая, оверлейная, динамическая)

47

10.4.

Соглашения о межпрограммных связях ............................

48

10.5.

Повторное использование модулей ...............................

48

 

 

3

10.6.

Способы вызова модулей ........................................

49

10.7.

Передача-получение параметров .................................

49

11. Ввод-вывод. Концепции аппаратуры ввода-вывода ......................

50

11.1. Два типа устройств ввода-вывода: блочные и символьные .........

50

11.2.

Диапазон скоростей устройств ввода-вывода и проблемы ПО .......

50

11.3.Контроллер устройств ввода-вывода, структура и функционирование 50

11.4. Буфер данных, его назначение ..................................

51

11.5.Два альтернативных способа реализации доступа к управляющим

регистрам и буферам данных, их сравнение ..............................

52

11.6. DMA контроллер, его работа ....................................

52

11.7Схема прерываний, вектор прерываний, исключительные ситуации и

системные вызовы ......................................................

53

11.8Особенность реализации прерываний в конвейерных и суперскалярных

компьютерах, точное и неточное прерывания

............................. 54

11.9 Принципы ПО ввода-вывода( Задачи ПО

В/в, три способа осуществления

операций в/в: управление прерываниями в/в, программный в/в, в/в с помощью

DMA)

54

 

11.10

Программные устройства в/в ....................................

57

11.11

ПО в/в пространства пользователя ..............................

64

12.

Ввод-вывод. Логические принципы организации в/в.....................

66

13.

Файловые системы и базы данных. Файлы с точки зрения пользователей . 78

14.

Файловые системы и базы данных. Реализация файловых систем .........

80

15.

Файловые системы и базы данных. Надежность и производительность

87

файловых систем. Базы данных: системы и модели..........................

16.

Мультимедийные операционные системы ...............................

101

17.

Мультипроцессоры ..................................................

110

18.

Многомашинные системы .............................................

120

19.

Распределенные системы ............................................

126

20.

Безопасность. Механизмы защиты ....................................

135

21.

Сети и сетевые ОС .................................................

140

22.

Собственные потребности ЭВМ и ОС ..................................

147

23.

Концепции проектирования и разработки ОС ..........................

150

23.1.

Цели и сложность проектирования ..............................

150

23.2.

Интерфейс; руководящие принципы ..............................

152

23.3.

Реализация ...................................................

153

23.4.

Производительность ...........................................

154

23.5.

Управление проектом ..........................................

154

23.6.

Тенденции в проектировании ОС ................................

154

4

1.Введение в Операционные системы

1.1.Место и роль ОС в составе компьютерной системы

ОС работает непосредственно с аппаратным обеспечением и является основой всего остального программного обеспечения.

Роль ОС:

-организация интерфейса между прикладной программой и ОС при помощи системных вызовов;

-планирования использования процессора;

-переключение с одного задания на другое;

-организация хранения информации на внешних носителях в виде файлов.

1.2.Две главные функции ОС

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

Управление ресурсами включает в себя мультиплексирование (распределение) ресурсов двумя способами:

-во времени;

-в пространстве.

Когда ресурс разделяется во времени, различные программы или пользователи используют его по очереди. Сначала ресурс получают в пользование одни, потом другие и т.д(принтер).

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

Другие функции ОС:

-определяет "интерфейс пользователя";

-обеспечивает разделение аппаратных ресурсов между пользователями;

-дает возможность работать с общими данными в режиме коллективного пользования;

-планирует доступ пользователей к общим ресурсам;

-обеспечивает эффективное выполнение операций ввода-вывода;

-осуществляет восстановление информации и вычислительных процессов в случае ошибок.

ОС предоставляет прикладным программам понятный абстрактный набор ресурсов взамен неупорядоченного набора аппаратного обеспечения.

5

1.3.Архитектура ОС (Подсистемы)

Типова структура ОС представлена на рисунку:

Операційна

система

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Управління

 

 

 

 

Програми

 

 

 

 

 

 

ресурсами

 

Управління

 

 

 

 

Управління

 

 

 

обробки:

Власні потреби:

 

 

(супервізор):

 

файлами:

 

 

роботами

 

 

 

транслятори,

завантаження,

 

 

обробка

 

введення/

 

 

(планування):

 

 

 

редактори

налаштування,

 

 

переривань,

 

виведення,

 

 

прийом вхідного

 

 

 

зв’язків,

перевірка стану

 

 

управління ОЗУ,

 

буферизація,

 

 

потоку завдань

 

 

 

завантажувач,

 

 

 

 

системний

 

віртуальність

 

 

 

 

 

 

 

 

 

утиліти

 

 

 

 

 

 

таймер

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.4. Структура ОС (Способы организации)

Монолитные ОС

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

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

Такая организация предполагает следующую базовую структуру ОС:

1)Основная программа, которая вызывает требуемую служебную процедуру.

2)Набор служебных процедур, выполняющих системные вызовы.

3)Набор вспомогательных процедур, содействующих работе служебных процедур.

Многоуровневые ОС

Организация операционной системы в виде иерархии уровней, каждый из которых

является надстройкой над нижележащим уровнем.

Уровень

Функция

5

Оператор

4

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

3

Управление вводом-выводом

2

Связь оператора с процессом

1

Управление основной памятью и магнитным барабаном

0

Распределение ресурсов процессора и обеспечение многозадачного

 

режима

Модель "клиент-сервер"

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

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

6

Виртуальные машины

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

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

Экзоядра

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

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

1.5.Эволюция ОС (Режимы работы компьютера, поколения ОС)

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

1. ОС 50-х годов – цель ускорения и упрощения перехода с задачи на задачу. Появились системы пакетной обработки. Запущенная в решение задача получала в свое полное распоряжение все ресурсы машины.

2. Системы коллективного пользования с мультипрограммным режимом работы (мультипроцессорный тип).

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

Мультипроцессорный тип – несколько процессоров, что повышает вычислительную мощность этого комплекса.

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

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

4.Появились вычислительные сети, средства оперативной обработки данных, микропроцессоры.

7

1.6.Пирамида (зоопарк) ОС

1. Мэйнфреймы – большие машины, ориентированы на огромное количество операций ввода-вывода:

-пакетная обработка;

-обработка транзакций;

-разделение времени.

2. Серверные ОС – одновременно обслуживают много пользователей (UNIX, Linux, Windows 2000).

3. Многопроцессорные ОС – соединение процессоров в один:

-параллельные компьютеры;

-мультикомпьютеры;

-многопроцессорные системы.

4. ОС для персональных компьютеров: Windows, Macintosh, Linux.

5.ОС реального времени (главный параметр – время, собирают данные о промышленных процессе и управляют машинами на фабрике).

6.Встроенные ОС (в карманных компьютерах, небольшой набор функций).

7.ОС для смарт-карт (маленькая мощность и память, могут управлять только одной операцией).

1.7.Основные понятия ОС

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

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

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

Взаимоблокировка процессов может происходить, когда несколько процессов борются за один ресурс.

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

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

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

8

2.Аппаратное обеспечение компьютерной системы

2.1.Абстрактная модель компьютера

Системная шина служит для обмена информацией.

2.2.Процессоры

«Мозгом» компьютера является центральный процессор (CPU — Central Processing Unit). Он выбирает из памяти команды и выполняет их. Обычный цикл работы центрального процессора выглядит так:

1)он читает первую команду из памяти,

2)декодирует ее для определения ее типа и операндов,

3)выполняет команду,

4)считывает, декодирует и выполняет последующие команды.

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

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

Кроме основных регистров, используемых для хранения переменных и временных результатов, большинство компьютеров имеет несколько специальных регистров, видимых для программиста. Один из них называется счетчиком команд (PC, program counter), в нем содержится адрес следующей, стоящей в очереди на выполнение команды. После того как команда выбрана из памяти, регистр команд корректируется и указатель переходит к следующей команде.

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

Следующий регистр называется PSW (Processor Status Word — слово состояния

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

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

9

во время выполнения команды с номером n он может декодировать команду с номером n + 1 и считывать команду с номером n + 2. Подобная организация процесса называется конвейером. Часто встречаются и более длинные конвейеры.

Более передовым по сравнению с конвейерной конструкцией является суперскалярный центральный процессор. В этой структуре присутствует множество выполняющих узлов:

1)для целочисленных арифметических операций,

2)для операций с плавающей точкой,

3)для логических операций.

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

Большинство центральных процессоров, кроме очень простых, используемых во встроенных системах, имеют два режима работы:

1)режим ядра

2)пользовательский режим.

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

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

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

10

2.3.Память

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

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

Далее следует оперативная память. Это главная рабочая область запоминающего устройства машины. Оперативную память часто называют ОЗУ (оперативное запоминающее устройство, в англоязычной литературе RAM, Random Access Memory — память с произвольным доступом). Все запросы центрального процессора, которые не могут быть выполнены кэш-памятью, поступают для обработки в основную память.

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

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]