Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


ГЛАВА 8 Современные операционные



Системы

В заключение первой части учебника кратко рассмотрим основные архитектур­ные особенности современных ОС, которые используются на ПК типа IBM PC.

Прежде всего отметим тот общеизвестный факт, что наиболее популярными яв­ляются ОС семейства Windows компании Microsoft. Это и Windows 95/98, и Win­dows NT, и новое поколение Windows 2000. Однако, поскольку в настоящее вре­мя практически вся литература, связанная с программным обеспечением для ПК (в том числе и по системному программному обеспечению), в той или иной сте­пени, прежде всего, касается ОС этой компании, то в данном случае мы сделаем исключение и не будем описывать ОС Windows. Желающие без труда найдут любую литературу по этому вопросу.

Мы же кратко рассмотрим ОС UNIX (не Linux, по которому сейчас тоже появляется немало монографий и учебников, а именно основы UNIX, которые в абсо­лютном своем большинстве относятся и к Linux), OS/2 (хотя эта система уже практически всеми и забыта, но она была одной из первых, предоставивших пользователям ПК полноценную, мультипрограммную надёжную среду, и имеет много очень интересных и эффективных механизмов) и QNX (как наиболее из­вестный и удачный вариант ОС для реализации систем реального времени).

 

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

 

Общая характеристика семейства операционных систем UNIX,

Особенности архитектуры семейства ОС UNIX

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

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

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

¨ обращения к файлам, устройствам ввода/вывода и буферам межпроцессных сообщений выполняются с помощью одних и тех же примитивов;

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

¨ одни и те же механизмы работают в отношении программно и аппаратно ини­циируемых прерываний.

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

Важным, хотя и простым с позиций его реализации, является тот факт, что сис­тема UNIX предоставляет пользователям возможность направить выход одной программы непосредственно на вход другой (речь идет о программных каналах (pipe). См. об этом ниже и в разделе «Конвейеры и очереди сообщений», гла­ва 6). В результате большие программные системы можно создавать путём ком­позиции имеющихся небольших программ, а не путём написания новых, что в большинстве случаев упрощает задачу. UNIX-системы существуют уже 30 лет, и к настоящему времени имеется чрезвычайно большой набор легко переноси­мых из системы в систему отлично отлаженных и проверенных временем прило­жений.

UNIX-системы поставляются с большим набором системных и прикладных программ, включающим редакторы текстов, программируемые интерпретаторы командного языка, компиляторы с нескольких популярных языков программирования, включая С, C++, ассемблер, PERL, FORTRAN и многие другие, компоновщики (редакторы межпрограммных связей), отладчики, многочисленные библиотеки системных и пользовательских программ, средства сортировки и ве­дения баз данных, многочисленные административные и обслуживающие про­граммы. Для абсолютного большинства этих программ имеется документация, включающая в себя такие важные документы, как исходные (как правило, снаб­женные хорошими комментариями) тексты программ. Кроме этого, описание и документация в большей части доступны пользователю непосредственно за эк­раном в интерактивном режиме. Используется иерархическая файловая система с полной защитой, работа со съёмными томами, обеспечивается независимость от устройств.

Центральной частью системы UNIX является ядро (kernel).

Основные понятия системы UNIX

Одним из достоинств ОС UNIX является то, что система базируется на небольшом числе понятий; рассмотрим их вкратце. Необходимо заметить, что настоя­щий учебник не претендует на полноценное изложение основ работы в системе UNIX и детальное описание её архитектуры. На эту тему имеется достаточное количество специальной литературы, например отличная монография А. М. Робачевского [70]. Тем не менее, исходя из учебного плана и нашего опыта препо­давания системного программного обеспечения, мы считаем полезным изложить здесь минимальный набор основных понятий, который часто помогает студен­там погрузиться в мир UNIX, отличающийся от привычного всем окружения Windows.

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

Система UNIX – многопользовательская. Каждому пользователю после регист­рации (входа в систему) предоставляется виртуальный компьютер, в котором есть все необходимые ресурсы: процессор (процессорное время выделяется на основе «карусельной» диспетчеризации (RR – round robin) и с использованием динамических приоритетов с тем, чтобы обеспечить равенство в обслуживании), память, устройства, файлы. Текущее состояние такого виртуального компьюте­ра, предоставляемого пользователю, называется образом. Можно сказать, что процесс – это выполнение образа. Образ состоит из:

¨ образа памяти;

¨ значений общих регистров процессора;

¨ состояния открытых файлов;

¨ текущего директория (каталога файлов) и другой информации.

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

Образ памяти делится на три логических сегмента:

¨ сегмент реентерабельных процедур (начинается с нулевого адреса в виртуальном адресном пространстве процесса);

¨ сегмент данных (располагается следом за сегментом процедур и может расти в сторону больших адресов);

¨ сегмент стека (начинается со старшего адреса и растет в сторону младших ад­ресов по мере занесения в него информации при вызовах подпрограмм и при прерываниях).

Пользователь

Мы уже отмечали, что с самого начала ОС UNIX замышлялась как интерактив­ная многопользовательская система. Другими словами, UNIX предназначен для мультитерминальной работы. Чтобы начать работать, человек должен «войти» в систему, введя со свободного терминала свое учётное имя (account name) и, возможно, пароль (password). Человек, зарегистрированный в учётных файлах системы и, следовательно, имеющий учётную запись (account), называется зарегистрированным пользователем системы. Регистрацию новых пользователей обычно выполняет администратор системы. Пользователь не может изменить своё учётное имя, но может установить и/или изменить свой пароль. Пароли хранятся в отдельном файле в закодированном виде.

Все пользователи ОС UNIX явно или неявно работают с файлами. Файловая система ОС UNIX имеет древовидную структуру [70]. Промежуточными узлами дерева являются каталоги со ссылками на другие каталоги или файлы, а листья дерева соответствуют файлам или пустым каталогам. Каждому зарегистрирован­ному пользователю соответствует некоторый каталог файловой системы, который называется «домашним» (home) каталогом пользователя. При входе в систему пользователь получает неограниченный доступ к своему домашнему каталогу и всем каталогам и файлам, содержащимся в нём. Пользователь может создавать, удалять и модифицировать каталоги и файлы, содержащиеся в домашнем ката­логе. Потенциально возможен доступ и ко всем другим файлам, однако он может быть ограничен, если пользователь не имеет достаточных привилегий.

Интерфейс пользователя

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

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


Поделиться:



Популярное:

Последнее изменение этой страницы: 2016-05-29; Просмотров: 569; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.024 с.)
Главная | Случайная страница | Обратная связь