Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика_3.doc
Скачиваний:
2
Добавлен:
12.11.2019
Размер:
435.2 Кб
Скачать

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

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

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

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

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

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

3.4. Процессы и потоки

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

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

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

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

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

В таблице процессов о каждом открытом процессе хранится следующая информация:

  • о состоянии процесса;

  • счётчик команд;

  • распределение памяти;

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

  • указатель стека;

  • о использовании и распределении ресурсов.

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

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

Прежде всего, каждый процесс рассматривается как способ объединения родственных ресурсов в одну группу. У процесса есть адресное пространство, содержащее программу, данные, открытые файлы, дочерние процессы, аварийные необработанные события, обработчики сигналов, учётная информация и п. п. Это – ресурсы процесса.

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

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

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