Ядро ОС составляют управляющие программы, с которых и началось создание ПО этого вида. Одно из важнейших понятий, связанных с управляющими программами, — понятие «процесс», иод которым понимается любая задача (или несколько), находящаяся в ОП и обрабатываемая ЦП. Другими словами, это среда аппаратного или программного обеспечения, в которой выполняется программа или происходит сеанс работы за терминалом.
Когда входите в систему, она порождает для Вас процесс. Процессу присваиваются атрибуты, связанные с Вашим разделом: ресурсы аппаратуры (например, место на диске), квота ОП памяти, привилегия (например, возможность доступа к файлам и т.п.).
Процессы могут порождать процессы, которые будут выполняться совместно.
Программы — супервизоры, осуществляющие планирование работы процессов, представлены в модуле «Управление задачами». Качественный скачок от сравнительно простых управляющих программ к современным ОС произошел с появлением мультипрограммной обработки задач (см. гл. 2). Программная поддержка этого режима может осуществляться двумя путями.
Как вывести управляющую программу в SprutCAM
- 1. Переключение по событию происходит, когда ОС не определяет момент смены текущей задачи. Этот путь может быть указан активной задачей, «добровольно» приостанавливающей свое выполнение с помощью специального обращения к операционной системе (например, с запросом ввода-вывода). Поскольку задача переходит затем в ожидание результата операции, операционная система может передать управление процессом другой ожидающей задаче. Этот метод требует организации системы приоритетов для указания задачи (из очереди), которой необходимо передать управление. Приоритет — число, приписанное ОС каждому процессу и задаче. Чем больше эго число, тем важнее этот процесс или задача.
- 2. Метод разделения времени (time-sharing) основан на использовании внешнего сигнала, поступающего на процессор через равные интервалы времени. Обычно происходит аппаратное прерывание от внешнего таймера, при этом операционная система прекращает выполнение текущей задачи и сохраняет ее параметры в момент остановки. Планировщик анализирует список ожидающих задач и передает управление выбранной задаче.
На рис. 6.3 представлены изменения состояний процесса при реализации мультипрограммного режима работы.
В любой момент времени активным (г.е. использующим ЦП) может быть только один процесс. В режиме вытесняющей многозадачности при передаче управления процессу пользователя программа управления задачами устанавливает интервальный таймер, задавая квант времени, являющийся максимальным количеством времени ЦП, на которое процесс получает управление.
После этого процесс из состояния активности переходит в состояние готовности. Затем, согласно стратегии планирования, выбирается следующий процесс, находящийся в готовности. Может оказаться, что активный процесс, не использовав полностью предоставленного ему кванта времени, будет ожидать некоторого события, например завершения операции ввода-вывода. В этом случае активный процесс блокируется, а какой-то новый процесс активизируется. Когда же ожидаемое событие наступает, соответствующий заблокированный процесс приводится в состояние готовности и может снова стать кандидатом на обслуживание.
ОБУЧЕНИЕ ЧПУ — УРОК 12 — СОЗДАНИЕ УП НА ПК / Программирование станков с ЧПУ и работа в CAD/CAM
Рис. 6.3. Изменение состояния процесса
Режим невытесняющей многозадачности исключает прерывание но таймеру (в схеме рис. 6.3 исключается цепь «Истек квант времени»).
Программы управления заданиями обеспечивают прием и интерпретацию директив гак называемого языка управления заданиями — инициирование и завершение заданий.
Имеется несколько типов заданий, представляющих команды ОС:
получение информации о системе;
команды запуска программ на выполнение;
командные процедуры пакетной обработки;
команды, связанные с разработкой программ;
распределение ресурсов памяти и внешних устройств.
Программы управления данными, входящие в состав супервизора, обслуживают так называемый физический уровень ввода- вывода. Они обеспечивают закрепление конкретных физических устройств ввода-вывода за логическими именами, набор аппаратно-ориентированных ирофамм-драйверов, включают управление потоками данных между ОП и конкретными внешними устройствами.
Прерывание (interrupt) — сигнал, заставляющий менять порядок исполнения потока команд. Возникновение подобных сигналов может быть обусловлено самыми разнообразными событиями. На рис. 6.4 представлена последовательность событий, происходящих в ответ на сигнал прерывания.
Рис. 6.4. Основная концепция обработки прерываний
Если в момент поступления от некоторого источника сигнала прерывания программа А находится в процессе исполнения, управление автоматически передается блоку программ обработки прерываний. Эти программы предназначены для выполнения некоторых действий в ответ на условие, вызвавшее прерывание. После завершения обработки управление может быть снова передано в ту точку программы А, где ее выполнение было прервано.
Следует иметь в виду, что возникновение и обработка прерываний могут быть совершенно не связаны с прерванной программой А. Можно выделить четыре класса прерываний.
Первый класс — прерывания, возникающие при выполнении ЦП команд вызова супервизора.
Второй класс — программные прерывания, возникающие при появлении некоторой ситуации, такой, как деление на нуль или попытка выполнить неправильную машинную команду и т.п.
Третий класс — прерывание но таймеру, которое обсуждалось выше.
И, наконец, четвертый — главный вид прерываний — прерывание по вводу-выводу.
Управляющая часть ОС обычно называется монитором и является резидентной, т.е. постоянно находится в ОП ЭВМ.
Следующие две подгруппы программ, входящие в ОС, — это обрабатывающие и утилиты (или вспомогательные программы).
Программы-утилиты. Обычно они хранятся в дисковой памяти и вызываются но мере необходимости.
Источник: ozlib.com
11.2. Управляющие программы
Управляющая программа (диспетчер) системы реального времени является аналогом операционной системы компьютера. Она управляет процессами и распределением ресурсов в системах реального времени, запускает и останавливает соответствующие процессы для обработки входных сигналов и распределяет ресурсы памяти и процессора. Однако обычно в управляющих программах отсутствуют более сложные средства, присущие операционным системам, например средства управления файлами.
Компоненты управляющей программы (рис. 11.4) зависят от размеров и сложности проектируемой системы реального времени. Обычно управляющие программы, за исключением самых простых, состоят из следующих компонентов.
1. Часы реального времени периодически предоставляют информацию для планирования процессов.
2. Обработчик прерываний управляет апериодическими запросами к сервисам.
3. Планировщик просматривает список процессов, которые назначены на выполнение, и выбирает один из них.
4. Администратор ресурсов, получив процесс, запланированный на выполнение, выделяет необходимые ресурсы памяти и процессора.
5. Диспетчер запускает на выполнение какой-либо процесс.
Рис. 11.4. Компоненты управляющей программы реального времени
Управляющие программы систем, предоставляющих сервисы на постоянной основе, например телекоммуникационных или мониторинговых систем с высокими требованиями к надежности, могут иметь еще несколько компонентов.
• Конфигуратор отвечает за динамическое переконфигурирование аппаратных средств. Не прекращая работу системы, из нее можно извлечь аппаратные модули и изменить систему посредством добавления новых аппаратных средств.
• Менеджер неисправностей отвечает за обнаружение аппаратных и программных неисправностей и предпринимает соответствующие действия по их исправлению.
Входные сигналы, обрабатываемые системой реального времени, обычно имеют несколько уровней приоритетов. Для одних сигналов, например связанных с исключительными ситуациями, важно, чтобы их обработка завершалась в течение определенного интервала времени. Если процесс с более высоким приоритетом запрашивает сервис, то выполнение других процессов должно быть приостановлено. Вследствие этого администратор системы должен уметь управлять по крайней мере двумя уровнями приоритетов системных процессов.
1. Уровень прерываний является наивысшим уровнем приоритетов. Он присваивается тем процессам, на которые необходимо быстро отреагировать. Примером такого процесса может быть процесс часов реального времени.
2. Тактовый уровень приоритетов присваивается периодическим процессам.
Еще один уровень приоритетов может быть у фоновых процессов, на выполнение которых не накладываются жесткие временные ограничения, (например, процесс самотестирования). Эти процессы выполняются тогда, когда есть свободные ресурсы процессора.
Внутри каждого уровня приоритетов разным классам процессов можно назначить другие приоритеты. Например, может быть несколько уровней прерываний. Во избежание потери данных прерывание от более быстрого устройства должно вытеснять обработку прерываний от более медленного устройства.
Источник: studfile.net
Программа: исполняемая, управляющая или выполнимая или?
Русскоязычному программисту тяжело. Смыслы программирования рождаются на Западе и потом переводятся на другие языки, и этот перевод часто страдает. А вместе с ним страдает русскоязычный программист.
Если на английском языке слова о программе — это просто слова, они более или менее точно передают мысль, то на русском языке — это поиск, судорожные движения понять, угадать, найти, не исказить и всё такое.
Это можно сравнить с картиной, когда хозяин ест за столом, и роняет крошки на пол, а его пёс вскакивает, бросается к крошкам, щёлкает пастью, потом крутится в поисках других крошек, и долго пытается найти ещё, слизывает мусор, а сами крошки либо попадают в пасть, либо оказываются затоптаны, либо вообще ложная тревога — псу показалось. Трогательное и жалкое зрелище.
Так что лучше уж учить господский «ангельский» язык и на нём говорить, думать и писать. Что большинство нашего брата программиста и делает.
Кстати, про ангелов (последнее краткое отступление). Есть частное богословское мнение, что именно человеческий язык стал причиной падения ангелов и появления сатаны. Человеку была дана власть над вселенной, которая выразилась в том, что Человек дал имена всему творению (Божию), чему старший брат человека, ангел Десница, позавидовал и устроил сначала мятеж, а потом подставу с последовавшим изгнанием людей из рая. То есть дело в языке — чей язык важнее. Так что уж действительно: «в начале было слово».
И я хочу разобраться в словах «executable program» или «исполняемая программа» (файл, код). Что они значат?
Начнём с наличного перевода: «исполняемая программа» — это программа, которую исполняет машина. Вместе с устойчивыми выражениями «компьютер выполняет», «компьютер думает» в голове рождается картина, что компьютер — это разумное существо, которое соблаговоляет принять программу и её исполнить. Или нет, если программа с ошибками. Или исполнить, но с ошибками, если куда-нибудь попадёт жучок.
Надо сделать усилие воли, чтобы оторваться от этого образа мудрого старшего брата компьютера и никудышной программы, чтобы вспомнить, что вообще-то компьютер — это просто тупая железяка (или «полупроводняка»), которая строго подчиняется приказам этой самой программы.
Машинный приказ состоит из 3х чисел (вольное изложение ассемблера):
- номер узла обработчика (процессора) (примеры узлов: «читатель переменной», указатель приказов, вычитатель),
- обрабатываемое число №1 (адрес переменной, сдвиг адреса к другому приказу, уменьшаемое),
- обрабатываемое число №2 (адрес регистра, не нужно, вычитаемое).
Такой трех-числовой приказ полностью управляет всеми действиями машины через её главную часть — обработчик (приказов), процессор, «мозг». (Хотя «мозгами» у нас раньше называли ещё и память RAM, почему бы. )
То есть, на самом деле то, что называется «executable program», она же «.exe» — это буквально «управляющая программа».
А буквально выражение «executable program» означает: «выполнимая программа» (ассемблерный код, а отличии от си-шного или другого расчётного кода). То есть та запись, которую компьютер может выполнить, но с лёгким английским намёком на субъектность компьютера, на его разумность и искусственную интеллектуальность. Наверняка, в английском есть синоним слова executable, который не содержал бы этого намёка, но идея «разумного компьютера» очень мила английскому тьюрингованному сердцу.
Вот за этим смыслом и рванул преданный друг человека русский переводчик, и в итоге вместо точного (с тонким намёком на субъектность) перевода «выполнимый» — «который может быть выполнен процессором» — получился «исполняемый файл». То есть «может быть и не исполнен», как решит компьютер. Вот итог собачьего рвения найти и подобрать все крошки смысла.
В итоге уравновешенный термин «выполнимая» превратился в озадачивающий «исполняемая», хотя по сути — «управляющая».
Я понимаю, что тру-программисты говорят просто: «экзэшник», или просто говорят по-английски. Но если кто-то снизойдёт до краткого объяснения, то как правильно говорить? Традиционное «исполняемый» или как?
P.S. Слова «лучше уж учить господский » я говорю с горечью, но как единственный предлагаемый русскому программисту выбор (если слово «выбор» тут уместно).
- executable program
- исполняемая программа
Источник: habr.com