Добавил:
По своей натуре перфекционист. Поэтому люблю все аккуратно оформлять и упорядочивать, складывать по полочкам. Вот, не пропадать же добру, нажитому за четыре кропотливых семестра. Тут я выложил все мои ответы, курсовые, отчеты и некоторые ДЗ. Они могут вам помочь для получения зачета или сдачи экзамена. Если чего-то не нашли в папочках, то попытайте удачу в разделе НЕОТСОРТИРОВАННОЕ на моей страничке, там все 4 семестра разложены по папкам. ГРУППА КТ-43-15. Годы обучения 2015-2019. Коллекция будет пополняться. Что ж, удачки :З Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
112
Добавлен:
25.01.2018
Размер:
2.28 Mб
Скачать

Contents

 

1.

Эволюция ОС..............................................................................................................................................................

4

2.

Основные термины ОС. .............................................................................................................................................

4

3.

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

5

4.Классификация ОС: вытесняющая и невытесняющая многозадачность, многонитиевость,

многопроцессорная обработка......................................................................................................................................

5

5. Классификация ОС: Особенности аппаратных платформ, областей использования, методов построения. ....

6

6. Монолитное ядро. ......................................................................................................................................................

8

7. Слоеные системы. ......................................................................................................................................................

8

8. Виртуальная машина. ................................................................................................................................................

9

9. Микроядерная архитектура. ......................................................................................................................................

9

10.

ОС как расширенная машина. ОС как защитник и ядро. ОС как система управления ресурсами................

10

11.

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

10

12.

Одноразовые и многоразовые операции..............................................................................................................

11

13.

Переключение контекста.......................................................................................................................................

12

14.

Уровни планирования. Критерии планирования и требования к алгоритмам.................................................

13

15.

Параметры планирования. Вытесняющее и невытесняющее планирование. ..................................................

14

16.

Алгоритмы планирования: FCFS, RR, SJF. .........................................................................................................

16

17.

Гарантированное планирование, приоритетное, многоуровневые очереди ....................................................

17

18.

Жесткие и мягкие системы реального времени. .................................................................................................

19

19.

Периодические и спорадические запросы. Алгоритм Лью-Лейланда..............................................................

19

20.

Назначение и типы прерываний. ..........................................................................................................................

20

21.

Механизм прерываний. Диспетчеризация и приоритезация прерываний в ОС. .............................................

20

22.

Процедуры обработки прерываний. Системные вызовы. ..................................................................................

21

23.

Архитектура компьютеров семейства Pentium. Защищенный режим. Дескрипторные таблицы. .................

22

24.

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

24

25.

Связь между процессами. Семафоры, мониторы, сообщения...........................................................................

24

26.

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

25

27.

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

25

28.

Основные понятия и функции ОС по управлению памятью. ............................................................................

26

29.

Управление памятью с фиксированными разделами, с переменными и динамическими разделами. ..........

26

30.

Свопинг. Проблема размещения больших программ. ........................................................................................

27

31.

Алгоритмы «Первое подходящее», «Следующее подходящее», «Наиболее подходящее», «Наименее

подходящее», «Быстро искомое подходящее»..........................................................................................................

28

33.

Страничная память.................................................................................................................................................

30

36.

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

31

38.

Алгоритм рабочего набора, часов, WS-Clock......................................................................................................

34

40.

Ассоциативная память. Реализация TLB. ............................................................................................................

36

41.

Сквозная запись, запись по требованию. Виды кэшей.......................................................................................

37

42.

Исключительные ситуации при работе с памятью .............................................................................................

37

43.

Файл подкачки........................................................................................................................................................

38

44.

Имена файлов. Структура файлов. .......................................................................................................................

38

45.

Типы и атрибуты файлов.......................................................................................................................................

39

46.

Доступ к файлам. Защита файлов.........................................................................................................................

40

47.

Операции над файлами. .........................................................................................................................................

41

48.

Директории. Операции над директориями. .........................................................................................................

41

49.

Интерфейс файловой системы (ФС). ...................................................................................................................

42

50.

Структура ФС на диске: методы выделения дискового пространства. Управление свободным и занятым

дисковым пространством. Размер блока....................................................................................................................

42

51.

Реализация директорий. Поиск в директории. ....................................................................................................

43

52.

Монтирование ФС..................................................................................................................................................

43

53.

Связывание файлов: организация связи между каталогом и разделяемым файлом. ......................................

44

54.

Целостность ФС. Управление плохими блоками. ..............................................................................................

44

55.

Производительность ФС. Стратегии чтения блоков жесткого диска. ..............................................................

44

56.

Системные вызовы, работающие с именем файла. Системные вызовы, работающие с файловым

дескриптором................................................................................................................................................................

44

57.

Архитектура FAT32 ...............................................................................................................................................

44

58.

Файловая системы NTFS .......................................................................................................................................

45

59.

Файловые системы s5/ufs. .....................................................................................................................................

45

60.

Структура системы ввода-вывода. .......................................................................................................................

45

61.Систематизация внешних устройств и интерфейс между базовой подсистемой ввода-вывода и драйверами.

........................................................................................................................................................................................

 

45

62.Функции базовой подсистемы ввода-вывода. ......................................................................................................

46

63.

Работа супервизора ввода-вывода, супервизора прерываний и супервизора задач. .......................................

46

64.Буферизация и кэширование..................................................................................................................................

48

65.

Spooling и захват устройств. .................................................................................................................................

49

66.

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

49

67.

Семейство операционных систем UNIX ..............................................................................................................

50

68.

Семейство операционных систем Windows. .......................................................................................................

53

69.

Мобильные операционные системы. ОС для карманных персональных компьютеров. Встроенные ОС. ОС

терминалов. ОС сенсорных узлов. .............................................................................................................................

67

70.

Угрозы информационной безопасности. Цели злоумышленников. Виды угроз. Вредоносные программы.

........................................................................................................................................................................................

 

69

71.

Спам, баннеры. DoS-атаки. Ботнеты. Хакерские атаки. Уязвимости ОС. .......................................................

70

72.

Модель Белла-Ла-Падулы. Модель Биба.............................................................................................................

71

73.

Разграничение полномочий. Дискреционное и мандатное управление доступом. .........................................

71

74.

Алгоритмы шифрования........................................................................................................................................

72

75.

Антивирусное программное обеспечение. ..........................................................................................................

72

76.

Сетевые ОС и распределенные ОС. .....................................................................................................................

72

77.Функциональные компоненты сетевой ОС ..........................................................................................................

72

78.

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

73

79.

Двухзвенные системы. Файл-сервер, эмуляция терминала, клиент-сервер.....................................................

73

80.Базовые примитивы передачи сообщений в распределенных системах ...........................................................

74

81.Блокирующие и неблокирующие примитивы ......................................................................................................

75

82.

Понятие сокета. Механизм сокетов ОС UNIX ....................................................................................................

75

83.Основные концепции удаленного вызова процедур. Базовые операции RPC..................................................

76

84.Методы генерации стабов. Формат сообщений RPC. Реализация RPC. ...........................................................

78

85.Основные принципы построения сетевой файловой системы. Модель сетевой файловой службы. .............

82

86.Интерфейс сетевой файловой службы: структура файла, модифицируемость, семантика разделения,

контроль и единица доступа. ......................................................................................................................................

85

87.

Размещение клиентов и серверов по компьютерам и в операционной системе..............................................

88

88.

Файловые серверы типа stateful и stateless. .........................................................................................................

88

89.Место расположения кэша сетевой файловой системы. Способы распространения модификаций.

Проверка достоверности кэша. ...................................................................................................................................

90

90.

Прозрачность репликации, согласование реплик ..........................................................................................

91

91.

Протокол передачи файлов FTP. .....................................................................................................................

93

92.

Файловая система NFS .....................................................................................................................................

93

93.

Назначение и принципы организации службы каталогов.............................................................................

93

94.

Служба каталогов NetWare Directoty Services (NDS). ...................................................................................

93

95.Неоднородные сети. Понятие компьютерной сети в терминах неоднородных сетей. Проблема

межсетевого взаимодействия. Задачи устранения неоднородности. ......................................................................

93

96. Трансляция, мультиплексирование, инкапсуляция протоколов. Достоинства и недостатки основных

подходов к межсетевому взаимодействию................................................................................................................

94

1. Эволюция ОС.

Первый период (1945 -1955)

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

Некоторый прогресс в создании цифровых вычислительных машин произошел после второй мировой войны. Второй период (1955 - 1965)

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

Вэти годы появились первые алгоритмические языки, а следовательно и первые системные программы - компиляторы.

Третий период (1965 - 1980)

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

Четвертый период (1980 - настоящее время)

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

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

На рынке операционных систем доминировали две системы: MS-DOS и UNIX. Однопрограммная однопользовательская ОС MS-DOS широко использовалась для компьютеров, построенных на базе микропроцессоров Intel 8088, а затем 80286, 80386 и 80486. Мультипрограммная многопользовательская ОС UNIX доминировала в среде "не-интеловских" компьютеров, особенно построенных на базе высокопроизводительных RISC-про- цессоров.

Всередине 80-х стали бурно развиваться сети персональных компьютеров, работающие под управлением сетевых или распределенных ОС.

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

2. Основные термины ОС.

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

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

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

ОС должна:

— повышать эффективность работы вычислительной системы, выделяя заданиям тот объем, который необходим;

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

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

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

Файлы Файловая система — ключевое понятие, поддерживаемое виртуально всеми ОС. Так, для создания, удаления,

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

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

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

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

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

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

однозадачные (например, MS-DOS, MSX) и

многозадачные (OC EC, OS/2, UNIX, Windows 95).

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

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

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

однопользовательские (MS-DOS, Windows 3.x, ранние версии OS/2); многопользовательские (UNIX, Windows NT).

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

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

невытесняющая многозадачность (NetWare, Windows 3.x); вытесняющая многозадачность (Windows NT, OS/2, UNIX).

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

4. Классификация ОС: вытесняющая и невытесняющая многозадачность, многонитиевость, многопроцессорная обработка.

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

невытесняющая многозадачность (NetWare, Windows 3.x); вытесняющая многозадачность (Windows NT, OS/2, UNIX).

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

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

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

В наши дни становится общепринятым введение в ОС функций поддержки многопроцессорной обработки данных. Такие функции имеются в операционных системах Solaris 2.x фирмы Sun, Open Server 3.x компании Santa Crus Operations, OS/2 фирмы IBM, Windows NT фирмы Microsoft и NetWare 4.1 фирмы Novell.

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

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

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

5. Классификация ОС: Особенности аппаратных платформ, областей использования, методов построения.

Особенности аппаратных платформ На свойства операционной системы непосредственное влияние оказывают аппаратные средства, на которые

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

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

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

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

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

Другие требования предъявляются к операционным системам кластеров. Кластер - слабо связанная совокупность нескольких вычислительных систем, работающих совместно для выполнения общих приложений, и представляющихся пользователю единой системой. Наряду со специальной аппаратурой для функционирования кластерных систем необходима и программная поддержка со стороны операционной системы, которая сводится в основном к синхронизации доступа к разделяемым ресурсам, обнаружению отказов и динамической реконфигурации системы. Одной из первых разработок в области кластерных технологий были решения компании Digital Equipment на базе компьютеров VAX. Недавно этой компанией заключено соглашение с корпорацией Microsoft о разработке кластерной технологии, использующей Windows NT. Несколько компаний предлагают кластеры на основе UNIX-машин.

Особенности областей использования Многозадачные ОС подразделяются на три типа в соответствии с использованными при их разработке критериями эффективности:

системы пакетной обработки (например, OC EC), системы разделения времени (UNIX, VMS), системы реального времени (QNX, RT/11).

Системы пакетной обработки предназначались для решения задач в основном вычислительного характера, не требующих быстрого получения результатов. Главной целью и критерием эффективности систем пакетной обработки является максимальная пропускная способность, то есть решение максимального числа задач в единицу времени. Для достижения этой цели в системах пакетной обработки используются следующая схема функционирования: в начале работы формируется пакет заданий, каждое задание содержит требование к системным ресурсам; из этого пакета заданий формируется мультипрограммная смесь, то есть множество одновременно выполняемых задач. Для одновременного выполнения выбираются задачи, предъявляющие отличающиеся требования к ресурсам, так, чтобы обеспечивалась сбалансированная загрузка всех устройств вычислительной машины; так, например, в мультипрограммной смеси желательно одновременное присутствие вычислительных задач и задач с интенсивным вводом-выводом. Таким образом, выбор нового задания из пакета заданий зависит от внутренней ситуации, складывающейся в системе, то есть выбирается "выгодное" задание. Следовательно, в таких ОС невозможно гарантировать выполнение того или иного задания в течение определенного периода времени. В системах пакетной обработки переключение процессора с выполнения одной задачи на выполнение другой происходит только в случае, если активная задача сама отказывается от процессора, например, из-за необходимости выполнить операцию ввода-вывода. Поэтому одна задача может надолго занять процессор, что делает невозможным выполнение интерактивных задач. Таким образом, взаимодействие пользователя с вычислительной машиной, на которой установлена система пакетной обработки, сводится к тому, что он приносит задание, отдает его диспетчеру-оператору, а в конце дня после выполнения всего пакета заданий получает результат. Очевидно, что такой порядок снижает эффективность работы пользователя.

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

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

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

К таким базовым концепциям относятся:

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

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

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

Наличие нескольких прикладных сред дает возможность в рамках одной ОС одновременно выполнять приложения, разработанные для нескольких ОС. Многие современные операционные системы поддерживают одновременно прикладные среды MS-DOS, Windows, UNIX (POSIX), OS/2 или хотя бы некоторого подмножества из этого популярного набора. Концепция множественных прикладных сред наиболее просто реализуется в ОС на базе микроядра, над которым работают различные серверы, часть которых реализуют прикладную среду той или иной операционной системы.

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

6. Монолитное ядро.

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

Классическое Монолитное ядро состоит из единственного загрузочного модуля, в котором реализованы все функции, возлагаемые на систему, и в частности, все сервисы, которые ядро предоставляет прикладным программам.

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

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

7. Слоеные системы.

Многоуровневые системы представляют собой ряд уровней с хорошо определенными связями между ними. Многоуровневую систему можно получить, если провести структуризацию работы вычислительной системы с точки зрения выполняемых функций. В слоеной системе объекты n-го уровня вызывают только объекты, уровень которых на единицу меньше. Нижним уровнем обычно является аппаратная часть, верхним уровнем – интерфейс пользователя. Чем ниже уровень модуля, тем более привилегированные команды и действия он может выполнять. Один из примеров слоеной структуры представлен на рисунке 2.

Рис. 2 Пример слоеной структуры Слоеные структуры имеют свои преимущества и недостатки. Они хорошо реализуются, тестируются и моди-

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

8. Виртуальная машина.

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

вателю нет необходимости знать детали внутреннего устройства компьютера. Он работает с файлами, а не с магнитными головками и двигателем; он работает с огромной виртуальной, а не ограниченной реальной оперативной памятью; его мало волнует, единственный он на машине пользователь или нет. Рассмотрим несколько иной подход. Пусть операционная система реализует виртуальную машину для каждого пользователя, но не упрощая ему жизнь, а, наоборот, усложняя. Каждая такая виртуальная машина предстает перед пользователем как голое железо – копия всего hardware в вычислительной системе, включая процессор, привилегированные и непривилегированные команды, устройства ввода-вывода, прерывания и т.д. И он остается с этим железом один на один. При попытке обратиться к такому виртуальному железу на уровне привилегированных команд в действительности происходит системный вызовреальной операционной системы, которая и производит все необходимые действия. Такой подход позволяет каждому пользователю загрузить свою операционную систему на виртуальную машину и делать с ней все, что душа пожелает.

Рис. 1.3. Вариант виртуальной машины

Первой реальной системой такого рода была система CP/CMS, или VM/370, как ее называют сейчас, для семейства машин IBM/370.

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

9. Микроядерная архитектура.

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

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

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

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

10. ОС как расширенная машина. ОС как защитник и ядро. ОС как система управления ресурсами.

Операционная система как виртуальная машина При разработке ОС широко применяется абстрагирование, которое является важным методом упрощения и

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

Операционная система как менеджер ресурсов Операционная система предназначена для управления всеми частями весьма сложной архитектуры компью-

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

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

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

Операционная система как постоянно функционирующее ядро Наконец, можно дать и такое определение: операционная система – это программа, постоянно работающая на

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

11. Состояния процесса. Операции над процессами и связанные с ними понятия.

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

создание процесса – завершение процесса ; приостановка процесса (перевод из состояния исполнение в состояние готовность ) – запуск процесса (перевод из состояния готовность в состояние исполнение );