ТОП 10:

Лабораторная работа. Операционная система Windows. Режим командной строки



Содержание

 

1 Лабораторная работа. Операционная система Windows. Режим командной строки 4

2 Лабораторная работа. Операционная система Windows. Основы разработки командных (пакетных) файлов 8

3 Лабораторная работа. Вычислительные процессы и ресурсы. Компоненты вычислительного процесса 14

4 Лабораторная работа. Ресурсы и их распределение между процессами 18

5 Лабораторная работа. Взаимные блокировки потоков и их обнаружение 21

6 Лабораторная работа. Способы распределения процессорного времени в операционных системах 25

7 Лабораторная работа. Исследование возможностей операционной системы при работе с памятью 29

8 Лабораторная работа. Исследование механизмов работы с памятью 33

Список литературы 39

 


Лабораторная работа. Операционная система Windows. Режим командной строки

 

Цель работы: получить навыки работы в режиме командной строки операционной системы Windows; изучить состав внутренних команд и их функциональные возможности.

 

Общие сведения

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

а) Пуск – команда Выполнить – в поле ввода набрать cmd (команда Windows, сокращение от слова commander);

б) ПускПрограммыСтандартныеКомандная строка.

Отключение режима обеспечивается набором в строке приглашения команды exit и ее выполнения при нажатии клавиши Enter.

 

Состав внутренних команд Windows

В состав внутренних команд в системе Windows входит примерно семьдесят команд (в системах Unix – более трехсот). Весь перечень этих команд можно просмотреть, если в командной строке выполнить команду help. Для ознакомления с каждым элементом перечня следует использовать сложную команду, состоящую из конвейера двух команд help | more.

Так как список команд достаточно обширный, то обычно их рассматривают, разбив на группы:

1) команды справочной системы;

2) команды файловой системы;

3) команды управления работой ОС;

4) команды пакетных (командных) файлов.

 

Команды справочной системы

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

а) help – для получения справки по всем командам;

б) help имя_команды или имя_команды / ? - для получения справки по указанной команде.

 

Команды файловой системы

К основным командам файловой системы относятся следующие:

а) сd, chdir - смена текущей папки или диска;

б) chkdsk - проверка диска и вывод статистики;

в) cls - очистка экрана;

г) copy – копирование одного или нескольких файлов в другое место;

д) del – удаление одного или нескольких файлов;

е) dir – вывод списка файлов и подпапок из указанной папки;

ж) md, mkdir – создание новой папки;

з) move – перемещение одного или нескольких файлов из одной папки в другую;

и) rd, rmdir – удаление папки;

к) ren – переименование файлов, папок;

л) tree – графическое отображение структуры папок заданного диска или заданной папки;

м) type – вывод на экран содержимого текстовых файлов.

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

По умолчанию результаты выводятся на экран, но можно перенаправить. Знак < используется для перенаправленного ввода, а символы > и >> - для вывода.

Знак<означает, что данные вводятся из файла, а символы > и >> - выводятся в файл.

Команда dir > asem.txt обозначает, что содержимое текущего каталога выводится в файл asem.txt.

Команда color позволяет выбирать и устанавливать цвета текста и фона для текстовых окон. Цвета текста и фона выбираются из 16 цветов, и назначаются двумя 16-ричными цифрами.

Команда prompt обеспечивает настройку вида приглашения по желанию пользователя. Команда может иметь множество параметров. Стандартным видом приглашения является prompt $p$g, что обозначает вывод в приглашении имени текущего каталога и знака >.

 

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

1.2.1 Используя справочную систему Windows, выполните следующие действия:

- определите текущую дату;

- установите новую дату, соответствующую дате Вашего дня рождения;

- при выходе из режима командной строки установите текущую дату;

- включите в строку приглашения сообщение - приветствие пользователю;

- при выходе установите стандартный вид приглашения;

- установите различные сочетания цветов текста и фона.

 

1.2.2 Используя команды файловой системы Windows, выполните следующие действия:

- создать дочерний каталог для текущего каталога;

- используя команду dir, убедитесь в создании подкаталога;

- сделайте дочерний каталог текущим;

- выполните команду dir и объясните появившиеся сообщения;

- выйдите в корневой каталог;

- вернитесь в исходный каталог;

- создайте текстовый файл с некоторым фрагментом текста;

- выполните команду find/;

- создайте несколько текстовых файлов с наличием в них одни и тех же элементов текста;

- организуйте поиск элементов текста в группе файлов, используя шаблоны имен файлов (например,*.txt).

 

1.2.3 Используя справочную систему Windows, изучите функциональные возможности команды attrib и выполните следующие действия:

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

- убедитесь в том, что установленные атрибуты приняты системой;

 

1.2.4 Выполните реализацию задач из п.1.2.2 в любой из известных Вам сред визуального или объектно-ориентированного программирования (Delphi, C++Builder, VisualC++ и т.д.).

Требования к отчету

Отчет по работе выполняется на бумажном носителе и должен содержать:

- задание к работе;

- описание порядка выполнения действий;

- листинги программ с комментариями;

- снимки экрана с результатами работы;

- выводы по каждому заданию.

 

1.4 Контрольные вопросы

1.4.1 Каким образом осуществляется включение и отключение режима командной строки?

1.4.2 На какие группы можно разделить внутренние команды Windows?

1.4.3 Назовите способы получения справки по командам Windows.

1.4.4 Какие команды относятся к командам файловой системы?

1.4.5 С помощью какой команды выполняется настройка вида приглашения по желанию пользователя?

1.4.6 Каким образом можно перенаправить ввод или вывод результатов?

1.4.7 Какие команды относятся к командам управления работой Windows?

1.4.8 Что представляет собой командный файл?

1.4.9 Какая команда позволяет работать с переменными среды интерпретатора команд?

1.4.10 Каковы особенности использования команды set?

 

Общие сведения

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

 

2.1.1 Команда echo осуществляет вывод сообщений и переключение режима отображения команд на экране. Общий вид команды:

ECHO [ON | OFF]

Использование команды возможно в следующих форматах:

echo off – запрет вывода на экран;

echo on – разрешение вывода на экран;

echo (без параметров) – запрос состояния эха (on или off) для определения текущего значения этой команды;

echo + текстовое сообщение – вывод текстового сообщения на экран;

echo %имя переменной окружения% - вывод текущего значения переменной окружения.

 

2.1.2 Для приостановки выполнения командного файла используется команда pause. При этом на экран выводится сообщение:

Для продолжения нажмите любую клавишу ...

Команду полезно использовать, когда на экране дисплея выводится большое количество информации порциями по страницам, чтобы можно было прочитать и затем перейти к следующему формату. Также ее можно использовать для управления работой командного файла. Если в ответ на команду pause нажать Ctrl+C, то появляется вопрос:

Завершить выполнение задания?

Выбор Y – останавливает выполнение командного файла, а N - обеспечивает продолжение его выполнения.

 

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

Пример 1.

Создадим текстовый файл tt1.txt:

what country are you from?

what is you name?

Создадим командный файл cf1.bat:

find /%1 "%2" %3

В созданном командном файле содержатся следующие замещаемые параметры: %1 – запрашивает режим поиска; %2 – определяет запрос строки символов для поиска; %3 – запрашивает имя файла, в котором будет отыскиваться слово «what».

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

C:\DOCUME~1\bista\0016~1\ooo> cf1.bat n what tt1.txt

C:\DOCUME~1\bista\0016~1\ooo> find /n "what" tt1.txt

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

---------- TT1.TXT

[2] what country are you from?

[3] what is you name?

Другой вариант поиска можно осуществить с помощью следующей строки:

C:\DOCUME~1\bista\0016~1\ooo>cf1.bat c what tt1.txt

C:\DOCUME~1\bista\0016~1\ooo>find /c "what" tt1.txt

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

---------- TT1.TXT: 2

 

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

 

2.1.5 Команда if – организует разветвление при выполнении командного файла, т.е. реализует условное выполнение команд. Ее формат:

if условие команда

В качестве условия обычно используются:

а) проверка наличия файла. В этом случае в качестве условия записывается фраза:

exist диск:\путь\имя файла.расширение

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

str1==str2

Пример 2. Проверка идентичности двух символьных строк.

Echo off

set /p s=str

set /p s1=str

if %s%= =%s1% goto m1

Echo all right

:m1

set /a n=2

Echo on

echo %n%

End

Используя not, можно проверить противоположное условие.

 

Пример 3. Командный файл i2.bat проверяет, есть ли в текущем каталоге файл aaa.txt.

If exist aaa.txt goto m1

Echo aaa.txt no exist

Go end

:m1

Type aaa.txt

:end

 

С использованием отрицания:

Type aaa.txt

Goto end

:err1

Echo it is bad

:end

Пример 4. Командный файл i5any.bat отыскивает и просматривает любой файл.

Echo off

Cls

if /%1==/ goto r1

if not exist %1 goto r2

type %1|more

Goto end

:r1

echo there_is_ not_ name_ of file_ %1

Goto end

:r2

echo there_is_ not_ this_file_ %1

Goto end

:end

Вызов файла: i5any.bat aaa.txt

 

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

а) для строк командных файлов:

for %% переменная in (набор) do команда

б) для режима командной строки:

for % переменная in (набор) do команда

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

диск:\путь\имя_файла.расширение

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

диск:\путь\*.расширение

 

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

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

 

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

 

2.2.3 Восстановить приглашение с помощью команды echo on.

 

2.2.4 Создать текстовый файл t1.bat со следующим содержанием:

Echo off

Cls

echo we are students of AIPET!

echo:

echo Hello!

а) выполнить его, вызвав t1.bat. Объяснить появление фрагментов данных на экране;

б) заменить команду echo off на echo on. Снова вызвать файл t1.bat. Объяснить появление фрагментов данных на экране.

 

2.2.5 Создать командный файл t2.bat со следующим содержанием:

Echo off

Rem it is first comment

Cls

Rem it is second comment

echo good morning!

Rem it is third comment

echo:

echo Hello!

Rem it is last comment

а) выполнить файл;

б) заменить echo off на echo onи снова выполнить файл;

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

 

2.2.6 Создать командный файл f1.bat, который выводит содержимое некоторого текстового файла. Создать командный файл f2.bat, который вызывает командный файл f1.bat. Используя echo, вывести файлы в разных режимах. Используя @, сделать так, чтобы команды пакетного файла не выводились.

 

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

 

2.2.8 Создать командный файл, который можно прервать, когда необходимо.

 

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

 

2.2.10 Создать переменную окружения, которая имеет значение “aipet”.

 

2.2.11 Создать командный файл, который в случае совпадения двух строковых переменных присвоил бы целой переменной значение 2, в противном случае вывел бы строку – “no equal”.

 

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

 

2.2.13 Создать каталог. В созданном каталоге сформировать несколько текстовых файлов с разным содержанием. В режиме командной строки выполнить команду вывода на экран содержимого этих файлов. Создать командный файл для вывода файлов на экран.

 

Требования к отчету

Отчет по работе выполняется на бумажном носителе и должен содержать:

- задание к работе;

- описание способов решения задач;

- листинги программ с комментариями;

- снимки экрана с результатами работы;

- выводы по каждому заданию.

 

2.4 Контрольные вопросы

2.4.1 Каковы особенности использования команды echo?

2.4.2 С какой целью применяется команда pause?

2.4.3 Каковы особенности использования команды find?

2.4.4 Что может использоваться в качестве условия при реализации команды if?

2.4.5 Как выполнить проверку идентичности двух символьных строк?

2.4.6 Какая команда позволяет изменить привычную последовательность команд выполнения операторов командного файла?

2.4.7 Допустимо ли совместное использование команд if и goto?

2.4.8 Какой формат команды for используется для строк командных файлов?

2.4.9 Как создать переменную окружения?

2.4.10 Какое условие используется для проверки наличия файла?

 

Общие сведения

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

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

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

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

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

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

а) щелкнуть правой кнопкой мыши на панели задач и выбрать строку Диспетчер задач или нажать ПускВыполнить – набрать в поле ввода taskmgr;

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

в) просмотр процессов осуществляется переходом на вкладку Процессы. Таблица процессов включает в себя все процессы, запущенные в собственном адресном пространстве, в том числе все приложения и системные сервисы. Обратите внимание на процесс Бездействие системы – фиктивный процесс, занимающий процессор при простое системы;

г) для просмотра 16-разрядных процессов в меню Параметры выбрать команду Отображать 16-разрядные задачи;

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

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

а) перейти на вкладку Быстродействие. Верхние два окна показывают интегральную загрузку процессора и хронологию загрузки. Нижние два окна – те же показатели, но по использованию памяти;

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

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

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

а) в окне Диспетчера задач представлены процессы, зарегистрированные в Windows;

б) не включены драйверы устройств, некоторые системные службы;

в) требования к памяти отражают текущее состояние процесса;

г) в списке отражены объемы памяти, занятые приложениями в текущий момент;

д) нет возможности отследить изменения, поскольку не выводятся временные характеристики.

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

- Системный монитор и Оповещения;

- Журналы производительности.

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

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

 

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

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

а) на вкладке Процессы посмотреть число потоков и другие характеристики процесса;

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

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

 

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

 

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

 

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

 

Требования к отчету

Отчет по работе выполняется на бумажном носителе и должен содержать:

- задание к работе;

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

- снимки экрана с результатами работы;

- выводы по каждому заданию.

 

3.4 Контрольные вопросы

3.4.1 Что представляет собой вычислительный процесс?

3.4.2 Приведите примеры вычислительных процессов.

3.4.3 С какой целью было введено понятие «поток выполнения»?

3.4.4 Какие виды ресурсов существуют?

3.4.5 Приведите примеры разделяемых и неделимых ресурсов.

3.4.6 Перечислите компоненты вычислительного процесса.

3.4.7 Какие средства системы позволяют получить информацию о компонентах процесса?

3.4.8 Для чего служит Диспетчер задач?

3.4.9 Какие Вы знаете служебные программы, которые позволяют сделать работу операционной системы более эффективной?

3.4.10 Какие сведения можно получить, обратившись к Журналам производительности?


Общие сведения

К основным видам ресурсов вычислительной системы относятся:

а) сам процессор, точнее — процессорное время;

б) память;

в) внешние устройства;

г) программные модули;

д) информационные ресурсы.

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

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

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

- текущий запрос и ранее выданные запросы допускают совместное использование ресурсов;

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

Получив запрос, ОС либо удовлетворяет его и возвращает управление задаче, либо, если ресурс занят, ставит задачу в очередь к ресурсу, переводя ее в состояние ожидания (блокируя).

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

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

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

 

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

4.2.1 В системе имеются 5 процессов (A, B, C, D, E) и 4 ресурса (p1, p2, p3, p4), которые можно предоставить этим процессам. Текущее распределение ресурсов и максимальное их количество, необходимое процессам, приведено в таблице 4.1. Необходимо заполнить столбцы «Требуется» и «Доступно». Определить, безопасно ли немедленно удовлетворение запроса (0,1,0,0) процесса С.

Таблица 4.1 – Распределение ресурсов и их количество

Процесс Предоставлено р1, р2, р3, р4 Максимальные требования Требуется р1, р2, р3, р4 Доступно р1, р2, р3, р4
А 0 0 1 2 0 0 1 2   2 1 0 0
B 2 0 0 0 2 7 5 0    
С 0 0 3 4 6 6 5 6    
D 2 3 5 4 4 3 5 6    
Е 0 3 3 2 0 6 5 2    

 

4.2.2 Имеются 4 процесса (A, B, C, D) и 3 ресурса. Также известны матрица распределенных ресурсов и матрица требований (таблицы 4.2, 4.3). Вектор существующих ресурсов Е=(9,3,6). Определить оптимальный вариант распределения существующих ресурсов.

 

Таблица 4.2 - Матрица распределенных ресурсов

процесс ресурс 1 ресурс 2 ресурс 3
А
B
С
D

 

Таблица 4.3 - Матрица требований

процесс ресурс 1 ресурс 2 ресурс 3
А
B
С
D

4.2.3 В системе существует только один ресурс каждого типа. Система состоит из 6 процессов – A, B, C, D, E, F и пяти ресурсов - R, S, T, V, U. В некоторый момент времени система соответствует следующему списку:

Процесс А занимает ресурс S и хочет получить ресурс U;

Процесс В ничего не использует, но хочет получить ресурс R;

Процесс С ничего не использует, но хочет получить ресурс V;

Процесс D занимает ресурс U и хочет получить ресурсы R и T;

Процесс Е занимает ресурс Т и хочет получить ресурс V;

Процесс F занимает ресурс R и хочет получить ресурс T.

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

 

4.2.4 Выполнить задания 4.2.1 - 4.2.3, организовав пользовательский интерфейс, используя графические возможности языка программирования.

 

Требования к отчету

Отчет по работе выполняется на бумажном носителе и должен содержать:

- задание к работе;

- описание тех или иных действий, выполненных для получения результата;

- листинги программ с комментариями;

- снимки экрана с результатами работы;

- выводы по каждому заданию.

 

4.4 Контрольные вопросы

4.4.1 Что понимают под термином «ресурс»?

4.4.2 Какие способы разделения ресурсов существуют?

4.4.3 Какие ресурсы можно отнести к важнейшим?

4.4.4 Какие типы программных модулей различают? Возможно ли их разделение?

4.4.5 Какие устройства можно отнести к устройствам с прямым или последовательным доступом?

4.4.6 Что относится к информационным ресурсам?

4.4.7 Какова общая схема выделения ресурсов?

4.4.8 При каких условиях процессу может быть выделен ресурс?

4.4.9 В каких случаях ресурс принудительно отбирается у процесса?

4.4.10 Как приоритет процесса может влиять на выделение ресурса?


Общие сведения

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

Каждый процесс всегда состоит, по крайней мере, из одно­го потока выполнения, и только если имеется внутренний параллелизм, програм­мист может «расщепить» один поток на несколько параллельных. Потребность в потоках возникла еще в однопроцессорных вычислительных системах, поскольку они позволяли организовать вычисления более эффективно. Для использования достоинств многопроцессорных систем с общей памятью потоки уже просто необ­ходимы, так как позволяют не только реально ускорить выполнение тех задач, ко­торые допускают их естественное распараллеливание, но и загрузить процессор­ные элементы работой, с тем, чтобы они не простаивали. Желательно свести к минимуму взаимодействие потоков меж­ду собой, ибо ускорение от одновременного выполнения параллельных потоков может быть сведено к минимуму из-за задержек синхронизации и обмена данными. Каждый поток выполняется строго последовательно и имеет свой собственный программный счетчик и стек. Потоки, как и процессы, могут порождать потоки-потомки, поскольку любой процесс состоит, по крайней мере, из одного потока. Подобно традиционным процессам (однопо­точным), каждый поток может находиться в одном из активных состояний. Пока один поток заблокирован (или просто находится в очереди готовых к исполнению за­дач), другой поток того же процесса может выполняться. Например, потоки разделяют про­цессорное время так же, как это делают обычные процессы, в соответствии с раз­личными вариантами диспетчеризации. Использование потоков связано не только со стремлением повысить производительность системы за счет параллельных вычислений, но и с целью создания более читабельных, логичных программ. Введение нескольких потоков выполнения упрощает программирование.

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

Пусть имеется множество процессов Р={Р1, Р2, …, Рn} и множество ресурсов Е={Е1, Е2, …, Еm}, где n и m - количество процессов и ресурсов соответственно. В любой момент времени некоторые ресурсы могут быть заняты и, соответственно, недоступны.

Пусть вектор А=(А1, А2, …, Аm) – вектор доступных ресурсов. Причем выполняется соотношение Аj<=Еj, где j=1, 2, …, m.

Кроме того, рассматриваются две матрицы:

1) С={сij}, i=1, 2, …n; j=1,2,...,m – матрица текущего распределения ресурсов, где сij – количество ресурсов j-того класса, которые занимает процесс Pi;

2) R={rij}, i=1,2,...n; j=1,2,...,m – матрица требуемых (запрашиваемых) ресурсов, где rij – количество ресурсов j–того класса, которые хочет получить процесс Pi.

Справедливо m соотношений по ресурсам:

, где j=1,2,...,m. (5.1)







Последнее изменение этой страницы: 2017-01-25; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.207.102.38 (0.044 с.)