ОТВЕТЫ НА ВОПРОСЫ ПО КУРСУ “СИСТЕМНОЕ ПРОГРАММИРОВАНИЕ”,
1. История развития ВТ в связи с историей развития системного
программного обеспечения. Современные компьютерные системы наряду с
прикладным ПО всегда содержат системное, которое обеспечивает
организацию вычислительного процесса. История системного
программного обеспечения связана с появлением первой развитой в
современном понимании ОС UNIX. 1965 - Bell labs разрабатывает
операционную систему Multix - прообраз UNIX, имеющий далеко не все
части современной системы. До этого времени не существовало
мобильных ОС (переносимых на разные типы машин) и Multix также не
был мобильной ОС. 1971 - написан UNIX для работы на мощнейшей
платформе того времени PDP - 11 1977 - Становится переносимой
системой, т.к. переписан на языке C (ATTsystem V) 1981 - платформа
Intel начинает резко наращивать свои возможности. Колоссальным
прорывом было создание 8088, затем 8086, 80286, etc. Появляется
однопользовательская ОС MS-DOS, на 10 лет ставшая стандартом
де-факто для пользователей персональных компьютеров. Но для машин с
процессором Intel появляются и версии UNIX. Конец 80 – начало 90
гг. – аппаратные средства резко увеличивают свою мощность.
Microsoft создает новую ОС Windows NT и появляется стандарт Win32.
Позже появляется Windows 95 – ОС для одного рабочего места, но
имеющая многие возможности NT, призванная вытеснить MS-DOS.
Аппаратные средства позволяют создавать 64-битные версии такой ОС,
как UNIX, и в скором времени она появляется и используется на
платформе Alpha фирмы DEC. С наращиванием мощности аппаратных
средств системное программное обеспечение становится все более
изощренным и имеющим большие возможности. 2. Общая классификация
вычислительных машин. Современные архитектурные линии ЭВМ.
Системное ПО и его место в современной информатике. ЭВМ являются
преобразователями информации. В них исходные данные задачи
преобразуются в результат ее решения. В соответствии с используемой
формой представления информации машины делятся на два класса:
непрерывного действия - аналоговые и дискретного действия -
цифровые. В силу универсальности цифровой формы представления
информации цифровые электронные вычислительные машины представляют
собой наиболее универсальный тип устройства обработки информации.
Основные свойства ЭВМ - автоматизация вычислительного процесса на
основе программного управления, огромная скорость выполнения
арифметических и логических операций, возможность хранений большого
количества различных данных, возможность решения широкого круга
математических задач и задач обработки данных. Особое значение ЭВМ
состоит в том, что впервые с их появлением человек получил орудие
для автоматизации процессов обработки информации. Управляющие ЭВМ –
предназначены для управления объектом или производственным
процессом. Для связи с объектом их снабжают датчиками. Непрерывные
значения сигналов с датчиков преобразуются с помощью
аналогово-цифровых преобразователей в цифровые сигналы, кот.
вводятся в ЭВМ в соотв с алгоритмом упр-я. После анализа сигналов
формируются упр. воздействия, которые с пом. цифро-аналоговых
преобразователей преобразуются в аналоговые сигналы. Через
исполнительные механизмы изменяется состояние объекта.
Универсальные ЭВМ – предназначены для решения большого круга задач,
состав которых при разаработке ЭВМ не конкретизируется. Пример
современных архитектурных линий ЭВМ: персональные ЭВМ (IBM PC и
Apple Macintosh – совместимые машины), машины для обработки
специфической информации (графические станции Targa, Silicon
Graphics), большие ЭВМ (мэйнфреймы IBM, Cray, ЕС ЭВМ). Общее
назначение системного ПО - обеспечивать интерфейс между
программистом или пользователем и аппаратной частью ЭВМ
(операционная система, программы-оболочки) и выполнять
вспомогательные функции (программы-утилиты) Современная
операционная система обеспечивает следующее: 1) Управление
процессором путем передачи управления программам. 2) Обработка
прерываний, синхронизация доступа к ресурсам. 3) Управление
памятью. 4) Управление устройствами ввода-вывода. 5) Управление
инициализацией программ, межпрограммные связи. 1) Управление
данными на долговременных носителях путем поддержки файловой
системы. См. также стандарты в (1). 1. Общее понятие архитектуры.
Принципы построения ВС 4-го поколения. Архитектура – совокупность
технических средств и их конфигураций, с помощью которых
реализована ЭВМ. ЭВМ 4 поколения, имеет, как правило, шинную
архитектуру, что означает подключение всех устройств к одной
электрической магистрали, наз. шиной. Если устройство выставило
сигнал на шину, другие могут его считать. Это свойство используется
для организации обмена данными. С этой целью шина разделена на 3
адреса – шина адреса, шина данных и шина управляющего сигнала. Все
современные ЭВМ также включают устройство, наз. арбитром шины,
которое определяет очередность занятия ресурсов шины разными
устройствами. В PC распространены шины ISA, EISA, PCI, VLB. ШИНА 2.
Состав и функции основных блоков ВС: процессора, оперативной
памяти, устройства управления, внешних устройств. Структурная схема
машины фон Неймана: Арифм.-логич. уст-во
Уст-во управления
Вн. уст-
Оперативная память
, и сборка прекратится. Использование многомодульной структуры
необходимо: а) для разбиения большого текста на модули по
функциональному назначению; б) для создания библиотек процедур; в)
для написания подпрограмм в языки высокого уровня. 34. Технология
разработки программ – трансляция и редактирование связей. Понятие
об исходном, объектном, выполняемом модулях. Исходный код программы
– код, написанный на языке программирования. Может включать модули
на ЯВУ и модули с подпрограммами на языке ассемблера. Объектный
модуль – код программы после трансляции (компиляции),
преобразованный в машинные коды. Помимо них содержит внешние ссылки
и информацию для редактора связей и может также содержать
отладочную информацию (debug info). Исполняемый модуль –модуль,
содержащий готовую к выполнению программу – м.б. 2 видов: а) точный
образ памяти программы с привязкой к абсолютным адресам (в MS-DOS –
формат файла *.COM) б) перемещаемый исполняемый формат, см. 17.
Трансляция – получение объектного кода из исходного. Редактирование
связей – разрешение внешних ссылок и создание исполняемого модуля
из объектных. 35. Основные функции редактора связей – распределение
памяти, разрешение внешних ссылок – см. 17, 33. 36. Программные
сегменты и их атрибуты, способы распределения памяти под сегменты.
Собственно сегменты и распределение памяти см. 30. Атрибуты
сегментов Атрибут комбинации сегмента предназначен дляуказания
компоновщику, каким образом объединять сегменты, находящиеся в
разных модулях и имеющие одинаковые имена. М.б. PRIVATE (сегмент не
будет объединяться с одноименными из др. модулей), PUBLIC (будет) и
некоторые другие. Атрибут класса сегмента представляет собой
строку, заключенную в кавычки, которая позволяет определить
компоновщику нужный порядок размещения сегментов при помещении их в
программу из разных модулей. Он группирует вместе сегменты с
одинаковым классом. Атрибут выравнивания сегмента – сообщает
компонаовщику, чтобы он позаботился о том, чтобы сегмент начинался
с указанной границы. Возможное выравнивание: BYTE – выравнивание не
делается, сегмент начинается со следующего байта, WORD (DWORD) –
выравнивание погарнице слова (двойного слова), PARA – выравнивание
по границе 16-байтового параграфа, и т.п. Атрибут размера сегмента
– показывает размер, 16 или 32-битные сегменты. Атрибут доступа –
показывает возможность доступа к сегменту в защищенном режиме –
доступен как кодовый, для чтения, записи, чтения и записи. 37.
Разрешение внешних ссылок, функция автовызова, библиотеки объектных
модулей и их использование. Разрешение внешних ссылок – см. 33, 17.
Библиотеки объектных модулей – пакет объектных модулей, собранных в
один файл и подключаемый к программе на этапе разрешения внешних
ссылок (все идентификаторы, которые должны быть доступны из
библиотек, объявляются в модулях как PUBLIC). Компоновщик может
просматривать библиотеку и самостоятельно находить нужные модули,
избавляя от этого программиста. Библиотеки делаются с помощью
программы-библиотекаря. Библиотекарь может добавлять и извлекать
модули, а также получать список доступных идентификаторов. Любой
компилятор ЯВУ имеет в комплекте несколько стандартных библиотек,
например, библиотеки ввода-вывода, работы с плавающей точкой,
графическую и т.п. 38. Типы внешних ссылок и общих имен.
Статическое и динамическое разрешение ссылок. Внешние ссылки см.
17, 33, 34. Статическое и динамическое разрешение внешних ссылок.
Процесс разрешения внешних ссылок на этапе создания исполняемого
модуля – статическое разрешение ссылок. Возможно и динамическое
подсоедиение нужных модулей на этапе работы программы. а)
Динамически вызываемый загрузчик, т.е. программа вызывает загрузчик
и подсоединяет недостающие части. Такой подход невыгоден (сложен и
требует много времени) б) DLL – принцип разделяемых библиотек. DLL
– это пакет функций, отредактированный для исполнения в
позиционно-независимом стиле. Имеет таблицу всех содержащихся
функций. Для работы с ним программа выполняет 1) функцию загрузки
DLL, 2)переход по смещению в таблице функций. При работе с DLL
несколько программ могут использовать одну ее копию в памяти. 39.
Динамическое распределение памяти, оверлейные программы. Общая
структура объектного модуля. Стандартный исполняемый
псевдоперемещаемый модуль (например, типа EXE для DOS) содержит
сегменты в том виде, в котором они будут размещены в памяти. Такое
распределение памяти называется статическим. В ситуации нехватки
памяти, отдельный код или данные, которые могут быть нужны не все
вместе, а по очереди, разумнее было бы подгружать в память в
процессе выполнения. Выделение памяти под выполняемый код в
процессе работы программы и удаление их после использования
называется динамическим распределением памяти. Программы,
содержащие динамически подгружаемые модули, называются оверлейными,
а сами такие модули – оверлеями. Загрузка данных из модуля в общем
случае не представляет проблем, в случае загрузки кода перед
выполнением он должен быть особым образом подготовлен (например, с
учетом местоположения вызывающей программы в памяти для подпрограмм
должны быть образованы правильные ссылки). Такую подготовку
выполняет специальная программа – менеджер оверлеев. Он может
поставляться, а) как библиотека компилятора [в Borland Pascal 7.0].
В этом случае оверлейный модуль, как правило, имеет какой-то свой
специфический формат, работа с ним ведется с помощью стандартных
подпрограмм. Код оверлейных подпрограмм и данных размещается в
памяти [в BP буфер оверлеев имеет плавающую границу с кучей] и по
окончании работы с ним может быть удален. б) Может быть внедрен в
структуру оверлейного модуля. В этом случае модуль имеет формат
исполняемого файла, и для инициализации он должен быть запущен
стандартным для ОС способом из-под вызывающей программы. Оверлеи
имеют широкое распространение в системе MS-DOS, при подгрузке
используется не только основная память, но и DOS-спецификации
расширенной: XMS, EMS. В развитых многозадачных системах
используется, в основном, очень похожая технология DLL. Ее отличие
в том, что она функционирует в защищенном режиме и позволяет
использовать одну свою копию в памяти разным программам. DLL можно
рассматривать как следущее поколение оверлейной технологии. 40.
Основные функции ОС. Принципы мультипрограммирования. Системные
ресурсы. Основные функции ОС: 1) Управление процессором путем
передачи управления программам. 2) Обработка прерываний,
синхронизация доступа к ресурсам. 3) Управление памятью. 4)
Управление устройствами ввода-вывода. 5) Управление инициализацией
программ, межпрограммные связи. 6) Управление данными на
долговременных носителях путем поддержки файловой системы. Ресурс –
какой-либо объект или показатель надежности какого-либо объекта.
Системные ресурсы – совокупность аппаратных ресурсов и системных
сервисов. Основными потребителями системных ресурсов являются
процессы, выполняемые в системе. 41. Защита программ и данных в
мультипрограммных средах. Режимы управления. Защита и распределение
памяти. Защита программ и данных в многозадачных ОС означает малую
вероятность того, что сбой одной из выполняющихся программ не
вызовет повреждения данных или кода других программ, и по
возможности изолировать процессы друг от друга. Во всех ОС сущ.
хотя бы 2 режима процессора – системный и пользовательский.
Программа исп. в пользовательском режиме и не может использовать
ряд команд. В системном режиме доступно все. Переключение режимов
работы осуществляется системными вызовами. Системный вызов –
специальная команда, приводящая к прерыванию, и в ядре ОС
существует несколько точек, куда перейдет управление по этому
прерыванию. 386 имеет встроенный механизм для этих переключений –
шлюз. Защита памяти – осуществляется путем блокировки доступа к
памяти других процессов, а также блокировки доступа к памяти ядра.
Один из способов – вся память делится на страницы, и у каждой есть
замок – 4-битовый признак, который можно установить только
привелигированной командой. В процессоре есть 4-битовый регистр –
ключ, который также можно установить только привелигированной
командой. При обращении происходит сравнение замка и ключа. С
появлением многозадачности появилась проблема распределения памяти.
При работе реальной программы обращения к ОП имеют тенденцию к
локализации. Память можно разделить на используемую и
неиспользуемую. Чтобы отследить использование области памяти, всю
ОП можно разбить на страницы фиксированного размера (4К) и с каждой
страницей связать бит, который устанавливать при обращении к данной
странице. 42. Управление ЦП – фоновая обработка, пактная обработка,
прерывания. 43. Общая схема функционирования ОС – супервизор,
диспетчер, планировщик. Виртуализация. Супервизор – программа
многозадачной ОС, обеспечивающая наилучшее использование ресурсов
ЭВМ при одновременном выполнении нескольких задач. Планировщик –
программа, выполняющая алгоритм планирования процессов.
Планирование очередности предоставления выполняющимся процессам
времени центрального процессора (диспетчеризация). Процессы
работают с центральным процессором в режиме разделения времени. 44.
Виртуальная память и способы ее реализации. Страничная память.
Свопинг. Виртуальная память отличается от обычной ОП тем, что
какие-то ее редко используемые фрагменты могут находиться на диске
и подгружаться в реальную ОП по мере необходимости. Такая
организация памяти позволяетс снять ограничение, накладываемое
объемом физической памяти, установленной на ЭВМ. Для реализации ВП
используют, например, динамическю переадресацию. Сегментом в
терминах ВП называется область памяти из 2L страниц. Вначале по
номеру в таблице сегментов отыскивается сегмент. Таблица сегментов
содержит начальный адрес таблицы страниц. Вторая часть адреса
используется для обращения в эту таблицу, и по ней находится
физический адрес данной страницы. Результаты поизка по таблицам
запоминаются в быстродействующем ассоциативном ЗУ, называемом TLB.
Наиболее часто употребляемые адреса откладываются в TLB и поэтому
98-99% обращений к памяти идут без просмотра таблиц. Страничная
организация памяти – организация, при которой адресное пространство
памяти разбивается на малые участки – страницы. Используется для
управления памятью в системах, работающих в защищенном режме. Как
правило, такая организация памяти подразумевает пейджинг – механизм
виртуальной памяти, при котором страницы вытесняются на диск и
подкачиваются с диска. Свопинг – алгоритм реализации виртуальной
памяти. Его можно разбить на три части: управление пространством на
устройстве выгрузки, выгрузка процессов из основной памяти и
подкачка процессов в основную память. В качестве устройства
выгрузки используют раздел на устройстве типа жесткого
(swap-partition) или дисковый файл (swap-file) на таком устройстве.
45. Системная архитектура 80386: сегментирование, страничная
организация, средства авторизации и защиты. Возможности 80386
полностью раскрываются, когда он работает в защищенном режиме. В
этом режиме адресное пространство расширяется до 4Т, а виртуальное
– до 64Т. 80386 использует сегментацию – один из методов управления
памятью. Сегменты – самостоятельные области памяти, имеющие
собственные атрибуты. В сегменте м.б. код программы или данные. Вся
информация о сегменте запоминается в спец. структуре, наз.
дескриптором. Дескрипторы используются аппаратно и не доступны из
программ. Межсегментные вызовы в 80386 происходят с учетом защиты.
Помимо сегментации, 80386 поддерживает другой вид организации
памяти – страничную организацию. Страницы – это малые блоки памяти
одинакового размера, не имеющие логической связи со структурой
программ. Они используются в основном на уровне ОС. Страницы могут
подкачиваться с диска и вытесняться на диск (пейджинг). В 80386
есть режим виртуального 8086 – режим, эмулирующий 8086 в защищенном
режиме, при котором у каждого пользователя многозадачной системы
создается иллюзия монопольного владения ресурсами машины. 80386
поддерживает 4-уровненвую систему защиты, управление защитой
осуществляется с помощью уровней привелигированности. Уровень
привелигированности управляется привелигированными командами,
командами ввода-вывода и доступом к сегментным дескрипторам. 1
Ответы на вопросы по курсу "систеиное программирование".
71
0
10 минут
Темы:
Понравилась работу? Лайкни ее и оставь свой комментарий!
Для автора это очень важно, это стимулирует его на новое творчество!