Приоритетное прерывание
обслуживания (preemption) является неотъемлемой составляющей ОСРВ, т.к. в
системе реального времени должны существовать гарантии того, что событие с
высоким приоритетом будет обработано перед событием более низкого
приоритета.
39) Периферийные устройства ПК.
К периферийным устройствам относятся: принтеры, сканеры, акустические колонки, модемы, т. е. те устройства, без которых компьютер может функционировать самостоятельно.
Принтеры (print — печать) — это автоматические печатающие устройства, предназначенные для распечатки на бумагу результатов работы на компьютере (тексты, рисунки, графики). По принципу действия различают ударно-матричные, струйные и лазерные принтеры.
Сканер — это устройство, которое позволяет вводить в компьютер изображения текстов, рисунков, фотографий непосредственно с бумажного документа
Компьютерные акустические колонки.Встроенный в компьютер сигнальный динамик не предназначен для обеспечения высококачественного звучания, поэтому для прослушивания музыкальных записей служат акустические колонки. Принцип их устройства сходен с устройством акустических систем для бытовой аудиотехники. В зависимости от типа усилителя различают активные и пассивные колонки.
Для пассивных колонок усиление сигналов осуществляется усилителем, расположенным на звуковой плате внутри системного блока. В этом случае аналоговый сигнал подвергается воздействию многочисленных электрических наводок, что приводит к акустическим искажениям.
В активных колонках усилитель находится в одной из колонок (вне системного блока), что способствует повышению качества звучания.
Модемы. Модем — это устройство для обмена информацией с другими компьютерами через телефонную сеть. Он соединяет компьютер с телефоном. Термин "модем" образован из двух слов (МОдуляция-ДЕМодуляция). Модем осуществляет модуляцию и демодуляцию информации, т. е. преобразует цифровые сигналы компьютера в аналоговые, совместимые с подключенным к нему телефоном и, наоборот, принимает входящие с телефона аналоговые сигналы и преобразует их в цифровые, совместимые с подключенным к нему компьютером. Модем необходим для соединения с электронными сетями Интернета и для работы с электронной почтой.
Факс-модемом называется модем для передачи и получения изображений. Последовательность работы факсимильной системы следующая: оптическое сканирование изображения, модуляция и передача сигналов по каналам связи, демодуляция и изготовление копий. Большинство современных модемов являются также и факс-модемами.
Источники бесперебойного питания. При резком изменении параметров напряжения или полного отключения электрического тока данные, содержащиеся в операционной памяти компьютера, могут быть безвозвратно утрачены.
Поэтому при продаже компьютера всегда предлагается источник бесперебойного питания (ИБП). В состав ИБП входит аккумуляторная батарея, которая находится постоянно на подзарядке и в случае падения напряжения ее энергия используется для питания компьютера в течение 15-20 мин для аварийного завершения работы.
40) Организация управления памятью
Сегментная и страничная память
Функции системы управления памятью
Чтобы обеспечить эффективный контроль использования памяти, ОС должна выполнять следующие функции:
· отображение адресного пространства процесса на конкретные области физической памяти;
· распределение памяти между конкурирующими процессами;
· контроль доступа к адресным пространствам процессов;
· выгрузка процессов (целиком или частично) во внешнюю память, когда в оперативной памяти недостаточно места;
· учет свободной и занятой памяти.
Главная задача компьютерной системы - выполнять программы. Программы, в течение выполнения, вместе с данными, к которым они имеют доступ должны (по крайней мере, частично) находиться в главной (основной, оперативной) памяти. Таким образом, память (storage, memory) является важнейшим ресурсом, требующим тщательного управления. В недавнем прошлом память - самый дорогой ресурс.
Часть ОС, которая управляет памятью, называется менеджером памяти. В процессе эволюции в менеджерах памяти современных ОС было реализовано несколько основополагающих идей.
Во-первых, это идея сегментации. По-видимому, вначале сегменты памяти появились в связи с необходимостью обобществления процессами фрагментов программного кода (текстовый редактор, тригонометрические библиотеки и т.д.), без чего каждый процесс должен был хранить в своем адресном пространстве дублирующую информацию. Эти отдельные участки памяти, хранящие информацию, которую система отображает в память нескольких процессов, получили название сегментов. Память, таким образом, стала двумерной. Адрес состоит из двух компонентов: номер сегмента, смещение внутри сегмента. Далее оказалось удобным размещать в разных сегментах данные разных типов (код программы, данные, стек и т. д.). Попутно выяснилось, что можно контролировать характер работы с конкретным сегментом, приписав ему атрибуты, например, права доступа или типы операций, разрешенные с данными, хранящимися в сегменте. Большинство современных ОС поддерживают сегментную организацию памяти (см. раздел, где описана модель памяти процесса). В некоторых архитектурах (Intel, например) сегментация поддерживается оборудованием.
Вторая идея, о которой можно упомянуть, рассматривая поддержку памяти в ОС, это разделение памяти на физическую и логическую. Адреса, к которым обращается процесс, отделяются от адресов, реально существующих в оперативной памяти. Адрес, сгенерированный программой, обычно называют логическим (в системах с виртуальной памятью он обычно называется виртуальным) адресом, тогда как адрес, который видит устройство памяти (то есть нечто, загруженное в адресный регистр) обычно называется физическим адресом. Задача ОС, в какой-то момент времени осуществить связывание (или отображение) логического адресного пространства с физическим (см. раздел 8.2).
И, наконец, идея локальности. Свойство локальности присуще природе. Пространственная локальность - соседние объекты характеризуются похожими свойствами (если в данной местности хорошая погода, то вероятнее всего, что в близкой окрестности также хорошая погода). Временная локальность - если в 15:00 была хорошая погода, то, вероятно, что и в 14:30 и в 15:30 также наблюдалась хорошая погода. Свойство локальности (скорее эмпирическое) присуще и работе ОС. Фактически свойство локальности объяснимо, если учесть, как пишутся программы и организованы данные, то есть обычно в течение какого-то отрезка времени ограниченный фрагмент кода работает с ограниченным набором данных. Понимание данной особенности позволяет организовать иерархию памяти, используя быструю дорогостоящую память для хранения минимума необходимой информации, размещая оставшуюся часть данных на устройствах с более медленным доступом и подкачивая их в быструю память по мере необходимости. Типичный пример иерархии: регистры процессора, кэш процессора, главная память, внешняя память на магнитных дисках (вторичная память).
Главная память - это массив слов или байт. Каждое слово имеет свой адрес. Использование вторичной памяти (хранение данных на дисках) в качестве расширения главной дает дополнительные преимущества. Во-первых, главная память слишком мала, чтобы содержать все необходимые программы и данные постоянно. Во-вторых, главная память есть изменчивое (volatile) устройство, которое теряет свое содержимое, когда питание отключено или по другим причинам. Одно из требований к вторичной памяти - умение хранить большие объемы данных постоянно.
Функциями ОС по управлению памятью являются: отображение адресов программы на конкретную область физической памяти, распределение памяти между конкурирующими процессами и защита адресных пространств процессов, выгрузка процессов на диск, когда в оперативной памяти недостаточно места для всех процессов, учет свободной и занятой памяти.
Существует несколько схем управления памятью. Выбор той или иной схемы зависит от многих факторов. Рассматривая ту или иную схему важно учитывать:
- Механизм управления памятью или идеологию построения системы управления.
- Архитектурные особенности используемой системы.
- Структуры данных в ОС, используемые для управления памятью.
- Алгоритмы, используемые для управления памятью.
41) Управление процессом выполнения программы
Важнейшей частью операционной системы, непосредственно влияющей на функционирование вычислительной машины, является подсистема управления процессами. Процесс (или по-другому, задача) - абстракция, описывающая выполняющуюся программу. Для операционной системы процесс представляет собой единицу работы, заявку на потребление системных ресурсов. Подсистема управления процессами планирует выполнение процессов, то есть распределяет процессорное время между несколькими одновременно существующими в системе процессами, а также занимается созданием и уничтожением процессов, обеспечивает процессы необходимыми системными ресурсами, поддерживает взаимодействие между процессами.
При запуске программы ОС загружает ее в ОЗУ и передает управление в заранее описанную компилятором точку входа, после чего программа фигачит дальше подряд по всем командам, изредка отвлекаясь на прерывания. В конце программа сообщает ОС, что ее можно убивать, вызовом прерывания ОС или через API. Это в архитектуре ПК, для нерезидентных и не являющихся обработчиками прерываний программ. В других вычислительных устройствах могут быть вариации.
42) Принципы построения и работы трех типов трансляторов: ассемблеров, компиляторов, интерпретаторов
Транслятор — программа или техническое средство, выполняющее трансляцию программы.[1][2]
Трансляция программы — преобразование программы, представленной на одном из языков программирования, в программу на другом языке и, в определённом смысле, равносильную первой.
Транслятор, который преобразует программы в машинный язык, принимаемый и исполняемый непосредственно процессором, называется компилятором.
Процесс компиляции как правило состоит из нескольких этапов: лексического, синтаксического и семантического анализов, генерации промежуточного кода, оптимизации и генерации результирующего машинного кода.
Ассемблер — компьютерная программа, компилятор исходного текста программы, написанной на языке ассемблера, в программу на машинном языке.
В отличие от компилирования, ассемблирование — более или менее однозначный и обратимый процесс. В языке ассемблера каждой мнемонике соответствует одна машинная инструкция, в то время как в языках программирования высокого уровня за каждым выражением может скрываться большое количество различных инструкций. В принципе, это деление достаточно условно, поэтому иногда трансляцию ассемблерных программ также называют компиляцией.
Интерпретация— пооператорный (покомандный, построчный) анализ, обработка и тут же выполнение исходной программы или запроса (в отличие от компиляции, при которой программа транслируется без её выполнения).
Простой интерпретатор анализирует и тут же выполняет (собственно интерпретация) программу покомандно (или построчно), по мере поступления её исходного кода на вход интерпретатора. Достоинством такого подхода является мгновенная реакция. Недостаток — такой интерпретатор обнаруживает ошибки в тексте программы только при попытке выполнения команды (или строки) с ошибкой.
Алгоритм работы простого интерпретатора
прочитать инструкцию;
проанализировать инструкцию и определить соответствующие действия;
выполнить соответствующие действия;
если не достигнуто условие завершения программы, прочитать следующую инструкцию и перейти к пункту 2.