Экзаменационные билеты по дисциплине «операционные системы и среды»

Вид материалаЭкзаменационные билеты
Ядро в привилегированном режиме.
Многослойная структура ОС (схема).
Микроядерная структура ОС (схема, концепция).
История развития MS DOS.
Понятие «транслятор». Виды трансляторов. Типы интерпретаторов: простой и компилирующего типа (компиляторы, интерпретаторы).
Виды трансляторов
Простой интерпретатор
Интерпретатор компилирующего типа
Состав MS DOS.
IO.sys и передает ему управление, 5. IO.sys : - загружает и настраивает MSDOS.sys
Команды работы с каталогами в MS DOS.
Команды работы с файлами в MS DOS. Типы, атрибуты файлов, шаблоны, маска ввода.
Команды MS DOS для работы с дисками. Командные файлы MS DOS.
If errorlevel
Аппаратная зависимость и переносимость.
Процессы и потоки.
Типы информационных структур для процесса (дескриптор процесса и контекст процесса). Планирование потоков. Диспетчеризация поток
Подобный материал:
1   2   3
Понятие «Ядро ОС». Ядро в привилегированном режиме (архитектура-схема).

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

Ядро в привилегированном режиме.

Для надежного управления ходом выполнения приложений операционная система должна иметь по отношению к приложениям определенные привилегии. Иначе некорректно работающее приложение может вмешаться в работу ОС и, например, разрушить часть ее кодов. Аппаратура компьютера должна поддерживать как минимум два режима работы — пользовательский режим (user mode) и привилегированный режим, который также называют режимом ядра (kernel mode), или режимом супервизора (supervisor mode). Подразумевается, что операционная система или некоторые ее части работают в привилегированном режиме, а приложения — в пользовательском режиме. Так как ядро выполняет все основные функции ОС, то чаще всего именно ядро становится той частью ОС, которая работает в привилегированном режиме (рис. 3.3). Иногда это свойство — работа в привилегированном режиме — служит основным определением понятия «ядро».
  1. Многослойная структура ОС (схема).

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



  1. Микроядерная структура ОС (схема, концепция).

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

Одной из основных задач микроядра ОС является обеспечение такого обмена, так как только в привилегированном режиме возможно обращение к «чужим» областям памяти. Все обмены между серверами или между серверами и приложениями пользователей производятся через микроядро в форме сообщений-запросов и сообщений-ответов. Работа микроядерной ОС соответствует модели «клиент-сервер», а роль транспортных средств выполняет микроядро.

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

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

Обычная проблема разработчиков ОС – что включить в микроядро. В частности, в Windows NT в микроядро включено очень многое, и она переносится только на похожие архитектурные платформы.
  1. История развития MS DOS.

MS-DOS (англ. Microsoft Disk Operating System — дисковая ОС от Microsoft) — коммерческая операционная система фирмы Microsoft для персональных компьютеров. MS-DOS — самая известная ОС из семейства DOS, ранее устанавливаемая на большинство IBM PC-совместимых компьютеров. Со временем она была вытеснена ОС семейства Windows 9x и Windows NT.MS-DOS была создана в 1981 году и, в ходе её развития, было выпущено восемь крупных версий (1.0, 2.0 и т. д.) и два десятка промежуточных (3.1, 3.2 и т. п.), пока в 2000 году Microsoft не прекратила её разработку. Это был ключевой продукт фирмы, дававший ей существенный доход и маркетинговый ресурс, в ходе развития Microsoft от разработчика языка программирования до крупной компании, производящей самое разнообразное программное обеспечение.Последняя официальная версия 6.22. Однако существует версия 7.1 в виде ядра Windows 98, которая загружается на начальном этапе загрузки системы. В 1980 году Тимом Патерсоном (англ.) из Seattle Computer Products (англ.) была создана QDOS (англ. Quick and Dirty Operating System). Она продавалась SCP под названием 86-DOS (англ.), так как была создана для процессора Intel 8086. В основном QDOS базировалась на наиболее известной ОС того времени — CP/M, созданной компанией Digital Research, однако использовала другую файловую систему. Microsoft приобрела лицензию 86-DOS за $25 000 и передала её IBM в декабре 1980 года. А в июле 1981 года, незадолго до выпуска PC, полностью выкупила права на 86-DOS, доплатив еще $50 000.

  1. Понятие «транслятор». Виды трансляторов. Типы интерпретаторов: простой и компилирующего типа (компиляторы, интерпретаторы).

Трансля́тор —Программа или техническое средство, выполняющее трансляцию программы.

Виды трансляторов

Трансляторы подразделяют-

Адресный. Функциональное устройство, преобразующее виртуальный адрес в реальный адрес.

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

Многопроходной. Формирует объектный модуль за несколько просмотров исходной программы.

Обратный. То же, что детранслятор.

Однопроходной. Формирует объектный модуль за один последовательный просмотр исходной программы.

Оптимизирующий. Выполняет оптимизацию кода в создаваемом объектном модуле.

Синтаксически-ориентированный. Получает на вход описание синтаксиса и семантики языка и текст на описанном языке, который и транслируется в соответствии с заданным описанием.

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

Интерпрета́тор— Программа или техническое средство, выполняющее интерпретацию.

Простой интерпретатор -анализирует и тут же выполняет (собственно интерпретация) программу покомандно (или построчно), по мере поступления её исходного кода на вход интерпретатора. Достоинством такого подхода является мгновенная реакция. Недостаток — такой интерпретатор обнаруживает ошибки в тексте программы только при попытке выполнения команды (или строки) с ошибкой.

Интерпретатор компилирующего типа — это система из компилятора, переводящего исходный код программы в промежуточное представление, например, в байт-код или p-код, и собственно интерпретатора, который выполняет полученный промежуточный код (так называемая виртуальная машина). Достоинством таких систем является большее быстродействие выполнения программ (за счёт выноса анализа исходного кода в отдельный, разовый проход, и минимизации этого анализа в интерпретаторе).
  1. Состав MS DOS.

MS DOS состоит из следующих составных частей:

-программа начальной загрузки (Boot Record);

-базовая система ввода/вывода (BIOS), состоящая из двух частей:

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

файл IO.SYS, содержащий подпрограммы ввода/вывода для конкретной реализации, которые используют или заменяют программы, находящиеся в BIOS. Файл IO.SYS вместе с файлом MSDOS.SYS составляют системное ядро ОС.

файл MSDOS.SYS - часть системного ядра, отвечающая за:

управление файлами;

управление ресурсами сети;

обработку ошибок;

запуск и завершения выполнения программы

командный процессор - файл COMMAND.COM, который организует интерфейс (то есть взаимодействие) с пользователем путем обработки команд, которые выдают ему пользователь (на клавиатуре в виде командной строки) и прикладные программы

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

файл AUTOEXEC.BAT, служащий для загрузки прикладных программ (например, Norton Commander) сразу же после загрузки ОС
  1. Начальная загрузка MS DOS (структурная схема).

1. При включении PC вначале выполняются программы BIOS.

2. После тестирования и др.действий процедура POST(из модуля BIOS)

осуществляет поиск и загрузку блока начальной загрузки :

- вначале производится поиск на устройстве A:

(если не найдено - поиск на устройстве C:,если не найдено,

то вызывается встроенный в ПЗУ BASIC или производятся

другие действия,”указанные” в ПЗУ)

3. Блок начальной загрузки производит поиск в корневом каталоге

системной дискеты(диска) файлов IO.sys и MSDOS.sys(эти файлы должны

быть первыми и именно в таком порядке),

4. Блок начальной загрузки производит загрузку файла IO.sys и передает

ему управление,

5. IO.sys :

- загружает и настраивает MSDOS.sys,

- определяет состояние подключенных устройств,

- инициализирует подключенные устройства,

- загружает необходимые драйверы устройств,

- передает управление MSDOS.sys.

6. MSDOS.sys :

- инициализирует(настраивает) свои внутренние рабочие таблицы,

- загружает драйверы, указанные в файле config.sys,

- загружает командный процессор(файл COMMAND.com)

7. Командный процессор “выполняет” команды, указанные в файле

autoexec.bat

8. Командный процессор выдает на экран Монитора системную подсказку

MS DOS и ожидает команд Пользователя.


  1. Команды работы с каталогами в MS DOS.

Вторая группа команд работает с каталогами устройств прямого доступа (дисков и дискет). Они обеспечивают смену текущего каталога (CD), создание (MD), удаление (RD) и переименование (REN) каталогов и просмотр их содержимого (DIR).
  1. Команды работы с файлами в MS DOS. Типы, атрибуты файлов, шаблоны, маска ввода.

Третью группу составляют команды работы с файлами и устройствами последовательного доступа. Здесь основной командой выступает команда копирования файлов (COPY). Кроме того, сюда относятся команды удаления (DEL), переименования–переноса файлов (REN) и просмотра текстовых файлов на системном устройстве вывода (TYPE). В этой группе команд возможно использование как имен файлов, так и шаблонов имен, для применения команды к перечню файлов, имена которых удовлетворяют заданному шаблону. Протокол работы команд обычно выводится на системное устройство вывода, хотя возможно переопределение стандартных вводных и выводных потоков на другие устройства последовательного доступа или файлы.
  1. Команды MS DOS для работы с дисками. Командные файлы MS DOS.

Транзитные команды

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

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

Стандартно составленные утилиты, при запуске с ключом /? или /Help сообщают правильный вид запуска (список параметров).

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

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

.exe – для файлов с оттранслированными программами (в машинных кодах);

.com – для файлов с программами в машинных кодах, организованных специальным образом, длинной не более страницы памяти (64 Кбайт), и содержащих обычно служебные программы самой DOS;

.bat – для текстовых файлов, содержащих цепочки команд для самого командного процессора – командные файлы.

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

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

В качестве команд используемых только в командных файлах отметим команды:

ECHO – вывод строки на экран; PAUSE – ожидание нажатия какой-либо клавиши; REM – комментарий в командном файле; GOTO – переход на метку; IF – проверка условия для организации ветвления; FOR – управление повторного выполнения команд (цикл); SHIFT – сдвиг списка формальных параметров. Ниже приведены более подробные описания некоторых из этих команд.

ECHO off – последующие строки не будут отображаться на дисплее при выполнении командного файла.

ECHO on – последующие строки будут отображаться на дисплее при выполнении командного файла.

@ ECHO off – эта и последующие строки не будут отображаться на дисплее при выполнении командного файла.

ECHO Включите принтер! – на экране появится сообщение:

Включите принтер!

REM Этот командный файл запускать только по пятницам.

Пример использование команды GOTO имеет смысл вместе с условием IF (см. ниже).

Команда IF имеет три модификации по виду проверяемого условия

1. Проверка кода завершения какой-либо программы

IF ERRORLEVEL – проверяется код завершения последней программы. Если он больше или равен числу N, условие считается выполненным (истинным).

2. Проверка наличия файла

IF EXIST <имя файла или шаблон> – если существует файл с указанным именем, условие считается истинным.

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

IF %= = <текстовая строка> – если строки посимвольно совпадают полностью, условие считается истинным.

Пример печати причины завершения задачи Program.exe по ее коду завершения (код должен быть сформирован внутри задачи), оформленный командным файлом Result.bat.

Program.exe

If Errorlevel 4 Goto M4

If Errorlevel 3 Goto M3

If Errorlevel 2 Goto M2

If Errorlevel 1 Goto M1

If Errorlevel 0 Goto OK

Echo Неизвестная ошибка в программе

Goto End

:M1

Echo Ошибка по недопустимой операции с плавающей точкой

Goto End

:M2

Echo Ошибка по переполнению операции с фиксированной точкой

Goto End

:M3

Echo Ошибка по отсутствию данных

Goto End

:M4

Echo Ошибка по защите памяти

Goto End

: OK

Программа закончилась без ошибок

:End

Пример организации цикла. Пусть надо часто копировать файлы с именами PROG.C, PROG.OBJ и PROG.EXE из текущего каталога на дискету A: или B: (по заказу пользователя). Тогда командный файл Save.bat может содержать:

For %%A in (C,OBJ,EXE) Do Copy PROG.%%A %1:

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

Save b

Команда SHIFT вызывает сдвиг списка формальных параметров относительно списка фактических параметров (каждое использование – на 1 параметр). Например, для копирования в каталог ARCHIV диска E: произвольного перечня файлов, можно составить командный файл CopyArc.Bat следующего содержания:

ECHO OFF

: Loop

Copy %1 E:\ARCHIV

SHIFT

GOTO Loop

Вызов для копирования 4 файлов делается следующим:

CopyArc File1.txt Prog2.c Prog1.doc MyProg.exe

(При этом командный файл закончится сообщением об ошибке после копирования 4-го файла.)
  1. FAR Manager. Создание каталогов и файлов.

Far Manager — консольный файловый менеджер для операционных систем семейства Windows. Программа предоставляет удобный интерфейс пользователя для работы с файловыми системами (реальными и эмулированными) и файлами:

просматривать файлы и каталоги;

редактировать, копировать и переименовывать файлы;

и многое другое.

  1. Аппаратная зависимость и переносимость.

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

Типовые средства аппаратной поддержки ОС

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

средства поддержки привилегированного режима;

средства трансляции адресов;

средства переключения процессов;

система прерываний;

системный таймер;

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

Мультипрограммирование — способ организации выполнения нескольких программ на одном компьютере. Разделяют мультипрограммирование в пакетных системах, системах реального времени и мультипрограммирование в системах разделения времени.
  1. Процессы и потоки.

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

Планирование процессов и потоков

Подсистема управления процессами и потоками в ОС ответственна за обеспечение процессов необходимыми ресурсами

ОС использует специальные информационные структуры, для хранения информации о том какие ресурсы выделены каждому процессу

Понятие процесс (задача) и поток (нить)

Понятие синхронизации потоков

Планирование и диспетчеризация потоков

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

Задачи планирования:

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

Выбор для выполнения потока из очереди готовых потоков

Диспетчеризация - это реализация решения, найденного в результате планирования

Задачи диспетчеризации:

Сохранение контекста текущего потока

Загрузка контекста нового потока

Запуск нового потока на выполнение

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