Система управления процессами в ос windows 7. Управление процессами в Windows. Процесс и нить как объекты

Система управления процессами в ос windows 7. Управление процессами в Windows. Процесс и нить как объекты

05.11.2019

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

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

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

Все версии Windows от 1.0 до 3.11 представляли собой достаточно мощные многозадачные системы с невытесняющей диспетчеризацией. Версии, начиная с Windows NT и Windows 95, используют вытесняющую диспетчеризацию.

      1. Понятие объекта в Windows

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

Объекты Windows делятся на объекты ядра (KERNEL), позволяющие управлять процессами, объекты USER, описывающие работу с окнами, и объекты GDI, задающие графические ресурсы Windows. В данном курсе рассматриваются только объекты ядра. Процессы, нити и открытые файлы являются примерами объектов ядра.

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

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

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

Объект существует до тех пор, пока не будут закрыты все хэндлы, указывающие на него.

Как известно, любым компьютером управляет операционная система. От нее зависит и удобство работы, и функциональные возможности, и надежность, и быстродействие. С другой стороны ОС не воспринимается обывателями как некая отдельная часть компьютера – она «была там всегда». И в большинстве случаев у неквалифицированных пользователей даже не возникает вопрос «Какая ОС работает на моем компьютером?»

Освоить управление процессами cпомощью командами tasklist и taskkill и через диспетчер задач.

Скачать:


Предварительный просмотр:

Управление процессами в ОС Windows

Цель:

освоить управление процессами c помощью командами tasklist и taskkill

и через диспетчер задач.

Ход выполнения работы:

Для того чтобы просмотреть количество запущенных программ в операционной системе windows xp/seven можно использовать программу

“Диспетчер задач”.

Диспетчер задач можно запустить двумя способами.

1.Способ:

Нажав комбинацию кнопок Contr+Alt+Del.

В появившемся окне нажать вкладку процессы .

2.Способ:

Запустить интепритатор командной строки нажав горячие клавиши Win+R или запустить программу через меню пуск – выполнить.

В появившимся окне написать CMD и нажать Enter

После чего запустится командная строка.

В ней написать команду Tasklist и нажать Enter.

Запустится “Диспетчер задач”

В нём мы можем увидеть сколько запущено процессов а также на сколько загружен процессор и задействована ОЗУ нажав на вкладку быстродействие .

Удалить процесс можно набрав команду taskkill/?

Taskkill

Завершает одно или несколько заданий или процессов. Процессы могут быть уничтожены кодом процесса или именем образа. Синтаксис taskkill ]] | Параметры

/s компьютер

Указывает имя или IP-адрес удаленного компьютера (не используйте обратную косую черту). По умолчанию используется локальный компьютер.

/u домен\пользователь

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

/p пароль

Определяет пароль учетной записи пользователя, заданной параметром /u.

/fi имя_фильтра

Задает типы процессов, которые следует завершить и не следует.

/pid код_процесса

Указывает код процесса, который необходимо завершить.

/im имя_образа

Указывает имя образа процесса, который необходимо завершить. Используйте подстановочный знак (*) для указания всех имен образа.

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

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

Примечания

Подстановочный символ (*) принимается только при указании вместе с фильтрами.

Завершение удаленных процессов всегда выполняется принудительно независимо от указания параметра /f.

Указание имени компьютера в качестве фильтра HOSTNAME приведет к завершению работы и остановке всех процессов.

Используйте команду tasklist для определения кода завершаемого процесса.

Команда taskkill является заменой средству Kill.

taskkill /f /fi "USERNAME eq NT AUTHORITY\SYSTEM" /im notepad.exe

taskkill /s srvmain /f /im notepad.exe

taskkill /s srvmain /u maindom\hiropln /p p@ssW23 /fi "IMAGENAME eq note*" /im *

taskkill /s srvmain /u maindom\hiropln /fi "USERNAME ne NT*" /im *

taskkill /f /fi "PID ge 1000" /im *

Команда запуска быстродействия сразу taskmgr.exe

Завершения процесса

Tskill {код_процесса | имя_процесса} [{/id:код_сеанса | /a}]

Параметры:

код_процесса

Отображает код завершаемого сеанса.

имя_процесса

Отображает имя завершаемого сеанса. Для задания этого аргумента можно использовать подстановочные символы.

/server:имя_сервера

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

/id:код_сеанса

Завершает процесс, запущенный в выбранном сеансе.

Завершает процесс, запущенный во всех сеансах.

Отображает сведения о выполненных действиях.

Отображает справку в командной строке.

Примечания

Если пользователь не обладает правами администратора, то он может использовать команду tskill для завершения только тех процессов, которые принадлежат ему. Администраторы имеют полный доступ ко всем функциям команды tskill и могут завершить процесс, запущенный в любых пользовательских сеансах.

При завершении всех запущенных процессов в сеансе он тоже завершается.

Список различных процессов

CSRSS.EXE

Процесс отвечает за окна консоли, за создание и удаление потоков, а также частично за работу 16-битной среды MS-DOS. Он относиться к подсистеме Win32 пользовательского режима (WIN32.SYS же относиться к ядру Kernel) и должен всегда выполняться.

EXPLORER.EXE

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

INTERNAT.EXE

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

LSASS.EXE

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

MSTASK.EXE

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

SMSS.EXE

Диспетчер сеансов запускает высокоуровневые подсистемы и сервисы. Процесс отвечает за различные действия, например запуск Winlogon и Win32 процессов, а также за операции с системными переменными. Когда Smss определяет, что Winlogon или Csrss закрыты, он автоматически выключает систему.

SPOOLSV.EXE

Обеспечивает создание очереди на печать, временно сохраняя документы и факсы в памяти.

SVCHOST.EXE

Этот всеобъемлющий процесс служит хостингом для других процессов, запускаемых с помощью DLL. Поэтому иногда работают одновременно несколько Svhost. С помощью команды > можно вывести на экран все процессы, использующие Svchost.

SERVICES.EXE

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

SYSTEM

Выполняет все потоки ядра Kernel.

SYSTEM IDLE PROCESS

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

TASKMGR.EXE

Процесс диспетчера задач, закрывать который крайне не рекомендуется.

WINLOGON.EXE

WINMGTM.EXE

Основной компонент клиентской службы Windows. Процесс запускается одновременно с первыми клиентскими приложениями и выполняется при любом запросе служб. В Windows XP процесс запускается как клиент процесса Svchost.

по материалам журнала NetWork

Их можно просмотреть следующим способ:

1.Нажмите на панели задач Windows кнопку Пуск и выберите пункт Выполнить.

2.В поле Открыть введите команду CMD и нажмите клавишу ВВОД.

3.Введите команду Tasklist /SVC и нажмите клавишу ВВОД.

Команда Tasklist выводит список активных процессов. Параметр /SVC используется для вывода списка активных служб в каждом процессе. Для получения дополнительных сведений о процессе введите следующую команду и нажмите клавишу ВВОД:

Tasklist /FI "PID eq идентификатор_процесса" (кавычки обязательны)

В приведенном ниже примере показан вывод команды Tasklist для двух экземпляров процесса Svchost.exe.

Задание:

  1. Запустить Калькулятор
  2. Посмотреть командой tasklist появился ли процесс calc.exe
  3. Запустить Regedit(пуск>выполнить>regedit)
  4. Посмотреть командой tasklist появился ли процесс regedit.exe
  5. “Убить” процесс regedit.exe(командой taskkill)
  6. Посмотреть реакцию системы

Управление процессами из командной строки

Способов управлять процессами в Windows предостаточно, и командная строка занимает в них далеко не первое место. Однако иногда бывают ситуации, когда все остальные инструменты кроме командной строки недоступны, например некоторые вредоносные программы могут блокировать запуск Task Manager и подобных ему программ. Да и просто для общего развития полезно знать способы управления компьютером из командной строки.

Для управления процессами в командной строке есть две утилиты — tasklist и taskkill . Первая показывает список процессов на локальном или удаленном компьютере, вторая позволяет их завершить. Попробуем …

Если просто набрать команду tasklist в командной строке, то она выдаст список процессов на локальном компьютере.

По умолчанию информация выводится в виде таблицы, однако ключ /fo позволяет задать вывод в виде списка или в формате CSV, а ключ /v показывает более подробную информацию о процессах, например команда tasklist /v /fo list выведет подробное описание всех процессов в виде списка.

Список получится довольно большой, поэтому попробуем уточнить запрос. Для этого используем ключ /fi , который позволяет использовать фильтры для вывода данных, например команда tasklist /fi ″username eq user″ /fi ″memusage le 40000″ выводит список процессов пользователя user , которые потребляют не больше 40Мб памяти.

Найдя процессы, которые необходимо завершить, воспользуемся командой taskkill. Завершать процессы можно по имени, идентификатору процесса (PID) или задав условия с помощью фильтров. Для примера запустим несколько экземпляров блокнота (notepad.exe) и попробуем завершить его разными способами.

Ключ /f завершает процесс принудительно, а /t завершает все дочерние процессы.

Полную справку по командам tasklist и taskkill можно получить, введя их с ключом /?

Теперь пустим в ход тяжелую артиллериюPowerShell. Его можно запустить не выходя из командной строки. Для получения списка процессов используем командлет Get-Process.

Чтобы не выводить весь список процессов можем воспользоваться командлетом Where-Object , который задает фильтр для выводимой информации. Для примера выведем список процессов, которые загружают процессор и отсортируем их по возрастанию нагрузки с помощью команды:

Get-Process | where {$_.cpu -gt 0} | sort cpu

С помощью PowerShell мы можем получить любую информацию о любом процессе. В качестве примера возьмем процесс cmd и выведем список его свойств командой:

Get-Process -Name cmd | Get-Member -Membertype property

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

Get-Process -Name cmd | Format-List name, id, path, modules, starttime

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

Для завершения процесса в PowerShell есть командлет Stop-Process . Он завершает указанный процесс по его имени или идентификатору. Однако мы поступим по другому и передадим результат выполнения командлета Get-Process по конвейеру:

Get-Process | where {$_.name -match ″notepad″} | Stop-Process

Get-Process не может показать процессы на удаленном компьютере, для этого воспользуемся командлетом Get-WmiObject , например посмотрим процессы на удаленном компьютере PC командой:

Get-WmiObject win32_process -computername PC | ft name, processid, description

Для боле полного ознакомления с PowerShell можно воспользоваться встроенной справкой, для вызова справки нужно набрать Get-Help ″имя командлета″

Ну и для полноты обзора рассмотрим еще одно средство для управления процессами из командной строки. Это утилиты Pslist и Pskill входящие в состав пакета PSTools от компании Sysinternals.

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

Завершение процесса программой pskill предельно просто, вводим команду и имя (или ID) процесса и все.

Справку по утилитам Pslist и Pskill можно посмотреть, введя команду с ключом /?

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

Цель работы : практическое знакомство с методикой управления процессами ОС MS Windows XP с помощью диспетчера задач

1 КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

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

В отличие от MS DOS, процессы в Win32 инертны, т. е. В Win32 процесс ничего не выполняет.

Процесс владеет:

4 Гб адресным пространством (при выполнении на 32-х разрядном ЦП);

Файлами;

Модулями (например, загруженными в адресное пространство DLL);

Одним или несколькими потоками.

Процесс обладает:

Идентификатором процесса (PID);

Базовым классом приоритета;

Маркером доступа (access token);

Идентификатором родительского процесса;

Набором используемых описателей (Handles) системных объектов;

Рабочим множеством страниц оперативной памяти и т.д.

Процесс (Пр) может породить другой процесс- см. рис.1.

Рисунок 1 – порождение процессов.

Процесс Пр1 породил процесс Пр2, который породил процессы Пр3 и Пр4.

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

В каждой системе Windows выполняются следующие системные процессы:

Процесс Idle (включает по одному потоку на процессор для учета времени простоя процессора);

Процесс System (содержащий большинство системных потоков режима ядра);

Диспетчер сеансов (Smss.exe);

Подсистема Windows (Csrss.exe);

Процесс входа в систему (Winlogon.exe);

Диспетчер управления сервисами (Services.exe) и создаваемые им дочерние процессы сервисов (например, универсальный процесс для хостинга сервисов, Svchost.exe);

Серверный процесс локальной аутентификации (Lsass.exe).

Два из указанных процессов, Idle – бездействие системы и System, не являются процессами в строгом смысле этого слова, поскольку они не выполняют какой-либо код пользовательского режима.

Диспетчер сеансов (Session Manager) Smss.exe является первым процессом пользовательского режима, создаваемым в системе. Он порождается системным потоком режима ядра и запускает процессы подсистем Csrss.exe и Winlogon, который в свою очередь создает остальные системные процессы.

Процесс входа в Windows - Winlogon.exe обрабатывает интерактивный вход пользователя в систему и выход из нее. При нажатии комбинации клавиш Alt+Ctrl+Del Winlogon получает уведомление о запросе пользователя на вход в систему.

После ввода имя и пароль пользователя посылаются для проверки серверному процессу локальной аутентификации LSASS. После успешной аутентификации LSASS вызывает какую-либо функцию в мониторе состояния защиты, чтобы сгенерировать объект «маркер доступа» (access token object), содержащий профиль безопасности пользователя. Впоследствии Winlogon использует его для создания начального процесса оболочки. Информация о начальном процессе хранится в параметре Userinit в разделе реестра HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon.

По умолчанию начальным процессом считается Userinit.exe, который выполняет некоторые действия по инициализации пользовательской среды, а затем ищет в реестре параметр Shell и создает процесс для запуска определенной системной оболочки – по умолчанию Explorer.exe. После этого процесс Userinit.exe завершается и не показывается в списке выполняющихся процессов. Процесс Explorer.exe является «внучатым» процессом Winlogon. Процесс Explorer.exe – предок всех запущенных прикладных (пользовательских) процессов.

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

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

Чтобы процесс что-нибудь выполнил, в нем нужно создать поток (Thread). В принципе, один процесс может содержать несколько потоков и они одновременно используют код в адресном пространстве процесса. Для этого каждый поток должен поток располагать собственным набором регистров процессора, а каждый процесс – как минимум – одним потоком. Чтобы все эти потоки работали, ОС отводит каждому из них определенное процессорное время (квант времени). Время выдается потокам квантами по кругу (см. рис. 2) в соответствии с их приоритетами:

Рисунок 2 - схема выделения квантов времени потокам (П)

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

Потоки также могут создаваться драйверами режима ядра.

В WinNT, 2000, XP Windows Server - за потоком может быть закреплен отдельный процессор (процессоров может быть до 32), тогда потоки действительно выполняются параллельно.

1.2 Инструменты управления процессами

В ОС Windows встроена программа Диспетчер задач (Task Manager), с помощью которой можно получить информацию о выполняющихся в системе системных и прикладных процессах, количестве используемых ими потоков и потребляемых ресурсах, управлять выполнением процессов, изменять приоритеты процессов. Для запуска диспетчера задач можно использовать комбинацию Alt+Ctrl+Del или нажатие правой кнопкой мыши на панель задач. Окно диспетчера задач показано на рис. 3.

Рисунок 3 - Окно диспетчера задач (закладка Процессы)

В окне Процессы можно видеть список всех выполняемых в системе процессов и их параметры – на рис.3 это идентификаторы процессов, загрузка ЦП каждым процессом и количество потоков. Заметьте, что количество потоков, равное 0 не говорит о том, что их действительно нет (это процесс такой).

С помощью меню Вид можно удалить из списка показанные на рис.3 параметры или добавить новые.

Закладка Быстродействие (см. рис.4) дает возможность вывести графики суммарной загрузки ЦП, использования файла подкачки, а также получить сведения о суммарном потреблении ресурсов ПК.

Диспетчер задач – очень простой инструмент, его возможностей недостаточно для решения даже несложных задач анализа и управления системой. ПРИМЕР – постройте дерево выполняемых в системе процессов на основе полученной с помощью диспетчера задач информации.

Фирмой Sysinternals разработана программа Process Explorer, обладающая значительно большими возможностями, чем диспетчер задач от Microsoft, а также ряд других программ для управления ПК и анализа информационной безопасности. Однако все эти программы бесплатны только для личного использования и на современном этапе без лицензии не могут использоваться в учебном процессе кафедры.

Рисунок 4 - Окно диспетчера задач (закладка Быстродействие)

2. МЕТОДИКА ВЫПОЛНЕНИЯ

1. Запустить диспетчер задач, ознакомиться с перечнем параметров процессов (меню вид закладки Процессы).

2. Ознакомиться с возможностями диспетчера задач по управлению процессами (создание процесса и завершение процесса). Изменение приоритета выбранного процесса с помощью контекстного меню.

3. Ознакомиться с возможностями диспетчера по управлению выводом информации на экран (упорядочивание списка по возрастанию и убыванию значений выбранного параметра).

4. Построить график изменения загрузки ЦП при перемещении мыши, изменении размеров окна диспетчера, запуске приложений Open Office.

5. Построить график изменения размера выделенной в файле подкачки памяти при запуске приложений (Open Office, Visual Studio).

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

Таблица 1 Индивидуальные задания

Таблица 2 - Параметры процессов

3. ОТЧЕТ О РАБОТЕ

Готовится в письменном виде с помощью Open Office один на бригаду.

1. Титульный лист с номером и названием работы, номером группы, бригады, фамилиями студентов и преподавателя

2. Перечень использованных при выполнении работы параметров процессов

3. Результаты, полученные при выполнении индивидуального задания.

КОНТРОЛЬНЫЕ ВОПРОСЫ

1. Дать определение процесса, потока, системного и прикладного процесса

2. Какая информация необходима для построения перечня выполняющихся в системе процессов в виде дерева. Можно ли получить такую информацию в MS Windows, используя диспетчер задач?

Управление процессами

Важнейшей частью операционной системы, непосредственно влияющей на функ­ционирование вычислительной машины, является подсистема управления процессами.

Для каждого вновь создаваемого процесса ОС генерирует системные информа­ционные структуры, которые содержат данные о потребностях процесса в ресур­сах вычислительной системы, а также о фактически выделœенных ему ресурсах. Τᴀᴋᴎᴍ ᴏϬᴩᴀᴈᴏᴍ, процесс можно также определить как некоторую заявку на по­требление системных ресурсов.

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

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

В мультипрограммной операционной системе одновременно может существо­вать несколько процессов. Часть процессов порождается по инициативе пользо­вателœей и их приложений, такие процессы обычно называют пользовательскими . Другие процессы, называемые системными , инициализируются самой операци­онной системой для выполнения своих функций.

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

На протяжении периода существования процесса его выполнение должна быть многократно прервано и продолжено. Для того чтобы возобновить выполнение процесса, крайне важно восстановить состояние его операционной среды. Состоя­ние операционной среды идентифицируется состоянием регистров и программного счетчика, режимов работы процессора, указателя на открытые файлы, информацией о незавершенных операциях ввода-вывода, кодами ошибок выполняемых данным процессом системных вызовов и т.д. Эта информация называет­ся контекстом процесса. Говорят, что при смене процесса происходит переклю­чение контекстов.

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

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

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

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

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

Существует большое разнообразие алгоритмов распределœения памяти. Οʜᴎ мо­гут отличаться:

Количеством выделяемых процессу областей памяти (в одних случаях память выделяется процессу в виде одной непрерывной облас­ти, а в других - в виде нескольких несмежных областей),

Степенью свободы гра­ницы областей (она должна быть жестко зафиксирована на всœе время существова­ния процесса или же динамически перемещаться при выделœении процессу дополнительных объёмов памяти),

В некоторых системах распределœение памяти выполняется страницами фиксированного размера, а в других - сегментами пе­ременной длины

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

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

Τᴀᴋᴎᴍ ᴏϬᴩᴀᴈᴏᴍ, функциями ОС по управлению памятью являются (рис.5) отслежива­ние свободной и занятой памяти; выделœение памяти процессам и освобождение памяти при завершении процессов; защита памяти; вытеснение процессов из оперативной памяти на диск, когда размеры основной памяти недостаточны для размещения в ней всœех процессов, и возвращение их в оперативную память, ко­гда в ней освобождается место, а также настройка адресов программы на кон­кретную область физической памяти.

Управление файлами и внешними устройствами

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

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

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

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

Подсистема управления внешними устройствами, называемая также подсисте­мой ввода-вывода , исполняет роль интерфейса ко всœем устройствам, подключен­ным к компьютеру. Спектр этих устройств очень обширен. Номенклатура вы­пускаемых накопителœей на жестких, гибких и оптических дисках, принтеров, сканеров, мониторов, плоттеров, модемов, сетевых адаптеров и более специаль­ных устройств ввода-вывода, таких как, к примеру, аналого-цифровые преобразо­ватели, может насчитывать тысячи моделœей. Эти модели могут существенно отличаться набором и последовательностью команд, с помощью которых осуще­ствляется обмен информацией с процессором и памятью компьютера, скоростью работы, кодировкой передаваемых данных, возможностью совместного исполь­зования и множеством других деталей.

Программа, управляющая конкретной моделью внешнего устройства и учиты­вающая всœе его особенности, обычно принято называть драйвером этого устройства (от английского drive - управлять, вести). Созданием драйверов устройств занимаются как разработчики конкретной ОС, так и специалисты компаний, выпускающих внешние устройства.

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

Со времени появления ОС UNIX такой унифи­цированный интерфейс в большинстве операционных систем строится на базе концепции файлового доступа. Эта концепция состоит по сути в том, что обмен с любым внешним устройством выглядит как обмен с файлом, имеющим имя и представляющим собой неструктурированную последовательность байтов. В качестве файла может выступать как реальный файл на диске, так и алфавитно-цифровой терминал, печатающее устройство или сетевой адаптер.
Размещено на реф.рф
Здесь мы опять имеем дело со свойством операционной системы подменять реальную аппаратуру удобными для пользователя и программиста абстракциями.

Τᴀᴋᴎᴍ ᴏϬᴩᴀᴈᴏᴍ, функциями ОС по управлению файлами и внешними устройствами (рис.6) являются виртуализация отдельных наборов данных; преобразование символьных имен файлов в физические адреса данных на диске; передачу данных между внешними устройствами и оперативной памятью; управление конкретным типом периферийных внешних устройств; реализации концепции файлового доступа для обмена данными с внешними устройствами.

Управление процессами - понятие и виды. Классификация и особенности категории "Управление процессами" 2017, 2018.



© 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows