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

Системное программное обеспечение

.pdf
Скачиваний:
68
Добавлен:
01.05.2014
Размер:
444.39 Кб
Скачать

1. ОСНОВНЫЕ ПОНЯТИЯ И СОСТАВ СПО......................................................................................................

3

1.1 ОПЕРАЦИОННЫЕ СИСТЕМЫ........................................................................................................................................

3

1.2. СИСТЕМЫ УПРАВЛЕНИЯ ФАЙЛАМИ.............................................................................................................................

3

1.3. ИНТЕРФЕЙСНЫЕ ОБОЛОЧКИ.......................................................................................................................................

3

1.4. СИСТЕМЫ ПРОГРАММИРОВАНИЯ................................................................................................................................

4

1.5. УТИЛИТЫ...............................................................................................................................................................

4

ЭТАПЫ РАЗВИТИЯ СПО (ФАКУЛЬТАТИВНЫЙ МАТЕРИАЛ)....................................................................................................

4

2. КЛАССИФИКАЦИЯ ОС .....................................................................................................................................

6

2.1. ОСОБЕННОСТИ АЛГОРИТМОВ УПРАВЛЕНИЯ РЕСУРСАМИ.................................................................................................

6

Поддержка многозадачности...........................................................................................................................

7

Поддержка многопользовательского режима................................................................................................

7

Вытесняющая и невытесняющая многозадачность......................................................................................

7

Поддержка многонитевости............................................................................................................................

8

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

8

2.2. ОСОБЕННОСТИ АППАРАТНЫХ ПЛАТФОРМ....................................................................................................................

8

2.3. ОСОБЕННОСТИ ОБЛАСТЕЙ ИСПОЛЬЗОВАНИЯ.................................................................................................................

8

Системы пакетной обработки.........................................................................................................................

9

Системы разделения времени............................................................................................................................

9

Системы реального времени..............................................................................................................................

9

3. ТЕНДЕНЦИИ В СТРУКТУРНОМ ПОСТРОЕНИИ ОС..............................................................................

10

3.1. ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ......................................................................................................................................

10

3.2. МОНОЛИТНЫЕ ОС................................................................................................................................................

10

3.3. МИКРОЯДЕРНЫЕ ОС.............................................................................................................................................

11

3.4. МОДЕЛЬ КЛИЕНТ СЕРВЕР.....................................................................................................................................

11

3.5. ОБЪЕКТНО-ОРИЕНТИРОВАННЫЙ ПОДХОД...................................................................................................................

12

3.6. МНОЖЕСТВЕННЫЕ ПРИКЛАДНЫЕ СРЕДЫ....................................................................................................................

13

3.7. РАСПРЕДЕЛЁННЫЕ ОС...........................................................................................................................................

14

4. ОСНОВНЫЕ СТАНДАРТЫ ИНТЕРФЕЙСОВ ПРИКЛАДНОГО ПРОГРАММИРОВАНИЯ СОВРЕ­

МЕННЫХ ОС............................................................................................................................................................

14

4.1. ANSI C..............................................................................................................................................................

15

4.2. POSI X..............................................................................................................................................................

15

4.3. СТАНДАРТЫ X/OPEN.............................................................................................................................................

15

5. ПРИНЦИПЫ УПРАВЛЕНИЯ ПРОЦЕССАМИ.............................................................................................

16

5.1. ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ......................................................................................................................................

16

5.2. ПОНЯТИЕ ПРОЦЕССА..............................................................................................................................................

16

5.3. СОСТОЯНИЕ ПРОЦЕССОВ.........................................................................................................................................

17

5.4. РЕЖИМЫ ВЫПОЛНЕНИЯ ПРОЦЕССОВ.........................................................................................................................

17

5.5. АЛГОРИТМЫ ПЛАНИРОВАНИЯ ПРОЦЕССОВ.................................................................................................................

18

6. СРЕДСТВА СИНХРОНИЗАЦИИ И ВЗАИМОДЕЙСТВИЯ ПРОЦЕССОВ.............................................

20

6.1. ПРОБЛЕМА СИНХРОНИЗАЦИИ ПРОЦЕССОВ..................................................................................................................

20

6.2. СИГНАЛЫ.............................................................................................................................................................

20

6.3. ПРОГРАММНЫЕ КАНАЛЫ.........................................................................................................................................

22

6.4. ИМЕНОВАННЫЕ КАНАЛЫ, ИЛИ FIFO.......................................................................................................................

22

6.5. ОЧЕРЕДИ СООБЩЕНИЙ............................................................................................................................................

23

6.6. СЕМАФОРЫ..........................................................................................................................................................

24

6.7. МЬЮТЕКСЫ..........................................................................................................................................................

24

1

6.8. РАЗДЕЛЯЕМАЯ ПАМЯТЬ...........................................................................................................................................

25

7. ПОДСИСТЕМА УПРАВЛЕНИЯ ПАМЯТЬЮ ВС.........................................................................................

27

7.1. ПОНЯТИЕ ВИРТУАЛЬНОЙ ПАМЯТИ............................................................................................................................

27

7.2. МЕТОДЫ РЕАЛИЗАЦИИ ВИРТУАЛЬНОЙ ПАМЯТИ..........................................................................................................

28

7.2.1 Простое непрерывное распределение и распределение с перекрытием (оверлейные структуры) 28

7.2.2 Распределение статическими и динамическими разделами...............................................................

29

Разделы с фиксированными границами........................................................................................................................

29

Разделы с подвижными границами................................................................................................................................

30

7.2.3. Сегментная, страничная и сегментно-страничная организация памяти.......................................

32

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

33

Страничное распределение.............................................................................................................................................

34

Странично-сегментное распределение..........................................................................................................................

35

7.2.4. Свопинг.....................................................................................................................................................

35

8. ПОДСИСТЕМА УПРАВЛЕНИЯ ВВОДОМ-ВЫВОДОМ............................................................................

36

8.1. ФИЗИЧЕСКАЯ ОРГАНИЗАЦИЯ УСТРОЙСТВ ВВОДА-ВЫВОДА............................................................................................

36

8.2. ОРГАНИЗАЦИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ВВОДА-ВЫВОДА....................................................................................

36

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

37

Драйверы устройств........................................................................................................................................

37

Независимый от устройств слой операционной системы..........................................................................

38

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

38

8.3. СИНХРОННЫЙ И АСИНХРОННЫЙ ВВОД/ВЫВОД...........................................................................................................

39

8.4. РЕЖИМЫ УПРАВЛЕНИЯ ВВОДОМ/ВЫВОДОМ................................................................................................................

41

8.5. КЭШИРОВАНИЕ ОПЕРАЦИЙ ВВОДА/ВЫВОДА ПРИ РАБОТЕ С НАКОПИТЕЛЯМИ НА МАГНИТНЫХ ДИСКАХ.................................

42

8.6. АЛГОРИТМЫ ОПТИМИЗАЦИИ РАБОТЫ НАКОПИТЕЛЕЙ НА МАГНИТНЫХ ДИСКАХ................................................................

43

9. ФАЙЛОВАЯ СИСТЕМА.....................................................................................................................................

44

9.1. ИМЕНА ФАЙЛОВ....................................................................................................................................................

45

9.2. ТИПЫ ФАЙЛОВ......................................................................................................................................................

45

9.3. ЛОГИЧЕСКАЯ ОРГАНИЗАЦИЯ ФАЙЛА.........................................................................................................................

47

9.4. ФИЗИЧЕСКАЯ ОРГАНИЗАЦИЯ И АДРЕС ФАЙЛА.............................................................................................................

47

9.5. ПРАВА ДОСТУПА К ФАЙЛУ......................................................................................................................................

48

9.6. ОБЩАЯ МОДЕЛЬ ФАЙЛОВОЙ СИСТЕМЫ......................................................................................................................

49

9.7. ФАЙЛОВАЯ СИСТЕМА FAT....................................................................................................................................

50

9.7.1. Таблица размещения файлов..................................................................................................................

51

9.7.2. Файловые системы VFAT и FAT32.......................................................................................................

53

9.8. ФАЙЛОВАЯ СИСТЕМА HPFS..................................................................................................................................

54

9.9. ФАЙЛОВАЯ СИСТЕМА NTFS (NEW TECHNOLOGY FILE SYSTEM)................................................................................

54

2

1. ОСНОВНЫЕ ПОНЯТИЯ И СОСТАВ СПО

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

СПО может быть разделено на следующие пять групп:

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

2.Системы управления файлами.

3.Интерфейсные оболочки для взаимодействия пользователя с ОС и операционные среды.

4.Системы программирования.

5.Утилиты.

1.1Операционные системы

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

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

1.2. Системы управления файлами

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

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

В то же время любая система управления файлами не существует сама по себе – она разработана для работы в конкретной ОС и с конкретной файловой системой.

1.3. Интерфейсные оболочки

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

Кэтому же классу СПО следует отнести и эмуляторы, позволяющие смоделировать

водной операционной системе какую-либо другую машину или операционную систему.

3

1.4. Системы программирования

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

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

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

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

Интерпретатор – системная программа, которая транслирует каждый оператор ис­ ходной программы в промежуточный код, интерпретирует его посредством одной или нескольких команд и выполняет эти команды. В отличие от компилятора интерпретатор не генерирует объектный код, а выдаёт результаты работы выполняемых операторов ис­ ходной программы.

1.5. Утилиты

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

Этапы развития СПО (факультативный материал)

Первым этапом развития системного программного обеспечения можно считать ис­ пользование библиотечных программ, стандартных и служебных подпрограмм и макроко­ манд. Концепция библиотек подпрограмм является наиболее ранней и восходит к 1949 г. С появлением библиотек получили развитие автоматические средства их сопровождения –

4

программы-загрузчики и редакторы связей. Эти средства использовались в ЭВМ первого поколения, когда операционных систем, как таковых, ещё не существовало.

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

Большие затраты времени оператора и сложность его действий по управлению оборудова­ нием и организации процесса вычислений (стандартная операционная процедура включа­ ла в себя ввод исходного модуля, чтение компилятора, компиляцию, чтение редактора связей, его работу, чтение загрузочного модуля, его исполнение) выявили неэффектив­ ность базового ПО. Развитие последнего и желание упростить разработку и отладку целе­ вых программ привели к появлению операционных систем ранней пакетной обработки – простейших мониторов. Они автоматизировали стандартную последовательность «загруз­ ка – трансляция – загрузка – выполнение» с помощью управляющей программы, загружа­ ющей требуемые системные программы и управляющей переходом от одного задания к другому, которые группировались в пакеты.

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

Началось интенсивное развитие методов управления данными, предназначенных для со­ здания и сопровождения файлов данных, обеспечения функций библиотек и т.п. Возникла и такая важнейшая функция ОС как реализация ввода-вывода без участия центрального процессора (так называемый «спулинг» – от англ. сокр. SPOOL – Simultaneous Peripheral Output On Line – одновременный вывод информации).

Появление новых аппаратных разработок (в период с 1959 до 1963 гг.) – систем прерыва­ ний, таймеров, каналов – стимулировало дальнейшее развитие ОС. Возникли исполни­ тельные системы, которые представляли собой набор программ для распределения ресур­ сов ЭВМ, связи с оператором и управления вычислительным процессом, управления вво­ дом-выводом, трансляторы и другие обрабатывающие программы. Такие исполнительные системы позволяли реализовывать довольно эффективную (по тому времени) форму экс­ плуатации ВС – однопрограммную пакетную обработку – и давали пользователям такие средства, как контрольные точки, логические таймеры, возможность построения программ оверлейной структуры, обнаружение возможных нарушений программами пользователей ограничений, принятых в системе, управление файлами, сбор учётной информации и т. п. Возможность совмещения вычислений с вводом-выводом и рост сложности системного программного обеспечения привели к необходимости постоянного присутствия в опера­

5

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

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

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

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

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

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

2. КЛАССИФИКАЦИЯ ОС

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

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

2.1. Особенности алгоритмов управления ресурсами

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

6

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

Поддержка многозадачности.

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

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

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

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

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

Поддержка многопользовательского режима.

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

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

многопользовательские (UNIX, Windows NT).

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

Вытесняющая и невытесняющая многозадачность.

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

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

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

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

7

Поддержка многонитевости.

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

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

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

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

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

2.2. Особенности аппаратных платформ

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

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

2.3. Особенности областей использования

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

системы пакетной обработки (например, OC EC),

системы разделения времени (UNIX, VMS VMS),

системы реального времени (QNX, RT/11).

8

Системы пакетной обработки

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

Системы разделения времени

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

Системы реального времени

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

9

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

3. ТЕНДЕНЦИИ В СТРУКТУРНОМ ПОСТРОЕНИИ ОС

3.1. Термины и определения

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

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

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

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

10