Полная версия

Главная arrow Информатика arrow Введение в инфокоммуникационные технологии

  • Увеличить шрифт
  • Уменьшить шрифт


<<   СОДЕРЖАНИЕ ПОСМОТРЕТЬ ОРИГИНАЛ   >>

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

Основные понятия, архитектура сетевых операционных систем

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

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

Программное обеспечение принято делить на две части: прикладное и системное (рис. 3.1). К прикладному программному обеспечению, как правило, относятся разнообразные банковские и прочие бизнес-программы, игры, текстовые процессоры и т. п. Под системным программным обеспечением обычно понимают программы, способствующие функционированию и разработке прикладных программ. Деление на прикладное и системное программное обеспечение является отчасти условным и зависит от того, кто осуществляет такое деление.

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

Необходимо обеспечить сохранность информации на диске,

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

Программное обеспечение вычислительной системы

Рис. 3.1. Программное обеспечение вычислительной системы

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

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

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

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

  • • однозадачные (например, MS-DOS, MSX);
  • • многозадачные (ОС ЕС, OS/2, UNIX, Windows 95 и выше).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

К таким базовым концепциям относятся следующие:

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

Рис. 3.2. Основные компоненты ОС и пользовательские программы

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

Эволюция ОС. Первый период (1945—1955-й гг.) Первые шаги в области разработки электронных вычислительных машин были предприняты в конце Второй мировой войны. В середине 1940-х созданы первые ламповые вычислительные устройства и появился принцип программы, хранящейся в памяти машины (John Von Neumann, июнь 1945). В то время одна и та же группа людей участвовала и в проектировании, и в эксплуатации, и в программировании вычислительной машины. Это была скорее научно-исследовательская работа в области вычислительной техники, а не регулярное использование компьютеров в качестве инструмента решения каких-либо практических задач из других прикладных областей. Программирование осуществлялось исключительно на машинном языке. Об ОС не было и речи, все задачи организации вычислительного процесса решались вручную каждым программистом с пульта управления. За пультом мог находиться только один пользователь. Программа загружалась в память машины в лучшем случае с колоды перфокарт, а обычно с помощью панели переключателей.

Вычислительная система выполняла одновременно только одну операцию (ввод/вывод или собственно вычисления). Отладка программ велась с пульта управления с помощью изучения состояния памяти и регистров машины. В конце этого периода появляется первое системное программное обеспечение: в 1951— 1952 гг. возникают прообразы первых компиляторов с символических языков (Fortran и др.), а в 1954 г. Нэт Рогестер разрабатывает Ассемблер для IBM-701.

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

Второй период (1955 — начало 60-х гг.). С середины 1950-х гг. начался следующий период в эволюции вычислительной техники, связанный с появлением новой технической базы — полупроводниковых элементов. Применение транзисторов вместо часто перегоравших электронных ламп привело к повышению надежности компьютеров. Теперь машины могли непрерывно работать достаточно долго, чтобы на них можно было возложить выполнение практически важных задач. Снижается потребление вычислительными машинами электроэнергии, совершенствуются системы охлаждения. Размеры компьютеров уменьшились. Снизилась стоимость эксплуатации и обслуживания вычислительной техники. Началось использование ЭВМ коммерческими фирмами. Одновременно наблюдается бурное развитие алгоритмических языков (LISP, COBOL, ALGOL-60, PL-1 и т.д.). Появляются первые настоящие компиляторы, редакторы связей, библиотеки математических и служебных подпрограмм. Упрощается процесс программирования. Пропадает необходимость взваливать на одних и тех же людей весь процесс разработки и использования компьютеров. Именно в этот период происходит разделение персонала на программистов и операторов, специалистов по эксплуатации и разработчиков вычислительных машин.

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

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

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

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

Повышению эффективности использования процессорного времени мешает низкая скорость работы механических устройств ввода/вывода (быстрый считыватель перфокарт мог обработать 1200 перфокарт в минуту, принтеры печатали до 600 строк в минуту). Вместо непосредственного чтения пакета заданий с перфокарт в память начинают использовать его предварительную запись, сначала на магнитную ленту, а затем и на диск. Когда в процессе выполнения задания требуется ввод данных, они читаются с диска. Точно так же выходная информация сначала копируется в системный буфер и записывается на ленту или диск, а печатается только после завершения задания. Вначале действительные операции ввода/вывода осуществлялись в режиме офлайн, т.е. с использованием других, более простых, отдельно стоящих компьютеров. В дальнейшем они начинают выполняться на том же компьютере, который производит вычисления, т.е. в режиме онлайн. Такой прием получает название spooling (сокращение от Simultaneous Peripheral Operation On Line) или подкачки—откачки данных. Введение техники подкачки—откачки в пакетные системы позволило совместить реальные операции ввода/вывода одного задания с выполнением другого задания, но потребовало разработки аппарата прерываний для извещения процессора об окончании этих операций.

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

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

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

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

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

Параллельно внутренней эволюции вычислительных систем происходила и внешняя их эволюция. До начала этого периода вычислительные комплексы были, как правило, несовместимы. Каждый имел собственную ОС, свою систему команд и т. д. В результате программу, успешно работающую на одном типе машин, необходимо было полностью переписывать и заново отлаживать для выполнения на компьютерах другого типа. В начале третьего периода появилась идея создания семейств программно совместимых машин, работающих под управлением одной и той же ОС. Первым семейством программно совместимых компьютеров, построенных на интегральных микросхемах, стала серия машин IBM/360. Разработанное в начале 1960-х гг. Это семейство значительно превосходило машины второго поколения по критерию цена/производительность. За ним последовала линия компьютеров PDP, несовместимых с линией IBM, и лучшей моделью в ней стала PDP-11.

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

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

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

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

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

Можно выделить основные функции, которые выполняли классические ОС в процессе эволюции:

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

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

  • • управление процессами;
  • • управление основной памятью;
  • • управление файлами;
  • • управление системой ввода/вывода;
  • • управление внешней памятью;
  • • поддержка сетей (networking);
  • • система защиты (protection);
  • • система поддержки командного интерпретатора;
  • • графическая оболочка.

Основные принципы построения операционных систем

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

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

  • • в состав ядра должны войти наиболее часто используемые системные модули;
  • • количество модулей должно быть таковым, чтобы объем памяти, занимаемый ядром, не был слишком большим.

В состав ядра входят, как правило, следующие модули:

  • • модули по управлению системой прерываний;
  • • средства по переводу программ из состояния выполнения в состояние ожидания, готовности и обратно;
  • • средства по распределению основных ресурсов: оперативной памяти и процессорного времени.

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

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

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

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

Понятие виртуальная машина является итогом концепции виртуальности.

Принцип мобильности (переносимости). ОС должна относительно легко переноситься:

  • • с процессора одного типа на процессор другого типа;
  • • с аппаратной платформы (архитектуры вычислительной системы) одного типа на аппаратную платформу другого типа.

Принцип переносимости близок принципу совместимости, но это не одно и то же.

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

  • • защита ресурсов одного пользователя от других;
  • • установка квот по ресурсам для предотвращения захвата одним пользователем всех системных ресурсов.

Ядро. Модули ядра выполняют базовые функции: управление процессами, памятью, устройствами ввода/вывода. В состав ядра входят функции, решающие внутрисистемные задачи организации вычислительного процесса, такие как переключение контекстов, загрузка/выгрузка страниц, обработка прерываний. Эти функции недопустимы для приложений. Другой класс функций ядра служит для поддержки приложений, создавая для них прикладную программную среду. Приложения обращаются к ядру с запросами — системными вызовами — для выполнения тех или иных действий, например для открытия или чтения файла, получения системного времени. Функции ядра которые могут вызываться приложениями образуют интерфейс прикладного программирования — АР1.

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

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

Термин «ядро» в разных ОС трактуется по-разному. Одним из определяющих свойств ядра является работа в привилегированном режиме.

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

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

  • • утилиты — программы, решающие отдельные задачи управления и сопровождения компьютерной системы (программы сжатия диска, архивация данных);
  • • системные обрабатывающие программы — текстовые и графические редакторы, компиляторы, компоновщики, отладчики;
  • • программы предоставления пользователю дополнительных услуг — специальный вариант пользовательского интерфейса, калькулятор и игры;
  • • библиотеки процедур различного назначения, упрощающие разработку приложений, например библиотека математических функций, функции ввода/вывода.
 
<<   СОДЕРЖАНИЕ ПОСМОТРЕТЬ ОРИГИНАЛ   >>