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

В 1969 году в компании Bell Laboratories группой сотрудников AT&T была создана первая версия операционной системы UNIX для малой ЭВМ PDP-7. В 1973 году Кэн Томпсон и Дэннис Ритчи перевели операционную систему UNIX на язык программирования Си. Это облегчило ее использование на ЭВМ различного типа. С 1973 года ядро UNIX практически не изменялось.

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

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

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

4.1 Обзор архитектуры

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

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

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

Функции операционной системы

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

· Управление выполнением процессов посредством их создания, завершения или приостановки и организации взаимодействия между ними.

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

· Выделение выполняемому процессу оперативной памяти. Ядро операционной системы дает процессам возможность совместно использовать участки адресного пространства на определенных условиях, защищая при этом адресное пространство, выделенное процессу, от вмешательства извне. Если системе требуется свободная память, ядро освобождает память, временно выгружая процесс на внешние запоминающие устройства, которые называют устройствами выгрузки. Если ядро выгружает процессы на устройства выгрузки целиком, такая реализация системы UNIX называется системой со свопингом (подкачкой); если же на устройство выгрузки выводятся страницы памяти, такая система называется системой с замещением страниц.

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

· Управление доступом процессов к периферийным устройствам, таким как терминалы, ленточные устройства, дисководы и сетевое оборудование.

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


Страница: