Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УМКДО_СистПрог_2016.doc
Скачиваний:
8
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

5.3. Результаты работы программы

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

-----------------------------------------------------------------------------

------------ Лабораторная работа N13 ---------------

------------ Управление памятью. ---------------

Таблица векторов прерывания.

Номер - Адрес - Чем_занят

INT 00h - 0BB0:0125 - TC_LAB13

INT 01h - 0070:06F4 - Занят Bios/Dos

INT 02h - 03DA:0016 - Занят Bios/Dos

INT 03h - 0070:06F4 - Занят Bios/Dos

INT 04h - 0070:06F4 - Занят Bios/Dos

INT 05h - F000:FF54 - Занят Bios/Dos

INT 06h - F000:EB43 - Занят Bios/Dos

INT 07h - F000:EAEB - Занят Bios/Dos

INT 08h - 0ACF:013D - COPY_ECR

INT 09h - 0ACF:0117 - COPY_ECR

INT 0Ah - 03DA:0057 - Занят Bios/Dos

INT 0Bh - 03DA:006F - Занят Bios/Dos

INT 0Ch - 03DA:0087 - Занят Bios/Dos

INT 0Dh - 03DA:009F - Занят Bios/Dos

INT 0Eh - 03DA:00B7 - Занят Bios/Dos

INT 0Fh - 0070:06F4 - Занят Bios/Dos

INT 10h - 057A:035B - KEYRUS

Клавиши управления: <Up>,<Dn>,<Home>,<End>,<PgUp>,<PgDn>,<Esc>

МАТЕРИАЛЫ ДЛЯ ОРГАНИЗАЦИИ И УПРАВЛЕНИЯ САМОСТОЯТЕЛЬНОЙ РАБОТОЙ ОБУЧАЮЩИХСЯ:

Задания для СРСП

Задание для СРСП №1 (1-3 неделя, 7часов)

№

Вариант

1

Функция - Copies(s,s1,n). Назначение - копирование строки s в строку s1 n раз

2

Функция - Words(s). Назначение - подсчет слов в строке s

3

Функция - Concat(s1,s2). Назначение - конкатенация строк s1 и s2 (аналогичная библиотечная функция C - strcat)

4

Функция - Parse(s,t). Назначение - разделение строки s на две части: до первого вхождения символа t и после него

5

Функция - Center(s1,s2,l). Назначение - центрирование - размещение строки s1 в середине строки s2 длиной l

6

Функция - Delete(s,n,l). Назначение - удаление из строки s подстроки, начиная с позиции n, длиной l (аналогичная библиотечная Функция есть в Pascal).

7

Функция - Left(s,l). Назначение - выравнивание строки s по левому краю до длины l.

8

Функция - Right(s,l) Назначение - выравнивание строки s по правому краю до длины l.

9

Функция - Insert(s,s1,n). Назначение - вставка в строку s подстроки s1, начиная с позиции n (аналогичная библиотечная функция есть в Pascal).

10

Функция - Reverse(s). Назначение - изменение порядка символов в строке s на противоположный.

11

Функция - Pos(s,s1). Назначение - поиск первого вхождения подстроки s1 в строку s (аналогичная функция C - strstr).

12

Функция - LastPos(s,s1). Назначение - поиск последнего вхождения подстроки s1 в строку s.

13

Функция - WordIndex(s,n). Назначение - определение позиции начала в строке s слова с номером n.

14

Функция - WordLength(s,n). Назначение - определение длины слова с номером n в строке s.

15

Функция - SubWord(s,n,l). Назначение - выделение из строки s l слов, начиная со слова с номером n.

16

Функция - WordCmp(s1,s2). Назначение - сравнение строк (с игнорированием множественных пробелов).

17

Функция - StrSpn(s,s1). Назначение - определение длины той части строки s, которая содержит только символы из строки s1.

18

Функция - StrCSpn(s,s1). Назначение - определение длины той части строки s, которая не содержит символы из строки s1.

19

Функция - Overlay(s,s1,n). Назначение - перекрытие части строки s, начиная с позиции n, строкой s1.

20

Функция - Replace(s,s1,s2). Назначение - замена в строке s комбинации символов s1 на s2.

21

Функция - Compress(s,t). Назначение - замена в строке s множественных вхождений символа t на одно.

22

Функция - Trim(s). Назначение - удаление начальных и конечных пробелов в строке s.

23

Функция - StrSet(s,n,l,t). Назначение - установка l символов строки s, начиная с позиции n, в значение t.

23

Функция - Space(s,l). Назначение - доведение строки s до длины l путем вставки пробелов между словами.

24

Функция - Findwords(s,s1). Назначение - поиск вхождения в строку s заданной фразы (последовательности слов) s1.

25

Функция - StrType(s). Назначение - определение типа строки s (возможные типы - строка букв, десятичное число, 16-ричное число, двоичное число и т.д.).

26

Функция - Compul(s1,s2). Назначение - сравнение строк s1 и та s2 с игнорированием различий в регистрах.

27

Функция - Translate(s,s1,s2). Назначение - перевод в строке s символов, которые входят в алфавит s1, в символы, которые входят в алфавит s2.

28

Функция - Word(s). Назначение - выделение первого слова из строки s.

Примечание: под "словом" везде понимается последовательность символов, которая не содержит пробелов.

Задание для СРСП №2 (3-5 неделя, 8часов)

№

Вид матрицы

1

все нулевые элементы размещены в левой части матрицы

2

все нулевые элементы размещены в правой части матрицы

3

все нулевые элементы размещены выше главной диагонали

4

все нулевые элементы размещены в верхней части матрицы

5

все нулевые элементы размещены в нижней части матрицы

6

все элементы нечетных строк - нулевые

7

все элементы четных строк - нулевые

8

все элементы нечетных столбцов - нулевые

9

все элементы четных столбцов - нулевые

10

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

11

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

12

все нулевые элементы размещены на местах с четными индексами строк и столбцов

13

все нулевые элементы размещены на местах с нечетными индексами строк и столбцов

14

все нулевые элементы размещены выше главной диагонали на нечетных строках и ниже главной диагонали - на четных

15

все нулевые элементы размещены ниже главной диагонали на нечетных строках и выше главной диагонали - на четных

16

все нулевые элементы размещены на главной диагонали, в первых 3 строках выше диагонали и в последних 3 строках ниже диагонали

17

все нулевые элементы размещены на главной диагонали и в верхней половине участка выше диагонали

18

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

19

все нулевые элементы размещены в верхней и нижней четвертях матрицы (главная и побочная диагонали делят матрицу на четверти)

20

все нулевые элементы размещены в левой и правой четвертях матрицы (главная и побочная диагонали делят матрицу на четверти)

21

все нулевые элементы размещены в левой и верхней четвертях матрицы (главная и побочная диагонали делят матрицу на четверти)

22

все нулевые элементы размещены на строках, индексы которых кратны 3

23

все нулевые элементы размещены на столбцах, индексы которых кратны 3

24

все нулевые элементы размещены на строках, индексы которых кратны 4

25

все нулевые элементы размещены на столбцах, индексы которых кратны 4

26

все нулевые элементы размещены попарно в шахматном порядке (сначала 2 нулевых)

27

матрица поделена диагоналями на 4 треугольники, элементы верхнего и нижнего треугольников нулевые

28

матрица поделена диагоналями на 4 треугольники, элементы левого и правого треугольников нулевые

29

матрица поделена диагоналями на 4 треугольника, элементы правого и нижнего треугольников нулевые

30

все нулевые элементы размещены квадратами 2х2 в шахматном порядке

Исполнителю самому надлежит выбрать, будут ли начинаться индексы в матрице с 0 или с 1.

  • матрица содержит нули ниже главной диагонали;

  • индексация начинается с 0.

Задание для СРСП №3 (6-7 неделя, 7часов)

№

Прикладная область

Атрибуты информации

1

Отдел кадров

фамилия сотрудника, имя, отчество, должность, стаж работы, оклад

2

Красная книга

вид животного, род, семейство, место обитания, численность популяции

3

Производство

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

4

Персональные ЭВМ

фирма-изготовитель, тип процессора, тактовая частота, емкость ОЗУ, емкость жесткого диска

5

Библиотека

автор книги, название, год издания, код УДК, цена, количество в библиотеке

6

Спутники планет

название, название планеты-хозяина, год открытия, диаметр, период обращения

7

Радиодетали

обозначение, тип, номинал, количество на схеме, обозначение возможного заменителя

8

Текстовые редакторы

наименование, фирма-изготовитель, количество окон, количество шрифтов, стоимость

9

Телефонная станция

номер абонента, фамилия, адрес, наличие блокиратора, задолженность

10

Быт студентов

фамилия студента, имя, отчество, факультет, размер стипендии, число членов семьи

11

Спортивные соревнования

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

12

Соревнование факультетов по успеваемости

факультет,количество студентов, средний балл по факультету, число отличников, число двоечников

13

С/х работы

фамилия студента, имя, отчество, факультет, вид работ, заработок

14

Сельхозработы

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

15

Сведения о семье

фамилия студента, имя, отчество, факультет, специальность отца, специальность матери, количество братьев и сестер

16

Скотоводство

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

17

Микросхемы памяти

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

18

Описание изображения

тип фигуры (квадрат, окружность и т.п.), координаты на плоскости, числовые характеристики (длина строрны, радиус и т.п.).

19

Лесное хозяйство

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

20

Городской транспорт

вид транспорта, номер маршрута, начальная остановка, конечная остановка, время в пути

21

Университет

ФИО и должность преподавателя, названиепредмета, количество часов, тип контроля

22

Оптовая база

название товара, количество на складе, стоимость единицы, название поставщика, срок поставки

23

Сеть магазинов

номер, название, адрес, телефон магазина, ФИО, адрес, капитал владельцев магазина.

24

Авторемонтные мастерские

номер, марка, мощность и цвет автомобиля, ФИО и квалификация механика, тип работ

253

Зоопарк

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

26

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

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

27

Поликлиника

ФИО и дата рождения пациента, ФИО, должность и специализация лечащего врача, диагноз

28

Домоуправление

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

29

Аэропорт

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

30

Шахматы

ФИО спортсмена, дата рождения, страна, спортивный разряд, участвовал ли в борьбе за звание чемпиона мира, рейтинг,

31

Ипподром

кличка лошади, масть, возраст, рейтинг, вид забега, фамилия наездника, занятое место

32

Малые планеты

Название, название планеты-хозяина (для спутников), дата открытия, диаметр, период обращения

33

Автотранспортное предприятие

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

Задание для СРСП №4 (8-10 неделя, 8часов)

 Nп/п 

"Горячая" комбинация/

Клавиша, которая блокируется

 Shift 

 Ctrl 

 Alt 

 Fxx 

 Лев. 

 Пр. 

 Лев. 

 Пр. 

 Лев. 

 Пр. 

 1 

 +  

 +  

 

 

 

 

 F1 

 1 

 2 

 +  

 

 +  

 

 

 

 F2 

 2 

 3

 

 + 

 

 

 + 

 

 F3 

 3 

 4

 + 

 

 

 

 + 

 

 F4 

 4

 5

 + 

 

 

 

 

 + 

 F5 

 5 

 6 

 

 + 

 + 

 

 

 

 F6 

 6 

 7 

 

 + 

 

 

 + 

 

 F7 

 7 

 8 

 

 + 

 

 + 

 

 

 F8 

 8 

 9 

 

 + 

 

 

 

 + 

 F9 

 9 

 10 

 

 

 + 

 

 + 

 

 F10 

 0 

 11 

 

 

 + 

 

 

 + 

 F1 

 q 

 12 

 

 

 

 + 

 + 

 

 F2 

 w 

 13 

 

 

 

 + 

 

 + 

 F3 

 e 

 14 

 + 

 

 + или + 

 

 

 F4 

 r 

 15 

 

 + 

 

 

 + или + 

 F5 

 t 

 16 

 

 

 

 

 

 

 F6 

 y 

 17 

 + 

 + 

 + или + 

 

 

 F7 

 u 

 18 

 + 

 + 

 

 

 + или + 

 F8 

 i 

 19 

 

 

 + или + 

 + или + 

 F9 

 o 

 20 

 + 

 + 

 + или + 

 + или + 

 F10 

 p 

Задание для СРСП №5 (11-13 неделя, 7часов)

N пп

R

y = F(x)

Частота (гц)

1

0 - 10

y=((100-x)%100)*0.5+R+100

72.7

2

0 - 10

y=((77-x)%200)*0.1+R+150

145.5

3

0 - 10

y=40*(cos(x/10)+cos(x/6))+R+100

36.4

4

0 - 2

y=50*(cos(x/10)+R*cos(x/5))+150

54.5

5

0 - 2

y=50*sin(cos(x/10)+R)+150

90.9

6

0 - 1

y=0.5*(x%100)+100*sin(x/5)*R+150

72.7

7

0 - 1

y=0.5*(x%100)+50*sin(x/50)*(R+1)+150

145.5

8

0 - 1

y=50*sin(x/(10+R))+150

36.4

9

0 - 0.2

y=50*(fabs(sin(x/10))+R)+150

54.5

10

0 - 10

y=10*-1N*(x/100)+R+150

90.9

11

0 - 10

y=-1N*50*sin(x/10)+150+R

72.7

12

0 - 10

y=0.5*-1N*(x%200)*sin(x/10)+150+R

145.5

13

0 - 10

y=0.5*-1N*(x%200)+50*sin(x/10)+150+R

36.4

14

0 - 10

y=50*(sin(x/64)+sin(x/32)+ +0.1*sin(x/4)+0.1*sin(x/2))+R+150

54.5

15

0 - 10

y=50*(sin(x/64)+sin(x/32)+ +sin(x/2))+R+150

90.9

16

0 - 10

y=0.5*(x%100+-1N*x%200)+150+R

72.7

17

0 - 10

y=0.5*(-1N*x%100+x%200)+R+150

145.5

18

0 - 0.1

y=0.5*(-1N*x%100+200*R*sin(x/10))+150

36.4

Примечание: R - случайное вещественное число из последовательности, равномерно распределенной в указанном интервале.

Задание для СРСП №6 (13-15 неделя, 8часов)

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

  • "теннисный мячик" - шарик, который летает по экрану и отражается от рамок и границ экраны;

  • "сухой лист" - опадание букв с экрана;

  • "жук-пожиратель" - фигурка, которая перемещается по экрану по случайной траектории и "съедает" буквы;

  • "удав" - то же, что и "жук", но к тому же он увеличивается в размерах, по мере "поедания" букв;

  • и т.д., и т.п.

Задания для СРС (семестровое задание)

  1. Теоретическая часть: Объекты ядра: наследование; права доступа; дескрипторы безопасности. Практическая часть: Заставьте консольный процесс запустить несколько своих копий (и далее рекурсивно). Убедитесь, что порождение процессов не будет бесконечным (остановитесь на 4 уровнях максимум). Перенаправьте консольный вывод в файл и заставьте все дочерние процессы наследовать дескриптор этого файла.

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

  3. Теоретическая часть: Динамические библиотеки: экспорт/импорт функций; работа с TLS. Практическая часть: Описать точку входа в DLL. Описать несколько функций для экспорта из DLL. Зарезервировать TLS-слот и использовать в вашей DLL для хранения приватных данных потока. В программе-примере импортировать функции из DLL статически и динамически.

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

  5. Теоретическая часть: Кучи: создание; сериализация доступа; оптимизация. Практическая часть: Описать набор функций для работы со списками. Память для объектов каждого списка выделять динамически из приватной кучи без упорядочения обращений.

  6. Теоретическая часть: Виртуальная память: регионы, резервирование, права доступа. Практическая часть: Исследовать адресное пространство процесса, определить местонахождение динамически загруженных библиотек, куч, стеков.

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

  8. Теоретическая часть: Процессы: порождение; наследование дескрипторов; синхронизация между процессами. Практическая часть: Заставьте консольный процесс запустить несколько своих копий (и далее рекурсивно). Убедитесь, что порождение процессов не будет бесконечным (остановитесь на 4 уровнях максимум). Для каждого процесса создать свое окно консоли с индивидуальными настройками.

  9. Теоретическая часть: Общесистемные ловушки: регистрация; наблюдение; подмена сообщений. Практическая часть: Зарегистрировать ловушку для всех оконных сообщений в системе. Выводить на печать информацию о сообщениях. Корректно завершить процесс наблюдения и убрать ловушку при закрытии программы.

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

  11. Теоретическая часть: Совместное использование регионов памяти несколькими процессами. Практическая часть: Разделить регион между двумя процессами с помощью проецирования; синхронизировать с помощью семафора процесс обновления данных в регионе.

  12. Теоретическая часть: Динамические библиотеки: экспорт/импорт функций; работа с TLS. Практическая часть: Описать точку входа в DLL. Описать несколько функций для экспорта из DLL. Зарезервировать TLS-слот и использовать в вашей DLL для хранения приватных данных потока. В программе-примере организовать отложенный (ленивый) импорт функций из DLL по первому запросу программы.