Пояснить понятие «командная строка»(консоль). — КиберПедия 

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

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

Пояснить понятие «командная строка»(консоль).

2017-06-05 159
Пояснить понятие «командная строка»(консоль). 0.00 из 5.00 0 оценок
Заказать работу

Ответы к вопросам по лабораторной №1

Пояснить понятие «командная строка»(консоль).

 

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

 

Из каких элементов состоит команда в режиме консоли?

 

Каждая вводимая в консоли команда имеет следующую структуру:

<Имя команды> <P1> <P2> … <Pm> /K1/K2 …/Kn,

где <Имя команды> – это либо имя одной из внутренних команд (например, Copy, Dir), либо полное или частичное имя файла внешней команды (на-пример, C:\WINDOWS\system32\debug.exe). Элементы команды отделяются друг от друга одним из разделителей. Обычно это пробел.

 

Какие элементы включает спецификация файла?

 

Пояснить понятие текущей (рабочей) директории.

 

Текущая директория в консоли Windows – это директория, заданная ко-мандой CHDIR (cd). Текущая директория в консоли определяется для каждого тома файловой системы. Для приложений Windows текущая директория опре-деляется для каждого процесса.

 

Пояснить понятия абсолютного и относительного пути.

 

Путь может быть абсолютным или относительным.

Абсолютный путь представляет собой перечень директорий от корня файловой системы (в Windows символ \ в начале пути) до директории, вклю-чающей собственно имя файла.

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

 

Чем отличаются записи абсолютного и относительного путей?

См. вопрос№5

Перечислите имена специальных файлов в DOS и Windows.

В качестве имен файлов в Windows могут использоваться имена основ-ных символьных устройств компьютера. Например, такие как PRN – для прин-тера, CON – для консоли (клавиатура для ввода и дисплей для вывода), COM1,2,3,4 – для последовательных портов, NULL – для фиктивного устрой-ства ввода–вывода и др. Эти устройства называют специальными файлами. ^Z – «конец передачи».

8 Перечислить операторы перенаправления ввода–вывода и привести примеры их применения.

Операторы перенаправления ввода – вывода Оператор перенаправления   Описание
> Записывает данные стандартного вывода команды в файл или на уст-ройство, например, на принтер (PRN)
< Читает вместо стандартного потока ввода данные из файла или уст-ройства, например, из последовательного канала (COM1)
>> Добавляет данные стандартного вывода команды в конец файла, не удаляя при этом существующей информации из файла
D1 >& D2 Направляет данные с выхода одного дескриптора (D1) на вход другого дескриптора (D2)
D1 <& D2 Считывает входные данные первого дескриптора (D1) с выхода второ-го дескриптора (D2)
cmd1|cmd2 Направляет данные стандартного вывода одной команды (cmd1) в по-ток стандартного ввода другой команды (cmd2). Такое объединение команд называют конвейером, а механизм обмена данными носит на-звание «канал» (pipe)

Пример: dir > d:\work\file.txt “&”2>>d:\work\file.txt /ggg

9 Какие программы называют фильтрами? Привести примеры использо-вания фильтров.

Фильтрами называют команды, которые используют в качестве ввода стандартный поток STDIN, а в качестве вывода – стандартный поток STDOUT, т. е. ввод с клавиатуры и вывод в окно консоли. Такие команды удобно объеди-нять в цепочки с помощью оператора канала «|» и формировать таким образом то, что называется конвейером команд. Другое наименование – канал (pipe). Оператор канала направляет во временный файл стандартный вывод команды, стоящей слева от оператора. Затем информация из временного файла направля-ется на стандартный вход команды, стоящей справа от оператора.

К фильтрам относятся команды MORE, SORT, FIND. Фильтры делят, упо-рядочивают или выделяют отдельные части из проходящей через них информа-ции.

Что такое конвейер команд и как его организовать?

См. вопрос 9

Приведем в качестве примера следующую цепочку команд:

dir d:\ |find "txt"|sort /R | more

В этой цепочке информация о корневой директории диска D, выдаваемая командой dir, направляется на вход команды find, которая выделяет из входного потока строки, содержащие подстроку “txt” и направляет свой вы-вод на вход команды sort. Эта команда упорядочивает поток входящих строк в порядке, обратном алфавитному, и выдает их на вход команды more. По-следняя выводит поток строк на экран порциями, соответствующими размеру окна консоли.

Конвейеризацию команд можно объединять с перенаправлением ввода–вывода. Например, можно рассмотренную выше цепочку команд заставить со-хранять результаты в файле file.txt:

dir d:\ | find "txt" | sort /R | more >d:\file2.txt

В этом примере символы из потока стандартного вывода команды more перенаправляются в текстовый файл: more >d:\file2.txt.


Отчет по лабораторной работе №2
Тема: Автоматизация работы в консоли Windows с помощью командных файлов

Ext

@= TypeId

...

TypeID

@ = UsetType Name

DefaultIcon

@= path [,index]

 


Ответы к вопросам по лабораторной №4

 

Опишите файловые операции.

Условно можно выделить два типа операций с файлом — связанные с его открытием и выполняющиеся без его открытия. Операции первого типа обычно служат для чтения/записи информации или подготовки к записи/чтению. Операции второго типа выполняются с файлом как с «объектом» файловой системы, в котором файл является мельчайшей единицей структурирования.

Операции, связанные с открытием файла:

В зависимости от операционной системы те или иные операции могут отсутствовать.

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

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

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

· файловый буфер. Операционная система (и/или библиотека языка программирования) осуществляет кэширование файловых операций в специальном буфере (участке памяти). При закрытии файла буфер сбрасывается.

· режим доступа. В зависимости от потребностей программы, файл может быть открыт на чтение и/или запись. Кроме того, некоторые операционные системы (и/или библиотеки) предусматривают режим работы с текстовыми файлами. Режим обычно указывается при открытии файла.

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

 

Операции

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

· Закрытие файла. В качестве аргумента выступает значение, полученное при открытии файла. При закрытии все файловые буферы сбрасываются.

· Запись — в файл помещаются данные.

· Чтение — данные из файла помещаются в область памяти.

· Перемещение указателя — указатель перемещается на указанное число байт вперёд/назад или перемещается по указанному смещению относительно начала/конца. Не все файлы позволяют выполнение этой операции (например, файл на ленточном накопителе может не «уметь» перематываться назад).

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

· Получение текущего значения файлового указателя.

 

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

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

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

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

Стандартный ввод

Поток номер 0 (stdin) зарезервирован для чтения команд пользователя или входных данных.

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

Стандартный вывод

Поток номер 1 (stdout) зарезервирован для вывода данных, как правило (хотя и не обязательно) текстовых.

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

 

Структура NTFS

В начале тома находится загрузочная запись тома (Volume Boot Record), в которой содержится код загрузки Windows, информация о томе (в частности, тип файловой системы), адреса системных файлов ($Mft и $MftMirr – см. далее). Загрузочная запись занимает обычно 8 КБ (16 первых секторов).

В определенной области тома (адрес начала этой области указывается в загрузочной записи) расположена основная системная структура NTFS – главная таблица файлов (Master File Table, MFT). В записях этой таблицы содержится вся информация о расположении файлов на томе, а небольшие файлы хранятся прямо в записях MFT.

Важной особенностью NTFS является то, что вся информация, как пользовательская, так и системная, хранится в виде файлов. Имена системных файлов начинаются со знака "$". Например, загрузочная запись тома содержится в файле $Boot, а главная таблицафайлов – в файле $Mft. Такая организация информации позволяет единообразно работать как с пользовательскими, так и с системными данными на томе.

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

Остальное место на томе NTFS отводится под файлы – системные и пользовательские.

 


Основы работы WINDOWS. Многозадачность

 

  1. Приоритеты в Windows

Windows поддерживает 6 классов приоритета:

· idle (простаивающий)

· below normal (ниже обычного)

· normal (обычный)

· above normal (выше обычного)

· high (высокий)

· real-time (реального времени)

Самый распространённый класс приоритетов normal. Его используют 99% приложений.

 

Real-time Потоки в этом процессе обязаны немедленно реагировать на события, обеспечивая выполнение критических по времени задач. Такие потоки вытесняют даже компоненты ОС.
High Потоки в этом процессе тоже должны немедленно реагировать на события, обеспечивая выполнение критических по времени задач. Этот класс присвоен, например, Task Manager, что даёт возможность пользователю закрывать больше неконтролируемые процессы.
Above normal Класс приоритета промежуточный между normal и high. Это новый класс, введенный в Windows 200.
Normal Потоки в этом процессе не представляют особых требований к выделению им процессорного времени.
Below normal Класс приоритета промежуточный между normal и idle. Это новый класс, введенный в Windows 200.
Idle Потоки в этом процессе выполняются, когда система не занята другой работой. Этот класс приоритета обычно используется для утилит, работающих в фоновом режиме, экранных заставок и приложений, собирающих статистическую информацию.  

 

 

  1. Алгоритм планирования потоков

 

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

между процессами. Отвечающая за это часть операционной системы называется

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

 

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

1. При завершении процесса.

2. При блокировании процесса семафором или вводом-выводом.

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

 

Планирование обычно осуществляется еще в трех случаях, хотя и без жесткой

логической необходимости.

1. При создании нового процесса.

2. При прерывании ввода-вывода.

3. При прерывании от таймера.

 

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

Иногда родительский процесс может запросить другой уровень приоритета для

дочернего процесса.

 

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

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

 

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

 

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

· При невытесняющем алгоритме планирования процесс выбирается и выполняется до блокирования (вызванного вводом-выводом либо ожиданием другого процесса) или добровольного завершения.

· При вытесняющем алгоритме планирования процесс выбирается и выполняется в течение некоторого временного интервала. Если по окончании интервала процесс не завершил работу, он приостанавливается, а планировщик выбирает другое задание (при его наличии).

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

 

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

1. Системы пакетной обработки.

2. Интерактивные системы.

3. Системы реального времени.

 

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

образом, вполне приемлемым является применение невытесняющих алгоритмов

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

 

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

 

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

Интерактивные системы, напротив, являются универсальными и могут включать

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

 

Планирование в системах пакетной обработки:

· Первым пришел — первым обслужен. Согласно этому алгоритму, процессы обрабатываются в порядке поступления запросов на использование процессора.

· Самое короткое задание — первое.

· Задание с наименьшим временем завершения — следующее. Если новое задание можно выполнить быстрее, чем закончить текущее, текущее задание приостанавливается, а новое задание принимается к обработке.

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

Планирование в интерактивных системах

· Циклическое (карусельное) планирование. Каждому процессу предоставляется некоторый интервал времени процессора, так называемый

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

· Приоритетное планирование. Основная идея проста: каждому процессу присваивается свой приоритет и управление передается готовому к работе процессу с самым высоким приоритетом.

· Планирование с несколькими очередями.

· Самый короткий процесс — следующий

· Гарантированное планирование

· Лотерейное планирование

· Справедливое планирование

 

 

  1. Тип многозадачности для приложения DOS

 

DOS является однозадачной операционной системой. Тем не менее, программисты нашли путь преодоления этих препятствий, преимущественно при использовании резидентных (terminate-and-stay-resident, TSR) программ. Некоторые TSR-программы, такие как спулер печати, использовали прерывание аппаратного таймера для выполнения процесса в фоновом режиме. Другие, подобно всплывающим (popup) утилитам, таким как SideKick, могли выполнять одну из задач переключения – приостановку выполнения приложения на время работы утилиты. DOS также была усовершенствована для обеспечения поддержки резидентных программ.

Некоторые производители программного обеспечения пытались создать многозадачные оболочки или оболочки, использующие переключение между задачами, как надстройки над DOS (например, Quarterdeck's DeskView).

 

 

  1. Гарантии обслуживания

 

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

 

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

 

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

 

Гарантировать обслуживание можно, например, следующими тремя способами.

1. Выделять минимальную долю процессорного времени некоторому классу процессов, если по крайней мере один из них готов к исполнению. Например, можно отводить 20 % от каждых 10 мс процессам реального времени, 40 % от каждых 2 с — интерактивным процессам и 10 % от каждых 5 мин — пакетным (фоновым) процессам.

2. Выделять минимальную долю процессорного времени некоторому конкретному процессу, если он готов к выполнению.

3. Выделять столько процессорного времени некоторому процессу, чтобы он мог выполнить свои вычисления к сроку.

 

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

· Загрузка центрального процессора (CPU utilization). В большинстве персональных систем средняя загрузка процессора не превышает 2-3 %, доходя в моменты выполнения сложных вычислений и до 100 %. В реальных системах, где компьютеры (например, серверы) выполняют очень много работы, загрузка процессора колеблется в пределах от 15-40 % (для легко загруженного процессора) до 90-100 % (для тяжело загруженного процессора).

· Пропускная способность центрального процессора (CPU throughput). Пропускная способность процессора может измеряться количеством процессов, которые выполняются в единицу времени.

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

· Время ожидания (waiting time). Под временем ожидания понимается суммарное время нахождения процесса в очереди готовых процессов.

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

 

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

 

Правильное планирование процессов в значительной степени влияет на производительность всей системы.

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

 

 

  1. Планирование процессов переднего плана

Когда пользователь работает с окнами какого-то процесса, последний считается активным, а остальные процессы – фоновыми. Естественно, пользователь заинтересован в повышении отзывчивости активного процесса по сравнению с фоновыми. В Windows, когда процесс становится активным, система выделяет его потокам больший приоритет и более длительные кванты времени.

 

 

  1. Назначение файла подкачки

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

 

Существует два основных подхода к управлению памятью.

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

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

 

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

 

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

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

 

Еще один момент, на который стоит обратить внимание: сколько памяти должно

быть предоставлено процессу, когда он создается или копируется с диска? Если

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

 

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

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

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

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

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

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

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

 

Если предположить, что большинство процессов растет во время работы, вероятно,

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

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

 

 

  1. Процессы Р1, Р2, Р3 выделяют 100, 20, 80 Мб памяти. В системе 128Мб ОП. Каков размер занятой памяти в файле подкачки. Какой размер файла подкачки.

 

Файл подкачки Оперативная память
С (80) А + В (120)
А + В (120) С (80)
В + С (100) А (100)
А (100) С + В (100)
А + С (180) В (20)
А + В + С (200) -

 

Минимальный размер файла подкачки 200 Мб.

 

  1. Что такое «страничная ошибка»?

Когда процесс обращается к странице, не отображаемой в данный момент, он инициирует ошибку отсутствия страницы. Обработчик ошибок отсутствия страниц,

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

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

 

 

  1. Высокая интенсивность ошибок страниц говорит о:

- ненадежности программы

- ненадежности оперативной памяти

- иное: пояснить

 

Процессу надо много памяти по сравнению с размером оперативной памяти.

Плохая оптимизация распределения памяти в ОС.

 

 

  1. Как формируется приоритет потока в Windows

 

Приоритет потока в Windows формируется исходя из класса приоритета процесса и относительного приоритета потока.

 

Относительный приоритет потока Класс приоритета процесса
Idle Below normal Normal Above normal High Real-time
Time-critical            
Highest            
Above normal            
Normal            
Below normal            
Lowest            
Idle            

 

 

  1. Что такое относительный приоритет потока?

 

Windows поддерживает 7 относительных приоритетов потоков. Эти приоритеты относительны классу приоритета процесса. Как обычно, большинство потоков

использует обычный приоритет.

 

Относительный приоритет потока Описание
Time-critical Поток выполняется с приоритетом 31 в классе real-time и с приоритетом 15 в других классах
Highest Поток выполняется с приоритетом на два уровня выше обычного для данного класса
Above normal Поток выполняется с приоритетом на один уровень выше обычного для данного класса
Normal Поток выполняется с обычным приоритетом процесса для данного класса
Below normal Поток выполняется с приоритетом на один уровень ниже обычного для данного класса
Lowest Поток выполняется с приоритетом на два уровня ниже обычного для данного класса
Idle Поток выполняется с приоритетом 16 в классе real-time и с приоритетом 1 в других классах

 

 

  1. Что такое «динамический приоритет» потока?

 

Уровень приоритета, получаемый комбинацией относительного приоритета потока

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

потока. Обычно это происходит в ответ на некоторые события, связанные с вводом-

выводом (например, на появление оконных сообщений или чтение с диска).

 

Система повышает приоритет только тех потоков, базовый уровень которых находится в пределах 1–15. Именно поэтому данный диапазон называется «областью

динамического приоритета» (dynamic priority range). Система не допускает динамического повышения приоритета потока до уровней реального времени (более 15).

 

Поскольку потоки с такими уровнями обслуживают системные функции, это ограничение не дает приложению нарушить работу операционной системы. И, кстати, система никогда не меняет приоритет потоков с уровнями реального времени (от 16 до 31).

 

Есть еще одна ситуация, в которой система динамически повышает приоритет

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

получить доступ к процессору из-за того, что его постоянно занимают потоки с приоритетом 8. Это типичный случай «голодания» потока с более низким приоритетом.

 

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

 

 

  1. Понятие кэширование и кэш-памяти.

 

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

 

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

 

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

 

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

 

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

 

 

  1. От чего зависит эффективность работы кэш-памяти.

 

Эффективностью кэша называется отношение числа попаданий кэша к общему количеству обращений процессора. Эффективность, таким образом, — это число от 0 до 1. Нулевая эффективность означает, что кэш нисколько не ускорил работу системы; эффективность, равная единице, означает, что ускорение максимально, и время обращения к памяти определяется скоростью работы кэша, а не скоростью работы оперативной памяти.

 

Эффективность кэша зависит от следующих факторов:

· Объём кэша. Чем больше объём кэша, тем большую часть требуемых программе данных он может в себе содержать, тем реже будут происходить обращения к оперативной памяти, и тем выше будет общее быстродействие системы.

· Алгоритм функционирования кэша. К сожалению, зачастую объёма кэш-памяти недостаточно для того, чтобы вместить все необходимые для вычислений данные. В этом случае кэш-контроллер должен «решить», какие именно данные следует держать в кэше. Поэтому кроме объёма кэша важным является алгоритм его функционирования: кэш, оснащённый хорошим алгоритмом, будет гораздо эффективнее использовать свой объём, храня меньше ненужных


Поделиться с друзьями:

Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

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

Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.227 с.