Курсовая

Курсовая Операционные системы 12

Работа добавлена на сайт bukvasha.net: 2015-10-25

Поможем написать учебную работу

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

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 11.11.2024





Министерство Образования  и Науки Российской Федерации

Казанский Государственный Технический Университет им. А. Н. Туполева

Кафедра Прикладной Математики и Информатики
Курсовая  работа

 по курсу «Операционные системы»

Выполнила:

                    Проверил:

                  Оценка: ____________

    Дата: _______________


г. Казань, 2008
Содержание

1.     Постановка задачи……...………………………………….………………..3

1.1.         Цель курсовой работы………………………………………………...3

1.2.         Требования к реализации……………………………………………..3

1.3.         Вариант задания……………………………………………………….3

1.4.         Начальные данные…………………………………………………….3

2.     Краткие теоретические сведения…………………………………………..4

3.     Описание программы и алгоритмы выполнения………………………....7

3.1.  Программа по организации вычислений…………………………....7

   3.1.1. Общее описание…………………………………………………...8

   3.1.2. Структура программы………………………………………….…8

   3.1.3. Алгоритм действия………………………………………………..8

3.2 Программа по обработке текстового файла………………………….9

   3.2.1. Общее описание…………………………………………….……..9

   3.2.2. Структура программы………………………………….………..10

   3.2.3. Алгоритм действия……………………………………...………..11

4.     Тесты………………………………………………………………………..12

4.1. Программа по организации вычислений…………………………...12

4.2. Программа по обработке текстового файла………………………..13

5.     Анализ потенциальных и реальных ошибок…………………………….14

5.1. Программа по организации вычислений………………………...…14

5.2. Программа по обработке текстового файла…………………….….14

6.     Руководство пользователю……………………………………………….15

6.1. Программа по организации вычислений……………………..…….15

6.2. Программа по обработке текстового файла……………….……….16

7.     Листинги программ………………………………………………………..17

7.1. Программа по организации вычислений…………………………...17

7.2. Программа по обработке текстового файла………………………..20

8.     Результаты выполнения описанных тестов……………….……………..26

8.1. Программа по организации вычислений…………………………...26

8.2. Программа по обработке текстового файла………………………..28

9.     Список использованной литературы…………………………………….31

1.    Постановка задачи




1.1.        
 Цель курсовой работы


Разработать две процедуры на языке Java Scripts:

1-ая процедура выполняет заданные расчеты;

2-ая процедура производит обраотку текстового файла;

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

1.2.        
 Требования к реализации


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

1.     Параметр справки;

2.     Как минимум два дополнительных параметра конкретизирующих выводимые результаты;

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

1.3.        
Вариант задания


         Номер варианта – 31.

1. Характеристика  потока  с  минемальным процессорным временем

2. С помощью формулы Лейбница приближенно вычислить

1.4.        
Начальные данные


§        Файл–отчет Системного монитора с названиями потоков и их процессорными временами.

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


Многозадачная операционная система позволяет выполняться сразу нескольким приложениям. Она делит всё доступное процессорное время между потоками процессов. Windows XP является операционной системой с вытесняющей многозадачностью. Это означает, что она самостоятельно планирует выделение слайсов выполняющимся потокам и приложения не должны заботиться о том, чтобы возвращать управление операционной системе для того, чтобы она отдала процессорное время другому потоку (как это было, например, в Windows 3.xx). При истечении слайса система приостанавливает поток, и выделяет слайс другому потоку. Когда система переключается между потоками, она сохраняет контекст выполнения приостанавливаемого потока и восстанавливает контекст запускаемого.

Размер слайса зависит от операционной системы и процессора. Так как он достаточно мал (в Windows XP - менее 20мс), выполнение несколько потоков выглядит так, как если бы они выполнялись одновременно. Это действительно так на многопроцессорных системах, где слайсы потоков распределяются по процессорам.

Процессы и потоки.

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

Потоки.

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

Для решения задачи  о нахождении потока с минимальным процессорным временем вторая программа  должна обрабатывать текстовый файл, созданный сиандартным средством Windows XP – приложением Performance Monitor (системный монитор). Запуск Сисиемного могитора осуществляется слдующим образом:  «Пуск->Панель управления ->Администрирование ->Производительность».  Для создания необходимого для нас файла следует выполнить  следующие действия:

1.     Открыть «Журналы и оповещения производительности»

2.     Нажав на панели инструментов соответствующую кнопку задать новые параметры журнала







3.     После нажатия «OK», в появившемся окне на вкладке «Общие» выбрать кнопку «Добавить счетчики»

4.     В новом окне выбрать следующие параметры: объект – поток, счетчик % загруженности процессора и выбрать несколько потоков из списка





5.                                                                                                                                                                                                                                        Далее во вкладке «Файлы журнала» » установить «Тип файла журнала – Текстовый файл (раделитель – запятая)»

6.                                                                                                                                                                                                                                        Во вкладке «Расписание» определить способ запуска и остановки журнала           

                                                                                                                





В результате мы получаем файл следующего вида. Нулевая строка – заголовок, содержащий в кавычках имена потоков; имена потоков отделены друг от друга запятыми. В последующих строках в начале находятся временные засечки(тоже в кавычках), а зетем в кавычках через запятую время загруженности процуссора для каждого потока.  То есть,  файл представляет собой таблицу, в которой количество столбцов равно N+1, а количество строк M+1, где N – число потоков, M – число временных засечек.


3.        Описание программы и алгоритмы выполнения

3.1.         Программа по организации вычислений


3.1.1. 
Общее описание


Данная программа находит значение числа  Pi. При этом используется формула Лейбница .

Программа может содержать до 2-х параметров:

1-й параметр:  help - выводится справка по процедуре.

                          число от  0,1 до 0,00000000001 то этот параметр определяет точность вычислений

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

2-й параметр: имеется возможность одноврменно ввести число точности  и detail

 Отсутствие параметра – программа просто выводит результат вычислений функции Pi с точностью (по умолчанию) 0,001.

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


3.1.2. 
Структура программы


Программа содержит основную часть и одну функцию.

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

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

Используемые переменные:

Accuracy – определяет точность

help – определяет необходимость вывода справочной информации.

detail – отвечает за необходимость пошагового прохода по программе с фиксацией каждого шага.

k – количество введенных аргументов.

F – значение суммы при подсчете ряда.

3.1.3. 
Алгоритм действия


Программа считывает аргументы из командной строки и считает их количество. В цикле просматривается и анализируется каждый из аргументов. В результате если введен один аргумент help, то выводится справка о процедуре. Если в качестве аргумента введено число от 0,1 до 0,00000000001 то это число считается как точность и оно присваивается переменной Accuracy – используется в дальнейшем в функции Leibnic(),  в итоге на экран выводится значение Pi  и количество итераций, за которое была вычислена данная функция с заданной точностью. Если же введено число не из промежутка от 0,1 до 0,00000000001,  то программа выдаст оштбку. Если введен аргумент detail, то программа кроме основного ответа – значение Pi и количество итераций -  выдаст результаты вычислений функции на каждой итрации, точность при этом считается равной 0,001.  Так же есть возможность одновременно задать два аргумента: аргумент точности и detail. В этом случае на экране увидим все промежуточные результаты вычисления функции уже для заданной нами точности. Если же аргументы вовсе не введены, то программа выдаст основной ответ, т.е. значение Pi и количество итераций,  в данном случае при вычислении точность по учолчанию равна 0,001.

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


3.2.         Программа по обработке текстового файла


3.2.1. 
Общее описание


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

Программа может содержать от 1 до 4 парамтров. Параметр help должен вводится как единственный параметр.  Если не введен ни один из параметров то выводится сообщение об ошибке.

1-й параметр: help - выводится справка по процедуре

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

2-й параметр: all_streams – вывод значений всех потоков

                         all_streams_interval – вывод значений потоков на заданном интервале времени и вывод потока с минимальным средним процессорным врменем для заданного интервала

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

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

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



3.2.2. 
Структура программы


Программа содержит основную часть и две процедуры. В ней присутствуют три глобальные переменные.

Переменная countstr – количество строк в обрабатываемом файле. Нулевая строка в файле – это строка зоголовка, а последующие соответствуют очередной временной засечке.

Переменная countpot – количество присутствующих в файле потоков.

Переменная mas – двумерный массив, содержащий все данные из файла.

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

Вторая процедура Minpotok(outputformat,t1,t2), обрабатывая заполненный массив, определяет поток с минимальным средним процессорным временем на заданном параметрами t1 и t2 интервале времени и выводит информацию об этом потоке в соответствующем формате, переданном процедуре через параметр outputformat.

В основной части вызывется процедура MakeMas(filename) или выводится справка по программе и в зависимости от количества введенных при запуске скрипта параметров вызывается процедура Minpotok(outputformat,t1,t2) с разными вариантами передачи параметров. В кчестве outputformat передается либо введенный параметр, либо пробел. В случае отсутствия при запуске программы параметров, определяющих временной интервал поиска, процедуре передаются 1 и countstr-1, т. е. поиск ведется по всему интервалу времени, зафиксированному в файле.

3.2.3. 
Алгоритм действия


Программа считывает аргументы из командной строки и считает их количество. В цикле просматривается и анализируется каждый из аргументов. Если аргументы совсем не введены то выводится сообщение «Неправильно введены параметры. Введите help в качастве параметра для вывода справки по процедуре». Если введен едиственный аргумент help, то выводится справка о процедуре.  Если ввден(ы) параметр(ы) и он не равен help то запускается функция MakeMas(filename).  Она в свою очередь открывает файл, имя которого передаётся ей в качестве параметра и строит двумерный массив, где  число столбцов  - это количество потоков  и число строк  - это количество временных засечек.  Число потоков countpot  определется поиском в строке разделителя «,»  - это мы указали в параметрах создания файла. Количество засечек времени определяется подсчетом количества строк countstr -1 – с учетом строки заголовка.  Далее процедура Minpotok (outputformat,t1,t2)  обрабатывает  заполненный  массив, определяет поток с минимальным средним процессорным временем: складывает элементы столбца(это процессорные  времена одного потока)  и делит эту сумму  на количество строк(это число временных засечек)  вошедших в интервал с границами tt2 т.е делим на число t2-t1+1 – с учетом первой строки заголовка. Далее в switch(outputformat) производится опрделение дальнейших действий, которые зависят от того каким был введен 2-й параметр. Если это   all_streams  то программа просто выводит элементы всего массива. Если это  all_streams_interval  то программа выводит на экран все потоки от t1-ой засечки до t2-ой (если t1 и t2 не указаны то по умолчанию выводятся значения потоков на всех засечеках) и имя потока с минимальным средним процессрным временем для этого интервала. Если же этот параметр мmin_stream то программа выведит поток с минимальным средним процессрным временем, а так же подсчитает для него минимальное процессорное время для этого потока и тоже выведет это время на экран.

В случае если ни один из введенных параметров не совпал с теми которые были описаны выше, то программа выводит основной результат, т.е. поток с минимальным средним процессорным временем и само значени этого времени. Если же при вводе параметров произошла ошибка т.е. не удовлетвапяется следующее условие:   (((t1<=t2)&&(t10)&&(t2>0))  то выводится сообщение  "Неправильно введены параметры. Введите help в качастве параметра для вывода справки по процедуре.".

 

4.       
Тесты


4.1.        
Программа по организации вычислений


1.                    cscript 1.js                                                                     

Описание: нахождение значения числа Pi с точностью 0,001,  вывод результата вычислений и  общего количества итераций.

2.                    сscript 1.js 0,000001                                                                

Описание: нахождение значения числа Pi с точностью 0,000001 и вывод общего количества итераций.

3.                    сscript 1.js detail                                                                      

Описание: нахождение значения числа Pi с точностью 0,001,  вывод  результатов вычислений на каждой итерации и  общего количества итераций.

4.                    сscript 1.js 0,00001 detail                                                

Описание: нахождение значения числа Pi с точностью 0,00001,  вывод  результатов вычислений на каждой итерации и  общего количества итераций.

5.                    cscript 1.js help

Описание: вывод справочной информации для процедуры.

6.                    сscript 1.js 100
4.2.       
Программа по обработке текстового файла


1.                    cscript 2.js data.txt

Описание: вывод на экран имени потока с минимальным средним значением процессорного времени и само это значение (диапазон поиска – весь временной интервал, присутствующий в файле).

2.                    cscript 2.js data.txt all_streams                                                 

Описание: вывод всех данных из файла data.txt  на экран.

3.                    cscript 2.js data.txt min_stream

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

4.                    cscript 2.js data.txt all_streams_interval                                    

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

5.                    cscript 2.js data.txt 1 1                                 

Описание: вывод на экран имени потока с минимальным средним значением процессорного времени и самого этого значения (диапазон поиска – первая временная засечка).

6.                    cscript 2.js data.txt all_streams_interval 2 5                     

Описание: вывод на экран имени потока с минимальным средним значением процессорного времени, самого этого значения и всех значений искомого потока (диапазон поиска – со второго по пятую засечки времени).

7.                    cscript 2.js help                                                                       

Описание:  вывод справочной информации для процедуры..

8.                    cscript 2.js                                                                     

9.                    cscript 2.js data.txt 9 3

10.                cscript 2.js data.txt all_streams 8
5.       
Анализ потенциальных и реальных ошибок


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

5.1.        
Программа по организации вычислений

Если при указании точности ввести число не входящее в промежуток от 0,1 до 0,00000000001 то программа выводит сообщение об ошибке  «задано неправильное значение точности».

5.2. Программа по обработке текстового файла

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

Причинами ошибки и вывода соответствующего сообщения «Неправильно введены параметры» могут быть:

1.     Ввод в качестве начальной и/или конечной засечки неположительных значений.

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

3.     Ввод в качестве начальной засечки значения, превосходящего конечную засечку.

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

Если указывается несуществующий файла выводится стандартное сообщение сервера сценариев Windows: «Файл не найден».
6.       
Руководство пользователю


6.1.        
Программа по организации вычислений


Данная программа находит значение числа  Pi. При этом используется формула Лейбница .

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

wscript<пробел><имя_программы.js><пробел><параметр1><пробел> <параметр2>

Для вывода справки в качестве <параметр1> укажите help.

Для организации вычислений:

<параметр1> – точнсть

либо

<параметр1> –пошаговый просмотр программы

<параметр2> может отсутствовать, а может принемать значение пошагового просмотра программы.

По умолчанию точность равна 0,001.

Ввод слишком больших значений параметров приводит к ошибке.

6.2. Программа по обработке текстового файла

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

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

cscript<пробел><имя_программы.js><пробел><параметр1><пробел> <параметр2><пробел><параметр3><пробел>< параметр4>

Для вывода справки в качестве <параметр1> укажите help.

Для обработки файла:

<параметр1> – полное имя файла

<параметр2> – формат выводимой информации

<параметр3> – номер начальной засечки времени

<параметр4> – номер конечной засечки времени

<параметр2> и одновременно <параметр3> и <параметр4> могут отсутствовать.

В случае указания трех параметров (включая имя файла) <параметр2> и <параметр3> считаются номерами начальной и конечной засечек времени соответственно.

Возможные значения <параметр2> и соответствующие форматы приведены ниже:

1)     all_streams - Выводятся значения всех потоков на всех засечках заданного интервала времени.

2)     all_streams_interval - Выводится имя потока с минимальным процессорным временем, его среднее значение процессорного времени и его значения на всех засечках заданного интервала времени.

3)     min_stream - Выводится имя потока с минимальным процессорным временем, его среднее значение процессорного времени и его среднее значение с временем, где оно было зафиксировано

4)     отсутствие знасения - Выводится имя потока с минимальным процессорным временем и его среднее значение процессорного времени

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

Номера начальной и конечной засечек времени должны удовлетворять следующим условиям:

1)     Оба числа положительные;

2)     Первый номер меньше или равен второму;

3)     Оба не должны превосходить общего числа засечек, присутствующих в файле.
7.       
Листинги программ


7.1.        
Программа по организации вычислений


var fso=WScript.CreateObject('Scripting.FileSystemObject');

var Accuracy=0.001;

var arg1;

var arg2;

var a=1/2;

var b=1/3;

var n;

var i=1;

var F=0;

var k=WScript.Arguments.Count();//количество аргументов

var detail=0;

var help=0;

var x=0;

var Arr=new Array();

function Leibnic()

{

 F=4*(1/2)+4*(1/3);

   do

     {

       var S = F;

       a = a*(1/2)*(1/2);

       b = b*(1/3)*(1/3);

       arg1 = a/(2*i+1);

       arg2 = b/(2*i+1);

       var j = i;

       j%=2;

       if (j != 0)

         {

           arg1 = -arg1;

           arg2 = -arg2;

         }

       F = S + (4*arg1 + 4*arg2);

       if (detail==1) {Arr[i]=F;}

       i++;

     }  

   while (Math.abs(S - F) >= Accuracy);

  i = i - 1;

}

for (var j=0;j

  {

   if ((escape(WScript.Arguments(j))!=escape("detail"))&&(escape(WScript.Arguments(j))!=escape("help")))

     { if (WScript.Arguments(j) < 1)

        { Accuracy = WScript.Arguments(j);}

       else {WScript.Echo("Задано неправильное значение точности! \nПроверьте правильность задав в параметрах только аргумент help!")} //если один из аргументов находится в пределах от 0 до 1, то этот аргумент принимается за точность

 }

   if (escape(WScript.Arguments(j))==escape("detail")) { detail=1; };

   if (escape(WScript.Arguments(j))==escape("help")) { help = 1 };      //если один из аргументов help то выведется окно          помощи

   }

if (help==1) {

WScript.Echo("   Help:");

WScript.Echo(" Данная программа вычисляет значение функции pi. \n Используется формула Лейбница arctg(x)=x[1-1/3*x^2+1/5*x^4-1/7*x^6+...].\n Программа запускается следующим образом\n cscript 1.js [параметр(ы)]\n В командной строке можно ввести 4 вида аргумента:\n 0.точность вычисления (кол-во знаков после запятой): от 0,1 до 0,00000000001\n 1.запрос на пошаговое выведение каждой итерации: detail \n 2.запрос на помощь: help\n 3.отсутствие параметров \n Если аргумент help - единственный параметр, то выводится только помощь по вычислению функции \n Если параметры отсутствуют то выводится результат процедуры - значение pi с точностью по умолчанию 0.001\n Если аргументы введены в неправильном диапазоне или повторяются, выводится сообщение об ошибке\n Параметры точности и deital могут вводится отновременно\n Аргументы можно вводить в произвольном порядке. ");}

if (help==0)

{

    Leibnic();

    if (detail==1)

     {

      for (var l=1;l

       { WScript.Echo ('Итерация №',l,'.Значение PI= \n',Arr[l]);}

     }

    WScript.Echo('Число Пи равно: '+F+'\nКоличество итераций: '+i+'\nЗаданa точность: '+Accuracy);

}

7.2. Программа по обработке текстового файла

var countstr;   //Количество строк в обрабатываемом файле

var countpot;  //количество присутствующих в файе потоков

var mas;        //двумерный массив, содержащий все данные из файла.

var t1=2;

var t2=12;   

function MakeMas(filename)       //запоминается количество присутствующих потоков и число засечек времени, на которых зафиксированы

{                                //проценты процессорного времени и заполняется двумерный массив соответствующими данными из файла.

         var f = fso.OpenTextFile(filename);

         mas= new Array();

         var i,j;

         countpot=0;

         var str1=f.ReadLine();                  //Считывает одну строку текста из потока и возвращает строку. Передвигает указатель.

         for(i=0;i          //Определение количества


         {                                                       //потоков

                   if (str1.charAt(i)==",")

                            countpot++;                           

         }

         f.Close();                                          //Обнуление указателя

         var f = fso.OpenTextFile(filename);    //текущей строки

         countstr=0;

         while (!f.AtEndOfStream)                  //Определение количества

         {                                                       //временных засечек

                   mas[countstr]=new Array(countpot+1);

                   countstr++;

                   str1=f.ReadLine();

         }

                           

        

         f.Close();

         var f = fso.OpenTextFile(filename);

         for (i=0;i                     //Заполнение массива


         {

                   str1=f.ReadLine();

                   var ind1=1;

                   var ind2=1;

                   for (j=0;j

                   {

                            ind2=str1.indexOf(",",ind1)-1;

                            if (ind2>0)

                                      mas[i][j]=str1.substring(ind1,ind2);

                            else

                                      mas[i][j]=str1.substring(ind1,str1.length-1);

                            ind1=ind2+3;

                   }

         }

         f.Close();

}

function Minpotok(outputformat,t1,t2)            //Эта процедура обрабатывает заполненный массив, определяет поток

{                                                //с минимальным средним процессорным временем на заданном параметрами t1 и t2 интервале 

                                                  //времени и выводит информацию об этом потоке в соответствующем формате, переданном процедуре 

                                                 //через параметр outputformat

      if (((t1<=t2)&&(t10)&&(t2>0))  

         {

         var i,j;

         var indmin=0;

         var sum=0;

        for (j=t1;j<=t2;j++)

          sum=sum+parseFloat(mas[j][1]);

        var min= (sum/(t2-t1+1));          

         for (i=1;i                //Определение потока


         {                                                       //с минимальным

                   sum=0;                                    //процессорным временем

                   for (j=t1;j<=t2;j++)

                            sum=sum+parseFloat(mas[j][i]);

              

                   if (((sum/(t2-t1+1))

                   {       

                            min=sum/(t2-t1+1);

                            indmin=i;

                   }

               

         }

        

         switch(outputformat)

         {

         case 'all_streams':

                   WScript.Echo(mas[0]);

                   for (i=t1;i<=t2;i++)

                            WScript.Echo(mas[i]);

                   break;

         case 'min_stream':

                   WScript.Echo("Поток с минимальным средним процессорным временем: "+mas[0][indmin]+" "+min);

                   var minval=parseFloat(mas[t1][indmin]);

                   var indminval=0;                       

                   for (i=t1;i<=t2;i++)                            //Нахождение

                            if (mas[i][indmin]        //минимального значения


                            {

                                      minval=parseFloat(mas[i][indmin]);

                                      indminval=i;

                            }

                   WScript.Echo("Минимальное значение его процессорного времени : "+mas[indminval][0]+" "+minval);

                   break;

         case 'all_streams_interval':

                   WScript.Echo("Поток с минимальным средним процессорным временем: "+mas[0][indmin]+" "+min);

                   WScript.Echo("Значения его процессорного времени");

                   for (i=t1;i<=t2;i++)

                            WScript.Echo(mas[i][0]+" "+mas[i][indmin]);

                   break;

         default:

                   WScript.Echo("Поток с минимальным средним процессорным временем: "+mas[0][indmin]+" "+min);

         }

         }

         else

                   WScript.Echo("Неправильно введены параметры. Введите help в качастве параметра для вывода справки по процедуре.");

}

if(WScript.Arguments.Count()>0)

{

         if (WScript.Arguments(0)!="help")

         {

                   var     fso=WScript.CreateObject("Scripting.FileSystemObject");

                   MakeMas(WScript.Arguments(0));

                   if(WScript.Arguments.Count()==4)

                   Minpotok(WScript.Arguments(1), Math.floor(WScript.Arguments(2)), WScript.Arguments(3));

                   else

                            if(WScript.Arguments.Count()==3)

                                      Minpotok(" ",Math.floor(WScript.Arguments(1)), WScript.Arguments(2));

                            else

                                      if(WScript.Arguments.Count()==2)

        

                                      Minpotok (WScript.Arguments(1),1,countstr-1);

                                      else

                                      Minpotok(" ",1,countstr-1);

         }

         else

{                

WScript.Echo("   Help:");

WScript.Echo("Данная программа, обрабатывая файл, созданный системным монитором, определяет поток с минимальным процессорным временем.\n Программа запускается следующим образом: \n cscript 2.js [параметр(ы)]\n 0-й параметр - имя обрабатываемого файла\n 1-й параметр - формат выводимой информации: all_streams,all_snreams_interval,min_stream,отсутствие параметра\n 2-й и 3-й параметры - интервал поиска; задается номерами временных засечек; по умолчанию соответственно равны 1 и общему числу засечек");

}}

else

         WScript.Echo("Введите help в качестве параметра для вывода справки по процедуре.");


8.       
Результаты выполнения описанных тестов


8.1.        
Программа по организации вычислений

1.

2.

3.


4.


5.



6.



8.2. Программа по обработке текстового файла

1.

2.

3.


4.



5.



6.
7.



8.



9.



10.


7.
Список используемой литературы


1.     В. Г. Олифер Н. А. Олифер  “Сетевые операционные системы” Издательский дом “Питер”  2002 г.

2.     Стефан Кох (Stefan Koch) “Введение в JavaScript ”  1996, 1997.

3.     Э. Танненбаум “Современные операционные системы”   2-ое издание Санкт-Петербург 2002 г.

4.       Д. В. Иртегов “Введение в операционные системы”   Санкт-Петербург 2002 г.

5.   С.А. Соколов “JavaScript” Москва-Санкт-Петербург-Киев, 2006г.


1. Реферат Корниловский мятеж
2. Реферат на тему Mirror Mirror Essay Research Paper Broken mirror
3. Реферат Брох Шотландия
4. Реферат на тему Безопасность жизнедеятельности - полезна ли жвачка
5. Реферат на тему Роль трудового виховання в становленні особистості
6. Реферат на тему Third Cubicle On The Right Essay Research
7. Реферат на тему Карьерные железнодорожные пути Устройство рельсовой колеи и стрелочных переводов
8. Контрольная работа Учет и оценка незавершенного производства
9. Реферат Органические вещества растительной клетки, доказательства их наличия в растении
10. Реферат на тему Myths Essay Research Paper Is Information Technology