
- •Алгоритм, программа, операция, команда, адрес
- •Многоуровневая организация эвм
- •Аппаратные и программные средства вт.
- •Принципы построения систем управления с эвм.
- •Назначение и организация памяти эвм.
- •И ерарх.Организация и сравнительные характеристики устройств памяти.
- •Память эвм. Оверлей. Управление оверлеями.
- •Классификация бис памяти
- •Принципы организации записи и чтения информации на внешних запоминающих устройствах.
- •Принцип программного и микропрограммного управления
- •Система команд процессора эвм.
- •Принудительная адресация микрокоманд. Применение.
- •Процессор с программным и микропрограммным управлением.
- •Функции и структура операционного устройства
- •Программа отладчик. Процесс отладки. Дисассемблер.
- •Программирование арифметико-логических устройств.
- •Организация алу с фиксированной запятой
- •Выполнение операций с плавающей запятой.
- •Логические операции.
- •Иерархическая структура организации цикла команда. Алгоритм выполнения машинного цикла
- •Архитектура микропроцессора
- •Микропроцессоры с фиксированной разрядностью и списком команд.
- •Микро-эвм
- •Мп с сокращенным набором команд
- •Операция ввода-вывода: программный обмен, обмен по прерыванию, системы прерываний, прямой доступ к памяти.
- •Роль прерываний в организации систем реального времени
- •Внешние устройства (всё что нашёл вообще)
- •Организация управления памятью
- •Управление процессом выполнения программы
- •Принципы построения и работы трех типов трансляторов: ассемблеров, компиляторов, интерпретаторов
- •Понятие о назначении, составе и порядке использования средств отладки и редактирования пользовательских программ.
- •Файловые вирусы в ms dos. Бутовые (загрузочные) вирусы. Другие вирусы.
- •Антивирусные технологии
- •Защита программ
- •Защита локалки
- •Трансляторы ассемблера
- •Структура ассемблера, адресное пространство.
- •При программировании на языке ассемблера используются данные следующих типов:
Организация управления памятью
Сегментная и страничная память
Функции системы управления памятью
Чтобы обеспечить эффективный контроль использования памяти, ОС должна выполнять следующие функции:
отображение адресного пространства процесса на конкретные области физической памяти;
распределение памяти между конкурирующими процессами;
контроль доступа к адресным пространствам процессов;
выгрузка процессов (целиком или частично) во внешнюю память, когда в оперативной памяти недостаточно места;
учет свободной и занятой памяти.
Управление процессом выполнения программы
Важнейшей частью операционной системы, непосредственно влияющей на функционирование вычислительной машины, является подсистема управления процессами. Процесс (или по-другому, задача) - абстракция, описывающая выполняющуюся программу. Для операционной системы процесс представляет собой единицу работы, заявку на потребление системных ресурсов. Подсистема управления процессами планирует выполнение процессов, то есть распределяет процессорное время между несколькими одновременно существующими в системе процессами, а также занимается созданием и уничтожением процессов, обеспечивает процессы необходимыми системными ресурсами, поддерживает взаимодействие между процессами.
При запуске программы ОС загружает ее в ОЗУ и передает управление в заранее описанную компилятором точку входа, после чего программа фигачит дальше подряд по всем командам, изредка отвлекаясь на прерывания. В конце программа сообщает ОС, что ее можно убивать, вызовом прерывания ОС или через API. Это в архитектуре ПК, для нерезидентных и не являющихся обработчиками прерываний программ. В других вычислительных устройствах могут быть вариации.
Принципы построения и работы трех типов трансляторов: ассемблеров, компиляторов, интерпретаторов
Транслятор — программа или техническое средство, выполняющее трансляцию программы.[1][2]
Трансляция программы — преобразование программы, представленной на одном из языков программирования, в программу на другом языке и, в определённом смысле, равносильную первой.
Транслятор, который преобразует программы в машинный язык, принимаемый и исполняемый непосредственно процессором, называется компилятором.
Процесс компиляции как правило состоит из нескольких этапов: лексического, синтаксического и семантического анализов, генерации промежуточного кода, оптимизации и генерации результирующего машинного кода.
Ассемблер — компьютерная программа, компилятор исходного текста программы, написанной на языке ассемблера, в программу на машинном языке.
В отличие от компилирования, ассемблирование — более или менее однозначный и обратимый процесс. В языке ассемблера каждой мнемонике соответствует одна машинная инструкция, в то время как в языках программирования высокого уровня за каждым выражением может скрываться большое количество различных инструкций. В принципе, это деление достаточно условно, поэтому иногда трансляцию ассемблерных программ также называют компиляцией.
Интерпретация — пооператорный (покомандный, построчный) анализ, обработка и тут же выполнение исходной программы или запроса (в отличие от компиляции, при которой программа транслируется без её выполнения).
Простой интерпретатор анализирует и тут же выполняет (собственно интерпретация) программу покомандно (или построчно), по мере поступления её исходного кода на вход интерпретатора. Достоинством такого подхода является мгновенная реакция. Недостаток — такой интерпретатор обнаруживает ошибки в тексте программы только при попытке выполнения команды (или строки) с ошибкой.
Алгоритм работы простого интерпретатора
прочитать инструкцию;
проанализировать инструкцию и определить соответствующие действия;
выполнить соответствующие действия;
если не достигнуто условие завершения программы, прочитать следующую инструкцию и перейти к пункту 2.
.Назначение трансляторов, компиляторов и интерпретаторов. Примеры реализации.
Транслятор (англ. translator — переводчик) — это программа-переводчик. Она преобразует программу, написанную на одном из языков высокого уровня, в программу, состоящую из машинных команд.
Трансляторы реализуются в виде компиляторов или интерпретаторов. С точки зрения выполнения работы компилятор и интерпретатор существенно различаются.
Компилятор (англ. compiler — составитель, собиратель) читает всю программу целиком, делает ее перевод и создает законченный вариант программы на машинном языке, который затем и выполняется.
Интерпретатор (англ. interpreter — истолкователь, устный переводчик) переводит и выполняет программу строка за строкой.
После того, как программа откомпилирована, ни сама исходная программа, ни компилятор более не нужны. В то же время программа, обрабатываемая интерпретатором, должна заново переводиться на машинный язык при каждом очередном запуске программы.
Откомпилированные программы работают быстрее, но интерпретируемые проще исправлять и изменять.
Каждый конкретный язык ориентирован либо на компиляцию, либо на интерпретацию — в зависимости от того, для каких целей он создавался. Например, Паскаль обычно используется для решения довольно сложных задач, в которых важна скорость работы программ. Поэтому данный язык обычно реализуется с помощью компилятора. С другой стороны, Бейсик создавался как язык для начинающих программистов, для которых построчное выполнение программы имеет неоспоримые преимущества.
Примеры реализации компиляторов C++, Pascal, Delphi
Примеры реализации интерпретаторов Java, SQL, PHP