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

Билет 1

1). Предпосылки создания операционных систем. Понятие операционной системы

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

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

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

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

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

I период 1945-1955:

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

II период 1955-начало 60х: -Транзисторные машины -Разделение персонала -Бурное развитие алгоритмических языков -Ввод задания с колонны перфокарт и перфолент -Отладка программы по изучению распечаток -Пакеты заданий, системы пакетной обработки

III период начало 60х-1980: -Машины на интегральных схемах -Планирование заданий -Мультипрограммные пакетные системы -Системы разделения времени -Виртуальная память -Интерактивная отладка программ -Развитые файловые системы -Семейства ЭВМ

III период 1980-??? -Машины на больших интегральных схемах -Персональные ЭВМ -Дружественное ПО -Сетевые и распределенные ОС

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

2). Создание учетных записей пользователей и групп на рабочей станции.

Задание 4. Создание учетной записи пользователя.

4.1. На Рабочем столе щелкните правой кнопкой мыши по значку Мой компьютер. В открывшемся контекстном меню выберите команду Управление (иначе: Мой компьютер|Панель управления|Администрирование|Управление компьютером).

4.2. В левой части окна Управление компьютером выберите строку Пользователи и группы. При этом в правой части окна появятся папки: Пользователи, Группы.

4.3. Двойным щелчком мыши откройте папку Пользователи. Консоль управления отобразит список пользователей данного компьютера.

4.4. В меню Действие выберите команду Новый пользователь.

4.5. В окне Новый пользователь в поле Пользователь введите учетную запись (Ваша фамилия). В поле Полное имя введите Вашу фамилию, имя. В поле Описание – номер группы студента.

4.6. В соответствующее поле введите пароль student для нового пользователя и подтвердите его.

4.7. Снимите флажок Потребовать смену пароля при следующем входе в систему.

4.8. Щелкните кнопки Создать|Закрыть.

4.9. Просмотрите сведения о созданной учетной записи в командной строке:

net user Ваша фамилия

Сохраните сведения в файле протокола:

net user Ваша фамилия >>a:\lab1.txt

4.10. Создайте новую учетную запись (Ваше имя) в командной строке (символ * потребует ввод пароля):

net user Ваше имя * /add

Появится приглашение на ввод пароля. Введите пароль с подтверждением.

4.11. Выведите список всех пользователей данного компьютера:

net user

4.12. Сохраните сведения в файле протокола:

net user >>a:\lab1.txt

Задание 5. Создание учетной записи группы

5.1. Находясь в окне Управление компьютером, выделите строку Пользователи и группы и откройте папку Группы. Программа отобразит список групп данного компьютера.

5.2. В меню Действие выберите команду Новая группа.

5.3. В окне Новая группа в поле Имя группы введите учетную запись GroupNN (где NN – номер компьютера). В поле Описание введите фамилии студентов.

5.4. Нажмите кнопку Добавить и в окне Выбор: Пользователи проверьте Размещение (должен быть выбран Ваш компьютер); нажмите кнопку Дополнительно, а затем Поиск. В появившемся списке пользователей и групп выберите вновь созданную учетную запись пользователя. Дважды нажмите ОК.

5.5. В окне Новая группа должна появиться введенная учетная запись. Нажмите Создать|Закрыть.

Билет 2

1). Основные архитектуры ОС.

*Мой комментарий. Я так понимаю, здесь ГМ имел ввиду классификацию ОС.

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

-Тип аппаратной платформы -По области использования:

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

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

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

2). Создание профиля оборудования без поддержки сети.

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

1.14. Чтобы создать такой профиль, дважды щелкните значок Система и в окне Свойства системы откройте вкладку Оборудование. Нажмите на кнопку Профили оборудования и в открывшемся окне переименуйте текущий профиль в Profile 1 (On the Network), затем скопируйте текущий (сетевой) профиль под новым именем Profile 2 (Off the Network). Установите время выбора профиля в списке, равное 15 сек.

1.15. Перезагрузите компьютер и выберите профиль Profile 2.

1.16. Измените настройки Profile 2:

отключите сеть (Пуск|Сетевое окружение|Отобразить сетевые подключения|Подключение по локальной сети и в окне Состояние… выбрать: Отключить);

измените свойства экрана, например, фоновый рисунок.

Перезагрузите компьютер, выбрав Profile 2, чтобы убедиться, что настройки вступили в силу (свойства экрана, отключенная сеть).

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

Билет 3

1). Виртуальные машины.

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

BIOS

жесткий диск (отведенное место на вашем жестком диске)

CD-ROM (ваш CD-ROM или подключенный ISO-образ)

сетевые адаптеры для соединения с вашей реальной машиной, сетевыми ресурсами или другими виртуальными машинам и т.д.

Как и в случае с реальной машиной, вы можете установить на виртуальную машину операционную систему, причем неважно Windows или *nix. Таким образом, вы можете тестировать различные операционные системы, не покидая своей.

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

На сегодняшний день три компании предлагают виртуальные машины.

Microsoft встроила в Windows 7 виртуальную машину Windows Virtual PC, и у нас есть сразу несколько материалов о ней. Если вы работаете в Windows Vista или Windows XP, к вашим услугам Virtual PC 2007 и рассказ об установке и настройке этой виртуальной машины.

VMWare, главный конкурент Microsoft на рынке виртуализации, предлагает вам VMWare Workstation, а мы - статью о ней.

Oracle, купив Sun Microsystems, заодно приобрела и виртуальную машину VirtualBox.

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

Загрузка операционной системы

Если на компьютере установлено несколько ОС, их список отображается на экране при загрузке компьютера, чтобы пользователь мог выбрать нужную. Запускаемой по умолчанию ОС является последняя из установленных на компьютер. По умолчанию устанав­ливается время ожидания 30 секунд. Можно настроить порядок отображения систем в списке и время в секундах, в течение которого пользователь может выбрать ОС. Если пользователь не выберет систему, то по истечении времени ожида­ния будет запущена ОС по умолчанию.

1.4. Выполните: Пуск|Панель управления|Система (иначе: Мой компьютер|Панель управления|Система; иначе: щелкнуть правой кнопкой по значку Мой компьютер и в контекстном меню выбрать команду Свойства) и в окне Свойства системы выберите вкладку Дополнительно. Если на компьютере установлено несколько операционных систем, нажмите кнопку Загрузка и восстановление|Параметры и в открывшемся одноименном окне в списке Операционная система по умолчанию выберите другую ОС. Установите время отображения списка ОС равное 10 сек.

1.5. Перезагрузите Windows (в случае мультисистемной загрузки), чтобы увидеть результат произведенных действий. Восстановите измененные параметры в исходном виде.

Удаление имени последнего регистрировавшегося пользователя

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

1.9. Аналогично п.1.7 вызовите список Параметры безопасности.

1.10. Из списка правил выберите Не отображать последнего имени пользователя в диалоге входа. Дважды щелкните мышкой и в открывшемся окне установите переключатель Параметр локальной политики в положение Включен. Нажмите ОК.

Напоминание пользователю об истечении срока действия пароля

1.11. Аналогично п.1.7 вызовите список Параметры безопасности.

1.12. Из списка правил выберите Напоминать пользователям об истечении действия пароля. Дважды щелкните мышкой и в открывшемся окне установите новый параметр локальной политики. Нажмите ОК.

1.13. Смените сеанс Windows, чтобы увидеть результат произведенных действий. Восстановите измененные параметры в исходном виде.

Установление длительности простоя компьютера перед отключением сеанса

1.7. Выполните Пуск|Панель управления|Админи­стри­рование|Локальная политика безопасности. В левой части окна разверните список Локальные политики и в нем выберите Параметры безопасности. В правой части окна появится список правил, которые можно задать для локального компьютера.

1.8. Из списка правил выберите Длительность простоя перед отключением сеанса и дважды щелкните мышкой. В окне Параметр локальной политики безопасности установите 10 минут. Нажмите ОК.

Настройка файла подкачки

1.6. Для настройки файла подкачки щелкните кнопку Быстродействие|Параметры (вкладка Дополнительно окна Свойства системы). В окне Параметры быстродействия выберите вкладку Дополнительно и в ней нажмите Изменить. В диалоговом окне Виртуальная память уменьшите исходный размер на 20 МБ и нажмите Задать. Изменение отобразится в соответствующем диске. Восстановите исходный размер файла.

Билет 4

1). Процессы и потоки: создание, завершение потоков, состояния потоков.

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

Процесс - контейнер ресурсов, содержит как минимум один поток.

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

Создание и завершение потоков. Существует 4 основных события, приводящих к созданию процессов: -Инициализация системы

-Выполнение процессом системного вызова, для создания процесса

-Запрос пользователя

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

Основную часть времени фоновые процессы проводят в спящем режиме. Фоновые процессы в OS Linux называют демонами. Создание процесса включает загрузку кодов данных программы с диска в ОЗУ. Для этого ОС должна: -Обнаружить местоположение программы на диске -Перераспределить ОЗУ и выделить память, используемую программой нового процесса. -Загрузить программу в выделенные участки -Изменить параметры программы При создании процесса создается в ОЗУ системная структура «описатель процесса». Контекст содержит информацию, позволяющую системе приостанавливать и возобновлять процессы: -Содержимое регистров процесса, доступных пользователю -Содержимое счетчиков команд -Состояние управления регистром и регистр сосояния -Коды условий с результатами арифмитическо-логических операций -Указатели вершин стеков, хранящих процедуры и адреса вызовов процедур Каждый процесс начинается с одного потока, а потоки могут создаваться или продолжаться динамическими процессами. Модель программирования упрощается за счет разделения управления на несколько последовательных потоков. Создание потоков осуществляется в 10-100 раз быстрее, чем создание потоков. Потоки полезны для систем, где есть реальная возможность параллельных вычислений. При создании потока ОС генерирует описатель потока, который содержит ID потока, данные о правах и приоритете, текущем состоянии потока и т.д.Э Иногда потоки имеют иерархическую структуру, при которой у них устанавливаются взаимоотношения между родительскими и дочерними потоками. Состояние потока. В мультипрограммной системе поток может находится в одном из 3 состояний: выполнение, готовность, ожидание.

Возможные переходы между состояниями.

1. Процесс блокируется, ожидая входных данных

2. Планировщик выбирает другой процесс

3. Планировщик выбирает этот процесс

4. Поступили входные данные

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

2). Реестр Windows: структура, назначение основных разделов экспорт, импорт разделов; поиск в реестре.

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

Реестр разработан с целью исключения необходимости использования INI-файлов (в ранних версиях Windows), хотя и продолжает поддерживать их в целях обратной совместимости.

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

Реестр содержит информацию о:

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

установленных драйверах устройств;

установленных приложениях;

установленных сетевых протоколах;

настройках платы сетевого адаптера (номер прерывания, базовый адрес памяти, ба­зовый адрес портов ввода\вывода, тип трансивера);

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

Просмотр реестра

Для просмотра и редактирования реестра Windows служит Registry Editor (Редактор реестра), кото­рый реализован двумя приложениями: REGEDIT и REGEDT32. Основное их отличие в том, что REGEDT32 позволяет устанавливать и снимать разрешения на ключи реестра. REGEDIT более удобен для функций поиска и экспорта информации. При наличии соответствующих разрешений REGEDIT и REGEDT32 позволяют вносить изменения в реестр. Control Panel (Панель управления), оснастки управления администратора и System Policy Editor (Редактор системных политик) тоже меняют содержи­мое реестра. Удобный интерфейс этих средств помогает корректно настраивать систему. Запустите Registry Editor командой REGEDIT, чтобы видеть содер­жимое реестра локального компьютера.

Внимание! Будьте очень осторожны, внося изменения с помощью Registry Editor. Ре­дактор реестра не распознает ошибок, и, следовательно, Вы не будете предупреждены, если введете неверные данные. В случае ошибки ввода ОС может стать непригодной.

Компоненты Windows, использующие реестр

Компонент

Описание

Профили оборудования

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

Профили пользователей

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

Ядро Windows NT

Во время запуска ядро Windows NT (Ntoskrnl.exe) считы­вает из реестра перечень и порядок запуска загружаемых драйверов. Ядро также возвращает информацию о самом себе, например, номер версии.

Драйверы устройств

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

Программы установки

Программа установки может добавить в реестр новые настроечные данные. Она может проверить в реестре, установлен ли уже какой-либо компонент и не следует ли обновить его.

Данные об оборудовании

Каждый раз при запуске Windows собираются данные об оборудовании и конфигурации и заносятся в реестр. В компьютерах на базе х86-процессоров эта проверка осуществляется программой Ntdetect.com. В компьютерах на базе RISC-процессоров информация предоставляется встроенным программным обеспечением компьютера.

Структура реестра

Логически данные реестра делятся на две основные группы:

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

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

Редактор реестра выводит на экран содержимое базы данных реестра в виде ветвей дерева. Иерархическая структура параметров реестра напоминает представление файловой структуры в проводнике.

Основные разделы реестра имеют следующие функции:

Ветвь

Содержит

HKEY LOCAL MACHINE

(HLM)

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

HKEY USERS

(HU)

В этом разделе 2 и более подразделов:

• DEFAULT — принимаемые по умолчанию параметры профиля пользователя. Используются как часть скрытой папки системный_диск:\Documents and Settings\Default User (файл NTUSER.DAT) при начальной загрузке общего профиля и при первом входе пользователя на компьютер для создания нового локального профиля;

• SID - Имя подраздела пользователя, совпадающее с его идентификатором защиты. Здесь содержится специфическая информация пользователя, зарегистрировавшегося на компьютере (реестровая часть профиля пользователя).

HKEY CURRENT USER

(HCU)

Этот подраздел указывает на те же самые данные профиля пользователя, зарегистрировавшегося на компьютере, доступ к которым может быть осуществлен через HKEY_USERS\SID_зapeгucmpupoвaвшeгocя_noльзoвameля. Копия части реестра для пользователя, когда-либо работавшего на данном компьютере, хранится в папке системный_диск:\Documents and Settings\имя_пользователя в файле NTUSER.DAT.

HKEY CLASSES ROOT

(HCR)

• HKEY CURRENT CONFIG

Содержит информацию о приложениях, обрабатывающих файлы с определенными расширениями, и данные, ассоцииро­ванные с объектами СОМ. Эта ветвь указывает на подраздел CLASSES в разделе HLM\SOFTWARE.

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

(HCС)

Иерархия реестра

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

Компонент

Описание

Ветвь

Ветвь (или раздел ветви) аналогична корневой папке диска. Реестр содержит пять ветвей, перечисленных выше.

Куст (hive)

Это отдельный набор разделов, подразделов и парамет­ров. Каждый куст имеет соответствующий файл реестра, а также файл с расширением .log. По умолчанию боль­шинство кустов (Default, SAM, Security, System) и соответствующие файлы кустов расположены в папке Системный_каталог\System32\Config. Файлы с расшире­нием .log используются для внесения изменений в реестр и для сохранения целостности реестра.

Раздел и подраздел

Аналогичным каталогам и подкаталогам. Каждый куст может содержать разделы и подразделы точно так же, как каталог — подкаталоги.

Параметры

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

Типы данных параметров

REG_DWORD - Разрешено только одно значение — шестнадцатеричное число от 1 до 8 знаков.

REG_SZ - Разрешено только одно значение, которое интерпретируется как строка, подлежащая хранению.

REG_EXPSND_SZ - Этот тип подобен предыдущему за исключением того, что текст может содержать подстановочные переменные. Например, в строке %SystemRoot%\Ntvdm.exe вместо переменной %SystemRoot% будет подставлен путь к папке \WINDOWS.

REG_BINARY - Разрешено только одно значение, которое должно быть строкой шестнадцатеричных цифр, каждая пара которых интерпретируется как значение байта

REG_MULTY_SZ - Допускается несколько значений. Каждое является строкой, интерпретируемой как компонент MULTY_SZ. Отдельные значения отделяются друг от друга символом «нуль».

Выполнение основных операций в редакторе реестра

Задание 1. Использование утилиты Редактор реестра

Интерфейс редактора реестра

Редактор реестра размещен по пути C:\ WINDOWS \REGEDIT.EXE. Создайте для него ярлык на рабочем столе и запустите его.

Ознакомьтесь с составом команд в меню редактора. Проверьте действие команд в меню Вид.

Просмотр элементов реестра

Ознакомьтесь со структурой реестра, приняв во внимание следующие указания:

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

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

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

Раскройте раздел HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Enum\DISPLAY\Default_Monitor для определения типа используемого монитора.

Раскройте раздел

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ Fonts для ознакомления со стандартными шрифтами, инсталлированными в Windows.

Поиск информации в реестре

Выполните команду Правка|Найти и введите образец для поиска, например, PAINT, приняв во внимание следующие указания:

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

Для продолжения поиска следует нажать F3.

Экспорт информации реестра

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

Выделите раздел HKEY_CURRENT_USER\Environment

и выполните команду Реестр|Экспорт в файл. Сохраните файл под именем ENV. По умолчанию он получит расширение REG.

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

Для просмотра содержимого файла ENV.REG выделите его и щелкните по значку файла правой кнопкой мыши. В контекстном меню выберите команду ИЗМЕНИТЬ. Просмотрите установки раздела Environment. Закройте блокнот, не меняя содержимого файла ENV.REG.

Импорт информации в реестр

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

дважды щелкнуть по значку файла в проводнике;

открыть контекстное меню файла и выполнить команду Слияние;

в главном меню выполнить Файл| Слияние.

В редакторе реестра откройте раздел HKEY_CURRENT_USER\Environment. Удалите параметр ТМР.

Вернитесь в проводник к файлу ENV.REG и импортируйте его в реестр.

Проверьте восстановление информации о переменной TMP в реестре.

Билет 5

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

При планировании решаются 2 задачи: определение времени до смены текущего активного потока и выбор потока для выполнения из очереди готовых потоков. В различных условиях окружающей среды требуются различные алгоритмы планирования. Различают 3 среды:

-пакетная ОС -ОС разделенного времени -ОС реального времени В пакетной ОС: а). первый пришел – первый на выходе. Здесь ЦП выделяет потоки в порядке поступления запросов.

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

в). Гарантированное планирование:

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

В ОС реального времени:

Динамические планировщики гибко приспосабливаются к изменениям ситуаций. Диспетчеризация заключается в исполнении заданного планировщиком плана: 1). Сохранение контекста текущего потока 2). Загрузка нового потока 3). Запуск потока.

2). Реестр Windows: сведения о зарегистрированных пользователях, общих ресурсах, сетевых подключениях.

См. предыдущий билет.

Билет 6

1). Взаимодействие потоков, синхронизация, тупики.

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

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

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

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

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

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

Еще одна проблема синхронизации - взаимные блокировки, называемые также дедлоками (deadlocks), клинчами (clinch) или тупиками.

Для решения «гонок»: -Два потока А и Б не могут одновременно находится в своих критических областях.

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

2). Базовые разрешения файловой системы NTFS и их назначение.

Полномочия

Описание

Расширенные полномочия

Read (Чтение)

Разрешает пользователю просматривать содержимое данных

  • List Folder/Read Data

(Содержание папки/Чтение данных)

  • Read Attributes (Чтение атрибутов)

  • Read Extended Attributes (Чтение дополнительных атрибутов)

Read Permissions (Чтение разрешений)

Read & Execute

(Чтение и выполнение)

Разрешает пользователю запускать программный файл

  • Все перечисленные выше полномочия Read

  • Traverse Folder/Execute File (Обзор папок/Выполнение файлов)

List Folder Contens (Список содержимого папки)

Разрешает пользователю выводить на экран содержимое папки

Все перечисленные выше полномочия Read & Execute

Write (Запись)

Разрешает пользователю изменять содержимое файла

  • Create Files/Write Data (Создание файлов/Запись данных

  • Create Folders/Append Data (Создание папок/Дозапись данных)

  • Write Attributes (Запись атрибутов)

  • Write Extended Attributes (Запись дополнительных атрибутов)

Modify (Изменение)

Разрешает пользователю читать, изменять и удалять файл

  • Все перечисленные выше полномочия Read & Execute

  • Все перечисленные выше полномочия Write

  • Delete (Удаление)

Full Control (Полный доступ)

Разрешает полное управление файлом

  • Все перечисленные выше полномочия

  • Delete Subfolders and Files (Удаление подпапок и файлов)

  • Change Permissions (Смена разрешений)

  • Take Ownership (Смена владельца)

Билет 7

1). Управление оперативной памятью. Типы адресов.

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

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

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

Рис. 2.7. Типы адресов

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

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

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

2). Работа с учетными записями пользователей в командной строке.

4.10. Создайте новую учетную запись (Ваше имя) в командной строке (символ * потребует ввод пароля):

Net user Ваше имя * /add

Появится приглашение на ввод пароля. Введите пароль с подтверждением.

4.11. Выведите список всех пользователей данного компьютера:

Net user

Билет 8

1). Управление оперативной памятью. Схемы управления памятью.

Методы распределения памяти без использования дискового пространства

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

Рис. 2.8. Классификация методов распределения памяти

Распределение памяти фиксированными разделами

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

Рис. 2.9. Распределение памяти фиксированными разделами:

а - с общей очередью; б - с отдельными очередями

Подсистема управления памятью в этом случае выполняет следующие задачи:

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

осуществляет загрузку программы и настройку адресов.

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

Распределение памяти разделами переменной величины

В этом случае память машины не делится заранее на разделы. Сначала вся память свободна. Каждой вновь поступающей задаче выделяется необходимая ей память. Если достаточный объем памяти отсутствует, то задача не принимается на выполнение и стоит в очереди. После завершения задачи память освобождается, и на это место может быть загружена другая задача. Таким образом, в произвольный момент времени оперативная память представляет собой случайную последовательность занятых и свободных участков (разделов) произвольного размера. На рисунке 2.10 показано состояние памяти в различные моменты времени при использовании динамического распределения. Так в момент t0 в памяти находится только ОС, а к моменту t1 память разделена между 5 задачами, причем задача П4, завершаясь, покидает память. На освободившееся после задачи П4 место загружается задача П6, поступившая в момент t3.

Рис. 2.10. Распределение памяти динамическими разделами

Задачами операционной системы при реализации данного метода управления памятью является:

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

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

загрузка задачи в выделенный ей раздел и корректировка таблиц свободных и занятых областей,

после завершения задачи корректировка таблиц свободных и занятых областей.

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

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

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

Перемещаемые разделы

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

Рис. 2.11. Распределение памяти перемещаемыми разделами

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

Методы распределения памяти с использованием дискового пространства

Понятие виртуальной памяти

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

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

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

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

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

преобразует виртуальные адреса в физические.

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

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

Страничное распределение

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

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

Размер страницы обычно выбирается равным степени двойки: 512, 1024 и т.д., это позволяет упростить механизм преобразования адресов.

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

Рис. 2.12. Страничное распределение памяти

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

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

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

дольше всего не использовавшаяся страница,

первая попавшаяся страница,

страница, к которой в последнее время было меньше всего обращений.

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

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

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

Виртуальный адрес при страничном распределении может быть представлен в виде пары (p, s), где p - номер виртуальной страницы процесса (нумерация страниц начинается с 0), а s - смещение в пределах виртуальной страницы. Учитывая, что размер страницы равен 2 в степени к, смещение s может быть получено простым отделением k младших разрядов в двоичной записи виртуального адреса. Оставшиеся старшие разряды представляют собой двоичную запись номера страницы p.

Рис. 2.13. Механизм преобразования виртуального адреса в физический

при страничной организации памяти

При каждом обращении к оперативной памяти аппаратными средствами выполняются следующие действия:

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

из этой записи извлекается номер физической страницы,

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

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

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

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

Сегментное распределение

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

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

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

Рис. 2.14. Распределение памяти сегментами

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

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

Недостатком данного метода распределения памяти является фрагментация на уровне сегментов и более медленное по сравнению со страничной организацией преобразование адреса.

Странично-сегментное распределение

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

Рис. 2.15. Схема преобразования виртуального адреса в физический для

сегментно-страничной организации памяти

Свопинг

Разновидностью виртуальной памяти является свопинг.

На рисунке 2.16 показан график зависимости коэффициента загрузки процессора в зависимости от числа одновременно выполняемых процессов и доли времени, проводимого этими процессами в состоянии ожидания ввода-вывода.

Рис. 2.16. Зависимость загрузки процессора от числа задач и интенсивности ввода-вывода

Из рисунка видно, что для загрузки процессора на 90% достаточно всего трех счетных задач. Однако для того, чтобы обеспечить такую же загрузку интерактивными задачами, выполняющими интенсивный ввод-вывод, потребуются десятки таких задач. Необходимым условием для выполнения задачи является загрузка ее в оперативную память, объем которой ограничен. В этих условиях был предложен метод организации вычислительного процесса, называемый свопингом. В соответствии с этим методом некоторые процессы (обычно находящиеся в состоянии ожидания) временно выгружаются на диск. Планировщик операционной системы не исключает их из своего рассмотрения, и при наступлении условий активизации некоторого процесса, находящегося в области свопинга на диске, этот процесс перемещается в оперативную память. Если свободного места в оперативной памяти не хватает, то выгружается другой процесс.

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

2). Реестр Windows: работа с незарегистрированными расширениями.