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

Каждый процесс имеет свое собственное виртуальное адресное пространство (£ 4Gb). Процесс состоит из кода, данных и других системных ресурсов, таких как открытые файлы, каналы (pipes), синхронизирующие объекты.

Поток (thread) - базовый объект, которому ОС распределяет время центрального процессора.

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

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

Если ОС выполняет большой объем работ по управлению ресурсами, то создание нового процесса и выделение ему ресурсов не может обойтись без значительных "накладных расходов". Но для обеспечения распараллеливания работ по решению нескольких задач или внутри одной задачи выгодно иметь возможность «дешевого» создания процессов. Преодоление этого противоречия было найдено в концепции "потоков" (thread), реализованной в большинстве современных ОС.

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

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

Распределение времени между потоками. Процессорное время выделяется потокам в соответствии с их уровнем приоритета. Потоку с более низким приоритетом не выделяется время, если на него претендует поток с более высоким уровнем приоритета. Более того, процесс с более низким приоритетом прерывается до истечения кванта времени, если на процессор претендует поток с более высоким уровнем приоритета. Необходимо помнить, что в среде ОС основная “работа” потока состоит в ожидании события и реагировании на него. Это дает шанс на исполнение потокам с низким уровнем приоритета.

Уровни приоритетов варьируются в диапазоне от 0 (низший) до 31 (высший) (для ОС Windows).

Уровень приоритета каждого потока состоит из трех составляющих

· класс приоритета процесса (простаивающий, нормальный, высокий, реального времени);

· уровень приоритета потока внутри класса приоритета процесса (нижний, ниже нормального, нормальный, выше нормального, высший)

· динамически установленный уровень приоритета.

При запуске на исполнение процесса ему назначается один из четырех классов приоритета. Уровень Idle (простаивающий) назначается процессу, который ничего не должен делать в случае активности других процессов (например, хранитель экрана). Процессам, запускаемым пользователем, присваивается нормальный уровень. Пользователь может запустить несколько процессов. Тому процессу, с которым пользователь непосредственно работает (а это может быть только один процесс), уровень приоритета поднимается на две единицы (например: 7+2 = 9). Это делает общение с прикладной программой более “комфортабельным”. Высокий класс приоритета назначается некоторым системным процессам, которые простаивают до возникновения определенных событий и, поэтому, не мешают остальным процессам. Только в особых случаях процесс может относиться к классу Real time.

Планирование процессов

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

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

· она должна обеспечивать максимальную пропускную способность системы - выполнение максимального количества единиц работы (процессов) в единицу времени;

· она должна обеспечивать приемлемое время реакции для интерактивных пользователей;

· она должна обеспечивать гарантированное время реакции для процессов реального времени;

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

· она должна учитывать внешние приоритеты, присваиваемые процессам пользователем и/или администратором системы;

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

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

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

С точки зрения реализации дисциплины планирования подразделяются, прежде всего, на дисциплины вытесняющие и невытесняющие (кооперативные). Для первых возможно прерывание активного процесса и лишение его ресурса ЦП по инициативе планировщика, для вторых - нет. Дисциплины с вытеснением выполняют более частые переключения процессов, следовательно, имеют большие накладные расходы. Но в большинстве случаев только они могут обеспечить требуемые показатели справедливости обслуживания.

Классификация дисциплин также определяется способом определения приоритетов процессов. Различают приоритеты:

· внешние - назначаемые администратором системы или пользователем в соответствии с классом пользователя и/или произведенной пользователем оплатой;

· статические - вычисляемые планировщиком при поступлении процесса в систему и не изменяемые впоследствии;

· динамические - перевычисляемые планировщиком периодически или/и при событиях, влияющих на планирование процессов;

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

Среди базовых дисциплин планирования процессов можно назвать:

· “Первым пришел – первым обслуживается” – простейшая дисциплина без вытеснения, работа которой понятна из ее названия. Обеспечивает минимальные накладные расходы и гарантирует отсутствие бесконечного откладывания, но не обеспечивает справедливости для коротких процессов.

· “Карусель” - простейшая дисциплина с вытеснением. Процесс получает в свое распоряжение ЦП на некоторый квант времени Q (в простейшем случае – Q=const.). Если за время Q процесс не завершился, он вытесняется с ЦП и направляется в конец очереди готовых процессов, где ждет выделения ему следующего кванта, и т.д. Карусель обеспечивает наилучшие показатели справедливости. Эффективности карусели существенно зависит от выбора величины кванта Q.

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

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

· “Многоуровневые очереди с обратной связью” предполагают расщепление очереди готовых процессов на две и более подочереди - более длинные (использовавшие больше времени ЦП) процессы попадают в очереди с большими номерами и, соответственно, с меньшими приоритетами. Селекция процессов по длительности, таким образом, происходит динамически. Разные очереди могут обслуживаться по разным дисциплинам.

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

· с высоким приоритетом - процессы реального времени;

· с нормальным приоритетом - интерактивные процессы;

· с низким приоритетом - счетные (пакетные) процессы.

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

· приоритет процесса, долгое время находящегося в состоянии ожидания, повышается;

· приоритет процесса, часто выполняющего операции ввода-вывода, повышается;

· приоритет процесса, чаще получающего внешние сообщения и прерывания, повышается;

· если приоритет процесса не повышается, он убывает.

14. Проблема возникновения коллизий при формировании таблиц идентификаторов.

15. Основные виды Windows (3.х, 9x, NT, XP)

Windows 3.x

Windows 3.x (3.1, 3.11) фирмы Microsoft (3.1 - 1987г.) представляет собой надстройку над MS DOS. Фактически, Windows «перехватывает» у DOS управление большинством ресурсов (кроме файловой системы). В части управления процессами Windows обеспечивает кооперативную (невытесняющую) многозадачность. Виртуальная память процесса сегментирована. При работе на процессорах i386 и последующих, которые аппаратно поддерживают сегментно-страничную модель, страничная часть адресации используется для создания виртуального пространства страниц, размер которого в 4 раза превышает размер реальной памяти, далее управление памятью ведется по сегментной модели в этом виртуальном пространстве страниц.

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

Ядро Windows состоит из 3 основных модулей, из которых: Kernel – обеспечивает системные функции, User – объекты интерфейса пользователя, GDI – графические функции.

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

Windows for Workgroups 3.11 расширена средствами совместного использования ресурсов локальной сети (файлы, принтеры).

Windows 9.x

Эта аббревиатура обозначает две наиболее популярные ОС фирмы Microsoft: Windows 95 (95 OSR2) и Windows 98 (98 SE, ME) во всех их реализациях. Windows 95 разработана Microsoft, прежде всего, для предотвращения перехода пользователей Windows 3.x в среду OS/2. Windows 95 справилась с этой задачей, но не за счет своих объективных достоинств, а за счет крупномасштабной рекламной компании, начавшейся задолго до ее появления на рынке. В отличие от Windows 3.x, Windows 95 является полнофункциональной ОС, код DOS в нее встроен только для поддержки приложений, выполняющихся на виртуальной машине DOS. Программы, написанные для Windows 95, используют 32-разрядную адресацию. Основу той части ОС, которая работает в пользовательском режиме, составляет системная виртуальная машина, в среде которой выполняются все приложения Win32, а также виртуальная машина

Windows 3.x, в среде которой выполняются приложения Win16. Функции модулей Kernel, User, GDI – те же, что и в Windows 3.x, около 50% кода этих модулей просто перенесено из Windows 3.x.

В части многозадачности Windows 95 обеспечивает вытесняющую многозадачность (включая потоки) с динамически изменяемыми приоритетами. Планированием процессов занимается Диспетчер ВМ, работающий в режиме ядра. Однако, поскольку часть системного кода заимствована из Windows 3.x и является нереентерабельной, вытеснение процесса в момент, когда он выполняет системный вызов, не всегда возможно.

Процессу пользователя Windows 95 предоставляет плоское адресное пространство размером 4 Гбайт. Это реализуется за счет того, что каждому процессу выделяется только один сегмент, адрес представляет собой 32-разрядное смещение в сегменте. В верхней части виртуального адресного пространства располагаются объекты, общие для всех процессов, в том числе и системные модули. Системный вызов имеет вид вызова процедуры, находящейся в адресном пространстве процесса. Верхние части виртуальных адресных пространств всех процессов перекрываются, что создает потенциальную возможность для одного процесса «испортить» систему для всех. Значительная часть системных модулей реализована в виде библиотек динамической компоновки.

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

В первой версии использовалась модификация файловой системы FAT, в версии OSR FAT-32 была значительно модифицирована. Windows 95 обеспечивает инсталлируемые файловые системы – возможность одновременной загрузки и поддержки драйверов различных ФС.

Интерфейс Windows 95 графический, документо-ориентированный.

Основное отличие Windows 98 – в организации интерфейса. Используется три вида пользовательского интерфейса: Web-подобный (который может быть реализован через броузер Internet Explorer), классический и смешанный. При Web-подобном интерфейсе открываемые объекты (папки, файлы) выделяются одним лишь указанием мыши, а открываются однократным щелчком. Классический интерфейс – оставшийся от Windows 95. В нем объекты выделяются однократным щелчком мыши, а открываются двукратным щелчком. Смешанный пользовательский интерфейс обеспечивает любую комбинацию свойств Web-подобного и классического интерфейса.

В Windows 98 имеется множество других новаций и усовершенствований, суммарно это все-таки другая ОС, хотя и близкая к своей предшественнице.

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

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

Windows NT

Windows NT явилась продолжением Microsoft проекта OS/2, пред­принятым фирмой после того, как разошлись ее пути с IBM. С самого начала Windows NT планировалась как полностью 32-разрядная ОС с объектно-ориентированной структурой, предназначенная выполнять функции сервера. Windows NT доступна на большом числе аппаратных платформ CISC и RISC-процессоров, в том числе и в симметричных многопроцессорных архитектурах, но эффективно она работает только на платформе Intel-Pentium, где и получила широкое распространение. Windows NT строится на базе микроядра. Нижний уровень составляет уровень аппаратных абстракций, который обеспечивает доступ к аппаратным средствам для разработчиков драйверов. Ядро ОС обеспечивает переключение процессов, синхронизацию, обмен сообщениями, управление реальной памятью.

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

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

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

Подобно OS/2 и Windows 95, Windows NT обеспечивает инсталлируемую ФС систему. Основная ФС – NTFS – обеспечивает хранение файлов в непрерывных экстентах дискового пространства и представление плана размещения файла в виде B+-дерева, а также мощные средства сохранения целостности ФС при помощи различных вариантов резервного копирования, включая технологию RAID-5.

Средства взаимодействия процессов идентичны в Windows 9х и Windows NT.

Очередная версия Windows NT – 5 получила название Windows 2000. Она выпускается в разных редакциях – для различных применений, включая Home Edition. Еще в середине 2001 года она считалась наиболее продвинутой ОС корпорации.

Общие черты Windows 9х и Windows NT

Простота использования

· Автоматическое определение оборудования во время инсталляции;

· Интерфейс пользователя нового поколения;

· Технология Plug and Play;

· Реальная многозадачность

· Использование Win32® и OLE

Способность совместной работы

· Встроенная поддержка основных сетевых протоколов (TCP/IP, IPX/SPX, NetBeui)

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

· Встроенные средства предоставления удаленного доступа к рабочей станции

Управляемость

· Открытая архитектура управления с возможностью использования дополнительных управляющих систем.

· Поддержка стандартов системного управления

· Независимая настройка рабочей области экрана для каждого пользователя и средства мониторинга.

Поддержка приложений

· Возможность выполнения 16-разрядных Windows приложений

· Возможность выполнения 32-разрядных Windows приложений и поддержка OLE 2.0

Переносимость

  • Полная переносимость на платформы Intel 386DX, 486, и Pentium.

Различия Windows 9х и Windows NT

Свойства Windows 9х Windows NT Workstation
Защита и безопасность    
Обеспечение полной изоляции 16 битных Windows - приложений путем предоставления каждому отдельного адресного пространства нет да
Предоставление защиты по стандарту C-2. Отдельные каталоги и файлы могут быть сделаны невидимыми для выбранных пользователей. Нет да
Установка прав различных пользователей к изменению конфигурации системы. Нет да
Защита файловой структуры нет да
Автоматическое восстановление после краха системы нет да
Поддержка приложений    
MS DOS да большинство
поддержка файловых структур NTFS и HPFS нет да
Системные возможности.    
Драйверы MS DOS да нет
Драйверы Win16 да нет
Компрессия диска нет да
Возможность исполнения на PowerPC, MIPS и DEC Alpha нет да
Поддержка мультипроцессорных платформ нет да

Windows XP

ОС Windows XP (от английского eXPerience – опыт), (первые продажи – 25 октября 2001г.) ОС семейства Windows, созданной на базе технологии NT. По плану производителя эта ОС объединяет удобство, простоту в установке и эксплуатации 9х, а также надежность и многофункцио­нальность NT. Windows XP выпускается в двух конфигурациях: Home Edition для домашних ПК и Professional Edition – для офисных. Windows XP является многозадачной многопользовательской ОС с разграничением доступа к програм­мам и данным.

Хотя она и разработана на основе NT, однако является новым поколением ОС семейства Windows. Windows XP позволяет настраивать пользовательский интерфейс, который построен по принципам проблемно-ориентированной архитектуры, в Internet имеются сотни его вариантов. Развивается и работа с графикой и Multimedia. Улучшена безопасность системы. Модернизирована совместимость оборудования и ПО. Имеется возможность настройки ОС через Internet. Вырос интеллект системы в различных ситуациях, например, системе Help можно задавать вопросы на «человеческом языке» и получать развернутые ответы по существу.

Windows XP – это в равной степени и революционный, и эволюционный продукт.

Microsoft рекомендует устанавливать ХР на систему с процессором AMD или Intel с тактовой частотой не ниже 300 МГц, 128 Мбайт памяти и 1,5 Гбайт свободного пространства на диске.

Реестр ОС Windows

Реестр Windows – это конфигурационная база данных (БД) (депозитарий) ОС. Эта БД – иерархическая, любой параметр можно обнаружить, воспользовавшись представлением, аналогичным понятию пути в ФС той же Windows. Каждый параметр представляет собой упорядоченную пару имени и значения.

Впервые реестр Windows был введен в Windows 3.1 в очень ограниченном виде под названием регистрационная база данных. В 9х, NT и, особенно, XP этот подход постепенно стал всеобъемлющим.

Информация заносится в реестр, начиная с установки ОС. Он обеспечивает взаимодействие между ОС, приложениями и интерфейсом пользователя. В реестре содержатся сведения об аппаратной конфигурации компьютера (включая устройства Plug and play). Он поддерживает несколько профилей работы оборудования и работу нескольких групп пользователей с индивидуальными настройками (NT/XP).

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

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

Работа с реестром происходит с использованием достаточно простого редактора реестра Regedit (Regedit32).

16. ОС Unix

Первая версия этой ОС была разработана в 1968г. К. Томпсоном "для себя и для своих друзей". С самого начала UNIX разрабатывалась, как многопользовательская интерактивная ОС. В 1972г. к работе над UNIX подключился Д. Ритчи, переписавший большую часть ОС на языке C, специально разработанном для этой цели. Это придало UNIX еще одно чрезвычайно важное достоинство - переносимость на другие аппаратные платформы. Долгое время ОС UNIX была некоммерческой системой и применялась в основном в университетах. С этим обстоятельством связано возникновение отдельной ее эволюционной ветви - BSD UNIX, развиваемой в Калифорнийском университете (существуют как коммерческая, так и свободно распространяемая версии).

Заложенные в UNIX идеи не только обеспечили ее многолетнее существование и развитие, но и оказали значительное влияние на все последующие ОС. Еще одна ветвь этой ОС – OSF/1 - связана с тем, что ряд фирм (IBM, DEC, HP и др.), желая иметь свою UNIX-подобную ОС, независимую от AT&T, учредили Организацию Открытого Программного Обеспечения (OSF – Open Software Foundation) и установили спецификацию OSF/1. В настоящее время «оригинал» UNIX – UnixWare 7 - принадлежит фирме Santa Crouse Operation, которая поддерживает также и свой собственный UNIX – SCO Open Server. Существует целое семейство UNIX-подобных ОС, выпускаемых другими фирмами в рамках OSF/1: HP-UX (Hewlett-Packard), AIX (IBM), Solaris (Sun) и др.

Еще одна ветвь UNIX-систем связана с движением Открытых Кодов. Наиболее популярной в этой группе систем является LINUX, разработанный Линусом Торвальдсом и распространяемый свободно. В 1999г. поддержку и распространение LINUX взяли на себя несколько фирм, наиболее популярна сейчас – бесплатная версия фирмы RedHat. В связи с популярностью LINUX несколько ведущих фирм заявили о его поддержке и о портировании на него своих программных продуктов (IBM, HP и др.). Усилиями этих фирм LINUX может со временем превратиться в серьезную промышленную систему

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

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

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

Логическая ФС Unix представляет собой единое дерево, включающее в себя все доступные тома – в виде отдельных ветвей/подветвей этого дерева, а также специальные каталоги устройств, также представляемых как файлы. В Unix элемент каталога и дескриптор физического файла являются разнесенными структурами данных, хранящимися в разных местах. Это позволяет легко реализовать здесь такие особенности логической ФС, как «связи» – ссылку двух и более элементов каталога на один физический файл и «символьные связи» – ссылку одного элемента каталога на другой. В классической ФС для Unix – s5 - физическая структура ФС создает возможность существенной фрагментации файла по дисковому пространству. План размещения файла представляется прямой адресацией для начального участка файла, косвенной для следующего и 2- и 3-уровневой косвенной адресацией – для следующих участков. В более поздних ФС (во многих коммерческих Unix сейчас применяется ФС Veritas) при сохранении логической структуры ФС на физическом уровне обеспечивается смежное размещение файлов.

Драйверы устройств включаются в ядро ОС, но представляются также и в ФС как специальные файлы. В Unix родилась идея потоков ввода-вывода – возможность вставлять между приложением и драйвером устройства цепочки “модулей потока”, осуществляющих дополнительную обработку информации.

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

Десятилетие назад расхождения между UNIX-ами разных производителей достигли угрожающих размеров, однако, ситуация обещает измениться к лучшему: две ведущие фирмы – SCO и IBM – скооперировались для производства общей системы, в которой соединятся UnixWare, AIX и Dynix фирмы Sequent. Большинство ведущих производителей аппаратуры и программного обеспечения уже в той или иной форме присоединились к проекту Monteray.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: