Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаба 1(теория).docx
Скачиваний:
1
Добавлен:
13.08.2019
Размер:
67.27 Кб
Скачать

Модель процесса

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

Рассмотрим схему с четырьмя работающими программами.

 

 

В каждый момент времени активен только один процесс

 

 

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

12. Основные состояния процесса.

Три состояния процесса:

  • Выполнение (занимает процессор)

  • Готовность (процесс временно приостановлен, чтобы позволить выполняться другому процессу)

  • Ожидание (процесс не может быть запущен по своим внутренним причинам, например, ожидая операции ввода/вывода)

Возможные переходы между состояниями.

1. Процесс блокируется, ожидая входных данных

2. Планировщик выбирает другой процесс

3. Планировщик выбирает этот процесс

4. Поступили входные данные

 

Переходы 2 и 3 вызываются планировщиком процессов операционной системы, так что сами процессы даже не знают о этих переходах. С точки зрения самих процессов есть два состояния выполнения и ожидания.

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

№ 13. Что такое командный процессор?

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

№14. Дескриптор и контекст процесса

Контекст – Системные данные, используемые при выполнении процесса

та информация, которая необходима для выполнения процесса:

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

• Режим работы процессора

• Указатели на открытые файлы

• Информация о незавершенных операциях ввода/вывода

• Коды ошибок, выполняемых системных вызовов

Дескриптор процесса – системные данные, используемые ядром в течении времени жизни процесса

информация, необходимая для планирования:

• Идентификатор процесса

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

• Данные о степени его привилегированности

• Место нахождения сегмента кода

• Информация о соседних дескрипторах в очереди

№ 15

Потоки (нити, треды- thread) это отдельные параллельно выполняющиеся программы в рамках одного процесса

№ 16

Модель потока

С каждым потоком связывается:

  • Счетчик выполнения команд

  • Регистры для текущих переменных

  • Стек

  • Состояние

Потоки делят между собой элементы своего процесса:

  • Адресное пространство

  • Глобальные переменные

  • Открытые файлы

  • Таймеры

  • Семафоры

  • Статистическую информацию. 

№ 17

Преимущества использования потоков

  1. Упрощение программы в некоторых случаях, за счет использования общего адресного пространства.

  2. Быстрота создания потока, по сравнению с процессом, примерно в 100 раз.

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

№ 18

Уровень 1. В него входят электронные схемы; объектами данного уровня являются регистры, ячейки памяти и логические элементы. Над этими объектами выполняются различные действия, такие, как очистка содержимого регистра или считывание ячейки памяти.

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

Уровень 3. Содержит концепцию процедуры (подпрограммы), а также операции вызова и возврата.

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

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

Уровень 5. На этом уровне вводится понятие процесса, под которым подразумевается работающая программа. В число фундаментальных требований к операционной системе, способной поддерживать одновременную работу не скольких процессов, входят способность приостанавливать процессы и возобновлять их выполнение. Для этого необходимо сохранять содержимое регистров аппаратного обеспечения, чтобы можно было переключаться с одного процесса на другой. Кроме того, если процессы должны взаимодействовать между собой, необходим механизм их синхронизации. Одной из важнейших  концепций устройства операционных систем является семафор — простейший способ передачи сигналов, который рассмотрен в главе 5, "Параллельные вычисления: взаимоисключения и многозадачность".

Уровень 6. Компоненты этого уровня взаимодействуют со вспомогательными запоминающими устройствами компьютера. На этом уровне происходит позиционирование считывающих головок и физическая передача блоков данных. Для планирования работы и уведомления процесса о завершении запрошенной операции уровень 6 использует компоненты уровня 5.

Уровень 7. Создает логическое адресное пространство процессов. Уровень организует виртуальное адресное пространство в виде блоков, которые могут перемещаться между основной памятью и вспомогательным запоминающим устройством. Широко распространены следующие три схемы: использование страниц фиксированного размера, использование сегментов переменного размера и комбинация тех и других. Если нужный блок отсутствует в основной памяти, то данный уровень передает уровню 6 запрос о передаче этого блока.

До сих пор речь шла только о взаимодействии операционной системы с процессором. Компоненты операционной системы, относящиеся к восьмому и более высоким уровням, вступают во взаимодействие с внешними объектами, такими, как периферийные устройства, а возможно — с сетью и компьютерами, подключенными к сети. Объектами этих уровней являются логические именованные объекты, которые могут совместно использоваться несколькими процессами, исполняющимися на одном или на нескольких компьютерах.

Уровень 8. Отвечает за обмен информацией и сообщениями между процессами. На этом уровне происходит более богатый обмен информацией, чем на уровне 5, который обеспечивает работу первичного сигнального механизма для синхронизации процессов. Одним из наиболее мощных инструментов подобного типа является конвейер, представляющий собой логический канал передачи данных между процессами. Конвейер определяется как канал, передающий вывод одного процесса на вход другого; кроме того, он может быть использован и для связи с процессом внешних устройств или файлов. Эта концепция рассматривается в главе 6, "Взаимоблокировка и голодание".

Уровень 9. Обеспечивает долгосрочное хранение файлов. На этом уровне данные, хранящиеся на вспомогательном запоминающем устройстве, рассматриваются как абстрактные объекты переменной длины, в противоположность аппаратно- зависимому рассмотрению вторичной памяти как набора дорожек, секторов и блоков фиксированного размера, присущему уровню 6.

Уровень 10. Предоставляет доступ к внешним устройствам с помощью стандартных интерфейсов.

Уровень 11. Поддерживает связь между внешними и внутренними идентификаторами системных ресурсов и объектов. Внешний идентификатор — это имя, которое может использоваться приложением или пользователем. Внутренний идентификатор — это адрес или другой индикатор, используемый нижними уровнями операционной системы для обнаружения объекта и управления им. Эта связь поддерживается с помощью каталога, который включает в себя не только взаимное отображение внешних и внутренних идентификаторов, но и такие характеристики, как, например, права доступа.

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

Уровень 13. Обеспечивает взаимодействие операционной системы с пользователем. Этот уровень называется оболочкой (shell), так как он отделяет пользователя от деталей внутреннего устройства операционной системы и представляет ее пользователю как набор сервисов. Оболочка принимает команды пользователя или инструкции управления заданиями, интерпретирует их, создает необходимые процессы и управляет ими. На этом уровне, например, может быть реализован графический интерфейс, предоставляющий пользователю возможность выбора команды с помощью меню и отображающий результаты работы на экране.

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

Различия между Windows и UNIX.

Операционные системы Unix и Windows достаточно сильно отличаются в реализации различных сервисов и служб. В соответствии с темами, затронутыми в этой статье, можно отметить несколько глобальных различий.   В Unix/Linux графическая система существует отдельно от ядра и функционирует как обычное приложение. В операционных системах Windows графическая система интегрирована в ядро. В случае использования операционной системы на рабочей станции, особенно при запуске графикоемких приложений, возможно, лучше, когда графическая система входит в ядро - в этом случае она может быстрее работать. А при работе на сервере предпочтительней отделение графической системы от ядра ОС, так как она загружает память и процессор. В случае Unix/Linux графическую систему можно просто отключить, к тому же, если системный администратор ее все-таки хочет использовать, в Linux есть несколько графических оболочек на выбор, некоторые из них (например, WindowMaker) достаточно слабо загружают машину. Эта же особенность Unix-образных операционных систем позволяет запускать эти ОС на машинах с весьма скромными объемами ОЗУ и т.п. В случае Windows же графическая система слишком тесно интегрирована в ОС, поэтому она должна запускаться даже на тех серверах, на которых она вовсе не нужна.   Отметим также методику разделения прав доступа в Windows 2000 и Unix/Linux. В первом - разделение прав доступа основано на ACL (access control lists), то есть, к примеру, можно настроить систему таким образом, чтобы администратор не имел возможности управлять файлами пользователей. У Unix/Linux же всегда есть суперпользователь - root, который имеет доступ абсолютно ко всему. То есть теоретически модель безопасности в Windows лучше: чтобы полностью завладеть хорошо настроенной системой Windows, хакеру придется ломать больше, в Unix/Linux же достаточно взломать доступ к root. (В Unix/Linux используются более старые технологии, тем не менее, некоторые дистрибутивы Linux сейчас начинают поддерживать ACL, среди них - ASPLinux 7.3 Server Edition). Но теория несколько смазывается практикой с той стороны, что в Windows не так быстро, как в Linux, заделываются "дыры", что уже относится к плюсам открытой модели разработки. В результате оказывается, что в Windows по статистике больше дыр, через которые злоумышленник может пробраться в систему. Но, опять же, точно о количестве дыр в Linux и Windows можно будет сказать только тогда, когда количество пользователей обоих видов ОС будет примерно одинаковым.   В Linux поддерживаются несколько файловых систем, наиболее продвинутые - это Ext2, Ext3, XFS. ОС Windows завязана по большому счету на одну файловую систему - NTFS или FAT 32. Файловые системы Ext2, Ext3, XFS по оценкам работают быстрее. Принципиальное же отличие в том, что в UNIX/Linux вообще нет понятия диска, физического или логического. Вся работа с устройствами хранения данных организуется через специальные файлы устройств, которые отображают физический носитель (диск, лента и т. п ) или его части (разделы) в файловую систему.   Важное отличие - наличие в Windows технологии ActiveX, нечто подобное в Unix/Linux реализуется с помощью CORBA и Bonobo. Эта технология, с одной стороны, предоставляет пользователю множество удобств, с другой стороны - она же допускала в свое время такие вещи, как автоматический запуск Outlook'ом вируса, пришедшего по почте. Одно из важных отличий этих технологий в том, что элементы ActiveX могут внедряться в текст HTML, что имеет как ряд достоинств, так и недостатков.   Можно перечислить еще ряд отличий Unix-подобных операционных систем от Windows, например, встроенную поддержку удаленного доступа в Unix и отсутствие оной в Windows по умолчанию (она реализуется в серверных версиях Windows, а также с помощью дополнительных средств, например, Citrix). В Unix/Linux и Windows сильно различаются сетевые подсистемы (IP-stack), по ряду оценок сетевая подсистема Unix/Linux эффективнее.   Можно было бы упомянуть богатый набор ПО, которое может поставляться вместе с Linux, между тем, Windows также развивается в этом направлении. Дополнительные отличия же в архитектуре в основном сводятся к отличиям работы монолитных и модульных ядер, которые также зачастую не являются преимуществами или недостатками, а просто отличиями. При всем при этом можно с уверенностью сказать, что характеристики работы Windows или Linux гораздо больше зависят от аккуратности и квалификации пользователя, чем от архитектуры той или иной ОС".

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]