Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2_teoria.doc
Скачиваний:
2
Добавлен:
25.09.2019
Размер:
687.62 Кб
Скачать

Четвертый период (1980 - настоящее время)

Следующий период в эволюции операционных систем связан с появлением больших интегральных схем (БИС). В эти годы произошло резкое возрастание степени интеграции и удешевление микросхем. Компьютер стал доступен отдельному человеку, и наступила эра персональных компьютеров. С точки зрения архитектуры персональные компьютеры ничем не отличались от класса миникомпьютеров типа PDP-11, но вот цена у них существенно отличалась. Если миникомпьютер дал возможность иметь собственную вычислительную машину отделу предприятия или университету, то персональный компьютер сделал это возможным для отдельного человека.

Компьютеры стали широко использоваться неспециалистами, что потребовало разработки "дружественного" программного обеспечения, это положило конец кастовости программистов.

На рынке операционных систем доминировали две системы: MS-DOS и UNIX. Однопрограммная однопользовательская ОС MS-DOS широко использовалась для компьютеров, построенных на базе микропроцессоров Intel 8088, а затем 80286, 80386 и 80486. Мультипрограммная многопользовательская ОС UNIX доминировала в среде "не-интеловских" компьютеров, особенно построенных на базе высокопроизводительных RISC-процессоров.

В середине 80-х стали бурно развиваться сети персональных компьютеров, работающие под управлением сетевых или распределенных ОС.

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

2. Место и роль ОС в вычислительной системе. Элементы вычислительной системы: процессор, шина, контроллер, память, ОЗУ, ПЗУ, диски, порт (COM/LPT/USB/SCSI), периферийные устройства: модем, сканер, принтер. Элементы ОС: ядро, монитор, резидентные программы, утилиты. Прикладные программы. Устройство (drive) и драйвер устройства (driver).

Ответ:

ПРОЦЕССОР (processor). Устройство, выполняющее команды. Обязательными компонентами П. являются арифметико-логическое устройство и устройство управления. П. характеризуются архитектурой, набором выполняемых команд, скоростью их выполнения и длиной машинного слова. Архитектура определяет типы обрабатываемых данных, регистры, стеки, систему адресации и т. п. Набор команд может быть фиксированным или с возможностью микропрограммирования. Микропрограммируемые П. имеют встроенную память, в которой хранятся микропрограммы, определяющие набор выполняемых команд. Среди фиксированных команд, как правило, есть команды арифметических и логических операций, передачи управления и перемещения данных между регистрами, стеками, памятью и портами ввода-вывода. Команды П. обычно обеспечивают обработку слов следующей длины: бит, полубайт (4 бита), байт (8 бит), два, четыре или восемь байтов. В современных компьютерах в качестве процессоров применяются микропроцессоры. В разговорном языке под словом П. чаще всего подразумевается центральный процессор.

ПАМЯТЬ ЭВМ (memory, storage, store). Функциональная часть ЭВМ, предназначенная для записи, хранения и считывания информации. П. Э. подразделяется на основную или оперативную память и внешнюю память. Технически реализуется в виде запоминающих устройств. См. оперативная память, внешняя память, видеопамять, виртуальная память, верхняя память, функциональная схема ЭВМ.

ШИНА (bus). Устройство, служащее для передачи данных и управляющих сигналов между компонентами компьютера. Состоит из линий электрических соединений. По каждой линии Ш. обычно передается один двоичный разряд информационного слова, являющегося элементом данных или адресом. Поэтому максимальная пропускная способность Ш. обеспечивается при числе линий, равном сумме числа бит в машинном слове и максимального числа двоичных разрядов адреса, плюс оптимальное количество линий для передачи управляющих сигналов. Существует способ организации ЭВМ, при котором все ее компоненты подключаются к единой Ш. Это так называемая шинная архитектура компьютера. В персональных IBM-совместимых компьютерах применяются Ш. высокой пропускной способности. См. адресная шина, локальная шина, системная шина.

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

ПОСТОЯННОЕ ЗАПОМИНАЮЩЕЕ УСТРОЙСТВО (ПЗУ) (read only memory (ROM)). Память, предназначенная только для чтения. Специальное запоминающее устройство, в которое при его изготовлении навсегда записаны определенные неизменяемые данные. Эти данные в последующем невозможно ни стереть, ни изменить, их можно только считывать, так как ПЗУ не способно выполнять операцию записи. Такая память обычно выполняется на микросхемах или лазерных дисках (CD-ROM) и предназначена для хранения программ и данных, необходимых для работы компьютера.

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

ЖЕСТКИЙ МАГНИТНЫЙ ДИСК, жесткий диск (hard disk). Магнитный диск, представляющий собой плоский диск из алюминиевого сплава, поверхность которого покрыта магнитным материалом. Для чтения и записи данных Ж. м. д. помещается в специальное устройство- дисковод, снабженное магнитными головками записи-чтения. В дисководе диск постоянно вращается с большой скоростью. Данные записываются на поверхности Ж. м. д. вдоль концентрических окружностей, называемых дорожками. Для выбора нужной дорожки подвижная головка записи-чтения устанавливается в соответствующую позицию.

порт (COM/LPT/USB/SCSI), периферийные устройства: модем, сканер, принтер.

ПРИКЛАДНАЯ ПРОГРАММА (application program). 1. Программа, предназначенная для решения задачи или класса задач в определенной области науки, техники, экономики, искусства, народного хозяйства, связанных с применением вычислительной системы. Например, программа расчета прочности стержневых конструкций, программа резервирования железнодорожных билетов и т. п. 2. Программа, использующая средства, предоставляемые системной программой. В этом смысле термин "П. п." применяется к программе, чтобы отличить ее от системных программ, таких как операционная система или средства разработки и отладки программ.

УСТРОЙСТВО, техническое устройство (device, unit). Элемент аппаратных средств, представляющий законченную техническую конструкцию, имеющую определенное функциональное значение. Например, принтер, дисковод. См. устройство ввода, устройство вывода, устройство сопряжения.

ДРАЙВЕР (driver). Управляющая программа. Обычно это программа операционной системы, обеспечивающая взаимодействие исполняемой программы с отдельным устройством и способствующая его удобному использованию. Например, существуют Д. клавиатуры, дисплея, мыши, принтера и т. п. Д. принимает запросы программ на обращение к устройству и преобразует их в команды управления устройством, а также обрабатывает прерывания от обслуживаемого устройства. При этом он учитывает конструктивные особенности устройства и особенности его работы в реальном масштабе времени. Таким образом, Д. является связующим звеном между программой и устройством. Д. может быть оформлен как резидентная программа или как ; загружаемый Д. Наряду с реальными Д. может обслуживать и виртуальные устройства, как бы имитируя реальное физическое устройство. Досчитаются Также программы, управляющие дополнительной памятью компьютера, и программы, управляющие другими программами, т. е. вызывающие их и задающие им входные параметры.

РЕЗИДЕНТНАЯ ПРОГРАММА (resident program, resident software). Программа, постоянно присутствующая в оперативной памяти. После считывания в оперативную память Р. п. не выполняется до конца, а остается в состоянии готовности к продолжению выполнения до своей выгрузки, перезагрузки или выключения компьютера. Она активизируется и выполняет заданные действия либо при обращении к ней, например нажатием определенной клавиши или сочетания клавиш, либо при достижении компьютером определенного состояния (например, по сигналу таймера). Примерами Р. п. могут служить программы обработки ситуаций нажатия пользователем клавиш на клавиатуре. Такая программа проверяет, не нажата ли определенная комбинация клавиш, и если да, то вызывает некоторую связанную с этой комбинацией программу, а если нет - передает управление операционной системе для обработки нажатия клавиш. Р. п. должны занимать небольшой объем памяти и нетривиально взаимодействовать с операционной системой. Поэтому они разрабатываются квалифицированными программистами, как правило, на языках Ассемблер и Си.

Ядро и вспомогательные модули ОС

Наиболее общим подходом к структуризации операционной системы является разделение всех ее модулей на две группы:

• • ядро — модули, выполняющие основные функции ОС;

• • модули, выполняющие вспомогательные функции ОС.

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

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

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

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

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

Утилиты — программы, решающие отдельные задачи управления и сопровождения компьютерной системы, такие, например, как программы сжатия дисков, архивирования данных на магнитную ленту;

3. Виды ЭВМ: суперкомпьютер, суперсервер, кластер, мэйнфрейм, рабочая станция, персональный компьютер (desktop, notebook, palmtop), встраиваемые системы (embedded). Основные параметры (число процессоров, объем ОЗУ, дисковая память), области использования, производители. Виды вычислительных систем. Однопроцессорные компьютеры. Параллельные системы: симметричные, асимметричные. Массовый параллелизм. Системы жесткого и мягкого реального времени. Распределенные системы: тесно связанные и слабо связанные. Кластеры и сети (локальные, глобальные).

Ответ:

СУПЕРЭВМ, суперкомпьютер (supercomputer). ЭВМ, относящаяся к классу самых мощных в настоящее время. Это дорогая многопроцессорная ЭВМ, обладающая самыми высокими быстродействием и емкостью памяти. С. может выполнять огромные объемы вычислений за сравнительно короткий промежуток времени. Поэтому С. обычно используется для проведения сложных расчетов, необходимых, например, для управления движением космического корабля, составления прогноза погоды, проведения крупного научного вычислительного эксперимента и т. д.

Суперсервер - сервер высокой производительности, выполняющий обработку данных для большого числа клиентов. Суперсервер:

- состоит из значительного числа центральных процессоров и оперативных запоминающих устройств большой емкости, связанных системной шиной;

- имеет одну либо несколько шин ввода/вывода, к которым подключаются внешние запоминающие устройства.

Различают два режима работы суперсервера:

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

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

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

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

ПЕРСОНАЛЬНЫЙ КОМПЬЮТЕР, персональная ЭВМ (ПК, ПЭВМ) (personal computer (PC)). ЭВМ универсального назначения, рассчитанная на одного пользователя и управляемая одним человеком. В класс ПК входят все ЭВМ от дешевых игровых с памятью на кассетной ленте и бытовым телевизором в качестве дисплея, до сверхсложных машин с мощным центральным процессором и сопроцессорами, с внешней памятью большой емкости на дисках, с CD-ROM, с цветными графическими устройствами (дисплей, принтер) высокой разрешающей способности и высококачественными средствами воспроизведения звука. В настоящее время широко распространены персональные IBM-совместимые компьютеры.

ВСТРОЕННАЯ СИСТЕМА (embedded system). Вычислительная система, выполненная на базе встроенной ЭВМ и ориентированная на специальное применение. Например, система управления транспортным средством или сложной бытовой техникой. Как правило, во В. с. применяется специализированное программное и аппаратное обеспечение.

Виды вычислительных систем

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

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

Системы жесткого и мягкого реального времени

Системы реального времени можно разделить на системы жесткого и мягкого реального времени.

Признаки систем жесткого реального времени:

недопустимость никаких задержек ни при каких условиях;

бесполезность результатов при опоздании;

катастрофа при задержке реакции;

цена опоздания бесконечно велика.

Хороший пример системы жесткого реального времени - бортовая система управления самолетом.

Система мягкого реального времени характеризуется следующими признаками:

за опоздание результатов приходится платить;

снижение производительности системы, вызванное запаздыванием реакций, приемлемое.

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

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

Не существует операционных систем жесткого или мягкого реального времени!

Понятия системы реального времени и операционной системы реального времени (ОСРВ) часто смешиваются.

Система реального времени - это конкретная система, связанная с реальным объектом. Она включает в себя необходимые аппаратные средства, операционную систему и прикладное программное обеспечение.

Операционная система реального времени - только инструмент, помогающий построить конкретную систему реального времени. Поэтому бессмысленно говорить об операционных системах жесткого или мягкого реального времени. Можно говорить только о том, можно ли с помощью данной операционной системы построить систему реального времени. Конкретная ОСРВ может только предоставить вам возможность создать систему жесткого реального времени. Но обладание такой ОСРВ вовсе не делает вашу систему "жесткой". Для создания системы жесткого реального времени необходимо сочетание подходящих аппаратных средств, адекватной операционной системы и правильного проектирования прикладного программного обеспечения.

Если, например, вы решили построить систему реального времени, обслуживающую TCP/IP-соединение через Ethernet, она никогда не будет системой жесткого реального времени, поскольку сам Ethernet непредсказуем.

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

Узел - это компьютер в традиционном понимании: настольный ПК или ноутбук, а также сервер в любом исполнении - отдельно стоящий, смонтированный в стойку или блейд-сервер. Сервер может содержать один или несколько процессоров в различных конфигурациях - симметричная многопроцессорная архитектура (Symmetric Multiprocessor, SMP), архитектура с распределенной разделяемой памятью (NUMA) или архитектура многопроцессорной системы с кэш-когерентным доступом к неоднородной оперативной памяти (ccNUMA). Кластер представляет собой набор связанных между собой узлов, а сеть - набор кластеров.

Узлы, входящие в кластер, подключаются друг к другу с использованием различных высокоскоростных технологий соединения. До появления InfiniBand и PCI Express можно было выбрать или относительно высокопроизводительные, специализированные, но дорогостоящие решения, или экономичные, основанные на стандартах, но обладающие меньшей производительностью технологии. В недорогих кластерах обычно используется технология Ethernet, разработанная для локальных сетей. Такая схема неминуемо вызывает задержки при параллельных вычислениях, когда требуется тесное взаимодействие узлов. Использование соединений на базе технологии InfiniBand обещает ликвидировать эти узкие места.

Кластеры можно объединить в вычислительную сеть с помощью технологий локальных сетей, чтобы построить так называемую "внутреннюю сеть" (intra-grid) - обычно в пределах одной организации, или с помощью технологий глобальных сетей, чтобы построить "внешнюю сеть" (inter-grid), которая может охватывать весь земной шар.

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

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

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

В качестве примера однопроцессорного векторного суперкомпьютера (SIMD) можно привести FACOMVP-200 (фирма Fujitsu). Общим для всех векторных суперкомпьютеров является наличие в системе команд векторных операций, например, сложение векторов, допускающих работу с векторами определенной длины.

В свою очередь для компьютеров класса MIMD параметром классификации является наличие общей (SMP) [3] или распределенной памяти (MPP) [4]. Системы с общей памятью называют также сильно связанными, а с распределенной - слабо связанными.

4. Функции ОС. Виды ОС: однопрограммные, многопрограммные, многозадачные ОС. Управление процессами, памятью, внешней памятью, устройствами ввода-вывода, файловая система, сетевые функции, система защиты (оборудования, данных, программ).

Ответ:

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

однозадачные (например, MS-DOS, MSX) и

многозадачные (OC EC, OS/2, UNIX, Windows 95).

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

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

Управление локальными ресурсами

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

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

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

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

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

Управление вводом-выводом

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

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

В широком смысле понятие "файловая система" включает:

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

Основные функции ОС:

1) приём от пользователя заданий или команд, формулированных на соответствующем языке и их обработка;

2) приём и исполнение программы запроса на запуск/приостановку других программ;

3) загрузка в оперативную память, подлежащие исполнению, программы;

4) инициализация программ (передача ей управления), в результате чего процессор использует программу;

5) идентификация программ;

6) обеспечение работы системы управления файлами базы данных, что позволяет резко увеличить эффективность программного обеспечения;

7) обеспечение режима мультипрограммирования, т.е. выполнение двух или более программ на одном процессоре, создающая видимость их одновременного исполнения;

8) обеспечение функции по организации и управления всеми операциями ввода и вывода;

9) удовлетворение жёстким ограничениям на время в режиме реального времени;

10) распределение памяти:

а) организация виртуальной памяти;

б) в большинстве современных систем.

11) планирование и диспетчеризация в соответствии с заданием;

12) организация м-ма обмена сообщениями и данными между выполняющимися программами;

13) защита одной программы от влияния других программ, обеспечение сохранение данных;

14) предоставление услуг на случай частичного сбоя системы;

15) обеспечение работы системы программ, с помощью которых пользователи готовят свои программы.

5. Интерфейсы ОС. Интерфейс пользователя. Оболочки. Текстовый и графический режим. Командная строка (DOS/UNIX), меню (NC/VC/FAR), оконный интерфейс (Win), голосовой/речевой интерфейс (Voice Mouse), перспективы. Интерпретатор командной строки. Элементы командной строки: приглашение, команда, параметры. Особенности ввода команд: синтаксис команд, ввод нескольких команд программный канал, буфер команд, редактирование командной строки. Параметры по умолчанию. Мультимедиа. JPEG. MPEG.

Ответ:

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

Основные элементы интерфейса пользователя ОС Windows:

1. Рабочий стол – это основной вид экрана в системе Windows, на Рабочем столе находятся значки некоторых программ и открываются окна программ.

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

3. Главное меню Windows (кнопка Пуск) – доступ к основным служебным и прикладным программам.

4. Диалоговое окно и информационное окно содержат сообщения системы или приложения.

5. Окно программы и окно документа – программы и документы открываются в собственных окнах.

6. Выпадающее меню программы содержат команды, которые может выполнить данная программа.

7. Контекстное меню объекта содержит команды, которые можно применить сейчас к данному объекту.

8. Объекты интерфейса ОС Windows: файлы (документы), папки (каталоги), значки, ярлыки.

Интерфейс окна программы

Заголовок окна содержит название программы и имя объекта открытого в этой программе.

Системное меню (значок программы) содержит команды управления окном программы: Восстановить, Переместить, Изменить Размер, Свернуть, Развернуть, Закрыть.

Кнопки управления окном – команды из Системного меню окна. Свернуть, Развернуть, Закрыть.

Строка меню (Файл, Правка и т.д.) – меню с командами, которые может выполнить программа.

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

В рабочем поле производятся все операции, для которых предназначена программа (набор текста, рисование, просмотр объектов и т.п.).

Полосы прокрутки (вертикальная – справа, горизонтальная – внизу) для просмотра большого объема информации.

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

ОБОЛОЧКА (shell). Часть программы, программа или совокупность программ, предназначенная для комплексной автоматизации работы человека с другой программой или комплексом программ. О. является программным средством дружественного интерфейса, создающим для человека наглядные, простые и понятные изображения на экране, удобные средства управления: кнопки, меню, подсказки в диалоге и т. п. См. оболочка операционной системы, графический интерфейс пользователя

ТЕКСТОВЫЙ РЕЖИМ (character mode). Режим работы адаптера дисплея, при котором на экран выводятся изображения только текстовых символов и псевдографических символов. При Т. р. экран делится на определенное число символьных позиций (знакомест), которые группируются в строки. Например, стандартный Т. р. позволяет вывести на экран 25 строк по 80 знакомест. Каждое знакоместо представляет собой прямоугольник, состоящий из определенного количества пикселов (точек, имеющих цвет и яркость). В каждом знакоместе может находиться один символ. Работающая программа определяет сам символ, его цвет и цвет фона этого символа. Эти данные заносятся центральным процессором в видеопамять, а затем считываются и преобразуются видеоадаптером в изображение на экране. Качество изображения текста зависит от размера матрицы пикселов, определяющей количество пикселов, приходящихся на одно знакоместо. Если для изображения символа используется матрица 8x8 пикселов (8 столбцов по 8 пикселов в каждом столбце), то на экране можно различить отдельные пикселы, из которых состоит символ. Современные видеоадаптеры могут поддерживать Т. р., в котором матрица пикселов имеет размер 9x16, что обеспечивает высокое качество изображения текста.

ГРАФИЧЕСКИЙ РЕЖИМ (graphics mode). Режим работы адаптера дисплея, обеспечивающий вывод на экран графической информации. В Г. р. экран представляет собой растр - множество точек (пикселов), упорядоченных в строки и столбцы, а изображение формируется путем придания своего цвета и яркости каждой точке растра. Работающая программа определяет нужные цвет и яркость каждого пиксела. Эти данные заносятся в видеопамять центральным процессором, а видеоадаптер считывает их и последовательно, переходя от точки к точке по строке и от строки к строке, "рисует" изображение на экране. Ср. с текстовым режимом, при котором видеоадаптер одновременно "рисует" символ, занимающий целое знакоместо. Качество изображения, которое позволяет получить Г. р., определяется его разрешающей способностью и количеством используемых цветов. Разрешающая способность выражается произведением числа столбцов на число строк растра. Стандартные Г. р. видеоадаптеров, определенные фирмой IBM, обеспечивают разрешающую способность от 320x200 до 720x480 и выше при количестве изображаемых цветов от 16 до 256. Разрешение адаптеров специальных графических систем может быть 1024x768 и выше при количестве изображаемых цветов, доходящем до 16 млн. На монохромном дисплее различные цвета изображаются различными градациями серого, зеленого или коричневого цвета. См. адаптер дисплея

КОМАНДНАЯ СТРОКА (command line). Строка экрана дисплея, предназна ченная для записи вводимых пользователем команд операционной системы и запуска программ с клавиатуры. Когда операционная система готова к приему команд, она выдает в начале К. с. приглашение, которое может содержать некоторую нужную пользователю информацию о текущем состоянии системы. Например, в приглашении MS-DOS C:\EXE> сообщается о теку-f щем дисководе С: и текущем каталоге ЕХЕ. Во время диалога пользователя с какой-либо программой, а не с операционной системой, К. с. Отсутствует

Программы Voice Mouse и Just Voice построены на фонетическом принципе, поэтому они не могут использоваться для ввода информации, зато "понимают" любой язык мира. "Услышав" знакомое сочетание звуков, они записывают в буфер клавиатуры связанную с ним макрокоманду. При создании рабочего словаря макрокоманды вводятся с клавиатуры, после чего пользователь произносит в микрофон кодовое слово ("тренировка" команды). Хранятся только результаты анализа фонем, каждая запись занимает около 500 байт и для словаря разумных размеров не требуется на винчестере слишком много места. В процессе работы словари динамически подгружаются в ОЗУ, а резидентная часть программ использует не более 80 Кб оперативной памяти ПК.

Запуск из командной строки.

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

С.3.2. Особенности запуска из командной строки сервера Novell NetWare.

Обычно команда запуска выполняемых модулей в программе Novell NetWare Server выглядит следующим образом:

load <имя модуля> <параметры>

Таким образом запускаются программы Novell NetWare (с расширением *.NLM) и ее драйверы (с расширениями *.DSK и *.LAN). Перед определением переменных окружения Novell NetWare, а также настройки ее параметров и для запуска утилит Ncopy и Ndir идентификатор Load указывать НЕ НУЖНО .

C.3.3. Редактирование командной строки в различных операционных системах. Драйвер командной строки DOS - программа doskey.

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

Действия

DOS

UNIX

Стирание предыдущего символа

Backspase

Backspase, Del,Ctrl + n

Удаление текущего символа (на который указывает курсор)

Del

Ctrl + d

Вызов в командную строку предыдущей команды

F3 <стрелка вверх> (Doskey) <стрелка вверх> Ctrl + E (Norton Commander)

! <стрелка вверх>

Включение\выключение режима вставки символов

Ins (Doskey)

 

Очистка всей командной строки

Esc

Cntrl + u

Это были все команды редактирования, доступные MS-DOS для командной строки, без загрузки редактора командной строки и операционных оболочек. Если нужно работать более интенсивно с командной строкой, необходимо запустить этот редактор или оболочку. В DOS для редактирования командной строки используется программа DOSKEY . Для UNIX такие средства не нужны, операционная система поддерживает редактирование командной строки самостоятельно.

Вызов команды DOSKEY.COM происходит следующим способом:

doskey (опции)

Наиболее часто используемые опции:

/INSERT - запуск в режим вставки. При вводе нового текста в командной строке старый текст будет раздвигаться. Выход\вход в этот режим осуществляется клавишей Ins.

/OVERSTRIKE (по умолчанию) - новый текст записывается поверх старого. Вход\выход из этого режима - клавиша Ins.

C.3.5. Особенности командной строки в UNIX.

В системе UNIX одновременно на выполнение можно послать несколько программ. Для этого их надо перечислить (вместе с опциями и параметрами) в командной строке, отделяя одну от другой точкой с запятой ";". В DOS это можно сделать только при создании псевдонима, о котором речь пойдет ниже.

C.3.6. Определение псевдонимов .

Для облегчения работы с командной строкой (например, чтобы все время не набирать команду со множеством опций) бывает проще создать новую команду, представляющую собой комбинацию из уже имеющихся. Эти новые комбинации называются псевдонимами в UNIX и макросами в MS-DOS. Для их создания используют конструкции:

в DOS - doskey <имя новой команды>=<макрокоманда>,

где <макрокоманда> - последовательность программ с опциями, параметрами и специальными символами (смотри в документации по DOS описание программы doskey).

В UNIX - alias <имя новой команды>=<имя старой команды с опциями и параметрами>

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

В DOS в макросах можно использовать формальные параметры и другие возможности, ранее присутствовавшие только в командных файлах (с расширением .bat).

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

Для отмены псевдонима нужно набрать:

в DOS - doskey <имя макроса>=

в UNIX - unalias <имя псевдонима>.

6. Прерывания. Прерывания. Обращение к функциям ОС через прерывания. Адрес прерывания, вектор прерывания, программа обработки прерывания, счетчик команд, слово состояния процессора, стек, память типа FIFO, LIFO. Процесс обработки прерывания.

Обработка прерываний. Типы прерываний. Переключение контекста процессов в IBM PC

Все смены состояний процессов происходят по прерываниям.  Прерывание – это событие/сигнал, заставляющий ЦП изменить текущий порядок исполнения команд процесса. Существуют аппаратные и программные прерывания.  Аппаратные прерывания инициируются аппаратурой (например, сигнал микросхемы таймера), сигналом принтера, нажатием клавиш и т.д.  Программные прерывания инициируются процессом и ничего не прерывают. Это обычные процедуры, которые используются программами для выполнения рутиной работы. Однако, эти программы содержатся в ОС, и механизм прерываний дает возможность обратиться к ним из программ пользователей. Программные прерывания могут быть вложенными. Так, аппаратные прерывания могут возникнуть при выполнении программных. Когда разрешенное прерывание вызывается, ЦП оставляет свою работу, выполняет прерывание, затем возвращается в место прерывания.  Управляет прерываниями обработчик прерываний (Interrupt Handler).  Обработка прерываний состоит в следующем:  1. При возникновении прерывания, управление передается в ОС.  2. ОС запоминает состояние прерванного процесса в PCB процесса.  3. ОС анализирует тип прерывания и передает управление соответствующему обработчику.  После обработки прерывания ОС либо продолжает выполнять процесс, либо запускает готовый процесс с наивысшим приоритетом. 

Существует 6 классов прерываний.  1. Программы-прерывания по системной директиве. Инициатор – активный процесс, выполнивший обращение к супервизору, то есть запрос на предоставление ОС системной вычислительной услуги.  2. Прерывания ввода-вывода. Инициируются устройством ввода/вывода (УВВ) и сигнализируют ЦП о том, что произошло изменение состояния канала ввода-вывода (КВВ) или УВВ (например: завершение операции, ошибка, переход устройства в состояние готовности).  3. Внешние прерывания. Нажатие операторами клавиш на панели ЭВМ или прием сигнала прерывания от другого ЦП в мультипроцессорной системе, сигнала от модема.  4. Прерывание по рестарту. Нажатие оператором кнопки рестарта или Reset.  5. Логические прерывания по контролю программы вызываются программными ошибками, обнаруженными при выполнении программы (деление на 0, попытка выполнить привилегированную команду в пользовательском режиме, неверный код операции, защита памяти и т.д.).  6.Прерывания по контролю машины из-за аппаратных ошибок. прерываний упорядочены по приоритетам. Определенный тип прерываний запрещает свой тип и младшие и разрешает старшие. ЦП реагирует только на разрешенные прерывания, обработка запрещенных прерываний либо задерживается, либо, в некоторых случаях, игнорируется.  Аналогичная процедура происходит в MS DOS. С нулевого адреса ОП располагается таблица векторов прерываний.  Область векторных прерываний охватывает адреса от 0 до 3FFh в шестнадцатеричном исчислении. Каждый 4-х байтный участок этой области содержит адрес первой команды подпрограммы обработки прерываний (вектор прерываний), которая должна вызываться при возникновении прерывания конкретного типа.  Объем памяти векторов прерываний 256*4=1024 байт.  При возникновении прерываний ОС выполняет следующую последовательность операций:  1. Запоминает адрес текущей команды из регистров CS:IP в стеке вместе с регистром флагов (состояний).  2. Загружает в CS:IP адрес обработчика прерываний.  3. Обработчик прерываний завершается командой IRET (возврат управления), которая восстанавливает из стека содержимое СS:IP и регистр флагов состояния, структура которого приведена на рисунке 2  Для работы с прерываниями используются команды микропроцессора:  Sti - set interrupt (I=1, разрешить прерывание)  Cli - clear interrupt (I=0, запретить прерывание)  Если за командой CLI не следует STI, то машина “зависает”, так как клавиатура не реагирует на нажатие клавиш. Для программирования прерываний используется IMR - регистр маски прерываний.  Микросхема I8259 (устройство управления прерываниями) для I8086 имеет 8 уровней приоритетов (IRQ0 - IRQ7) (для старших моделей МП - 16).  Можно запретить аппаратные прерывания. Запрет (блокировка) может выполняться для ускорения критической части кода целиком.  Для маскирования аппаратного прерывания необходимо использовать порт 24H. В 1’В’ устанавливаются биты, соответствующие номеру прерывания

7. Выполнение программ. Программа, задача, процесс. Однопрограммные, многопрограммные и многозадачные ОС. Текстовый файл, исходный текст программы, исполняемый файл (загрузочный модуль). Пакетный режим, спулинг, буферизация ввода-вывода и печати. Выполнение нескольких программ в UNIX, Windows 98/ME, Windows NT/2000. Виртуальные машины. Java: виртуальная машина Ява, платформа Ява, Ява-чип.

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

однозадачные (например, MS-DOS, MSX) и

многозадачные (OC EC, OS/2, UNIX, Windows 95).

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

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

Поддержка многопользовательского режима. По числу одновременно работающих пользователей ОС делятся на:

однопользовательские (MS-DOS, Windows 3.x, ранние версии OS/2);

многопользовательские (UNIX, Windows NT).

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

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

невытесняющая многозадачность (NetWare, Windows 3.x);

вытесняющая многозадачность (Windows NT, OS/2, UNIX).

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

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

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

Задача – программа пущенная на выполнение.

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

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

Другой категорией программного обеспечения ввода-вывода является подсистема спулинга (spooling). Спулинг - это способ работы с выделенными устройствами в мультипрограммной системе. Рассмотрим типичное устройство, требующее спулинга - строчный принтер. Хотя технически легко позволить каждому пользовательскому процессу открыть специальный файл, связанный с принтером, такой способ опасен из-за того, что пользовательский процесс может монополизировать принтер на произвольное время. Вместо этого создается специальный процесс - монитор, который получает исключительные права на использование этого устройства. Также создается специальный каталог, называемый каталогом спулинга. Для того, чтобы напечатать файл, пользовательский процесс помещает выводимую информацию в этот файл и помещает его в каталог спулинга. Процесс-монитор по очереди распечатывает все файлы, содержащиеся в каталоге спулинга.

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

В системе UNIX одновременно на выполнение можно послать несколько программ. Для этого их надо перечислить (вместе с опциями и параметрами) в командной строке, отделяя одну от другой точкой с запятой ";". В DOS это можно сделать только при создании псевдонима, о котором речь пойдет ниже.

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

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

Java: виртуальная машина, язык программирования обьект ориентиров. Напоминает с++ позволяющие создавать непереносимые приложения.

Программа написанная на языке Ява называется applet.

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

Используются – java vm (Вирт. Маш.) микропроцессор выполняющий программы на языке java – java chip.

Java – выполняется без ведома пользователя.

8. Планирование работы процессора. Оптимизация и планирование работы процессора. Диспетчер. Приоритет процесса. Планирование процессов с учетом приоритета. Планирование в симметричных и асимметричных системах. Планирование в системах жесткого и мягкого реального времени.

Ответ:

Системы жесткого и мягкого реального времени

Системы реального времени можно разделить на системы жесткого и мягкого реального времени.

Признаки систем жесткого реального времени:недопустимость никаких задержек ни при каких условиях;бесполезность результатов при опоздании;катастрофа при задержке реакции;цена опоздания бесконечно велика.

Хороший пример системы жесткого реального времени - бортовая система управления самолетом.

Система мягкого реального времени характеризуется следующими признаками:

  • за опоздание результатов приходится платить;

  • снижение производительности системы, вызванное запаздыванием реакций, приемлемое.

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

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

Не существует операционных систем жесткого или мягкого реального времени!

Понятия системы реального времени и операционной системы реального времени (ОСРВ) часто смешиваются.

Система реального времени - это конкретная система, связанная с реальным объектом. Она включает в себя необходимые аппаратные средства, операционную систему и прикладное программное обеспечение.

Операционная система реального времени - только инструмент, помогающий построить конкретную систему реального времени. Поэтому бессмысленно говорить об операционных системах жесткого или мягкого реального времени. Можно говорить только о том, можно ли с помощью данной операционной системы построить систему реального времени. Конкретная ОСРВ может только предоставить вам возможность создать систему жесткого реального времени. Но обладание такой ОСРВ вовсе не делает вашу систему "жесткой". Для создания системы жесткого реального времени необходимо сочетание подходящих аппаратных средств, адекватной операционной системы и правильного проектирования прикладного программного обеспечения.

Если, например, вы решили построить систему реального времени, обслуживающую TCP/IP-соединение через Ethernet, она никогда не будет системой жесткого реального времени, поскольку сам Ethernet непредсказуем.

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

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

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

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

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

3.2. Критерии планирования и требования к алгоритмам. Для каждого уровня планирования процессов можно предложить много различных алгоритмов. Выбор конкретного алгоритма определяется классом задач, решаемых вычислительной системой, и целями, которых мы хотим достичь, используя планирование. К числу таких целей можно отнести:

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

  • Эффективность: постараться занять процессор на все 100% рабочего времени, не позволяя ему простаивать в ожидании процессов готовых к исполнению. В реальных вычислительных системах загрузка процессора колеблется от 40 до 90 процентов.

  • Сокращение полного времени выполнения (turnaround time): обеспечить минимальное время между стартом процесса или постановкой задания в очередь для загрузки и его завершением.

  • Сокращение времени ожидания (waiting time): минимизировать время, которое проводят процессы в состоянии готовность и задания в очереди для загрузки.

  • Сокращение времени отклика (response time): минимизировать время, которое требуется процессу в интерактивных системах для ответа на запрос пользователя.

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

  • Были предсказуемыми. Одно и то же задание должно выполняться приблизительно за одно и то же время. Применение алгоритма планирования не должно приводить, к примеру, к извлечению корня квадратного из 4 за сотые доли секунды при одном запуске и за несколько суток при втором запуске.

  • Имели минимальные накладные расходы, связанные с их работой. Если на каждые 100 миллисекунд, выделенных процессу для использования процессора, будет приходиться 200 миллисекунд на определение того, какой именно процесс получит процессор в свое распоряжение, и на переключение контекста, то такой алгоритм, очевидно, использовать не стоит.

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

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

  • Многие из приведенных выше целей и свойств являются противоречивыми. Улучшая работу алгоритма с точки зрения одного критерия, мы ухудшаем ее с точки зрения другого. Приспосабливая алгоритм под один класс задач, мы тем самым дискриминируем задачи другого класса. "В одну телегу впрячь не можно коня и трепетную лань". Ничего не поделаешь. Такова жизнь.