Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка - ОС(Шпак).docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
255.57 Кб
Скачать

Выбор варианта домашней контрольной работы

Вариант контрольной работы определяется в зависимости от номера по журналу.

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

Список рекомендуемой литературы Основной

Попов И.И. Операционные системы, среды и оболочки / И.И. Попов, Т.Л. Партыка. ‑ М., 2006.

Танненбаум Э. Современные операционные системы.- (Можно скачать в Интернете) .- Питер, 2002. -1036 стр.

Робачевский А.М. Операционная система UNIX: Учеб. пособие для вузов.- СПБ: BHV-СПБ, 2000.- 514с.

Синицын С.В. и др. Операционные системы, Москва, Издательский центр «Академия» ,2010 . 295 с.

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

Домашняя контрольная работа должна состоять из:

- титульного листа (приложение 1);

- ответа на вопрос раздела 1 приблизительно 1 страница машинописного текста;

- раздела 2, состоящего из 1) разработанной с помощью Debug программы, выполняющей вывод на экран текста с Вашей фамилией и последующее вычисление выражения Y=[(X1+X2)X3-X4]/X5: где XI - Х5  -  десятичные целые числа, взятые в соответствии с номером вашего варианта. Результаты должны быть объяснены и представлены также в виде скриншотов выполнения; 2) диаграммы и расчетов по заданным Вам алгоритмам планирования работы процессора; 3) расчета системной и пользовательской области логического раздела диска;

- раздела 3, где выполнен согласно Вашему варианту пакетный файл;

- итогового раздела 4 по проверке знаний 1-го семестра.

Раздел 1. Теоретические вопросы

  1. Дайте определение операционной системы как класса ПО.

  2. Приведите основные критерии классификации ОС.

  3. Охарактеризуйте основные функции, выполняемые ОС.

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

  5. Дайте определение файла, перечислите его основные характеристики, виды.

  6. Дайте определение процесса.

  7. Приведите основные критерии классификации процессов.

  8. Дайте определение ресурса, приведите классификацию ресурсов.

  9. Опишите основные стратегии управления процессами.

  10. Дайте определение интерфейса.

  11. Приведите описания основных видов интерфейса.

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

  13. Дайте определение, опишите предназначение и функции, выполняемые командным процессором.

  14. Дайте определение драйвера и опишите его функции.

  15. Дайте определение защищенной оперативной памяти.

  16. Опишите пользовательский режим исполнения программ.

  17. Опишите привилегированный режим исполнения программ.

  18. Дайте понятие файловой системы. Опишите структуру файловой системы FAT.

  19. Опишите утилиту Диспетчер задач из состава ОС Windows XP.

  20. Дайте определение программы оболочки и опишите возможности основных представителей этого типа ПО.

Раздел 2. Оформление практических работ

ЛАБОРАТОРНАЯ РАБОТА N 1. Работа с машинными командами и командами ассемблера с помощью отладчика DEBUG

Цель работы: выполнить задания по ОС в среде отладчика

Краткие теоретические сведения

DEBUG.EXE - специальная программа, входящая в состав утилит MS-DOS, для ввода и пошагового выполнения программ, написанных на машинном языке или с помощью команд ассемблера. Почему программа называется DEBUG? "Bugs" (дословно "насекомые") в переводе со слэнга программистов означает "ошибки в программе". В соответствии с компьютерным фольклором термин "debugging" (дословно "обезжучивание", "обезнасекомливание") появился в то время, когда перестал работать компьютер Гарвардского университета "Марк I". После долгих поисков техники обнаружили источник своих бед - небольшую моль, попавшую между контактами реле. Они удалили моль и внесли запись в сменный журнал о процессе под названием "debugging", произведенным над "Марком I"

Программа DEBUG позволяет:

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

  1. производить арифметические действия над шестнадцатиричными числами;

  1. вводить данные в регистры и в ячейки оперативной памяти;

  1. вводить программу в виде машинных кодов, а также в ассемблерном виде в ячейки оперативной памяти и выполнять ее;

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

Отладчик DEBUG имеет командный интерфейс. Это значит, что при запуске и после выполнения очередной инструкции появляется символ "-", означающий, что программа ждет ввода очередной инструкции. После ввода инструкции нужно нажать символ Enter. Рассмотрим далее некоторые наиболее часто используемые инструкции DEBUG и их упрощенные форматы:

  1. Q - выход из программы.

2. ? - получение справки.

3. H (Hexarithmetic) - шестнадцатиричная арифметика. Если после символа H набрать 2 числа (размером не более 4 цифр каждое) через пробел, то получим сумму и разность набранных чисел.

  1. R [<имя регистра>] - работа с регистрами. Инструкция "R" без параметра позволяет просмотреть содержимое всех регистров, а также значение флагов и команду, расположенную по смещению 100 в сегменте кода. Обычно по смещению 0100 находится первая команда программы. С помощью инструкции "R <имя регистра>" можно ввести новое значение в один регистр.

  1. U [<сегментный регистр>:]<смещение> - просмотр ячеек оперативной памяти, начиная с указанного смещения в сегменте, заданном сегментным регистром.

  1. E [<сегментный регистр>:]<смещение> - запись информации в ячейки оперативной памяти.

DEBUG может быть использован как интерпретатор, чтобы работать непосредственно с микропроцессором. Можно задавать машинные команды, записывать их в определенное место оперативной памяти, обычно, начиная с 0100 смещения относительно начала кодового сегмента. Затем выполнять пошагово (т.е. по одной команде) либо сразу всю программу. Так как микропроцессор понимает только двоичные числа (сокращенно можно их записать шестнадцатиричными), то и коды машинных команд записываются в виде шестнадцатиричных чисел, причем команды бывают однобайтовые, двубайтовые, трехбайтовые и т.д. Например, команда для сложения значений из регистров AX и BX двубайтовая и имеет машинный код 01D8. А машинная команда записи слова из регистра AX в стек - однобайтовая и имеет код 50. Инструкция "E <смещение>" при работе распечатывает в следующей после ее ввода строке адрес, состоящий из двух чисел, и старое значение байта по этому адресу:

<содержимое CS>:<смещение> <значение байта>,

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

7. T - запуск программы, находящейся в оперативной памяти по адресу 0100, в пошаговом режиме. Для вызова программы на выполнение нужно предварительно позаботиться, чтобы в регистре IP (счетчик команд) было число 0100.

  1. А <смещение> - ввод машинных команд в ассемблерном виде в сегмент кода. Первую команду программы следует начинать вводить со смещения 0100. Далее система ждет поочередного ввода команд Ассемблера. Для окончания ввода нужно нажать Enter после пустой строки.

  1. G - запуск программы, находящейся в оперативной памяти по адресу 0100. Для вызова программы на выполнение нужно предварительно позаботиться, чтобы в регистре IP (счетчик команд) было число 0100.

  1. N <имя .сom-файла> - задает имя программы для последующей записи ее на диск либо считывания с диска. Перед записью предварительно нужно записать 0 в регистр BX, а размер программы (в байтах) - в регистр CX.

  1. W - запись программы на диск. После выполнения инструкции "W" на диске в текущей директории появится файл с расширением .COM - точная копия введенной Вами в оперативную память программы. Эту программу можно запустить непосредственно из DOS.

  1. L - загрузка программы с диска в оперативную память. Предварительно имя программы задается с помощью инструкции "N". Для выполнения этой лабораторной работы понадобится несколько команд ассемблера:

MOV AH,<шестнадцатиричное число> - запись в регистр AH числа 02 для указания системной функции - вывод символа на экран;

MOV DL,<шестнадцатиричное число> - запись в регистр DL кода символа;

INT 21 - основное прерывание DOS (процедура), реализующее много различных функций; номер функции записывается предварительно в регистр AH; для распечатки символа на экране - в регистре AH функция 02, при этом в DL записывают предварительно код символа.

INT 20 - прерывание DOS, осуществляющее выход из программы (из .COM-программы).

Пример.

Вывести символ "*" на экран.

mov AH, 02 ; системная функция 02 - вывод символа на экран

mov DL, 2A ; ASCII-код звездочки

int 21h ; прерывание для вывода "*"

int 20h ; выход из программы

Замечание.

Обратите внимание, что при вводе ассемблерных программ в DEBUG числа воспринимаются как шестнадцатиричные (команда 2 в примере). В дальнейшем при работе в Turbo Assembler для указания, что число шестнадцатиричное, после него записывается буква "h".

Задание к лабораторной работе.

1. Посмотрите и запишите в протокол содержимое оперативной памяти по абсолютному (физическому) адресу:

 413 (запишите значение слова по этому адресу и соответствующее ему значение размера основной (стандартной) памяти). Объясните результат.

-d 0:413 280 (16)

280 (16) -> 1010000000 (2)

 FE000h (серийный номер компьютера и информацию о BIOS).

Fe000

-d F000: E000 -d FDFF0:00010 -d Fd00:1000

 FFFF5h (дата BIOS вашего компьютера)

-d ffff:5

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

Первое число – (9)

Втрое число – (Буква Д = 1000 0100 (2), отрицательно 0111 1011+1=0111 1100 (2)) в 16-ричной будет (7с)

Сумма 9+7с ==== 0085 ======== 1* 2^7 + 1* 2^2 + 1* 2^0=133

Разность 9-7с ==== ff8d ======== 65421

    1. Запишите в регистр AX первое число (из задания 2), а в регистр BX - второе (из задания 2). Введите в оперативную память в сегмент кода (смещение 100) машинную команду 01d8. Посмотрите на экране и запишите в протокол ее ассемблерную форму. Выполните эту команду, результат переведите в десятичную форму.

предварительно проверили, чтобы в регистре IP (счетчик команд) было число 0100,

r ax

r bx

e 100

e 101

AX=0085, следовательно машинный код 01d8 означает сложения значений из регистров AX и BX. AX в десят. виде = 128.

    1. Введите в оперативную память в сегмент кода (смещение

  1. набор команд ассемблера для распечатки символа на экране - первой буквы вашей фамилии. Для получения кода буквы можно воспользоваться утилитой DOS tabl.exe. Проверьте программу в DEBUG. Затем запишите ее на диск в виде .COM-файла. Чему равен размер программы? Запустите ее на выполнение из DOS.

Вводим a 100, затем

mov AH, 02 ; системная функция 02 - вывод символа на экран

mov DL, 84 ; ASCII-код буквы "Д"

int 21h ; прерывание для вывода "Д"

int 20h ;выход из программы.

Вводим g предварительно проверив, чтобы в регистре IP (счетчик команд) было число 0100.

И на экран выводится буква "Д"!

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

n first.com,

затем предварительно нужно записать 0 в регистр BX, а размер программы (в байтах) - в регистр CX.

r bx 'Enter' 0

r cx 'Enter' 8

W - запись программы на диск. После выполнения инструкции "W" на диске в директории C:\Documents and Settings\[ ] появился файл с расширением .COM - точная копия введенной в оперативную память программы. Эту программу можно запустить непосредственно из DOS.

5. Просмотрите содержимое регистров микропроцессора до начала выполнения задания 4 и после его завершения и выпишите их в протокол. Какую функцию выполняет каждый из регистров?

вводим r. На экран выводится содержимое всех регистров. Разница до выполнения первого упражнения и после – изменяется значение в последней строчке:

до - 1553:0100 add

[bx+si], al

после - 1553:0100 B402

MOV

AH,02

по команде a (адрес отсутствует; при старте отладчика по традициям, восходящим к CP/M, он устанавливается равным 100h) Debug переходит в режим приема программы в мнемониках ассемблера.

Набираемая нами программа копирует содержимое точки останова из байта с номером 106 в свободный байт 109 через регистр микропроцессора al [5]. В «подопытном» байте памяти 106 поместим однобайтовую инструкцию nop (нет операции), которая отличается тем, что ничего не делает. Наконец, завершается программа командой INT 20, которая, как мы уже знаем, организует по завершении программы выход в операционную систему. Заметим, что для прекращения набора нажатием <Enter> вводится пустая строка (см. строку с адресом 109).

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

Запустим программу командой g. Появившийся на экране текст свидетельствует о том, что программа проработала и завершилась нормально. Проверим результат, набрав u100: байт с номером 109 приобрел значение 90 – не что иное, как код команды nop. Мы не увидели ничего неожиданного – произошло обычное копирование байта.

Самое интересное начинается дальше. Введем команду g=100 106, которая расшифровывается так: запустить программу с адреса 100, установив в качестве контрольной точки адрес 106. Программа выполнится, и остановка произойдет в контрольной точке 106: это видно из последней выведенной строки, где всегда отображается команда, которая будет исполняться следующей. Но зато содержимое адреса 109 теперь уже не 90, а CC, что является именно кодом команды INT 3.

Разработайте с помощью Debug программу, выполняющую вывод на экран текстового сообщения и последующее вычисление выражения Y=[(X1+X2)X3-X4]/X5: где XI - Х5  -  десятичные целые числа, взятые в соответствии с номером вашего варианта из таблицы. Структура выходного сообщения программы: "Программа вычисления выражения Y=[(X1+X2)X3-X4]/X5 , где Х1=..., Х2-=..., Х3=..., Х4-.., Х5=..." Вместо точек должны выводиться заданные числа (в шестнадцатеричной системе). Результат вычисления выражения программа помещает в регистры АХ и DX. Поэтому этот результат можно наблюдать только при запуске программы из DEBUG (при возврате в DOS содержимое регистров теряется). Результат выполнения работы оформляется в виде *.соm - файла.

Лабораторная работа 2. Планирование работы процессора

(Задание выполняется на дисциплинах, выданных преподавателем на лабораторных занятиях)

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

Общие сведения о планировании заданий

Функцией службы управления процессом является распределение аппаратных ресурсов центрального процессора.

Можно выделить следующие компоненты этой службы:

– планировщик заданий,

– планировщик задач (планировщик процессов).

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

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

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

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

В случае мультипрограммирования планировщик заданий выбирает несколько заданий из множества всех представленных и вводит их в систему. Для каждого задания формируется таблица задания JCB (Job Control Block). Пример таблицы задания приведен на рис. 1.

Идентификатор задания –

Количество шагов –

1

приоритет –

объем памяти –

число внешних устройств –

предполагаемое время выполнения –

признаки выполнения задачи –

2

.

.

N

признаки выполнения задачи –

Рис. 1. Таблица задания.

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

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

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