Автор работы: Пользователь скрыл имя, 11 Июня 2014 в 06:03, курсовая работа
В настоящее время нельзя представить жизнь и деятельность современного человека без использования персонального компьютера. А операционная система является необходимой компонентой любого компьютера и представляет собой набор программ, предназначенных для управления компьютером, хранения информации и организации работы всех подключенных к нему устройств. В настоящее время Windows – самая распространенная система для персональных компьютеров. Среди достоинств, определяющих популярность Windows, можно выделить удобный , интуитивно понятный, графический интерфейс, параллельную работу множества программ и автоматическую настройку нового оборудования. Под общим названием Windows объединяются несколько операционных систем, которые хотя и похожи друг на друга, но обладают различными возможностями и предназначены для разных целей. Все системы семейства Windows построены на одних и тех же принципах, и программы, написанные для Windows, работают во всех этих системах. Windows ХР прочно вошла в нашу жизнь.
Введение 3
1. Описание Windows ХР 4
2. Настройка Windows ХР 6
3. Защита системы 7
4. Восстановление системы 9
5. Быстродействие системы 12
6. Процессы в Windows XP 16
7. Управление пользователями 22
8. Версии Windows XP 24
9. Установка Windows XP 27
Заключение 31
Список использованной литературы 32
- Функция потока возвращает управление.
- Поток самоуничтожается, вызвав ExitThread.
- Другой поток данного или стороннего процесса вызывает TerminateThread.
- Завершается процесс, содержащий данный поток.
Объекты ядра
Эти объекты используются системой и пользовательскими приложениями для управления множеством самых разных ресурсов: процессами, потоками, файлами и т.д. Windows позволяет создавать и оперировать с несколькими типами таких объектов.
Объект ядра это, по сути, структура, созданная ядром и доступная только ему. В пользовательское приложение передается только описатель (handle) объекта, а управлять объектом ядра можно с помощью функций Win32 API.
Wait функции
Как можно приостановить работу потока? Существует много способов. Вот некоторые из них.
Функция Sleep() приостанавливает работу потока на заданное число миллисекунд. Если в качестве аргумента вы укажите 0 ms, то произойдет следующее. Поток откажется от своего кванта процессорного времени, однако тут же появится в списке потоков готовых к выполнению. Иными словами произойдет намеренное переключение потоков. (Вернее сказать, попытка переключения. Ведь следующим для выполнения потоком вполне может стать тот же самый.)
Функция WaitForSingleObject() приостанавливает выполнение потока до тех пор, пока не произойдет одно из двух событий:
- истечет таймаут ожидания;
- ожидаемый объект перейдет в сигнальное (signaled) состояние.
По возвращаемому значению можно понять, какое из двух событий произошло. Ожидать с помощью wait-функций можно большинство объектов ядра, например, объект "процесс" или "поток", чтобы определить, когда они завершат свою работу.
Функции WaitForMultipleObjects передается сразу массив объектов. Можно ожидать срабатывания сразу всех объектов или какого-то одного из них.
Синхронизация потоков
Работая параллельно, потоки совместно используют адресное пространство процесса. Также все они имеют доступ к описателям (handles) открытых в процессе объектов. А что делать, если несколько потоков одновременно обращаются к одному ресурсу или необходимо как-то упорядочить работу потоков? Для этого используют объекты синхронизации и соответствующие механизмы.
Мьютексы
Мьютексы (Mutex) это объекты ядра, которые создаются функцией CreateMutex(). Мьютекс бывает в двух состояниях - занятом и свободном. Мьютексом хорошо защищать единичный ресурс от одновременного обращения к нему разными потоками.
Семафоры
Семафор (Semaphore) создается функцией CreateSemaphore(). Он очень похож на мьютекс, только в отличие от него у семафора есть счетчик. Семафор открыт если счетчик больше 0 и закрыт, если счетчик равен 0. Семафором обычно "огораживают" наборы равнозначных ресурсов (элементов), например очередь, список и т.п.
События
События (Event), также как и мьютексы имеют два состояния - установленное и сброшенное. События бывают со сбросом вручную и с автосбросом. Когда поток дождался (wait-функция вернула управление) события с автосбросом, такое событие автоматически сбрасывается. В противном случае событие нужно сбрасывать вручную, вызвав функцию ResetEvent(). Допустим, сразу несколько потоков ожидают одного и того же события, и событие сработало. Если это было событие с автосбросом, то оно позволит работать только одному потоку (ведь сразу же после возврата из его wait-функции событие сбросится автоматически!), а остальные потоки останутся ждать. Если же это было событие со сбросом вручную, то все потоки получат управление, а событие так и останется в установленном состоянии, пока какой-нибудь поток не вызовет ResetEvent().
Функция PulseEvent() устанавливает событие и тут же переводит его обратно в сброшенное состояние; ее вызов равнозначен последовательному вызову SetEvent() и ResetEvent(). Если PulseEvent вызывается для события со сбросом в ручную, то все потоки, ожидающие этот объект, получают управление. При вызове PulseEvent для события с автосбросом пробуждается только один из ждущих потоков. А если ни один из потоков не ждет объект-событие, вызов функции не дает никакого эффекта.
Ожидаемые таймеры
Пожалуй, ожидаемые таймеры - самый изощренный объект ядра для синхронизации. Появились они, начиная с Windows 98. Таймеры создаются функцией CreateWaitableTimer и бывают, также как и события, с автосбросом и без него. Затем таймер надо настроить функцией SetWaitableTimer. Таймер переходит в сигнальное состояние, когда истекает его таймаут. Отменить "тиканье" таймера можно функцией CancelWaitableTimer. Примечательно, что можно указать callback функцию при установке таймера. Она будет выполняться, когда срабатывает таймер.
Критические секции. Синхронизация в пользовательском режиме
Критическая секция гарантирует вам, что куски кода программы, огороженные ей, не будут выполняться одновременно. Строго говоря, критическая секция не является объектом ядра. Она представляет собой структуру, содержащую несколько флагов и какой-то (не важно) объект ядра. При входе в критическую секцию сначала проверяются флаги, и если выясняется, что она уже занята другим потоком, то выполняется обычная wait-функция. Критическая секция примечательна тем, что для проверки, занята она или нет, программа не переходит в режим ядра (не выполняется wait-функция) а лишь проверяются флаги. Из-за этого считается, что синхронизация с помощью критических секций наиболее быстрая. Такую синхронизацию называют "синхронизация в пользовательском режиме".
Синхронизация процессов
Описатели объектов ядра зависимы от конкретного процесса (process specific). Проще говоря, handle объекта, полученный в одном процессе, не имеет смысла в другом. Однако существуют способы работы с одними и теми же объектами ядра из разных процессов.
Во-первых, это наследование описателя. При создании объекта можно указать будет ли его описатель наследоваться дочерними (порожденными этим процессом) процессами.
Во-вторых, дублирование описателя. Функция DuplicateHandle дублирует описатель объекта одного процесса в другой, т.е. по сути, берет запись в таблице описателей одного процесса и создает ее копию в таблице другого.
И, наконец, именование объекта ядра. При создании объекта ядра для синхронизации (мьютекса, семафора, ожидаемого таймера или события) можно задать его имя. Оно должно быть уникальным в системе. Тогда другой процесс может открыть этот объект ядра, указав в функции Open…(OpenMutex, OpenSemaphore, OpenWaitableTimer, OpenEvent) это имя.
Поэтому, синхронизировать потоки внутри разных процессов можно точно также как и в пределах одного. Нужно только правильно передать описатель синхронизирующего объекта от одного процесса к другому любым из перечисленных выше способов.
Взаимодействие между процессами
Потоки одного процесса не имеют доступа к адресному пространству другого процесса. Однако существуют механизмы для передачи данных между процессами.
Разделяемая память
Как уже говорилось, система виртуальной памяти в Win32 использует файл подкачки - swap file (или файл размещения - page file), имея возможность преобразования страниц оперативной памяти в страницы файла на диске и наоборот. Система может проецировать на оперативную память не только файл размещения, но и любой другой файл. Приложения могут использовать эту возможность. Это может использоваться для обеспечения более быстрого доступа к файлам, а также для совместного использования памяти.
Такие объекты называются проекциями файлов (на оперативную память) (file-mapping object). Для создания проекции файла сначала вызывается функция CreateFileMapping(). Ей передается дескриптор (уже открытого) файла или указывается, что нужно использовать page file операционной системы. Кроме этого, в параметрах ей передается флаг защиты, максимальный размер проекции и имя объекта. Затем вызывается функция MapViewOfFile(). Она отображает представление файла (view of a file) в адресное пространство процесса. По окончании работы вызывается функция UnmapViewOfFile(). Она освобождает память и записывает данные в файл (если это не файл подкачки). Чтобы записать данные на диск немедленно, используется функция FlushViewOfFile(). Проекция файла, как и другие объекты ядра, может использоваться другими процессами через наследование, дублирование дескриптора или по имени.
Прочие механизмы (сокеты, pipe)
Кроме разделяемой памяти, в Windows есть и другие способы передачи информации между процессами, например, каналы, поименованные каналы и сокеты. Все они имеют сходный принцип и представляют собой своеобразный канал или соединение, "трубу", соединяющую процессы. Программа, имея один конец такого соединения, может читать и/или писать в него данные, обмениваясь, таким образом, информацией с программой на другом конце.
Каналы используются для пересылки данных в одном направлении между дочерним и родительским процессами или между двумя дочерними процессами. Операции чтения/записи в канал похожи на подобные операции при работе с файлами.
Поименованные каналы используются для двустороннего обмена данными между процессом-сервером и одним или несколькими процессами-клиентами. Как и анонимные каналы, они используют файлоподобный интерфейс, но, в отличие от первых, пригодны также для обмена данными по сети.
Сокет - это абстрактный объект для обозначения одного из концов сетевого соединения, в том числе и через Internet. Сокеты Windows бывают двух типов: сокеты дейтаграмм и сокеты потоков. Интерфейс Windows Sockets (WinSock) основан на BSD-версии сокетов, но в нем имеются также расширения, специфические для Windows.
Сообщения в Windows (оконные сообщения)
Говоря о Windows нельзя не упомянуть о таких понятиях как windows (окна), messages (сообщения), message queue (очередь сообщений) и т.д.
Window - это (прямоугольная) область экрана
в которой приложение
Окна управляются сообщениями. Все события, происходящие с окном, сопровождаются посылкой ему сообщений: создание и уничтожение окна, ввод с клавиатуры, перемещение мыши, перерисовка и перемещение окна и т.д. Сообщения окну могут посылаться как самой системой, так и пользовательскими приложениями. Каждому окну приписана функция, называемая оконной процедурой (window procedure), которая и вызывается при обработке сообщения.
Сообщения можно посылать не только окну, но и самому потоку. Каждый поток, владеющий окном, имеет очередь сообщений. Как правило, поток, владеющий окнами, только тем и занимается, что обрабатывает сообщения, посылаемые его окнам.
7. Управление пользователями
Как управлять пользователями, которым можно заходить на компьютер:
Как любая NT, XP имеет механизм идентификации пользователей, и каждого пользователя можно ограничить в правах. На этих пользователях и их правах строится вся модель безопасности XP, как на локальной машине, так и в сети. Нельзя защитить что-либо паролем, можно определить какие пользователи имеют право использовать тот или иной ресурс. Пользователей на одной машине может быть множество, и чтобы было проще ими управлять, пользователи разбиты на группы. Управление пользователями и группами осуществляется с помощью апплета Users Accounts в Control Panel или «Пуск — Выполнить» запустить команду control userpasswords. После установки системы образуется только два пользователя, один с правами администратора, который вы создали в процессе установки XP, и Guest, которые показаны в окне (на самом деле есть ещё несколько пользователей, например пользователь Administrator, но его не показывает в списке, и чтобы залогиниться им придётся идти на некоторые ухищрения). Если вы обладаете правами администратора, то можете добавить или удалить пользователя в этом окне, можете поменять пароль пользователя или пиктограмму соответствующую пользователю, поменять метод, который используется для входа в систему. Для этого надо выбрать пункт Change the way users log on and off. По умолчанию стоит Use the Welcome screen что означает, что для входа кликнуть по иконке из списка и ввести пароль. Если убрать галочку с этого пункта, то будет использоваться метод входа с окном, в котором предлагается ввести имя пользователя и пароль. Вы не можете использовать Welcome Screen если компьютер входит в домейн. Классический вход может быть двух видов, с требованием нажать Crtl+Alt+Del, и без него. Чтобы это изменить, наберите в командной строке control userapasswords2. Откроется окно, на второй закладке этого окна, Advanced, ставим или снимаем галочку в чекбоксе Require Users To Press Ctrl+Alt+Delete check box, расположенном в разделе Secure Logon. На той же закладке можно нажать кнопку Advanced в разделе Advanced User Management, и запустить апплет Local Users and Groups (ещё его можно запустить через Control Panel - Administrative Tools - Computer Management - Local Users and Groups ). Вы апплете, в котором сможете добавить или удалить пользователей, отредактировать уже существующих, поменять им группу, и т.д... Кроме этого, некоторые настройки для пользователей, такие как время жизни пароля, конкретные права для различных групп, и некоторые другие настраиваются из апплета Local Security Setings из Administrative Tools.
Есть возможность отключить необходимость в вводе пароля. Для этого запускаем control userpasswords2, и снимаем галочку c users must enter a user name and password to use this computer. После этого пользователь выбранный в разделе Users for this computer: будет логиниться на компьютер сразу.
Рисунок 1.7.1 Учетные записи пользователей
Как выставить права пользователям, работающим на компьютере:
В Windows XP каждому пользователю можно выставить определенные права – что делать разрешается, а что - нет, причем, если пользователей много, их можно распределить по группам, присвоив каждой группе определенные права. Управление пользователями и группами производится через апплет Users Accounts, находящийся в Контрольной панели. Сразу после инсталляции WinXP в этом апплете можно будет увидеть двух пользователей - того, кто был создан в процессе установки (с правами администратора) и второго - гостя (Guest), по умолчанию отключенного. Вообще-то сразу же после установки появляются еще несколько пользователей (например, знакомый еще со времен NT пользователь по имени Administrator), но они не показаны в списке - таков общий принцип построения Windows XP: операционная система предназначена для всех, другими словами - и для чайников тоже, поэтому до "лишнего" можно добраться только после некоторых дополнительных манипуляций. В общем-то, это правильно - меньше дров будет наломано... В случае, если вы обладаете правами администратора, апплет Users Accounts даст возможность добавлять или удалять пользователей, менять пользователю пароль или соответствующую ему картинку-пиктограмму, а также изменять метод входа в систему. По умолчанию при входе в систему показывается экран Welcome screen с пиктограммами и именами пользователей, но, если выбрать пункт "Change the way users log on and off" и убрать в появившемся окне галку с пункта "Use the Welcome screen", вход в систему будет происходить по NT-шному - через окно, в котором предлагается ввести имя пользователя и пароль.
Возможность редактирования уже существующих пользователей:
Чтобы получить доступ к контролю над пользователями, который можно назвать "полным", придется заглянуть в апплет Computer Management (Start /Administrative Tools /Computer Management) и кликнуть по плюсику, раскрывающему Local Users and Groups...
Но и это не все хитрости: есть еще апплет Local Security Setings (он там же, в Administrative Tools), с помощью которого можно, например, изменить время жизни паролей и выставить конкретные права каждой имеющейся группе пользователей.
Рисунок 1.7.2 Изменение записей пользователей
8. Версии Windows XP
Microsoft выпустила три новые версии XP: XP Home Edition, XP Professional и XP 64-Bit Edition. XP home, предназначенная для домашнего использования и малого бизнеса, по сути является модификацией Windows 9x/ Операционная система XP Professional предназначена для пользователей Windows 2000 или Windows NT. Хотя XP Home Edition и XP Professional базируются на одном и том же ядре, ориентированная на применение в сфере бизнеса XP Pro обладает более расширенной функциональностью по сравнению с домашней системой. Но требования и для XP Pro, и для XP Home примерно похожи.