- •С. Ф. Храпский операционные системы, среды и оболочки основные теоретические сведения
- •Оглавление
- •Предисловие
- •Введение
- •1. Управление процессами в автономных однопроцессорных вычислительных машинах
- •1.1. Понятия вычислительного процесса и ресурса
- •1.2. Планирование процессов
- •1.3. Межпроцессное взаимодействие
- •1.4. Понятия потока («нити») и многопоточности
- •Контрольные вопросы и задания
- •2. Управление ресурсами в автономных однопроцессорных компьютерах
- •2.1. Управление памятью
- •Управление вводом-выводом
- •2.3. Управление файлами и файловая система
- •Контрольные вопросы и задания
- •3. Управление процессами и ресурсами в автономных многопроцессорных вычислительных машинах
- •3.1. Реализация операционных систем многопроцессорных вычислительных машин
- •Планирование и синхронизация в многопроцессорных вычислительных машинах
- •Контрольные вопросы и задания
- •4. Управление процессами и ресурсами в многомашинных вычислительных системах
- •4.1. Способы организации управления процессами
- •И ресурсами в многомашинных вычислительных системах
- •4.2. Понятия сетевой и распределенной операционных систем
- •4.3. Варианты реализации распределенных операционных систем
- •Контрольные вопросы и задания
- •5. Общие концепции разработки операционных систем
- •5.1. Основные принципы построения операционных систем
- •5.2. Архитектурные особенности проектирования операционных систем
- •5.3. Принципы построения системных и прикладных программных интерфейсов
- •Контрольные вопросы и задания
- •6. История развития операционных систем и эволюция их функциональных характеристик
- •6.1. Операционные системы разных этапов разработки вычислительных машин
- •6.2. История развития и характеристики операционных систем unix
- •6.3. История развития и характеристики операционных систем семейства Windows
- •Контрольные вопросы и задания
- •7. Пример практической реализации операционной системы: unix
- •7.1. Обзор системы unix
- •7.1.1. Общие представления
- •7.1.2. Интерфейсы системы unix
- •7.1.3. Оболочка и утилиты системы unix
- •7.1.4. Структура ядра системы unix
- •7.2. Процессы в unix
- •7.2.1. Основные понятия
- •7.2.2. Реализация процессов в unix
- •7.2.3. Планирование в системе unix
- •7.3. Управление памятью в unix
- •7.3.1. Основные понятия
- •7.3.2. Реализация управления памятью в unix
- •7.4. Ввод-вывод в системе unix
- •7.4.1. Основные понятия
- •7.4.2. Реализация ввода-вывода в системе unix
- •7.4.3. Потоки данных в unix
- •7.5. Файловые системы unix
- •7.5.1. Основные понятия
- •7.5.2. Реализация классической файловой системы unix
- •7.5.3. Реализация файловой системы Berkeley Fast
- •7.5.4. Реализация файловой системы Linux
- •7.5.5. Реализация файловой системы nfs
- •7.6. Безопасность в unix
- •7.6.1. Основные понятия
- •7.6.2. Реализация безопасности в unix
- •Контрольные вопросы и задания
- •8. Пример практической реализации операционной системы: Windows 2000
- •8.1. Обзор структуры операционной систем Windows 2000
- •8.1.1. Структура системы
- •8.1.2. Реализация объектов
- •8.1.3. Подсистемы окружения
- •8.2. Процессы и потоки в Windows 2000
- •8.2.1. Основные понятия
- •8.2.2. Межпроцессное взаимодействие
- •8.2.3. Реализация процессов и потоков
- •8.2.4. Загрузка Windows 2000
- •8.3. Управление памятью в Windows 2000
- •8.3.1. Основные понятия
- •8.3.2. Реализация управления памятью
- •8.4. Ввод-вывод в системе Windows 2000
- •8.4.1. Основные понятия
- •8.4.2. Реализация ввода-вывода в Windows 2000
- •8.5. Файловые системы Windows 2000
- •8.5.1. Файловые системы типа fat
- •8.5.2. Файловая система типа ntfs
- •8.6. Безопасность в Windows 2000
- •8.6.1. Основные понятия
- •8.6.2. Реализация защиты в Windows 2000
- •Контрольные вопросы и задания
- •Заключение
- •Библиографический список
- •Словарь терминов и определений
- •Алфавитно-предметный указатель
- •Храпский Сергей Филиппович операционные системы, среды и оболочки основные теоретические сведения
- •644099, Омск, ул. Красногвардейская, 9
1. Управление процессами в автономных однопроцессорных вычислительных машинах
1.1. Понятия вычислительного процесса и ресурса
Понятие «вычислительный процесс» (или просто – процесс) является одним из основных при рассмотрении операционных систем. Под процессом обычно понимается последовательность операций при выполнении программы или ее части в совокупности с используемыми данными. В общем случае процесс и программа представляют собой разные понятия. Программа – это план действий, а процесс – это само действие, поэтому понятие процесса включает программный код, данные, содержимое стека, содержимое адресного и других регистров процессора. Таким образом, для одной программы могут быть созданы несколько процессов в том случае, если с помощью одной программы в центральном процессоре (central processor unit – CPU) вычислительной машины выполняется несколько несовпадающих последовательностей команд.
По временным характеристикам различают интерактивные процессы, пакетные процессы и процессы реального времени. Время существования интерактивного процесса определяется реакцией ВМ на запрос обслуживания и составляет секунды. Процессы реального времени имеют гарантированное время окончания работы, а время реакции измеряется долями секунды. Пакетные процессы запускаются один вслед за другим, а время реакции составляет часы и более.
По генеалогическому признаку различают порождающие и порожденные процессы.
По результативности различают эквивалентные, тождествен-ные и равные процессы. Все они имеют одинаковый конечный результат, нo эквивалентные процессы могут реализовываться как на одном, так и на многих процессорах по одному или разным алгоритмам, то есть они имеют разные трассы, которые определяют порядок и длительность пребывания процесса в разных состояниях. Тождественные процессы реализуются по одной и той же программе, но имеют разные трассы. Равные (или одинаковые процессы) реализуются по одной программе и имеют одинаковые трассы.
По времени развития процессы делятся на последовательные, параллельные и комбинированные (для последних есть точки, в которых существуют оба процесса, и точки, в которых существует только один процесс).
По месту развития процессы делятся на внутренние (реализуются на центральном процессоре) и внешние (реализуются на внешних процессорах).
По принадлежности к операционной системе процессы бывают системные (исполняют программу из состава операционной системы) и пользовательские.
По связности различают процессы:
а) взаимосвязанные – имеющие какую-то связь (пространственно-временную, управляющую, информационную);
б) изолированные – слабо связанные;
в) информационно-независимые – использующие совместные ресурсы, но имеющие собственные информационные базы;
г) взаимодействующие – имеющие информационные связи и разделяющие общие структуры данных;
д) взаимосвязанные по ресурсам;
е) конкурирующие.
Порядок взаимосвязи процессов определяется правилами синхронизации. Процессы могут находиться в отношении:
а) предшествования – когда один процесс всегда находится в активном состоянии раньше, чем другой;
б) приоритетности – когда процесс может быть переведен в активное состояние только в том случае, если в состоянии готовности нет процессов с более высоким приоритетом, или если свободен процессор, или если на процессоре реализуется процесс с меньшим приоритетом;
в) взаимного исключения – когда в процессе используется общий критический ресурс, и процессы не могут развиваться одновременно (если один из них использует критический ресурс, то другой находится в состоянии ожидания).
Примерами процессов являются прикладные программы пользователей, утилиты и другие системные обрабатывающие программы. Процессами могут быть редактирование какого-либо текста, трансляция исходной программы, ее компоновка, исполнение. При этом трансляция какой-нибудь исходной программы является одним процессом, а трансляция следующей исходной программы – другим процессом, хотя транслятор (как объединение программных модулей) здесь выступает как одна и та же программа, но обрабатываемые им данные являются разными.
Определение концепции процесса преследует цель выработать механизмы распределения и управления так называемыми «ресурсами», которые также относятся к числу важнейших понятий ОС.
Ресурс – это любой потребляемый (расходуемый) объект. По запасам ресурсы подразделяются на исчерпаемые и неисчерпаемые. Потребители ресурсов – процессы. Ресурс – это средство вычисли-тельной машины или вычислительной системы, которое может быть выделено процессу на определенный интервал времени.
Ресурсы классифицируются по следующим свойствам:
а) по признаку реальности – на физические и виртуальные (последние только в отдельных свойствах схожи с физическими ресурсами);
б) по возможности расширения свойств – на эластичные и жесткие (не допускающие расширяемости);
в) по степени активности – на пассивные и активные (способные выполнять действия по отношению к другим ресурсам);
г) по времени существования – на постоянные (доступные на протяжении всего времени существования процесса, а также до и после его работы) и временные;
д) по степени важности – на основные и второстепенные (допускающие альтернативное развитие процесса);
е) по функциональной избыточности при распределении – на дорогие (но предоставляемые быстро) и дешевые (но предоставляемые с ожиданием);
ж) по структуре – на составные и простые (которые не содержат составных элементов и могут находиться только в одном из двух состояний: «доступен» или «занят»);
з) по характеру использования – на потребляемые и воспроизводимые (допускающие многократное использование и освобожде-ние), а также – на используемые последовательно и используемые параллельно (использующиеся несколькими процессами);
и) по форме реализации – на жесткие (не допускающие копирования) и мягкие (допускающие тиражирование и в свою очередь подразделяющиеся на программные и информационные ресурсы).
Примерами ресурсов являются некоторые аппартные устройства ВМ (процессоры, запоминающие устройства, устройства ввода-вывода) или некоторые наборы информации (в частности, совокупности записей определенной структуры – так называемые «файлы»).