Презентация к уроку информатики "программное обеспечение компьютера". Программное обеспечение ПК




Связывание

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

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

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

Системное программное обеспечение

Возможные времена связывания

При определении языка; при реализации компилятора;

во время трансляции, в том числе:

при работе препроцессора (макропроцессора)

во время лексического, синтаксического и семантического анализа, генерации кода и его оптимизации;

при компоновке; во время загрузки программы;

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

Системное программное обеспечение

Связывание в int a,b; … a+b

Тип переменных int - целая переменная в машинном слове стандартной длины (представление целого со знаком, дополнительный код), связывается с аналогичной формой представления данных в компьютере при определении языка.

Конкретная размерность переменной int определяется при реализации соответствующего компилятора.

Имя a может быть определено в конструкции вида

#define a 0x11FF . В этом случае имя (псевдо-переменная) связывается со своим значением на первой фазе трансляции - в препроцессоре.

Системное программное обеспечение

Связывание в int a,b; … a+b

Если переменная определяется обычным способом в виде int a; то связывание переменной с соответствующим ей типом происходит во время трансляции (на фазе семантического анализа).

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

Системное программное обеспечение

Связывание в int a,b; … a+b

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

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

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

Системное программное обеспечение

Связывание в int a,b; … a+b

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

Системное программное обеспечение

Связывание в int a,b; … a+b

Если переменная определяется как автоматическая (локальная внутри тела функции или блока), то она размещается в стеке программы:

во время трансляции определяется ее размерность и генерируются команды, которые резервируют под нее память в стеке в момент входа в тело функции (блок). То есть в процессе трансляции переменная связывается только с относительным адресом в стеке программы;

связывание локальным переменной с ее адресом в сегменте стека осуществляется при выполнении в момент входа в тело функции (блок). Благодаря такому способу связывания в рекурсивной функции существует столько «экземпляров» локальных переменных, сколько раз функция вызывает сама себя.

Описание презентации по отдельным слайдам:

1 слайд

Описание слайда:

2 слайд

Описание слайда:

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

3 слайд

Описание слайда:

4 слайд

Описание слайда:

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

5 слайд

Описание слайда:

6 слайд

Описание слайда:

Базовое ПО - совокупность программ, обеспечивающих работу компьютера. В базовое ПО входят: операционные системы, операционные оболочки (shell). Операционная система (ОС) – программа, первой загружаемая при включении компьютера. Первая ОС для IBM-совместимого компьютера (MS DOS) была создана в 1981 году. ОС организует выполнение других программ. Без неё невозможна работа человека на компьютере. ОС управляет компьютером, его ресурсами (оперативной памятью, местом на дисках и т. д.), запускает сервисные функции, контролирует работу технических устройств и некоторых вспомогательных программ, производит диалог с пользователем, запускает на выполнение прикладные и иные программы. Операционные системы являются основными программными комплексами, выполняющими следующие основные функции: 1) тестирование работоспособности вычислительной системы и её настройка при первоначальном включении; 2) обеспечение синхронного и эффективного взаимодействия всех аппаратных и программных компонентов вычислительной системы в процессе ее функционирования; 3) обеспечение эффективного взаимодействия пользователя с вычислительной системой. ОС классифицируются на: ·однопользовательские однозадачные системы (MS-DOS и др.); ·однопользовательские многозадачные системы (OS/2, Windows 95/98/2000 и др., Vista); ·многопользовательские (сетевые) системы (семейство UNIX, Linux, WindowsNT и др.). К основным функциям сетевых ОС, предназначенных для работы в различных сетях, относятся: управление каталогами и файлами; защита от несанкционированного доступа; обеспечение отказоустойчивости; управление сетью. Простейшими сетевыми являются ОС для одноранговых сетей. Их функция заключается в разделении дисков разных узлов между всеми пользователями, соблюдению паролей и запретов на использование определённых дисков.

7 слайд

Описание слайда:

Операционные оболочки - интерфейс для взаимодействия пользователей с операционной системой. Операционные оболочки интерпретируют (переводят в машинный код и выполняют) команды ОС. Виды операционных оболочек: графические - для ввода команд ОС посредством меню, переключателей, кнопок, представленных в виде графических изображений (Проводник Windows, включающий "Рабочий стол", меню "Пуск", панель задач и файловый менеджер) Текстовые командная строка - для ввода команд ОС с клавиатуры (cmd.exe, Windows PowerShell, входящие в ОС MS Windows) пакеты - для записи последовательности команд ОС в файл (файл с расширением.bat), далее файл интерпретируется. окна - для ввода команд ОС посредством меню, переключателей, кнопок, представленных в виде набора букв, цифр и символов псевдографики.

8 слайд

Cлайд 1

Программное обеспечение Разработал: Преподаватель информатики Сабойдалова М..А. ГБОУ СПО КО«Коммунально-строительный техникум», г.Калуга

Cлайд 2

Компьютер Программное обеспечение компьютера – это вся совокупность программ, хранящихся в долговременной памяти

Cлайд 3

Виды программного обеспечения Системное ПО Инструментальное ПО 1.Базовое ПО: операционные системы; оболочки; сетевые ОС 2.Сервисное ПО: диагностики; антивирусные; обслуживания носителей; архивирования; обслуживания сети Прикладное ПО Системное ПО - это совокупность программ для обеспечения работы компьютера

Cлайд 4

Виды программного обеспечения Прикладное ПО - это комплекс программ для решения задач конкретной предметной области текстовые процессоры; табличные процессоры; базы данных(СУБД); интегрированные пакеты; графические процессоры; экспертные системы; обучающие программы; игры; коммуникационные программы

Cлайд 5

Виды программного обеспечения Инструментальное ПО- это совокупность программ для разработки, отладки и внедрения новых программ трансляторы; среда разработки программ; библиотеки справочных программ; отладчики; редакторы связей

Cлайд 6

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

Cлайд 7

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

Cлайд 8

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

Cлайд 9

Cлайд 10

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

Cлайд 11

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

Cлайд 12

Характеристика поколений ЭВМ I 1945-60-e II 1955-70-e III 1965-80-e IV 1975-… V ? Элементная база Электронные лампы Транзисторы ИС и БИС СБИС и микропроцес-соры Оптоэлектро-ника, криоэлектро- ника Максимальное быстродействие процессора (опер/сек) 10 – 20 тыс 100 тыс –1 млн 10 млн 109 + много-процессорность 1012 + много-процессорность Максимальная емкость ОЗУ (Кбайт) 100 1000 10 000 10 000 000 100 000 000 Периферийные устройства Магнитная лента, перфокарты и перфоленты, цифровая печать Магнитная лента, перфоносители, алфавитно-цифровая печать Консоли, магнитные ленты, дисплеи, графопостроители Цветной графический дисплей, клавиатура, принтеры, модемы + устройства ввода с голоса, устройства чтения рукописного текста и пр. Примеры моделей ЭВМ МЭСМ, БЭСМ-1,ЭСМ-2, М-20, Минск М-220, БЭСМ-3, Урал--14,БЭСМ-6 Минск-32 IBM 360/370, ЕС ЭВМ, СМ ЭВМ ПК: IBM PC, Macintosh, СуперЭВМ: Cray, Cyber, Эльбрус

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


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




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




Редакторы документов – это наиболее широко используемый вид прикладных программ. Они позволяют подготавливать документы гораздо быстрее и удобнее, чем с помощью пишущей машинки. Текстовые редакторы могут обеспечивать выполнение разнообразных функций, а именно: Табличные процессоры.Табличные процессоры представляют собой удобное средство для проведения бухгалтерских и статистических расчетов. В каждом пакете имеются сотни встроенных математических функций и алгоритмов статистической обработки данных. Кроме того, имеются мощные средства для связи таблиц между собой, создания и редактирования электронных баз данных. Системы автоматизированного проектирования (САПР) или CAD (англ. Computer-Aided Design) программный пакет, предназначенный для создания чертежей, конструкторской и/или технологической документации и/или 3D моделей. Среди систем малого и среднего класса в мире наиболее популярна система AutoCad фирмы AutoDesk. Отечественный пакет с аналогичными функциями – Компас


Графические редакторы позволяют создавать и редактировать рисунки. В простейших редакторах предоставляются возможности рисования линий, кривых, раскраски областей экрана, создание надписей различными шрифтами и т.д. Большинство редакторов позволяют обрабатывать изображения, полученные с помощью сканеров. Представители графических редакторов – программы Adobe Photoshop, Corel Draw. Системы управления базами данных (СУБД) позволяют управлять большими информационными массивами - базами данных. Программные системы этого вида позволяют обрабатывать на компьютере массивы информации, обеспечивают ввод, поиск, сортировку выборку записей, составление отчетов и т.д. Представители данного класса программ – Microsoft Access, Clipper, Paradox, FoxPro. Интегрированные системы сочетают в себе возможность системы управления базами данных, табличного процессора, текстового редактора, системы деловой графики, а иногда и другие возможности. Как правило, все компоненты интегрированной системы имеют схожий интерфейс, что облегчает обучение работе с ними. Представители интегрированных систем – пакет Microsoft Office и его бесплатный аналог Open Office.


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


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


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


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


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


Антивирусные программы, предназначенные для предотвращения заражения компьютерными вирусами и ликвидации последствий заражения вирусами; Представители антивирусного семейства программ – Kaspersky Antivirus, DrWeb, Norton Antivirus. программы для создания резервных копий информации позволяют периодически копировать важную информацию, находящуюся на жестком диске компьютера, на дополнительные носители. Представители программ резервного копирования – APBackUp, Acronis True Image программы оптимизации и контроля качества дискового пространства; коммуникационные программы, предназначены для организации обмена информацией между компьютерами. Это программы позволяют удобно пересылать файлы с одного компьютера на другой при соединении кабелем их последовательных портов. Другой вид таких программ обеспечивает возможность связи компьютеров по телефонной сети (при наличии модема). Они дают возможность посылать и принимать телефаксные сообщения. Представители коммуникационных программ – Venta Fax, Cute FTP. программы для управления памятью, обеспечивающие более гибкое использование оперативной памяти;


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


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


Транслятор (англ. translator переводчик) это программа-переводчик. Она преобразует программу, написанную на одном из языков высокого уровня, в программу, состоящую из машинных команд. Трансляторы реализуются в виде компиляторов или интерпретаторов. С точки зрения выполнения работы компилятор и интерпретатор существенно различаются. Компилятор (англ. compiler составитель, собиратель) читает всю программу целиком, делает ее перевод и создает законченный вариант программы на машинном языке, который затем и выполняется. Интерпретатор (англ. interpreter истолкователь, устный переводчик) переводит и выполняет программу строка за строкой. После того, как программа откомпилирована, ни сама исходная программа, ни компилятор более не нужны. В то же время программа, обрабатываемая интерпретатором, должна заново переводиться на машинный язык при каждом очередном запуске программы. Откомпилированные программы работают быстрее, но интерпретируемые проще исправлять и изменять. Популярные системы программирования – Turbo Basic, Quick Basic, Turbo Pascal, Turbo C. Borland C++, Borland Delphi и др


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

Слайд 2

Организация памяти

Физическая память, к которой процессор имеет доступ по шине адреса называется оперативной памятью (или оперативным запоминающим устройством - ОЗУ). ОЗУ организовано как последовательность ячеек - байтов. Каждому байту соответствует свой уникальный адрес (его номер), называемый физическим. Диапазон значений физических адресов зависит от разрядности шины адреса процессора. Для 80486 и Pentium он находится в пределах от 0 до 232 – 1 (4 Гбайт). Для процессоров PentiumPro/II/III/IV этот диапазон шире - от 0 до 236 – 1 (64 Гбайт). Процессор 8086 имел 1 Мбайт памяти при двадцатиразрядной шине адреса – от 0 до 220– 1.

Слайд 3

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

Слайд 4

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

Слайд 5

В семействе процессоров 80х86 выбор метода обращения к памяти определяется режимом работы процессора. В реальном режиме процессор может обращаться только к первому мегабайту памяти, адреса которого находятся в диапазоне от 00000 до FFFFF в шестнадцатеричном выражении. При этом процессор работает в однопрограммном режиме (т.е. в заданный момент времени он может выполнять только одну программу). Однако при этом он может в любой момент прервать ее выполнение и переключиться на процедуру обработки прерывания, поступившего от одного из периферийных устройств. Любой программе, которую выполняет в этот момент процессор, разрешен доступ без ограничения к любым областям памяти, находящимся в пределах первого мегабайта: к ОЗУ - по чтению и записи, а к ПЗУ, понятно, только по чтению. Реальный режим работы процессора используется в операционной системе MS DOS, а также в системах Windows 95 и 98 при загрузке в режиме эмуляции MS DOS.

Слайд 6

В защищенном режиме процессор может одновременно выполнять несколько программ. При этом каждому процессу (т.е. выполняющейся программе) может быть назначено до 4 Гбайт оперативной памяти. Чтобы предотвратить взаимное влияние выполняющихся программ друг на друга им выделяются изолированные участки памяти. В защищенном режиме работают такие ОС, как MS Windows и Linux. В виртуальном режиме адресации процессора 8086, последний на самом деле работает в защищенном режиме. Для каждой задачи создается собственная виртуальная машина, которой выделяется изолированная область памяти размером 1 Мбайт, и полностью эмулируется работа процессора 80x86 в реальном режиме адресации. Например, в операционных системах Windows 2000 и ХР виртуальная машина процессора 8086 создается каждый раз при запуске пользователем окна командного интерпретатора (сеанса MS DOS).

Слайд 7

Реальный режим адресации Отличительные черты механизма адресации физической памяти в реальном режиме следующие: Диапазон изменения физического адреса - от 0 до 1 Мбайт, поскольку при адресации используется только 20 младших разрядов шины адреса Максимальный размер памяти, адресуемой с помощью 16–разрядных регистров - 64 Кбайт Для обращения к конкретному физическому адресу во всей доступной оперативной памяти используется сегментация памяти, т.е. разбиение доступного адресного пространства на сегменты размером 64 Кбайт и использование вместо физического логического адреса в форме:, т.е. комбинации адреса начала сегмента и смещение внутри сегмента 16–разрядный адрес начала сегмента помещается в один из шести сегментных регистров (CS, DS, ES, SS, FS или GS) Программы непосредственно оперируют только 16–разрядным смещением, указанным относительно начала сегмента

Слайд 8

Младшая шестнадцатеричная цифра в адресе каждого сегмента равна нулю, т.е. адрес любого сегмента всегда будет кратен 16 байтами границы сегментов располагаются через каждые 16 байт физических адресов. Каждый из этих 16–байтовых фрагментов называется параграфом.

Слайд 9

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

Слайд 10

Пример: байт, заданный в форме "сегмент–смещение": 8000:0250в шестнадцатиричной транскрипции. Логический адрес: 8000:0250 –––––––––––––––––––––––––––––– Сегмент: 80000 + Смещение: 0250 ––––––––––––––––––––––––––––– Физический адрес: 80250 В типичной программе, написанной для процессоров семейства 80x86, как правило, есть три сегмента: кода, данных и стека. При запуске программы их базовые сегментные адреса загружаются в регистры CS, DS и SS, соответственно. В трех оставшихся регистрах ES, FS и GS программа может хранить указатели на дополнительные сегменты.

Слайд 11

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

Слайд 12

Защищенный режим адресации При работе в защишенном режиме каждой программе может быть выделен блок памяти размером до 4 Гбайт, адреса которого в шестнадцатеричном представлении могут меняться от 00000000 до FFFFFFFF. При этом говорят, что программе выделяется линейное адресное пространство (linear address space). В защишенномрежиме в сегментных регистрах (CS, DS, SS, ES, FS, GS) хранятся не 16–разрядные базовые адреса сегментов, а селекторы–указатели на дескрипторы сегмента (segment descriptor), расположенные в одной из системных таблиц дескрипторов (descriptor table). По информации, находящейся в дескрипторе, операционная система определяет линейные адреса сегментов программы. Существует две разновидности таблиц: GlobalDescriptorTable (глобальная таблица дескрипторов) и LocalDescriptorTables (локальные таблицы дескрипторов).

Слайд 13

Структура селектора дескриптора сегмента: Дескриптор состоит из 8 байт, в которые входят базовый адрес сегмента, размер и другая информация:

Слайд 14

Дескриптор 0 является запрещенным - его можно безопасно загрузить в сегментный регистр, чтобы обозначить, что сегментный регистр в данный момент недоступен, но при попытке его использовать вырабатывается прерывание. В типичной программе, написанной для защишенного режима, как правило, есть три сегмента: кода, данных и стека, информация о которых хранится в трех перечисленных ниже сегментных регистрах. В регистре CS хранится указатель на дескриптор сегмента кода программы В регистре DS хранится указатель на дескриптор сегмента данных программы В регистре SS хранится указатель на дескриптор сегмента стека программы

Слайд 15

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

Слайд 16

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

Слайд 17

Дескрипторы хранятся в специальной системной таблице, которая называется таблицей глобальных дескрипторов (Global Descriptor Table, или GDT). Для плоской модели каждый дескриптор имеет базовый адрес, равный 0. Значение поля, определяющего границу сегмента, умножается процессором на шестнадцатеричное число 1000. Сегменты могут покрывать весь 4–х гигабайтный диапазон физических адресов, или только те адреса, которые отображаются на физическую память. Если установить границу сегмента в значение 4 гигабайта, механизм сегментации предотвращает генерацию исключений для ссылок к памяти, выходящих за границу сегмента.

Слайд 18

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

Слайд 19

MultisegmentedModel (многосегментная модель) Для каждой программы выделяется собственная таблица сегментных дескрипторов, которая называется таблицей локальных дескрипторов (Local Descriptor Table, или LDT). При этом появляется возможность для каждого процесса создать собственный набор сегментов, которые никак не пересекаются с сегментами других процессов. В результате каждый сегмент находится в изолированном адресном пространстве.

Слайд 20

На рисунке показано, что каждый элемент таблицы локальных дескрипторов определяет различные сегменты памяти. В каждом дескрипторе сегмента указывается его точная длина. Например, сегмент, начинающийся с адреса 3000, имеет длину 2000 байтов в шестнадцатеричном представлении, поскольку значение поля дескриптора, определяющего границу сегмента, равно 0002, а 0002х1000=2000. По аналогии, длина сегмента, начинающегося с адреса 8000, равна А000. Следует отметить, что Flat Model реализуется как частный случай сегментированной модели, когда программа обращается к сегменту, под который отведено все линейное пространство.

Слайд 21

Paging(cтраничная модель памяти) Эта модель представляет собой форму управления памятью для моделирования большого несегментированного адресного пространства с использованием части дисковой памяти и фрагментированного адресного пространства. Обеспечивает доступ к структурам данных, имеющим размер больше, чем размер доступного объема памяти, сохраняя их частично в оперативной памяти и частично на диске. По этой модели линейное адресное пространство делится на блоки одинакового размера (обычно 4 Кбайт), которые называются страницами (page).

Слайд 22

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

Слайд 23

Затем обрабатывается поле Страница в качестве индекса в таблице страниц с целью найти физический адрес страничного блока. Чтобы получить физический адрес требуемого байта или слова, к адресу страничного блока прибавляется последнее поле Смещение. В результате можно легко сделать так, чтобы суммарный объем оперативной памяти, используемой во всех выполняющихся на компьютере программах, превышал объем реальной памяти компьютера. Именно поэтому страничная организация памяти очень часто называется виртуальной памятью (virtual memory). Работоспособность системы виртуальной памяти обеспечивает специальная программа, являющаяся частью операционной системы, которая называется диспетчером виртуальной памяти (virtual memory manager).

Слайд 24

Страничная организация памяти как нельзя лучше решает проблему нехватки памяти. Дело в том, что перед началом выполнения любая программа должна быть загружена в оперативную память, размер которой, всегда ограничен (например, в силу конструктивных особенностей компьютера или цены модуля памяти). Пользователи компьютера обычно загружают в память сразу несколько программ, чтобы в процессе работы иметь возможность переключаться между ними (например, переходить из одного окна в другое). С другой стороны, объемы дисковой памяти намного превышают объемы оперативной памяти компьютера, да и к тому же эта память намного дешевле. Поэтому за счет привлечения дисковой памяти при использовании страничной организации памяти для пользователя создается впечатление, что он располагает ОЗУ неограниченного объема. Разумеется, что за все нужно платить: скорость доступа к дисковой памяти на несколько порядков ниже, чем к оперативной памяти.

Слайд 25

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

Слайд 26

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

Слайд 27

На уровне 0 находится ядро операционной системы, занимающееся обработкой операций ввода/вывода, управлением памятью и другими первоочередными вопросами. На уровне 1 – обработчик системных вызовов. Пользовательские программы этого уровня могут обращаться к процедурам для выполнения системных вызовов, но только к определенному и защищенному списку процедур. Уровень 2 содержит библиотечные процедуры, возможно, совместно используемые несколькими работающими программами. Пользовательские программы вправе вызывать эти процедуры и читать их данные, но не могут их изменять. И, наконец, пользовательские программы работают на уровне 3, который имеет наименьшую степень защиты.

Посмотреть все слайды