Основы операционных систем

Основополагающая концепция – процесс

Система управления процессами.

Фактически изменение состояние ОС происходит в результате изменения процессов. Необходимо управлять процессами, необходимо управлять ресурсами.

Процесс – есть работа производимый последовательно процессором при выполнении программы с её данными. Задача или программа. Процессор и данные, с которыми работает программы.

Свойства процесса:

1)      Процесс может быть продолжающимся, или процесс в состоянии готовности.

2)      Процесс может быть законченным, т.е. выполненным.

3)      Процесс может быть блокированным.

 

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

Прежде всего на него наложено сильное ограничение – при выполнении каких-либо процессов, такие процессы не могут быть блокированы.

Примитивы – процессы низкого уровня, фактически являющиеся ядром ОС.

Например, механизм синхронизации, механизм прерывания.

 

В нашем курсе мы будем рассматривать ОС семейства Windows.

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

1)      В Windows поддерживается симметричная многопроцессорная обработка, поэтому потоки могут обрабатываться на отдельных процессорах. Процесс для Windows.

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

Сегменты данных, содержащие глобальные переменные.

Строгие окружения с информацией о переменных окружения.

Память кучи.

Открытые дескрипторы.

Практически все системные ресурсы являются объектами ядра, которые идентифицируются дескрипторами. Каждый объект ядра должен управляться Win32 API – это файлы, процессы, потоки, имеющие атрибуты безопасности. Создаются с помощью функции “create …”

Потоки - это независимая единица работы внутри процесса.

Все потоки используют ресурс процесса совместно, но планируются независимо.

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

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

Параметр стека, полученный от процесса. Структура контекста, управляемая ядром со значениями аппаратных регистров. Имеет Handle и идентификаторы.

Идентификатор – значение численное, не меняющееся. Есть функция по нахождению по неизменяемому значению.

У нас в течение всего времени идентификаторы изменяются, а дескрипторы – изменяются.