Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
122
Добавлен:
20.06.2014
Размер:
6.61 Mб
Скачать

6. Понятие процесса – ключевое понятие ос.

Процессом называют программу в момент ее выполнения под управлением ОС. С каждым процессом связано его адресное пространство. Это список адресов в памяти от некоторого минимального до некоторого максимального, который процесс может прочесть и в который может писать. Адресное пространство содержит саму программу, данные к ней и ее стек. Со всяким процессом связывают состояние процесса. Это набор регистров, включая счетчик команд, указатель стека и др. аппаратные регистры + вся необходимая информация для запуска программы. С процессом связана информация о доступных ресурсах и полномочиях.

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

Если процесс может создавать другие процессы, называемые дочерними, а те в свою очередь новые дочерние, то имеем дерево процессов.

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

  1. Модели программирования Windows и UNIX.

1. Программы Unix состоят из кода, который выполняет те или иные действия, обращаясь к системе с системными запросами для предоставления конкретных услуг. В противоположность этому программы Windows приводятся в действие событиями: основной модуль программы ждет, когда произойдет какое-нибудь событие, затем вызывает процедуру для его обработки. Затем обработчики переписывают содержимое экрана и внутренне состояние программы.

2. В Unix вызовы один к одному идентичны библиотечным процедурам. В стандарте POSIX порядка 100 системных вызовов. В windows фактические системные вызовы и запускаемые для их выполнения библиотечные вызовы полностью разделены. Microsoft определила набор процедур Win32 API. Программисты должны использовать его для вызова служб ОС. Этот интерфейс частично поддерживается всеми версиями windows, начиная с win95. Отделяя интерфейс от фактических системных вызовов, Microsoft поддерживает возможность изменения со временем действительных системных вызовов, не делая при этом недействующими существующие программы. В win32 API тысячи системных вызовов. Причем существенное число их работает полностью в пространстве пользователя. В Unix нет системных вызовов, работающих в пространстве пользователя.

3. В Unix графический интерфейс пользователя XWindow запускается целиком в пространстве пользователя (отделен от ядра). Поэтому для вывода на экран достаточно вызова write, обращение не является системным. В windows графическая подсистема загружается в режиме ядра, следовательно, все вызовы для управления окнами, геометрия, пакеты и т.д. - системные вызовы, т.е. через прерывания.

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