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

В операционной системе Windows поддерживаются традиционные процессы, способные общаться и синхронизироваться друг с другом так же, как это делают процессы в UNIX. Каждый процесс содержит по крайней мере один поток, содержащий, в свою очередь, как минимум одно волокно (облегченный поток). Более того, для управления определенными ресурсами процессы могут объединяться в задания. Все вместе – задания, процессы, потоки и волокна – образует общий набор инструментов для управления ресурсами и реализации параллелизма как на однопроцессорных, так и на многопроцессорных машинах. Как и в системе UNIX, процессы представляют собой контейнеры для ресурсов. У каждого процесса есть 4-гигабайтное адресное пространство, в котором пользователь занимает нижние 2 Гбайт (в версиях Windows 2000 Advanced Server и Datacenter Server этот размер может быть по желанию увеличен до 3 Гбайт), а операционная система занимает остальную его часть.

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

Управление памятью в Windows.

В Windows каждый процесс имеет свое адресное пространство до 4 Гб памяти (не физическое ОЗУ). Физическая память ограничена системными ресурсами: ОЗУ и дисковым пространством. Windows выделяет приложению 2 Гб памяти, а остальные 2 Гб резервируются для нужд ядра. Если объем ОЗУ меньше, чем 4 Гб, то Windows использует механизм виртуальной памяти: когда объем ОЗУ будет исчерпан, часть содержимого физической памяти переносится на жесткий диск. Этот механизм называется подкачкой. Для каждого процесса ядро поддерживает таблицу страниц — структуру, позволяющую преобразовать виртуальные адреса в физические.

Виртуальная память Windows использует механизм отображения области физической памяти на любую область 32-разрядных адресов для того, чтобы любая программа как бы обладала своим собственным физическим ОЗУ. Каждая программа имеет собственное виртуальное адресное пространство, которое диспетчер виртуальной памяти преобразует в адреса физического ОЗУ или в файлы на жестком диске.

Физическое и виртуальное (логическое) адресное пространство каждого процесса разделено на страницы — кванты памяти, размер которых зависит от компьютера. Ядро может перемещать страницы памяти в страничный файл на диске и обратно. Когда страница перемещается в физическую память, ядро обновляет таблицу страниц соответствующего процесса. Когда ядру требуется место в физической памяти, оно вытесняет самые старые страницы физической памяти в страничный файл. Все это происходит незаметно для приложения.

Безопасность Windows.

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

1. Безопасная регистрация в системе с мерами предосторожности против попыток применения фальшивой программы регистрации.

2. Дискреционное управление доступом.

3. Управление привилегированным доступом.

4. Защита адресного пространства для каждого процесса.

5. Обнуление страниц перед выделением их процессу.

6. Аудит безопасности.

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

У каждого пользователя (и группы) операционной системы Windows есть идентификатор безопасности SID (Security IDentifier), по которому операционная система отличает его от других пользователей. Идентификаторы безопасности представляют собой двоичные числа с коротким заголовком, за которым следует длинный случайный компонент. Каждый SID должен быть уникален в пределах всей планеты. Когда пользователь запускает процесс, этот процесс и его потоки работают под идентификатором пользователя. Большая часть системы безопасности спроектирована так, чтобы гарантировать предоставление доступа к каждому объекту только потокам с авторизованными идентификаторами безопасности. У каждого процесса есть маркер доступа, в котором указывается SID и другие свойства. Как правило, он назначается при регистрации в системе процедурой winlogon. Заголовок маркера содержит некоторую административную информацию.

Обзор системы Unix.

UNIX — семейство переносимых, многозадачных и многопользовательских операционных систем. Первая система UNIX была разработана в 1969 г. в подразделении Bell Labs компании ATT. Некоторые отличительные признаки UNIX-систем включают в себя:

• использование простых текстовых файлов для настройки и управления системой;

• широкое применение утилит, запускаемых в командной строке;

• взаимодействие с пользователем посредством виртуального устройства — терминала;

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

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

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

• сохранить простоту и обойтись минимальным количеством функций;

• общность — одни и те же методы и механизмы должны были использоваться во многих случаях;

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

Общность в ОС UNIX проявляется во многих аспектах:

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

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

• одни и те же механизмы обслуживают программные и аппаратные прерывания.

В настоящее время UNIX используются в основном на серверах, а также как встроенные системы для различного оборудования. На рынке ОС для рабочих станций и домашнего применения лидером является Microsoft Windows, UNIX занимает только второе (Mac OS X), третье (GNU/Linux) и многие последующие места. UNIX-системы имеют большую историческую важность, поскольку благодаря им распространились некоторые популярные сегодня концепции и подходы в области ОС и программного обеспечения. Также, в ходе разработки Unix-систем был создан язык Си.

Процессы Unix.

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

• пользовательском. Процесс выполняет пользовательскую программу и имеет доступ к пользовательскому сегменту данных;

• системном. Процесс выполняет программы ядра и имеет доступ к системному сегменту данных.

Когда пользовательскому процессу требуется выполнить системную функцию, он создает системный вызов. Фактически происходит вызов ядра системы как подпрограммы. С момента появления системного вызова процесс считается системным. Пользовательский и системный процессы являются двумя фазами одного и того же процесса, но они никогда не пересекаются между собой. Каждая фаза пользуется своим собственным стеком. Стек задачи содержит: аргументы; локальные переменные; другую информацию относительно функций, выполняемых в режиме задачи. Диспетчерский процесс не имеет пользовательской фазы.

В ОС UNIX используется разделение времени, каждому процессу выделяется квант времени:

• процесс завершается сам до истечения отведенного ему кванта времени;

• процесс откладывается по истечении кванта времени.

Пользовательским процессам устанавливаются приоритеты в зависимости от количества получаемого ими процессорного времени:

— процессам, которые получили больше процессорного времени, назначаются более низкие приоритеты;

— процессам, которые получили небольшое количество процессорного времени, приоритет повышают.

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

04 — Архитектура ЭВМ. Процессы, потоки, многозадачность


Похожие статьи.

Понравилась статья? Поделиться с друзьями: