|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Управление процессамиПроцессом называют выполняемый программный сегмент вместе с ресурсами, необходимыми для его выполнения (планирования).Обычно для управления процессами, процессом выделяется центральный процессор. Планирование – это распределение ресурсов центрального процессора между конкурирующими процессами, путем передачи или управления согласно некоторой стратегии планирования. Процесс может находится в ряде состояний, и каждому состоянию в ОС соответствует примитив, обрабатывающий это состояние Процесс создаётся, когда начинается выполнение задания пользователя и уничтожается, когда задание заканчивается. В однопроцессорной системе в памяти в каждый момент времени может находиться только один процесс. В системах коллективного пользования все процессы активизируются по очереди, получая квант времени центрального процессора. В многопроцессорных системах одновременно может существовать несколько процессов. Процесс активен, если он использует центральный процессор для выполнения команд. Процесс блокирован, если он ждёт наступления некоторого события. Процесс находится в состоянии готовности, если он неактивен и неблокирован, и если ему выделены необходимые ресурсы. В любой ОС существуют очереди: - активных процессов; - очередь процессов в состоянии готовности; - очередь блокированных процессов. ОС, анализируя очередь готовности и очередь блокированных процессов в соответствии с некоторой стратегией (закладываемой разработчиками), выбирает следующий процесс, переводит его в состояние активности, и передаёт ему управление. Выбор процесса и передача ему управления называется диспетчеризацией. В случае блокировки процесса активизируется новый процесс. События и оповещения о том, что они наступили, реализуется при помощи сервисных функций ОС. Любой процесс характеризуется словом состояния процесса (PSW).Это структура, состоящая из полей:1)Состояние процесса 2)Область сохранения машинных регистров. 3)Информация о системных ресурсах (начальный адрес кодового сегмента, его длина и др.). 4)Номер в очереди. 5)Номер дескриптора процесса Процессы обмениваются между собой сигналами. Сигнал – это объект, данные в котором представляют собой следующую структуру: 1) Номер дескриптора процесса, к которому направлен сигнал; 2) Номер дескриптора процесса, от которого идёт сигнал; 3)…n) информация о состоянии передаваемым сигналом (номера семафоров, их активность, номера очередей) Управляет процессами (нитями) – диспетчер процессов. Алгоритм работы диспетчера: PROCEDURE DISPACH: <обновить PSW активного процесса, если он есть>; <выбрать следующий готовый процесс для передачи ему управления>. Выбор процесса осуществляется в соответствии с некоторой стратегией LIFO, FIFO. if <готовый процесс найден> Then Begin <пометить выбранный процесс как активный>; <выделить квант времени, установив привилегированной командой таймер>; <передать управление выбранному процессу> End Else <перевести центральный процессор привилегиванной командой в состояние простоя>; WINDOWS 7 Начальная, домашняя базовая, дом расширенная, профессиональная, корпоративная, максимальная. Компонентами пользовательского интерфейса Windows 7 являются окна с элементами управления, панель задач и контекстное меню, а основными устройствами ввода являются манипулятор мышь, клавиатура, джойстик, (если в компьютере используется сенсорный экран, то средством ввода является дисплей, который преобразует нажатие или прикосновение к экрану в команду). 5.Управляет процессами (нитями) – диспетчер процессов. Алгоритм работы диспетчера: PROCEDURE DISPACH: <обновить PSW активного процесса, если он есть>; <выбрать следующий готовый процесс для передачи ему управления>. Выбор процесса осуществляется в соответствии с некоторой стратегией LIFO, FIFO. if <готовый процесс найден> Then Begin <пометить выбранный процесс как активный>; <выделить квант времени, установив привилегированной командой таймер>; <передать управление выбранному процессу> End Else <перевести центральный процессор привилегиванной командой в состояние простоя>; Как выбирается процесс для активизации: 1) круговая стратегия (в мультипрограммных системах) – в этом случае все процессы считаются равноценными, и диспетчер циклически просматривает PSW всех процессов и выделяет им по очереди квант времени. 2) Выбор процессов по приоритету – приоритеты могут назначаться пользователем, либо их устанавливает ОС в целях повышения производительности всей системы. Приоритеты делятся на классы, внутри класса может быть градация, и они могут быть статическими, либо динамическими в зависимости от загрузки системы. Любой процесс обменивается с диспетчером процессов запросами о наступлении некоторого события. Для этого используют специальные внутри системные запросы. Событие, которое ожидалось, или о наступлении которого было сообщено, определяется посредством задания соответствующего адреса блока состояния события (Event Status Block-ESB) Процессы могут порождать родственные процессы, которые наследуют все ресурсы родительского процесса. Обработка запроса Wait: Procedure Wait (ESB); if ESBFlag Procedure Wait (ESB); If ESBFlag =1 {событие уже наступило} then <возвратить управление запрашивающего процесса специальной командой> else begin <пометить запрашивающий процесс как blocked>; < поместить запрашивающий процесс в очередь: ESBQUEUE>; <передать управление диспетчеру>; end; В этой процедуре скрыта обработка сигналов. Процедура SIGNAL обработки сигнала: Procedure SIGNAL (ESB); ESBFlag=1; {отметить, что событие наступило} for <каждый процесс в ESBQUEUE> do begin <пометить процесс как готовый>; <убрать процесс из очереди> end; <возвратить управление запрашивающему процессу>. Если метод диспетчеризации основан на приоритетах, то для обработки сигнала используется другой алгоритм: вместо прямой передачи управления активному процессу процедура SIGNAL должна сначала вызвать диспетчер, который передаёт управление процессу с наивысшим приоритетом, находящийся в данный момент в состоянии готовности. Это означает, что в зависимости от приоритета процессы могут перехватывать управление у процессов с меньшим приоритетом. Singularity супер мега проект от Microsoft - новая операционная система Singularity. Microsoft решила с нуля попробовать написать ОСь используя "безопасное программирование", которое на корню будет пресекать баги различного рода. Для этого решили использовать "безопасные" языки программирования C#, Sing#, ну и кое-где си и ассемблер. Главной особенностью операционки является модель SIP (Software-Isolated Process). Каждый процесс изолирован друг от друга, но сообщения между ними могут передаваться посредством двунаправленных, строго типизированных высокоуровневых каналов. 6.Обслуживание ввода-вывода Это группа процессов, которые инициируются программами или самой ОС, и которые связаны с передачей информации между оперативной памятью и дисками, магнитными лентами и между магнитными лентами и магнитными дисками. Обмен информацией осуществляется побайтно или блоками с помощью специально-выделенных каналов. Системы ввода-вывода включают, как правило, группу буферов ввода-вывода, каналов ввода-вывода. Канал – это специализированная на вводе-выводе машина. Канал работает на специальной канальной программе, в которой используются привилегированные команды (внутренние команды ЦП). Каналы делятся на три типа: А) мультиплексные (навешано много устройств ввода-вывода, действующих медленно: поэтому канальная программа должна переключаться от одного канала к другому(принтеры)); Б) селекторные (одно устройство быстрое, с большим объёмом (винчестер)); В) DMA (Direct Memory Access – прямой доступ к памяти) – канал, выполняющий канальную программу без вмешательства центрального процессора. По окончанию программы канал генерирует прерывания по вводу-выводу, которые могут работать параллельно. В мультипрограммной системе одновременно могут существовать процессы пользователя Ui,они обрабатываются диспетчером заданий(SuperVisor). Диспетчер задания имеет – загрузчик заданий, который обеспечивает загрузку заданий с дискового накопителя в ОП. Функции: 1)определяет, какое задание надо выбрать для загрузки в ОП; 2)формирует процесс Ui пользователя, а именно его слово состояния PSW; 3)завершает выполнение очередного задания. В любой ОС есть 2 важных процесса: спулер ввода и спулер вывода. Спулер – процесс ввода-вывода в режиме реального времени. Диспетчер спулинга – это программа, которая формирует Pool (пул) буфер, т.е. структуру, соответствующую каждому буферу (занят – незанят). Из этих структур формируются очереди пустых буферов, готовых к вводу. Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.007 сек.) |