Автор работы: Пользователь скрыл имя, 06 Апреля 2012 в 17:44, контрольная работа
Операционная система Windows XP была представлена мировой общественности 25 октября 2001 года (официально). Она должна была заменить на прилавках Windows 2000, которая так и не снискала большой популярности.
В данной контрольной работе рассмотрены основные понятия системы Windows XР. Я считаю эту тему актуальной, так как многие пользователи используют на своих ПК операционную систему Windows XP.
Введение
Описание системы Windows ХР
Описание Windows ХР
Настройка Windows ХР
Защита системы
Восстановление системы
Быстродействие системы
Процессы в Windows XP
Управление пользователями
Версии Windows XP
Файловая система
BIOS
Заключение
Список используемых источников
Восстановление системных файлов
Полезная функция, если ваш компьютер не используется исключительно для ресурсоемких задач типа игр. Так что лучше оставить ее включенной. При этом компьютер периодически создает слепки критичных системных файлов (файлы реестра, COM+ база данных, профили пользователей и т.д.) и сохраняет их как "точку отката".
Если часто устанавливаются и удаляются программы, или постоянно создаются, перемещаются или удаляются файлы, то следует выполнить дефрагментацию раз в неделю. Если же долгое время используются одни и те же приложения, при этом перемещение файлов гораздо реже, то дефрагментацию можно проводить раз в месяц.
Снятие ненужных служб
В Windows XP фоновые программы
снижают производительность пользовательских
программ и игр. Поскольку для
фоновых служб требуется
Вы можете посмотреть на список фоновых служб с помощью Диспетчера задач (Task Manager). XP различает пользовательские приложения и системные службы. Можно завершить работу каких-либо процессов, если они зависнут.
Некоторые процессы можно узнать по имени. Если работает фоновая антивирусная программа, то она в списке процессов. Здесь различные процессы, от конфигурирующих вашу мышь (EM_EXEC.EXE) до оболочки Windows Explorer (EXPLORER.EXE).
Процессы в Windows XP
Процессы
Процессом обычно называют
экземпляр выполняемой
На первый взгляд, кажется,
что программа и процесс
- Структура данных, содержащая всю информацию о процессе;
- Адресное пространство - диапазон адресов виртуальной памяти, которым может пользоваться процесс;
- Исполняемая программа
и данные, проецируемые на виртуальное
адресное пространство
Потоки
Процессы инертны. Отвечают же за исполнение кода, содержащегося в адресном пространстве процесса, потоки. Поток (thread) - некая сущность внутри процесса, получающая процессорное время для выполнения. В каждом процессе есть минимум один поток. Этот первичный поток создается системой автоматически при создании процесса. Далее этот поток может породить другие потоки, те в свою очередь новые и т.д.
Таким образом, один процесс
может владеть несколькими
Планирование потоков
Чтобы все потоки работали,
операционная система отводит каждому
из них определенное процессорное время.
Тем самым создается иллюзия
одновременного выполнения потоков (разумеется,
для многопроцессорных
Всякий раз, когда возникает прерывание от таймера, из кванта потока вычитается 3, и так до тех пор, пока он не достигнет нуля. Частота срабатывания таймера зависит от аппаратной платформы.
В любом случае операционная система должна определить, какой поток выполнять следующим. Выбрав новый поток, операционная система переключает контекст. Эта операция заключается в сохранении параметров выполняемого потока (регистры процессора, указатели на стек ядра и пользовательский стек, указатель на адресное пространство, в котором выполняется поток и др.), и загрузке аналогичных параметров для другого потока, после чего начинается выполнение нового потока.
Приоритеты
В Windows существует 32 уровня приоритета, от 0 до 31. Они группируются так: 31 - 16 уровни реального времени; 15 - 1 динамические уровни; 0 - системный уровень, зарезервированный для потока обнуления страниц (zero-page thread).
При создании процесса, ему назначается один из шести классов приоритетов: Real time class (значение 24), High class (значение 13), Above normal class (значение 10), Normal class (значение 8), Below normal class (значение 6), и Idle class (значение 4).
Приоритет каждого потока (базовый приоритет потока) складывается из приоритета его процесса и относительного приоритета самого потока.
Привязка к процессорам
Бывает, что в некоторых случаях, набор процессоров, на которых поток может работать, может быть ограничен. Это явление называется привязкой к процессорам (processor affinity). Можно изменить привязку к процессорам программно, через Win32-функции планирования.
Память
Каждому процессу в Win32 доступно линейное 4-гигабайтное виртуальное адресное пространство. Обычно верхняя половина этого пространства резервируется за операционной системой, а вторая половина доступна процессу.
Виртуальное адресное пространство процесса доступно всем потокам этого процесса. С другой стороны, механизм виртуальной памяти позволяет изолировать процессы друг от друга. Потоки одного процесса не могут ссылаться на адресное пространство другого процесса.
Виртуальная память может вовсе не соответствовать структуре физической памяти. Диспетчер памяти транслирует виртуальные адреса на физические, по которым реально хранятся данные. На каждый процесс, используется механизм подкачки (swapping). Когда поток обращается к странице виртуальной памяти, записанной на диск, диспетчер виртуальной памяти загружает эту информацию с диска обратно в память.
Объекты ядра
Эти объекты используются
системой и пользовательскими
Объект ядра это, по сути, структура, созданная ядром и доступная только ему. В пользовательское приложение передается только описатель (handle) объекта, а управлять объектом ядра можно с помощью функций Win32 API.
Функция Sleep() приостанавливает работу потока на заданное число миллисекунд.
Функция WaitForSingleObject() приостанавливает выполнение потока.
Функции WaitForMultipleObjects передается сразу массив объектов.
Синхронизация потоков
Работая параллельно, потоки
совместно используют адресное пространство
процесса. Также все они имеют
доступ к описателям (handles) открытых
в процессе объектов. А что делать,
если несколько потоков одновременно
обращаются к одному ресурсу или
необходимо как-то упорядочить работу
потоков? Для этого используют объекты
синхронизации и
Мьютексы, семафоры, события
Мьютексы (Mutex) это объекты ядра, которые создаются функцией CreateMutex(). Мьютекс бывает в двух состояниях - занятом и свободном. Мьютексом хорошо защищать единичный ресурс от одновременного обращения к нему разными потоками.
Семафор (Semaphore) создается функцией CreateSemaphore(). Он очень похож на мьютекс, только в отличие от него у семафора есть счетчик. Семафор открыт если счетчик больше 0 и закрыт, если счетчик равен 0. Семафором обычно "огораживают" наборы равнозначных ресурсов (элементов), например очередь, список и т.п.
События (Event), также как
и мьютексы имеют два состояния
- установленное и сброшенное. События
бывают со сбросом вручную и с
автосбросом. Когда поток дождался
(wait-функция вернула
Функция PulseEvent() устанавливает
событие и тут же переводит
его обратно в сброшенное состояние;
ее вызов равнозначен
Ожидаемые таймеры
Пожалуй, ожидаемые таймеры - самый изощренный объект ядра для синхронизации. Появились они, начиная с Win98. Таймеры создаются функцией CreateWaitableTimer и бывают, также как и события, с автосбросом и без него. Затем таймер надо настроить функцией SetWaitableTimer. Таймер переходит в сигнальное состояние, когда истекает его таймаут. Отменить "тиканье" таймера можно функцией CancelWaitableTimer. Примечательно, что можно указать callback функцию при установке таймера. Она будет выполняться, когда срабатывает таймер.
Критические секции.
Синхронизация в
Критическая секция гарантирует, что куски кода программы, огороженные ей, не будут выполняться одновременно. Строго говоря, критическая секция не является объектом ядра. Она представляет собой структуру, содержащую несколько флагов и какой-то (не важно) объект ядра. При входе в критическую секцию сначала проверяются флаги, и если выясняется, что она уже занята другим потоком, то выполняется обычная wait-функция. Критическая секция примечательна тем, что для проверки, занята она или нет, программа не переходит в режим ядра (не выполняется wait-функция) а лишь проверяются флаги. Из-за этого считается, что синхронизация с помощью критических секций наиболее быстрая. Такую синхронизацию называют "синхронизация в пользовательском режиме".
Синхронизация процессов
Описатели объектов ядра зависимы от конкретного процесса (process specific). Однако существуют способы работы с одними и теми же объектами ядра из разных процессов.
Во-первых, это наследование
описателя. При создании объекта
можно указать будет ли его
описатель наследоваться
Во-вторых, дублирование описателя. Функция DuplicateHandle дублирует описатель объекта одного процесса в другой, т.е. по сути, берет запись в таблице описателей одного процесса и создает ее копию в таблице другого.
И, наконец, именование объекта ядра. При создании объекта ядра для синхронизации (мьютекса, семафора, ожидаемого таймера или события) можно задать его имя. Оно должно быть уникальным в системе. Тогда другой процесс может открыть этот объект ядра, указав в функции Open…(OpenMutex, OpenSemaphore, OpenWaitableTimer, OpenEvent) это имя.
Поэтому, синхронизировать
потоки внутри разных процессов можно
точно также как и в пределах
одного. Нужно только правильно передать
описатель синхронизирующего
Взаимодействие между процессами
Потоки одного процесса не имеют доступа к адресному пространству другого процесса. Однако существуют механизмы для передачи данных между процессами.
Разделяемая память
Как уже говорилось, система
виртуальной памяти в Win32 использует
файл подкачки - swap file (или файл размещения
- page file), имея возможность преобразования
страниц оперативной памяти в
страницы файла на диске и наоборот.
Система может проецировать на оперативную
память не только файл размещения, но и
любой другой файл. Приложения могут
использовать эту возможность. Это
может использоваться для обеспечения
более быстрого доступа к файлам,
а также для совместного
Такие объекты называются проекциями файлов (на оперативную память) (file-mapping object).
Прочие механизмы (сокеты, pipe)
Кроме разделяемой памяти, в Windows есть и другие способы передачи информации между процессами, например, каналы, поименованные каналы и сокеты. Все они имеют сходный принцип и представляют собой своеобразный канал или соединение, "трубу", соединяющую процессы. Программа, имея один конец такого соединения, может читать и/или писать в него данные, обмениваясь, таким образом, информацией с программой на другом конце.
Каналы используются для пересылки данных в одном направлении между дочерним и родительским процессами или между двумя дочерними процессами. Операции чтения/записи в канал похожи на подобные операции при работе с файлами.
Поименованные каналы используются
для двустороннего обмена данными
между процессом-сервером и одним
или несколькими процессами-