Система Windows была
первоначально разработана фирмой
Microsoft как графическая
оболочка, загружаемая поверх MS-DOS.
Идеи GUI (Graphic
User Interface –
графический интерфейс пользователя)
были впервые разработаны для
экспериментальной машины Xerox
PARC еще в 70-х гг., затем
подхвачены в MacOS –
операционной системе компьютера
Macintosh, откуда и были с
некоторыми ухудшениями позаимствованы
в Windows.
Версию Windows 1.0, вышедшую
в 1985 г. и работавшую на 1 Мб памяти с
неперекрывающимися окнами, принято
рассматривать как интересную игрушку.
Версия 2.0 (1987 г.) была более серьезна, а
версии 3.0 и 3.1 (1990-1992 гг.), предназначенные
для процессоров i386 и
использующие до 16 Мб памяти, уже имели
большой успех.
Все
перечисленные версии продолжали
оставаться надстройками над MS-DOS,
использующими имеющуюся файловую
систему, но добавляющие свое собственное
управление процессами, памятью и
устройствами. За счет этого комбинацию
DOS + Windows
можно было назвать многозадачной
однопользовательской ОС с графическим
интерфейсом пользователя.
В 1993 г. Microsoft выпустила
Windows NT –
полноценную многозадачную и
многопользовательскую ОС, уже не
основанную на MS-DOS.
Однако, поскольку NT
предъявляла повышенные требования к
мощности процессора и объему памяти, в
1995 г. была выпущена компромиссная система
Windows 95, предназначавшаяся
для замены Windows 3.x
у массового пользователя.
Повышение скорости работы по сравнению
с версией NT было достигнуто
ценой отказа от многопользовательской
защиты и ослабления надежности системы.
В Windows 95 неаккуратно
написанная прикладная программа может
привести к краху системы, а в Windows
NT система лучше изолирована
от программ пользователя.
В то же
время, практически все корректно
написанные программы могут переноситься
из Windows 95 в Windows
NT и наоборот.
Некоторое время две линии Windows
развивались параллельно. Очередные
версии Windows NT
получили название Windows
2000, Windows XP,
Windows 2003. Линия Windows
95 была продолжена непринципиально
отличающимися от нее версиями Windows
98 и Windows ME,
но дальше, видимо, развиваться не будет.
Microsoft считает, что
современный уровень производительности
ПЭВМ снимает необходимость в облегченной
версии системы.
Windows
предоставляет в распоряжение прикладных
программ несколько тысяч документированных
API-функций на все случаи
жизни.
Современная Windows – весьма
мощная и чересчур сложная система,
имеющая множество достоинств и
недостатков, которые невозможно обсудить
коротко. Отметим, что широкому
распространению Windows,
помимо особого положения фирмы Microsoft
на рынке, способствует простота установки
системы, позволяющая рядовому пользователю
обойтись без помощи специалистов.
В
дальнейшем изложении описание возможностей
Windows будет в основном
ориентировано на линию Windows
NT/2000/XP.
Современные
операционные системы построены на
основе системы Windows-95. При ее создании
в систему были заложены следующие
основные концепции:
-
мультизадачность
– ОС и пользователь могут одновременно
работать с несколькими приложениями; -
визуальная
ориентированность – пользователь
не вводит команды, а управляет графическими
объектами (концепция GUI
– графического интерфейса пользователя); -
объектная
ориентированность – пользователь
работает с документами и папками, а не
с программами или командами; -
универсальный
интерфейс – все программы похожи по
управлению; -
технология
внедрения и связывания объектов –
все основные объекты можно комбинировать
и вкладывать друг в друга при работе с
документами; -
технология
обмена данными – практически любая
совместимая информация может быть
передана из одной программы в другую
через специальную область памяти,
называемую Буфером Обмена.
Основные
отличия Windows
1)
Эта ОС полностью 32 разрядная система,
обеспечивающая многозадачность и много
поточность. Т.е. теперь в отличие от DOS
в одно и тоже время возможно выполнение
нескольких компьютерных программ
одновременно, что существенно экономит
время и упрощает работу пользователя.
2)
Полностью изменен интерфейс пользователя.
Он стал графическим и многооконным.
Каждая запущенная программа работает
в своем собственном окне. Значительно
упростилось управление программами.
3)
Появилась развитая система контекстной
справочной помощи.
4)
Изменилось управление файлами:
a)
Длинные имена файлов на национальных
языках
b)
Виртуальная FAT
обеспечивающая совместимость с FAT
системой DOS.
c)
Поддержка различных файловых систем.
5)
Упростился процесс установки нового
оборудования в системе Windows
95 благодаря технологии Plug
and
Play.
6)
Windows
имеет встроенные возможности создания
одноранговых компьютерных сетей.
Развитые средства для работы в глобальной
сети Интернет.
7)
Поддержка OLE
технологии. Расширенные возможности
работы с графикой и видео на компьютере.
Требования
к системе:
процессор
I80486
и выше, RAM
8Mb
и больше, 80-100 Мв на жестком диске. Монитор
SVGA.
Видео карта должна поддерживать
разрешение 800х600 точек при 16 цветах и
иметь объем видео памяти как минимум
500 Кв.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
ЛЕКЦИЯ №6 ОПЕРАЦИОННАЯ СИСТЕМА WINDOWS
План
o Сведения об операционной системе.
o Графический интерфейс Windows 7.
СВЕДЕНИЯ ОБ ОПЕРАЦИОННОЙ СИСТЕМЕ
Операционная система (ОС) – программа, которая осуществляет диалог с пользователем, управляет компьютером, его ресурсами, запускает другие программы.
Операционная система представляет комплекс системных и служебных программных средств. С одной стороны, она опирается на базовое программное обеспечение компьютера, входящее в его систему ВIOS (базовая система ввода-вывода), с другой стороны, она сама является опорой для программного обеспечения более высоких уровней — прикладных и большинства служебных приложений. Приложениями операционной системы принято называть программы, предназначенные для работы под управлением данной системы.
Основная функция всех операционных систем — посредническая. Она заключаются в обеспечении нескольких видов интерфейса:
- интерфейса между пользователем и программно-аппаратными средствами компьютера (интерфейс пользователя);
- интерфейса между программным и аппаратным обеспечением (аппаратно-программный интерфейс);
- интерфейса между разными видами программного обеспечения (программный интерфейс).
Даже для одной аппаратной платформы, например такой, как IBM PC, существует несколько операционных систем. Различия между ними рассматривают в двух категориях: внутренние и внешние. Внутренние различия характеризуются методами реализации основных функций. Внешние различия определяются наличием и доступностью приложений данной системы, необходимых для удовлетворения технических требований, предъявляемых к конкретному рабочему месту.
Операционные системы корпорации Microsoft
Операционные системы корпорации Microsoft можно разделить на три семейства: Windows 3.1 и 3.11, Windows 95/98/Ме и Windows NT, 2000, ХР, Vista.
В период с 1981 по 1986 г. для персонального компьютера IBM PC корпорацией Microsoft поверх MS-DOS был добавлен графический интерфейс, именуемый Windows 3.1 и 3.11.
Начиная с 1995 г. были выпущены ОС Windows 95, 98, поддерживающие 16- и 32-разрядные коды. Эти ОС продолжали использовать файловую систему MS-DOS со всеми ее недостатками. Отличие Windows 98 от Windows 95 заключалось в интерфейсе, включавшем Интернет и рабочий стол пользователя.
В 2000 г. Microsoft выпустила немного измененную версию Windows 98, названную Windows Me (Windows Millennium Edition — Windows, выпуск тысячелетия). Она содержала улучшенные функции организации совместного использования изображений, музыки и фильмов, а также сети Интернет.
В 1993 г. была выпущена первая 32-разрядная версия, именуемая Windows NT 3.1 (New Technology — новая технология). Затем в 1996 г. появились версии NT 4.0 и NT 5.0.
Последняя версия в 1999 г. была переименована в Windows 2000, на которой сосредоточим основное внимание.
В основе операционной системы Windows лежат три основные концепции: концепция объекта, концепция окна и концепция рабочего стола.
Концепция объекта. Каждый файл, папка, устройство ^ имеют имя и представляются как объекты, которые отображаются на экране с помощью специальных значков различных для разных типов объектов. Каждый объект обладает набором характерных для его типа свойств.
Концепция окна. Для каждого активизируемого объекта открывается окно, в котором отображается его содержимое, если объект имеет иерархическую структуру (папка, устройство), или процесс и результат его работы, если объект является исполняемым файлом, т. е. программой.
Концепция рабочего стола. Все объекты и открывающиеся для них окна размещаются (или могут быть размещены) на рабочем столе.
Windows поддерживает объектно-ориентированный графический интерфейс пользователя . Это означает, что такие видимые на экране монитора элементы, как рабочий стол, ярлык и панель задач, обладают собственными свойствами, функциями и реакциями на действия пользователя.
ГРАФИЧЕСКИЙ ИНТЕРФЕЙСMICROSOFT WINDOWS 7
Windows 7 – это новая многозадачная операционная система компании Microsoft, пришедшая на смену Windows ХР и Windows Vista, выпущенная 22 октября 2009 года.
Операционная система Windows 7 позволяет работать на компьютере нескольким пользователям, причем каждый из них может настраивать интерфейс Windows независимо от других и хранить документы в личных папках. Для каждого пользователя в системе должна существовать учетная запись, определяющая его права. Чтобы иметь возможность выполнить любое действие на компьютере, необходимо войти в систему под одной из имеющихся учетных записей.
Управление в Windows 7
Windows 7 рассчитана на работу в первую очередь с мышью и клавиатурой, альтернативным способом управления являются обычная или экранная клавиатуры. Пользовательский интерфейс Windows 7 включает следующие основные элементы:
Рабочий стол;
Окна;
Меню (Пуск, контекстное и др.);
Панели инструментов;
Панель задач и др.
Рабочий стол. Основную часть экрана Windows 7 (рис.1.) занимает Рабочий стол. Рабочий стол – это графическая среда, на которой располагаются значки объектов и элементы управления.
После установки Windows 7 на Рабочем столе присутствует только один значок – Корзина. Все остальные значки содержатся в меню Пуск. Если вы хотите видеть на Рабочем столе одну из системных папок (например, Компьютер или Панель управления), найдите нужный значок в меню Пуск, щелкните на нем правой кнопкой и выберите команду Отображать на рабочем столе.
В Windows 7 вы можете изменять размер значков Рабочего стола. Для этого щелкните правой кнопкой на свободном месте Рабочего стола, выберите в появившемся меню пункт Вид и укажите один из следующих вариантов: Крупные значки, Обычные значки или Мелкие значки.
Для упорядочения значков щелкните правой кнопкой на свободном месте Рабочего стола и выберите в контекстном меню пункт Сортировка. В появившемся подменю можно указать один из вариантов для упорядочения значков по имени, размеру, типу или дате изменения. Если же выполнить команду контекстного меню ВидУпорядочить значки автоматически, то все значки будут выстроены в левой части Рабочего стола
Рис.1. Рабочий стол
и вы не сможете переместить их в другое место, можно лишь изменить порядок следования. Чтобы отменить автоматическое упорядочение, выполните указанную команду еще раз.
Вы можете вообще скрыть все значки Рабочего стола. Для этого откройте контекстное меню для свободного участка Рабочего стола, выберите пункт Вид и снимите флажок Отображать значки рабочего стола. Для отображения скрытых значков следует повторно выполнить указанную команду. Аналогичная команда имеется для управления отображением гаджетов Рабочего стола.
Если значок имеет метку , то это значок ярлыка. Ярлык – ссылка на объект (файл, папку, расположенные не на рабочем столе, а в какой-либо папке), представляющий удобный доступ к нему, обходя полный путь размещения. Один объект может иметь несколько ярлыков, расположенных в различных папках. Значки объектов, расположенных непосредственно на Рабочем столе (например, Корзина) , не имеют таких меток. При двойном щелчке на значке объекта открывается окно этого объекта. При двойном щелчке на ярлыке открывается окно объекта, на который ссылается ярлык.
Корзина – специальная папка рабочего стола, содержащая список удаленных файлов и папок. Для восстановления удаленных файлов и папок их необходимо выделить и в пункте менюФайл выбрать командуВосстановить. Для удаления файлов и папок их следует выделить и нажать клавишуDelete или кнопку . Для удаления из папкиКорзина всех файлов и папок используется командаОчистить корзину из менюФайл.
Статьи к прочтению:
- Операционные системы смарт-карт
- Операция * соответствует словам «значение, расположенное по указанному адресу».
Microsoft Windows — история успеха
Похожие статьи:
-
Назначение операционных систем
§18 Программное Обеспечение Компьютера Компьютер — это программно управляемое автоматическое устройство для работы с информацией. Без программ любой…
-
Оболочки операционных систем
Интерфейс операционной системы DOS не обладает необходимой дружественностью. Команды нужно знать наизусть, посимвольно набирать на клавиатуре и при этом…
Концепция операционной системы WINDOWS.
Введение. Понятие файла.
Операционная система – совокупность программных средств, обеспечивающая управление аппаратным обеспечением компьютера и прикладными программами, а также их взаимодействие между собой и пользователем.
Операционная система выполняет следующие функции:
· управление работой каждого блока персонального компьютера и их взаимодействием;
· управление выполнением программ;
· организация хранения информации во внешней памяти;
· взаимодействие пользователя с компьютером (поддержка интерфейса пользователя).
Операционная система осуществляет загрузку в оперативную память всех программ, передает им управление в начале их работы, выполняет различные действия по запросу выполняемых программ и освобождает занимаемую программами оперативную память при их завершении.
Разные типы устройств внешней памяти в операционной системе объединяет принцип организации хранения логически связанных наборов информации в виде файлов.
Файл – логически связанная совокупность данных или программ, для размещения которой во внешней памяти выделяется именованная область.
Файл является учетной единицей информации в операционной системе.
На диске файл не требует для своего размещения непрерывного пространства, обычно он занимает свободные кластеры в разных частях диска. Сведения о номерах этих кластеров хранятся в специальной FAT(File Allocation Table) – таблице.
Кластер – минимальная единица пространства диска, которое отведено файлу: представляет группу смежных секторов.
Для характеристики файла используются следующие параметры:
· объем файла (в байтах);
· специальные атрибуты: R (Read only) – только для чтения; H (Hidden) – скрытый; S (System) – системный; A (Archive) – архивный.
При работе на персональном компьютере установлен ряд соглашений по заданию типа файла:
. bak – копия файла, создаваемая при перезаписи файла оригинала;
. bat — командный файл;
. com – командный, системный, исполняемый файл;
. dat- файл данных;
. doc – файл документов (текстовый);
. exe – исполняемый файл;
. hlp – библиотека справочной информации;
. sys — файл, расширяющий возможности операционной системы;
. tmp – временный файл;
. txt – текстовый файл и другие.
Операционная система WINDOWS
Концепция операционной системы WINDOWS.
До появления операционной системы с графическим интерфейсом, какой является WINDOWS, от пользователя требовалось знание всех команд для управления работой компьютера. Этапы эволюции ОС WINDOWS:
1985 г. – версия 1.0 ; 1987 г. – версия 2.0 ; 1990 г. – версия 3.0 ; 1992 г. – версия 3.1 ; 1993 г. – версия 3.11 для рабочих групп (характер — графическая оболочка);
сент. 1995 г. – операционная система WINDOWS’95;
1998 г. — WINDOWS’98.
Операционная система WINDOWS’95 появилась в результате объединения операционной системы MS-DOS и ее графической оболочки WINDOWS’3.1 (3.11).
Основными характеристиками ОС WINDOWS являются:
1. 32-х разрядная архитектура;
2. вытесняющая многозадачность и многопоточность;
3. графический пользовательский интерфейс;
4. подключение новых периферийных устройств по технологии Plug & Play;
5. использование виртуальной памяти;
6. совместимость с ранее созданным программным обеспечением;
7. наличие коммуникационных программных средств;
8. наличие средств мультимедиа.
32-х разрядная архитектура.
Операционная система WINDOWS’95 ориентирована на работу 32-х разрядных программ (в отличие от нее, ОС MS-DOS работает, в основном, с 16-ти разрядными программами), что повышает скорость работы вычислительной системы. В ОС WINDOWS’95 16-ти разрядные программы также функционируют, но они не могут задействовать все ресурсы системы.
Вытесняющая многозадачность и многопоточность.
Многозадачная (multitasking) ОС – способность ОС одновременно выполнять несколько программ.
Многозадачность разделяется на следующие виды:
· кооперативная (cooperative): ОС не занимается решением проблемы распределения процессорного времени, его распределяют сами программы. Кооперативная многозадачность была реализована в WINDOWS’3.1.В ОС WINDOWS’95 этот вид многозадачности обеспечивается для 16-ти разрядных приложений.
· вытесняющая (preemptive): распределением процессорного времени между программами занимается операционная система. Она выделяет каждой задаче фиксированный квант времени процессора. По истечении этого кванта времени, система вновь получает управление, чтобы выбрать другую задачу для ее активизации. Такой режим реализуется для 32-х разрядных приложений, и для программ MS-DOS.
Многопоточная (multithreading) ОС – способность ОС разделять работающие программы на несколько частей, самостоятельно претендующих на процессорное время. Это обеспечивает выполнение программой не связанных друг с другом опреаций.
Графический пользовательский интерфейс.
Пользовательский интерфейс WINDOWS использует графический режим монитора. Основу интерфейса представляет система окон, включающая графические объекты для управления работой компьютера.
Подключение новых периферийных устройств по технологии Plug & Play
Операционная система WINDOWS самостоятельно создает и изменяет файлы конфигурации, распознает конкретное техническое устройство и производит его автонастройку (Технология“Plug & Play”). Дополнительные устройства подключаются специальными программами-мастерами, которые распознают любое устройство, поддерживающее технологию Plug & Play.
Использование виртуальной памяти.
Виртуальная память – расширение адресного пространства, полученное за счет использования части внешней памяти. Если оперативной памяти не хватает для обеспечения работы текущего (активного) приложения, то приложение или его часть, не используемые в данный момент микропроцессором, выгружаются из оперативной памяти на диск. На их место в оперативную память загружается необходимый фрагмент активного приложения.
Совместимость с ранее созданным программным обеспечением.
В большинстве случаев операционная система WINDOWS обеспечивает совместимость программ операционной системы MS-DOS.
Наличие коммуникационных программных средств.
Сетевые средства операционной системы WINDOWS позволяют осуществлять следующие функции:
· обеспечение передачи данных между двумя компьютерами, соединенными кабелями с помощью программы Direct Cable Connection;
· организация электронной почты в локальной и глобальной сети (Microsoft Exchange);
· выполнение факсимильной передачи (Microsoft Fax);
· обмен файлами с удаленным компьютером и подключение к глобальной сети (Hyper Terminal);
· организация одноранговой компьютерной сети из нескольких компьютеров;
· подключение к компьютерной сети с выделенным сервером.
Наличие средств мультимедиа.
Операционная система WINDOWS обеспечивает интерактивную работу с высококачественным звуком и графикой при помощи специальных программных средств. Минимальный набор таких приложений входит в состав ОС WINDOWS: проигрывание аудиодисков, воспроизведение, запись и редактирование звуковых файлов и др.
Операционная система WINDOWS XP получила распространение в 2002 году. Эта операционная система похоже на ОС WINDOWS 95/98/2000, но обладает рядом характерных особенностей, которые подчеркивают ее концептуальную новизну.
Операционная система WINDOWS XP обладает следующими отличительными особенностями по сравнению с предыдущими версиями ОС WINDOWS:
1. Минимальные требования к ресурсу компьютера для установки ОС WINDOWS XP: не менее 128 МБт ОЗУ, не менее 1,5 ГБт свободного места на жестком диске, тактовая частота микропроцессора не менее 300 МГц.
2. Внешний вид интерфейса упрощен, заголовки окон на рабочем столе крупнее.
3. Наличие двухпанельного Главного меню: Системные папки (Мои Документы, Моя музыка, Мои изображения), расположенные в Главном меню, содержат дополнительную панель в правой части своего окна.
4. Наличие встроенного MP-3 плейера, позволяющего прослушивать MP3 и WMA файлы без поиска нужного драйвера.
5. Копирование музыкальных файлов из сети INTERNET осуществляется по умолчанию в папку «Моя музыка».
6. Наличие только одного приложения на панели задач: окна одного приложения группируются вместе (под одним значком).
7. Наличие настроек в 10 отдельных категориях на Панели управления.
8. Существует программа-мастер подключения к сети.
9. Операционная система WINDOWS XP – многопользовательская ОС, она сохраняет профили каждого пользователя.
10. Наличие функции предварительного просмотра всех рисунков одного списка одновременно.
11. Наличие дополнительных драйверов для подключения периферийных устройств (обновлены стандартные, добавлены специальные возможности).
12. Поддержка режима записи на накопители CD-RW.
13. Поддержка «старых программ», разработанных для ОС MS-DOS.
Дата добавления: 2016-12-09 ; просмотров: 4235 ; ЗАКАЗАТЬ НАПИСАНИЕ РАБОТЫ
Основные положения и концепции OC Windows.
Вопрос 27. Основные положения. (§6.1)
Любая ОС состоит из 4-х частей, которые выполняют следующие функций:
1)управление всей аппаратурой компьютера.
2)управление выполнением программ.
3)управление взаимодействием с пользователем.
4)организация хранения информации на временных носителях (файловая система).
На ПК типа IBM/PC можно установить операционные системы
-Linux разных номеров
В настоящее время CP/M, MS DOS,PS/2 – не используются.
UNIX – пользуется не большим, но стабильным процентом пользователей.(≈ 9%, в течение 50 лет)
Windows – широко применяется
Linux- поддерживается общественными организациями как альтернатива Windows. ОС Linux использует так называемый открытый код, т.е. ее текст на алгоритмическом языке. Он доступен контролю и модификации пользователей.
На ПК типа Macintosh используется ОС под названием Mac OS.
Важно заметить, что только операционная система способна общаться с устройствами компьютеров.
Другие программы для обращения к устройствам используют ОС.
Название Windows происходит от английского «окна»
Окно – это прямоугольная область на экране, в которой отображается программа, документ или сообщение.
Окон на экране может быть много, и они могут накладываться друг на друга. Окна позволяют ввести третье измерение на экране, в дополнение к горизонтали и вертикали. Окна позволяют на одной и той же площади экрана разместить больше доступной информации. Экономия места на экране привела к графическому режиму работы ОС.
Графический режим – режим, при котором программа и ОС имеют доступ к каждой точке на дисплее.
При текстовом режиме ОС и программа имеют доступ к знакоместу на экране. Каждое знакоместо имеет одинаковые размеры , фиксированное положение и состоит из многих точек.
В ОС Windows прикладная программа называется приложением, а правила взаимодействия программы и пользователя называется интерфейсом.
-ОС Windows версии 1 и 2 появились и быстро исчезли(1985-1987 гг).
-Windows 3 представляла собой графическую оболочку над ОС MS DOS. С устройствами компьютера по- прежнему работали программы из MS DOS.
-4 версию Windows назвали Windows 95 поп году выпуска, её улучшенная версия Windows 98.
-Параллельно другой группой Microsoft разрабатывалась Windows NT для организаций. Объединение направлений привело к созданию 5-ой версии Windows 2000.
-Улучшенная 5 версия – Windows ХР (2001). К той же версии относится Windows 2003 для организаций.
— В 2007 г. появилась 6я версия Windows Vista, ее вариант для организаций – Windows 2008
-В 2009 г. вышла 7 версия – Windows 7
-В 2012 г. ожидается 8 версия – Windows 8
-Начата работа над 9 версией – Windows 9
ОС – является большими и сложными программами. Например, разработку Windows ХР вложен 1 млрд.$. Windows ХР содерит 40 млн. строчек программного кода.
В ОС Windows заложены следующие концепции:
1.графический интерфейс пользователя.
2.многозадачный режим работы.
3.управление ресурсами компьютера.
Концепция означает направление развития, некие сверхзадачи, которые никогда не будут доведены до конца.
Рабочий стол. Значки. Окна.
Рабочий стол – окно ОС Windows.
Первое, что видят пользователи — это Рабочий стол, Панель задач и значки.
Рабочий стол занимает весь экран дисплея, закрытие рабочего стола заканчивает работу в ОС Windows.
Вдоль одной из границ рабочего стола расположена Панель задач, на которой находится кнопка «Пуск» для вызова главного меню.
Значки с подписями на рабочем столе соответствуют приложениям, документам, папкам, внешним запоминающим устройствам. (рис 6.1)
— Первые два вида знаков относится к ярлыкам – это указатель на некоторые файлы. Удаление ярлыка не удаляет файл.
— Папка – таблица, которая содержит имена файлов, их значки, информацию о их местонахождении.
П.2. Окна. (п.6.2.2)
Типовая структура окна Windows показана на рис 6.2
Имеется много видов окон: окна приложений, окна с рамками, окна просмотра.
Панели инструментов, кнопки в списке меню, поля ввода, полосы прокрутки по внешнему виду не похожи на окна, но фактически ими являются.
Модальное окно – окно, которое нельзя покинуть, не закрыв его. Между немодальными окнами можно свободно перемещаться с помощью мыши и клавиатуры.
Многодокументные окна (MDI) – содержат все вызванные окна внутри себя. Закрытие MDI окна закрывает все вызванные окна.(рис 6.3)
Однодокументные окна – (SDI) – могут выпускать вызванное окно за свои пределы.(рис 6.4)
Выделяется специальное окно сообщений, которое содержит рисунок, сообщение и от 1 до 4-х кнопок.
Вопрос 27. Основные положения. (§6.1)
Любая ОС состоит
из 4-х частей, которые выполняют следующие
функций:
1)управление всей
аппаратурой компьютера.
2)управление
выполнением программ.
3)управление
взаимодействием с пользователем.
4)организация
хранения информации на временных
носителях (файловая система).
На ПК типа IBM/PC
можно установить операционные системы
-CP/M,
-MS DOS,
-PS/2
-UNIX,
-Linux
разных номеров
-Windows.
В настоящее время
CP/M,
MS
DOS,PS/2
– не используются.
UNIX
– пользуется не большим, но стабильным
процентом пользователей.(≈
9%, в течение 50 лет)
Windows
– широко применяется
Linux-
поддерживается общественными организациями
как альтернатива Windows.
ОС Linux
использует так называемый открытый
код, т.е. ее
текст на алгоритмическом языке. Он
доступен контролю и модификации
пользователей.
На ПК типа Macintosh
используется ОС под названием Mac
OS.
Важно заметить,
что только операционная система способна
общаться с устройствами компьютеров.
Другие программы
для обращения к устройствам используют
ОС.
Название Windows
происходит от английского «окна»
Окно
– это прямоугольная область на экране,
в которой отображается программа,
документ или сообщение.
Окон на экране
может быть много, и они могут накладываться
друг на друга. Окна позволяют ввести
третье измерение на экране, в дополнение
к горизонтали и вертикали. Окна позволяют
на одной и той же площади экрана разместить
больше доступной информации. Экономия
места на экране привела к графическому
режиму работы ОС.
Графический
режим –
режим, при котором программа и ОС имеют
доступ к каждой точке на дисплее.
При текстовом
режиме ОС и программа имеют доступ к
знакоместу на экране. Каждое знакоместо
имеет одинаковые размеры , фиксированное
положение и состоит из многих точек.
В ОС Windows
прикладная программа называется
приложением,
а правила взаимодействия программы и
пользователя называется интерфейсом.
История Windows
-ОС Windows
версии 1 и 2 появились и быстро
исчезли(1985-1987 гг).
-Windows
3 представляла собой графическую оболочку
над ОС MS
DOS.
С устройствами компьютера по- прежнему
работали программы из MS
DOS.
-4 версию Windows
назвали Windows
95 поп году выпуска, её улучшенная версия
Windows
98.
-Параллельно другой
группой Microsoft
разрабатывалась Windows
NT
для организаций. Объединение направлений
привело к созданию 5-ой версии Windows
2000.
-Улучшенная 5 версия
– Windows
ХР (2001). К той же версии относится Windows
2003 для организаций.
— В 2007 г. появилась
6я версия Windows
Vista,
ее вариант для организаций – Windows
2008
-В 2009 г. вышла 7
версия – Windows
7
-В 2012 г. ожидается
8 версия – Windows
8
-Начата работа над
9 версией – Windows
9
ОС – является
большими и сложными программами.
Например,
разработку Windows
ХР вложен 1 млрд.$. Windows
ХР содерит 40 млн. строчек программного
кода.
В ОС Windows
заложены следующие концепции:
1.графический
интерфейс пользователя.
2.многозадачный
режим работы.
3.управление
ресурсами компьютера.
4.объектный подход.
5.работа в сети.
6.мультимедиа.
7.безопасность
Концепция означает
направление развития, некие сверхзадачи,
которые никогда не будут доведены до
конца.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
ЛЕКЦИЯ №6 ОПЕРАЦИОННАЯ СИСТЕМА WINDOWS
План
o Сведения об операционной системе.
o Графический интерфейс Windows 7.
СВЕДЕНИЯ ОБ ОПЕРАЦИОННОЙ СИСТЕМЕ
Операционная система (ОС) – программа, которая осуществляет диалог с пользователем, управляет компьютером, его ресурсами, запускает другие программы.
Операционная система представляет комплекс системных и служебных программных средств. С одной стороны, она опирается на базовое программное обеспечение компьютера, входящее в его систему ВIOS (базовая система ввода-вывода), с другой стороны, она сама является опорой для программного обеспечения более высоких уровней — прикладных и большинства служебных приложений. Приложениями операционной системы принято называть программы, предназначенные для работы под управлением данной системы.
Основная функция всех операционных систем — посредническая. Она заключаются в обеспечении нескольких видов интерфейса:
- интерфейса между пользователем и программно-аппаратными средствами компьютера (интерфейс пользователя);
- интерфейса между программным и аппаратным обеспечением (аппаратно-программный интерфейс);
- интерфейса между разными видами программного обеспечения (программный интерфейс).
Даже для одной аппаратной платформы, например такой, как IBM PC, существует несколько операционных систем. Различия между ними рассматривают в двух категориях: внутренние и внешние. Внутренние различия характеризуются методами реализации основных функций. Внешние различия определяются наличием и доступностью приложений данной системы, необходимых для удовлетворения технических требований, предъявляемых к конкретному рабочему месту.
Операционные системы корпорации Microsoft
Операционные системы корпорации Microsoft можно разделить на три семейства: Windows 3.1 и 3.11, Windows 95/98/Ме и Windows NT, 2000, ХР, Vista.
В период с 1981 по 1986 г. для персонального компьютера IBM PC корпорацией Microsoft поверх MS-DOS был добавлен графический интерфейс, именуемый Windows 3.1 и 3.11.
Начиная с 1995 г. были выпущены ОС Windows 95, 98, поддерживающие 16- и 32-разрядные коды. Эти ОС продолжали использовать файловую систему MS-DOS со всеми ее недостатками. Отличие Windows 98 от Windows 95 заключалось в интерфейсе, включавшем Интернет и рабочий стол пользователя.
В 2000 г. Microsoft выпустила немного измененную версию Windows 98, названную Windows Me (Windows Millennium Edition — Windows, выпуск тысячелетия). Она содержала улучшенные функции организации совместного использования изображений, музыки и фильмов, а также сети Интернет.
В 1993 г. была выпущена первая 32-разрядная версия, именуемая Windows NT 3.1 (New Technology — новая технология). Затем в 1996 г. появились версии NT 4.0 и NT 5.0.
Последняя версия в 1999 г. была переименована в Windows 2000, на которой сосредоточим основное внимание.
В основе операционной системы Windows лежат три основные концепции: концепция объекта, концепция окна и концепция рабочего стола.
Концепция объекта. Каждый файл, папка, устройство ^ имеют имя и представляются как объекты, которые отображаются на экране с помощью специальных значков различных для разных типов объектов. Каждый объект обладает набором характерных для его типа свойств.
Концепция окна. Для каждого активизируемого объекта открывается окно, в котором отображается его содержимое, если объект имеет иерархическую структуру (папка, устройство), или процесс и результат его работы, если объект является исполняемым файлом, т. е. программой.
Концепция рабочего стола. Все объекты и открывающиеся для них окна размещаются (или могут быть размещены) на рабочем столе.
Windows поддерживает объектно-ориентированный графический интерфейс пользователя . Это означает, что такие видимые на экране монитора элементы, как рабочий стол, ярлык и панель задач, обладают собственными свойствами, функциями и реакциями на действия пользователя.
ГРАФИЧЕСКИЙ ИНТЕРФЕЙСMICROSOFT WINDOWS 7
Windows 7 – это новая многозадачная операционная система компании Microsoft, пришедшая на смену Windows ХР и Windows Vista, выпущенная 22 октября 2009 года.
Операционная система Windows 7 позволяет работать на компьютере нескольким пользователям, причем каждый из них может настраивать интерфейс Windows независимо от других и хранить документы в личных папках. Для каждого пользователя в системе должна существовать учетная запись, определяющая его права. Чтобы иметь возможность выполнить любое действие на компьютере, необходимо войти в систему под одной из имеющихся учетных записей.
Управление в Windows 7
Windows 7 рассчитана на работу в первую очередь с мышью и клавиатурой, альтернативным способом управления являются обычная или экранная клавиатуры. Пользовательский интерфейс Windows 7 включает следующие основные элементы:
Рабочий стол;
Окна;
Меню (Пуск, контекстное и др.);
Панели инструментов;
Панель задач и др.
Рабочий стол. Основную часть экрана Windows 7 (рис.1.) занимает Рабочий стол. Рабочий стол – это графическая среда, на которой располагаются значки объектов и элементы управления.
После установки Windows 7 на Рабочем столе присутствует только один значок – Корзина. Все остальные значки содержатся в меню Пуск. Если вы хотите видеть на Рабочем столе одну из системных папок (например, Компьютер или Панель управления), найдите нужный значок в меню Пуск, щелкните на нем правой кнопкой и выберите команду Отображать на рабочем столе.
В Windows 7 вы можете изменять размер значков Рабочего стола. Для этого щелкните правой кнопкой на свободном месте Рабочего стола, выберите в появившемся меню пункт Вид и укажите один из следующих вариантов: Крупные значки, Обычные значки или Мелкие значки.
Для упорядочения значков щелкните правой кнопкой на свободном месте Рабочего стола и выберите в контекстном меню пункт Сортировка. В появившемся подменю можно указать один из вариантов для упорядочения значков по имени, размеру, типу или дате изменения. Если же выполнить команду контекстного меню ВидУпорядочить значки автоматически, то все значки будут выстроены в левой части Рабочего стола
Рис.1. Рабочий стол
и вы не сможете переместить их в другое место, можно лишь изменить порядок следования. Чтобы отменить автоматическое упорядочение, выполните указанную команду еще раз.
Вы можете вообще скрыть все значки Рабочего стола. Для этого откройте контекстное меню для свободного участка Рабочего стола, выберите пункт Вид и снимите флажок Отображать значки рабочего стола. Для отображения скрытых значков следует повторно выполнить указанную команду. Аналогичная команда имеется для управления отображением гаджетов Рабочего стола.
Если значок имеет метку , то это значок ярлыка. Ярлык – ссылка на объект (файл, папку, расположенные не на рабочем столе, а в какой-либо папке), представляющий удобный доступ к нему, обходя полный путь размещения. Один объект может иметь несколько ярлыков, расположенных в различных папках. Значки объектов, расположенных непосредственно на Рабочем столе (например, Корзина) , не имеют таких меток. При двойном щелчке на значке объекта открывается окно этого объекта. При двойном щелчке на ярлыке открывается окно объекта, на который ссылается ярлык.
Корзина – специальная папка рабочего стола, содержащая список удаленных файлов и папок. Для восстановления удаленных файлов и папок их необходимо выделить и в пункте менюФайл выбрать командуВосстановить. Для удаления файлов и папок их следует выделить и нажать клавишуDelete или кнопку . Для удаления из папкиКорзина всех файлов и папок используется командаОчистить корзину из менюФайл.
Статьи к прочтению:
- Операционные системы смарт-карт
- Операция * соответствует словам «значение, расположенное по указанному адресу».
Microsoft Windows — история успеха
Похожие статьи:
-
Назначение операционных систем
§18 Программное Обеспечение Компьютера Компьютер — это программно управляемое автоматическое устройство для работы с информацией. Без программ любой…
-
Оболочки операционных систем
Интерфейс операционной системы DOS не обладает необходимой дружественностью. Команды нужно знать наизусть, посимвольно набирать на клавиатуре и при этом…
Все современные компьютерные системы построены по трём принципам Джона фон Неймана: программного управления, однородности памяти и адресности. Эти принципы можно раскрыть следующим образом: программа, состоящая из набора команд, и исходные данные хранятся в общей памяти, каждая ячейка которой имеет свой адрес (набор всех адресов, к которым может обращаться программа, называется адресным пространством); каждая команда вместе с данными выбирается из памяти и исполняется процессором, выбор команды осуществляется с помощью специального счётчика команд, который содержит в себе адрес исполняемой в данный момент команды; команды расположены в памяти друг за другом, за счёт чего организуется последовательная выборка из памяти цепочки команд.
На основании этого можно выделить три основных структурных элемента компьютера:
Процессор
Осуществляет контроль за действиями компьютера, а также выполняет функцию обработки данных согласно программе. В современных системах может быть один и больше центральных процессоров.
Основная память
В ней хранятся программы и данные. Как правило является временной (информация сохраняется, пока подаётся питание).
Устройства ввода-вывода
Служат для передачи данных между компьютером и внешним окружением, состоящим из переферийных устройств, в число которых входят внешняя память, коммуникационное оборудование, терминалы.
Перечисленные компоненты вычислительной системы объединяются с помощью системной шины. Термином шина принято обозначать структуры и механизмы, обеспечивающие взаимодействие между разными компонентами системы, в данном случае — процессором, основной памятью и устройствами ввода-вывода.
Рисунок 1.1. Компоненты компьютерных систем
Центральный процессор извлекает программу из памяти, декодирует и исполняет машинные команды. Обычно команды исполняются последовательно, но иногда возможны переходы к другим участкам программы, например, по заданному условию.
В каждый момент времени процессор может испонять только одну программу. Многие современные операционные системы относятся к многозадачным, т. е. в системе одновременно может исполняться несколько задач, число которых заранее неизвестно. Так как число процессоров конечно, необходимы алгоритмы, позволяющие чередовать исполнения процессов так, чтобы каждый из них получал процессорное время. Этот подход называется псевдопараллелизмом: каждому процессу выделяется квант процессорного времени, по истечении которого управление передается другому процессу (это действие называют переключением контекста). Также управление может быть передано другому процессу, если исполняемый процесс ожидает появления некоего системного ресурса, например, завершения операции ввода-вывода.
В случае многопроцессорных компьютеров принцип остаётся прежним — на каждом процессоре исполняется только один процесс в каждый момент времени, повышение эффективности достигается «экстенсивным путём», за счёт нескольких одновременно работающих процессоров. Логика алгоритмов псевдопараллелизма несколько усложняется на многопроцессорных архитектурах за счёт необходимости балансировать нагрузку между несколькими процессорами, минимизируя время простоя каждого. Это означает, что каждый следующий квант процессорного времени может быть выдан процессу на любом из доступных процессоров.
Рисунок 1.2. Пример пcевдопараллелизма
Конфигурация памяти компьютера определяется в основном тремя параметрами: объём, быстродействие, стоимость. Очевидно, между этими противоречивыми характеристиками существует компромисс, который представляет собой иерархию памяти. Таким образом, к дорогим устройствам с высокой производительностью и малым объёмом добавляются дешёвые устройства с меньшей скоростью доступа и большим объёмом. При этом ярко выражена функция каждого из уровней: регистровая память хранит операнды команд, кэш используется для хранения самых используемых участков памяти, основная память хранит исполняющиеся программы, внешняя — сохраняет данные и программы между запусками.
Рисунок 1.3. Иерархия видов памяти
Особое значение имеет основная память — в ней хранятся все исполняющиеся программы и данные к ним. Программа может обращаться к любой ячейке памяти из доступного множества (которое называется адресным пространством). Существует несколько видов адресных пространств: реальные (соответствуют ячейкам физической памяти или портам ввода-вывода) и виртуальные (определённым образом проецируемые на реальные адресные пространства). В современных операционных системах каждый процесс обладает своим собственным адресным пространством, так что не может нанести вред памяти других процессов. Подробнее виртуальная память рассматривается в разделе.
Современные компьютеры состоят из большого числа узлов. С аппаратной точки зрения, внешние устройства — это все компоненты компьютера за исключением процессора и оперативной памяти. Взаимодействие с внешними устройствами (или устройствами ввода-вывода) осуществляется через специальные устройства, которые называются шинами и представляют собой по сути набор проводов с заданными характеристиками и правилами использования. В современных компьютерах как правило одновременно представлено несколько шин: например, PCI, PCI-Express, USB.
Взаимодействие с устройствами ввода-вывода может происходить тремя способами: программируемый ввод-вывод, ввод-вывод с помощью прерываний, прямой доступ к памяти (Direct Memory Access, DMA).
В первом случае процессор явно обращяется к контроллеру внешнего устройства, вызывая управляющие команды и обмениваясь данными. Так как скорость работы процессора значительно превышает скорость работы внешних устройств, при таком способе обмена простои в работе процессора будут очень велики. Для избежания этой ситуации используется механизм прерываний: выполнение программы в процессоре может быть прервано, когда данные на внешнем устройстве готовы для чтения или записи — при этом запускается специальная функция-обработчик прерывания, затем выполнение исходной программы возобновляется. При использовании прямого доступа к памяти, процессор не участвует в процессе ввода-вывода — за копированием данных из устройства в основную память следит специальный контроллер прямого доступа к памяти.
Основные концепции операционных систем
Назначение операционной системы
Операционная система — это комплекс взаимосвязанных программ, который действует как интерфейс между приложениями и пользователями с одной стороны и аппаратурой компьютера с другой стороны. В соответствии с этим определением операционная система выполняет две основные функции:
- предоставление пользователю или программисту вместо реальной аппаратуры расширенной виртуальной машины (которую иногда называют операционная среда), с которой удобно работать и которую легче программировать;
- повышение эффективности использования компьютера путём рационального управления его ресурсами в соответствии с некоторыми критериями.
Операционная система как виртуальная машина
Для того чтобы успешно решать свои задачи, в настоящее время пользователь или программист может обойтись без досконального знания аппаратного устройства компьютера и может даже не знать системы команд процессора (для программистов существует множество библитек и высокоуровневых фукций).
Программное и аппаратное обеспечение можно выстроить в виде иерархии, каждый уровень которой представляет собой виртуальную машину со своим интерфейсом, за которым скрываются детали нижележащего уровня.
Рисунок 1.4. Уровни вычислительной системы
Операционная система избавляет программистов от необходимости напрямую работать с аппаратурой, предоставляя им простой интерефейс (файловый, сетевой и т. п.), а также берёт на себя все рутинные операции по управлению аппаратными устройствами компьютера: физической памятью, таймерами, устройствами ввода и т. п.
В результате реальная машина, способная выполнять элементарные действия, определенные её набором команд, превращается в виртуальную машину, выполняющую набор более высокоуровневых функций. Виртуальная машина также управляется командами, но более высокого уровня: создание и удаление файлов, установка сетевых соединений и т. п. В свою очередь, эти команды также могут быть объединены в виртуальную машину с более высоким уровнем абстракции, например графический пользовательский интерфейс, который оперирует объектами.
Операционная система как менеджер ресурсов
Операционная система не только позволяет запускать прикладные программы, но и является механизмом, распределяющим ресурсы компьютера в ходе работы этих программ.
В разделе «Обзор компьютерных систем» уже рассматривались основные ресурсы компьютера: процессорное время, основная память, всевозможные внешние устройства; также к ресурсам можно отнести таймеры и некоторые процедуры операционной системы. Ресурсы эти распределяются между процессами. Процесс предсталяет собой базовое понятие большинства операционных систем, и чаще всего определяется как программа, находящаяся в стадии выполнения.
Управление ресурсами вычислительной системы с целью наиболее эффективного их использования — назначение операционной системы. Многозадачная операционная система занимается переключением процессора с одного процесса на другой, максимизируя его загрузку, а также отслеживает конфликты при обращении к общим ресурсам.
Критерий эффективности, в соответствии с которым операционная система организует управление ресурсами компьютера, может быть различным и зависит от назначения информационно-вычислительной системы, частью которой она является. Например, в одних системах важен такой критерий, как пропускная способность — число задач, выполненных за единицу времени, а в других — время реакции (время, прошедшее с момента ввода команды до получения отклика системы).
Архитектура операционной системы
Операционная система выполняет множество функций, которые обычно группируются в соответствии с видом ресурса, которым управляет операционная система, либо со специфической задачей, применимой ко всем видам ресурсов. Можно выделить следующие функции современной многозадачной многопользовательской операционнной системы: управление процессами, управление памятью, управление файлами и внешними устройствами, защита данных и администрирование, интерфейс прикладного программирования, пользовательский интерфейс.
Наиболее общим подходом к структуризации операционной системы является её разделение всех её модулей на две группы:
- ядро — модули, выполняющие основные функции операционной системы, решающие внутрисистемные задачи организации вычислительного процесса, такие как переключение контекста, управление памятью, обработка прерываний, работа с внешними устройствами и т. п.
- компоненты, реализующие дополнительные функции операционной системы — всевозможные служебные программы, или утилиты.
Для надежного управления ходом выполнения программ операционная система должна иметь по отношению к пользовательским процессам оперделённые привилегии — иначе некорректно работающее приложение сможет вмешаться в работу операционной системы. Например, взаимодействие с аппаратурой возможно только на самом высоком уровне привилегий, который не дается обычным программам. Чаще всего именно ядро является той частью операционной системы, которая работает в привилегированном режиме.
Большинство современных операционных систем представляет собой хорошо структурированные модульные системы, способные к развитию, расширению и переносу на новые платформы. Существует ряд универсальных подходов к стуктурированию операционных систем, среди которых можно выделить монолитную и микроядерную архитектуры.
Монолитная операционная система
Большинство операционных систем использует монолитное ядро, которое компонуется как одна программа, работающая в привилегированном режиме и использующая быстрые переходы с одной процедуры на другую, не требующие переключения из привилегированного режима в пользовательский и наоборот (хоть этот процесс и происходит с аппаратной поддержкой, он занимает значительное время). Такое ядро делится на основные компоненты и модули, реализующие дополнительную функциональность, — например, работу со специфическими внешними устройствами и файловыми системами. Переход из пользовательского режима в режим ядра осуществляется через системные вызовы — интерфейс ядра операционной системы.
Рисунок 1.5. Структура монолитного ядра операционной системы
Микроядерная операционная система
Альтернативой является построение операционной системы на базе микроядра, работающего также в привилегированном режиме и выполняющего только минимум функций по управлению аппаратурой. В этом случае более высокоуровневые функции операционной системы выполняются специализированными компонентами — серверами, работающими в пользовательском режиме. Управление и обмен данными при этом осуществляется через передачу сообщений, доставка которых является одной из основных функций микроядра.
При таком построении операционная система работает значительно более медленно, так как часто выполняются переходы между привилегированным и пользовательским режимом, зато система получается более гибкой — её функции можно наращивать или модифицировать, добавляя, изменяя или исключая серверы пользовательского режима. Кроме того, серверы хорошо защищены друг от друга, как и любые пользовательские процессы.
Рисунок 1.6. Структура операционной системы с микроядром
Место UNIX в истории вычислительных систем
За полвека существования операционные системы прошли сложный путь, огромное влияние на который оказало развитие вычислительной аппаратуры. Хотя большинство алгоритмов и подходов в операционных системах было разработано в 1960–1970-х годах, в настоящее время операционные системы продолжают развиваться и видоизменяться согласно потребностям пользователей. Можно выделить три основные характеристики, ставшие уже обязательными для большинства операционных систем: переносимость между различными аппаратными архитектурами, многозадачность и многопользовательский режим работы.
В этом разделе не будет излагаться подборная и полная история операционных систем вообще и даже долгая и запутанная история самой UNIX — за этим стоит обратиться к специальным изданиям (см. список литературы). Здесь будет только обозначена роль UNIX в развитии самого представления о том, что такое «операционная система» и основные этапы распространения UNIX в разных типах вычислительных систем.
Что было до операционных систем
С середины 1950-х годов началось бурное развитие вычислительной техники, связанное с появлением полупроводниковых элементов. Вместе с этим заметный прогресс наблюдался в автоматизации программирования и организации вычислений, в эти годы появились первые алгоритмические языки (Алгол, Фортран, Кобол). Для организации эффективного совместного использования трансляторов, библиотечных программ и загрузчиков в штат многих вычислительных комплексов были введены специальные сотрудники — операторы. Но как бы быстро они ни работали, они не могли состязаться в производительности с работой компьютера. Для решения этой проблемы были разработаны системы пакетной обработки, которые автоматизировали последовательность действий оператора. Оператор составлял пакет заданий, которые в дальнейшем без его участия запускались на выполнение специальной программой — монитором.
Операционные системы для мэйнфреймов
В 1965–1975 годах появилось следующее поколение компьютеров: стала возможна реализация сложных компьютерных архитектур (например, IBM/360) и практически всех основных механизмов, присущих современным операционным системам: многозадачность, поддержка многотерминального многопользовательского режима работы, виртуальная память, файловые системы, разграничение доступа и сетевая работа. Но такие системы всё ещё были очень редки и чрезвычайно дороги.
Одним из главных достижений стал переход к мультипрограммированию — способ организации вычислительного процесса, при котором в памяти компьютера одновременно находится несколько программ, попеременно выполняющихся на одном процессоре. Для того чтобы у пользователя оставалось ощущение непосредственного взаимодействия с компьютером, был разработан такой вариант мультипрограммирования, как системы разделения времени. Каждый пользователь работает за своим терминалом, тогда как все процессы работают псевдопараллельно.
Появление операционной системы UNIX
В середине 1970-х годов наряду с мэйнфреймами получили широкое распространение мини-компьютеры (слово «мини-» сейчас может показаться смешным, такие компьютеры занимали объём в несколько шкафов), такие как PDP-11. Архитектура таких компьютеров была заметно упрощена по сравнению с мэйнфреймами (что значительно снижало стоимость — с миллионов до сотен тысяч долларов), что сказалось на операционных системах для этих компьютеров — они были лишены части функций, например многопользовательского режима работы.
Важным этапом в истории мини-компьютеров и операционных систем в целом явилось появление операционной системы UNIX в лаборатории Bell Labs компании AT&T. Изначально она была разработана для мини-компьютера PDP-7 и включала в себя множество архитектурных особенностей более сложных операционных систем, такие как разделение времени и многопользовательская работа. В 1970-х годах началось массовое использование операционной системы UNIX, к этому времени она была переписана на языке программирования высокого уровня С, что заметно облегчило её переносимость. Поскольку эта операционная система распространялась вместе с исходными текстами, она стала первой операционной системой, в которою могли вносить изменения энтузиасты. Очень значительную роль открытые исходные тексты UNIX сыграли в распространении этой системы в образовательной и научной среде, прежде всего в университетах. Наиболее известен в этой области проект BSD (Berkley Software Distribution) — академическая версия UNIX, созданная в университете Беркли. Впоследствии BSD стал основой для очень многих коммерческих и некоммерческих проектов, в том числе широко распространённой сегодня свободной реализации UNIX — FreeBSD.
Удачные архитектурные решения UNIX, гибкость, элегантность, мощные функциональные возможности и открытость позволили этой операционной системе завоевать рынок не только мини-компьютеров, но и мэйнфреймов, серверов, рабочих станций на базе RISC-процессоров. Многие появившиеся впоследствии операционные системы позаимствовали некоторые ключевые идеи UNIX: переносимость на основе языка C, иерархическую файловую систему, интерфейс командной строки.
Развитие операционных систем в глобальных сетях
В начале 1980-х годов в рамках экспериментальной сети ARPANET впервые появился рабочий вариант стека протоколов TCP/IP. Переход на TCP/IP был ускорен ещё и тем, что его первая реализация была создана в рамках BSD UNIX . Новая глобальная сеть, получившая название Интернет, стала средой для развития информационных технологий, создания всевозможных сообществ разработчиков и развития открытых систем. Кроме того, несколько позже BSD стала основой свободной сегодня широко распространённой реализации UNIX — FreeBSD.
В этот период появляется множество коммерческих версий операционной системы UNIX: SunOS (в дальнейшем Solaris), HP-UX, Irix, AIX и многие другие. Разнообразие версий породило проблему их несовместимости, которую периодически пытались решать различные организации. В результате были приняты стандарты POSIX (Portable Operation System Interface based on uniX — интерфейс для переносимых операционных систем, основанных на UNIX), включающие формальное описание программного интерфейса операционной системы, описание командной оболочки, политики безопасности и т. п.
Операционные системы для персональных компьютеров
Ещё одно знаменательное событие начала 1980-х годов — появление персональных компьютеров. С точки зрения архитектуры они мало отличались от мини-компьютеров и рабочих станций, но стоимость их была значительно ниже. Это позволило персональным компьютерам распространиться повсеместно, и это в значительной степени изменило современные информационные технологии.
Первые операционные системы для персональных компьютеров были очень просты хотя бы в силу весьма ограниченных ресурсов. Наглядным примером может служить DOS, получивший весьма широкое распространение в версии MS-DOS. По сравнению с операционными системами для «настоящих» компьютеров операционные системы для ПК не имели многих существенных свойств: в частности многозадачности и многопользовательской работы. Однако основные области применения ПК требовали не этого, поэтому недостатки в функциональности ОС компенсировались активным развитием графического интерфейса пользователя. В частности, MacOS для компьютеров Macintosh (в ранних версиях называвшаяся попросту System Software) была одной из первых операционных систем, которая вообще не имела интерфейса командной строки, а управлялась исключительно средствами графического интерфейса. Со временем подобные операционные системы (например, Microsoft Windows) получили сетевую подсистему и возможность работать с несколькими программами одновременно.
В первую очередь благодаря низкой стоимости аппаратного и программного обеспечения, персональные компьютеры начали вытеснять прежде распространенные рабочие станции и мэйнфреймы. На домашних и офисных компьютерах в 1980-е повсеместно распространились персональные компьютеры в основном от IBM/PС, а вместе с ними и операционные системы компании Microsoft. В этот период наследники UNIX занимали более «промышленную» нишу в вычислительных технологиях (крупные вычислительные центры, сети).
К концу 1980-х персональные компьютеры были уже далеко не так ограничены в ресурсах, как на десять лет раньше, развивалась и архитектура процессоров, что в целом создало возможность реализации на ПК многозадачных и многопользовательских систем. К таким системам относятся OS/2 (не получила широкого распространения) и Windows NT. Кроме того, появилась и была реализована возможность перенести на ПК и UNIX. Первый такой опыт был сделан Эндрю Танненбаумом в образовательных целях: он создал систему MINIX (MINimal unIX), которую можно было использовать на IBM/PC в образовательных целях для демонстрации некоторых основных принципов операционных систем. Однако MINIX никогда не был полноценной операционной системой для повседневной работы.
Заслуга полноценного переноса UNIX на IBM/PC принадлежит Линусу Торвальдсу, который в 1991 году опубликовал первую версию написанной им реализации ядра UNIX-совместимой операционной системы для IBM/PC x386, известной сегодня как Linux. Благодаря открытой публикации и активному участию множества этузиастов, Linux динамично развивался и быстро стал полноценной и современной операционной системой и дал путь широкому распространению идей и технологий UNIX в том числе и на персональных компьютерах. Linux как реализация UNIX был в свою очередь перенесён и на другие вычислительные архитектуры.
Технологии UNIX пришли и на современные персональные компьютеры Macintosh: начиная с версии 10 (Mac OS X) вся базовая часть операционной системы Mac OS, работающая с ресурсами и оборудованием, представляет собой один из вариантов FreeBSD — Darwin.
Операционные системы для встраиваемых систем
В начале 21-го века широкое распространение получили встраиваемые и мобильные устройства. Благодаря развитию вычислительных систем такие устройства, как мобильные телефоны или домашние бытовые приборы обрели возможности, сравнимые с персональными компьютерами. В настоящее время в этой области существует множество операционных систем, среди которых всё большую роль начинают играть открытые операционные системы, наследующие архитектуру и принципы работы UNIX. Например, с 2005 года Linux устанавливается уже более чем на половине всех встраиваемых устройств, а сфера бытовых роботов сейчас почти полностью занята этой операционной системой.
Такой разный UNIX
Операционная система UNIX оказала значительное влияние на все операционные системы последних десятилетий. Однако многие из них являются прямыми наследниками той операционной системы, что была создана в стенах Bell Labs. Само же слово «unix» (а здесь слово сознательно написано с маленькой буквы, так как термин «UNIX» является зарегистрированной торговой маркой и, строго говоря, может ставиться в соответствие только сертифицированным системам) стало обозначать целый класс операционных систем со схожей архитектурой, интерфейсом и набором программного обеспечения.
В следующих лекциях будет рассказано о различиях между современными реализациями UNIX и обо всём том, что объединяет эти системы. В качестве основы для практического изучения взята операционная система Linux — наиболее доступная и распростронённая из некоммерческих версий UNIX.
Классификация операционных систем по назначению
Операционные системы являются неотъемлемой частью информационно-вычислительных комплексов. Такие комплексы могут выполнять весьма различные функции и могут быть по этому признаку разделены на некоторые классы.
Системы реального времени
Основной особенностью таких систем является сторого регламентированное время отклика на внешние события. Другим важным параметром является одновременная обработка — даже если одновременно происходит несколько событий, реакция системы на них не должна запаздывать. Компьютеры для управления самолетами, ядерными реакторами и подобными сложными системами обычно работают под управлением специализированных операционных систем реального времени.
Операционные системы реального времени принято делить на два класса: жесткого и мягкого реального времени. Можно выделить признаки систем жёсткого реального времени:
- недопустимость никаких задержек ни при каких условиях;
- бесполезность результатов при опоздании;
- катастрофа при задержке реакции;
- цена опоздания бесконечно велика.
Хороший пример системы жесткого реального времени — бортовая система управления самолетом. Среди систем с жестким реальным временем можно выделить распространённую коммерческую операционную систему QNX, которая основывается на UNIX и имеет схожий интерфейс.
Система мягкого реального времени характеризуется следующими признаками:
- за опоздание результатов приходится платить;
- снижение производительности системы, вызванное запаздыванием реакций, приемлемо.
Операционные системы мягкого реального времени могут использоваться в мобильных и коммуникационных системах — там, где цена опаздания не так велика. В настоящее время многие многозадачные операционные системы разделения времени модифицируются для того, чтобы соответствовать требованием мягкого реального времени. Среди примеров можно выделить варианты Windows NT и специфические версии ядра Linux.
Встраиваемые системы
Такие системы работают на специфическом аппаратном обеспечении (автомобили, микроволновые печи, роботы) и также обладают некоторыми требованиями к времени отклика системы. Как правило, в таких операционных системах применяются специфичные алгоритмы, минимизирующие потребляемые ресурсы. В настоящее время широкое распространение имеют операционные системы Windows Embedded фирмы Microsoft и различные версии операционной системы Linux.
Операционные системы для супер-компьютеров
Для решения очень сложных и объёмных вычислительных задач создаются специализированные компьютеры, содержащие сотни и тысячи процессоров. Для управления такими системами применяются специальные операционные системы, в которых особенно важны вопросы производительности и скорости обмена между элементами системы. В настоящее время самыми распространёнными среди сверхпроизводительных систем являются модификации операционной системы Linux.
Операционные системы для серверов
С момента расцвета сети Интернет нишу серверов (специализированных систем, предоставляющих по сети какой-то сервис клиентским системам) занимают универсальные многопользовательские многозадачные операционные системы. Для таких систем имеют большое значение стабильность работы, безопасность и производительность, меньшее — интерфейс пользователя.
Примерами таких систем могут служить: банковские системы, веб-серверы и серверы баз данных, файловые серверы масштаба предприятия, многопользовательские терминальные серверы и т. п. Традиционно этот класс систем обслуживается коммерческими операционными системами — различными версиями UNIX, операционными системами от компаний IBM, Novell, Sun, а затем и Microsoft. Сейчас все большую популярность в этом классе систем завоёвывают открытые и свободные операционные системы, базирующиеся на UNIX.
Операционные системы для домашних и офисных компьютеров
Современные персональные компьютеры обладают высокой производительностью и богатыми мультимедийными возможностями. Для операционных систем этого класса важны удобный пользовательский интерфейс и поддержка широкого круга устройств для персональных компьютеров. Самыми распространёнными операционными системами в этом классе являются продукты компании Micrososft, также на персональных компьютерах Apple используется операционная система MacOS (начиная с версии 10 она также основывается на UNIX).
Исследовательские операционные системы
Многие алгоритмы и подходы в построении операционных систем не пошли дальше исследовательских лабораторий. Например, операционные системы, основанные на микроядре, в чистом виде не используются до сих пор из-за огромных затрат на пересылку сообщений. Одной из самых известных микроядерных операционных систем является Mach, на которой основывается целый ряд операционных систем, в том числе GNU Hurd, реализующая интерфейс UNIX.
Резюме
В первой лекции было предложено общее введение в операционные системы.
Операционные системы существуют в рамках информационно-вычислительных систем, которые сейчас, как и много лет назад, построены в соответствии с принципами фон Неймана и содержат три основных компонента: центральный процессор, основную память и устройства ввода-вывода.
Операционная система является комплексом программ, объединяющих пользователей, программы и аппаратуру компьютера. Выделяют две основные функции операционной системы: предоставление виртуальной машины и управление ресурсами компьютера.
Операционная система состоит из модулей, среди которых выделяют ядро, как основу всей операционной системы. Существует два типа ядер: монолитные и микроядра.
За время существования операционные системы прошли длительную эволюцию, однако большинство идей, алгоритмов и архитектурных решений было реализовано в 1960–70-е годы: тогда появились многозадачность, многопользовательская работа, файловые системы и т. п.
Современные операционные системы можно классифицировать по назназначению. При этом выделяют операционные системы: реального времени, для встраиваемых систем, для супер-компьютеров, для серверов, для домашних и офисных компьютеров и исследовательские.
Источник: http://heap.altlinux.org/tmp/unix_base/ch01.html
ГЛABA 1 Концепции и инструменты
B этой главе мы познакомим вас с основными концепциями и терминами операционной системы Microsoft Windows, которые будут использоваться в последующих главах, в том числе с Windows API, процессами, потоками, виртуальной памятью, режимом ядра и пользовательским режимом, объектами, описателями (handles), защитой, реестром. Мы также расскажем об инструментах, с помощью которых вы сможете исследовать внутреннее устройство Windows. K ним относятся, например, отладчик ядра, оснастка Performance и важнейшие утилиты с сайта www.sysinternals.com. Кроме того, мы поясним, как пользоваться Windows Device Driver Kit (DDK) и Platform Software Development Kit (SDK) в качестве источника дополнительной информации о внутреннем устройстве Windows.
Вы должны хорошо понимать все, что написано в этой главе, — в остальной части книги мы предполагаем именно так.
Версии операционных систем Windows
Эта книга охватывает три последние версии операционной системы Microsoft Windows, основанные на кодовой базе Windows NT: Windows 2000, Windows XP (32- и 64-разрядные версии) и Windows Server 2003 (32- и 64-разрядные версии). Текст относится ко всем трем версиям, если не оговорено иное. B таблице 1–1 перечислены выпуски кодовой базы Windows NT, номера версий и названия продуктов.
Windows NT и Windows 95
При первом выпуске Windows NT компания Microsoft дала ясно понять, что это долгосрочная замена Windows 95 (и ее последующих выпусков — Windows 98 и Windows Millennium Edition). Вот список некоторых архитектурных различий и преимуществ Windows NT (и ее последующих выпусков) над Windows 95 (и ее последующими выпусками).
• Windows NT поддерживает многопроцессорные системы, a Windows 95 — нет.
• Файловая система Windows NT поддерживает средства защиты, например управление избирательным доступом (discretionary access control). B файловой системе Windows 95 этого нет.
• Windows NT — полностью 32-разрядная (а теперь и 64-разрядная) операционная система, в ней нет 16-разрядного кода, кроме того, который предназначен для выполнения 16-разрядных Windows-приложений. Windows 95 содержит большой объем старого 16-разрядного кода из предшествующих операционных систем — Windows 3.1 nMS-DOS.
• Windows NT полностью реентерабельна, а многие части Windows 95 нереентерабельны (в основном это касается 16-разрядного кода, взятого из Windows 3.1). Большинство функций, связанных с графикой и управлением окнами (GDI и USER), включают именно нереентерабельный код. Когда 32-разрядное приложение в Windows 95 пытается вызвать системный сервис, реализованный как нереентерабельный 16-разрядный код, оно должно сначала получить общесистемную блокировку (или мьютекс), чтобы предотвратить вход других потоков в нереентерабельную кодовую базу. Еще хуже, что 16-разрядное приложение удерживает такую блокировку в течение всего времени своего выполнения. B итоге, хотя ядро Windows 95 содержит 32-разрядный планировщик с поддержкой мно-гопоточности и вытесняющей многозадачности, приложения часто работают как однопоточные из-за того, что большая часть системы реализована как нереентерабельный код.
• Windows NT позволяет выполнять 16-разрядные Windows-приложения в выделенном адресном пространстве, a Windows 95 всегда выполняет такие приложения в общем адресном пространстве, в котором они могут навредить друг другу и привести к зависанию системы.
• Разделяемая (общая) память процесса в Windows NT видна только тем процессам, которые имеют проекцию на один и тот же блок разделяемой памяти. B Windows 95 вся общая память видна и доступна для записи всем процессам. Таким образом, любой процесс может что-то записать и повредить какие-то данные в общей памяти, используемые другими процессами.
• Некоторые критически важные страницы памяти, занимаемые операционной системой Windows 95, доступны для записи из пользовательского режима, а значит, обычное приложение может повредить содержимое этих страниц и привести к краху системы. Единственное, что умеет Windows 95 и чего никогда не смогут делать операционные системы на основе Windows NT, — выполнять все старые программы для MS-DOS и Windows 3.1 (а именно программы, требующие прямого доступа к оборудованию), а также 16-разрядные драйверы устройств MS-DOS. Если одной из основных целей разработки Windows 95 была 100 %-я совместимость с MS-DOS и Windows 3.1, то исходной целью разработки Windows NT — возможность выполнения большинства существующих 16-разрядных приложений при условии сохранения целостности и надежности системы.
Базовые концепции и термины
B книге будут часто встречаться ссылки на концепции и структуры, с которыми некоторые читатели, возможно, не знакомы. Здесь мы определимся с используемой в дальнейшем терминологией.
Windows API
Это системный интерфейс программирования в семействе операционных систем Microsoft Windows, включая Windows 2000, Windows XP, Windows Server 2003, Windows 95, Windows 98, Windows Millennium Edition (Me) и Windows CE. Каждая операционная система реализует разное подмножество Windows API. Windows 95, Windows 98, Windows Me и Windows CE в этой книге не рассматриваются.
ПРИМЕЧАНИЕ Windows API описывается в документации Platform Software Development Kit (SDK). (См. раздел «Platform Software Development Kit (SDK)» далее в этой главе.) Этудокументацию можно бесплатно просмотреть на сайте msdn.microsoft.com. Она также поставляется с Microsoft Developer Network (MSDN) всех уровней подписки. (MSDN — это программа Microsoft для поддержки разработчиков. Подробности см. на сайте msdn.microsqft.com.) Отличное описание того, как программировать с использованием базового Windows API, см. в четвертом издании книги Джеффри Рихтера Jeffrey Richter) «Microsoft Windows для профессионалов» (Русская Редакция, 2000).
До появления 64-разрядных версий Windows XP и Windows Server 2003 интерфейс программирования 32-разрядных версий операционных систем Windows назывался Win32 API, чтобы отличать его от исходного 16-разрядного Windows API. B этой книге термин «Windows API» относится к 32-разрядному интерфейсу программирования Windows 2000, а также к 32- и 64-разрядным интерфейсам программирования Windows XP и Windows Server 2003.
Windows API включает тысячи вызываемых функций, которые сгруппированы в следующие основные категории:
• базовые сервисы (Base Services);
• сервисы компонентов (Component Services);
• сервисы пользовательского интерфейса (User Interface Services);
• сервисы графики и мультимедиа (Graphics and Multimedia Services);
• коммуникационное взаимодействие и совместная работа (Messaging and Collaboration);
• сети (Networking);
• Web-сервисы (Web Services).
Основное внимание в нашей книге уделяется внутреннему устройству ключевых базовых сервисов, в частности поддержки процессов и потоков (threads), управления памятью, ввода-вывода и защиты.
Как насчет. NET и WinFX?
NET Framework состоит из библиотеки классов, называемой Framework Class Library (FCL), и общеязыковой исполняющей среды (Common Language Runtime, CLR), которая предоставляет среду для выполнения управляемого кода с такими возможностями, как компиляция по требованию (just-in-time compilation, JIT compilation), верификация типов, сбор мусора и защита по правам доступа кода (code access security). Благодаря этому CLR создает среду разработки, которая повышает продуктивность труда программистов и уменьшает вероятность появления распространенных ошибок программирования. Отличное описание. NET Framework и ее базовой архитектуры см. в книге Джеффри Рихтера «Программирование на платформе Microsoft.NET Frame-work» (Русская Редакция, 2003).
CLR реализована как классический СОМ-сервер, код которой хранится в стандартной Windows DLL пользовательского режима. Фактически все компоненты. NET Framework реализованы как стандартные Windows DLL пользовательского режима, занимающие уровень поверх неуправляемых функций Windows APL (Никакие компоненты. NET Framework не работают в режиме ядра.) Ha рис. 1–1 показаны взаимосвязи этих компонентов.
WinFX — «новый Windows API». Это результат эволюционного развития. NET Framework, которая будет поставляться с версией Windows под кодовым названием «Longhorn», следующим выпуском Windows. WinFX также можно установить в Windows XP и Windows Server 2003. WinFX образует фундамент для приложений следующего поколения, создаваемых для операционной системы Windows.
История создания Win32 API
Интересно, что поначалу Win32 не рассматривался как интерфейс программирования для Microsoft Windows NT. Поскольку проект Windows NT начинался как замена OS/2 версии 2, основным интерфейсом программирования был 32-разрядный OS/2 Presentation ManagerAPI. Однако год спустя на рынке появилась Microsoft Windows 3.0, быстро ставшая очень популярной. B результате Microsoft сменила курс и перенацелила проект Windows NT на будущую замену семейства продуктов Windows, а не OS/2. Вот на этом-то перепутье и встал вопрос о создании Windows API — до этого Windows API существовал только как 16-разрядный интерфейс.
Хотя в Windows API должно было появиться много новых функций, отсутствующих в Windows 3.1, Microsoft решила сделать новый API по возможности совместимым с именами функций, семантикой и типами данных в 16-разрядном Windows API, чтобы максимально облегчить бремя переноса существующих 16-разрядных Windows-приложений в Windows NT Поэтому тот, кто, впервые глядя на Windows API, удивляется, почему многие имена и интерфейсы функций кажутся противоречивыми, должен учитывать, что одной из причин такой противоречивости было стремление сделать Windows API совместимым со старым 16-разрядным Windows API.
Сервисы, функции и процедуры
Несколько терминов в документации Windows для пользователей и программистов имеет разный смысл в разных контекстах. Например, понятие «сервис» (service) может относиться к вызываемой функции операционной системы, драйверу устройства или серверному процессу (в последнем случае сервис часто называют службой). Ниже показано, что означают подобные термины в этой книге.
• Функции Windows API Документированные, вызываемые подпрограммы в Windows API, например CreateProcess, CreateFile и GetMessage.
• Неуправляемые («родные») системные сервисы (или исполняемые системные сервисы) Недокументированные низкоуровневые сервисы операционной системы, которые можно вызывать в пользовательском режиме. Так, NtCreateProcess — это внутрисистемный сервис, вызываемый Windows-функцией CreateProcess при создании нового процесса. (Определение неуправляемых функций см. в разделе «Диспетчеризация системных сервисов» главы 3.)
• Функции (или процедуры) ядра Подпрограммы внутри операционной системы Windows, которые можно вызывать только в режиме ядра (определение мы дадим чуть позже). Например, ExAllocatePool — процедура, вызываемая драйверами устройств для выделения памяти из системных куч (динамически распределяемых областей памяти) Windows.
• Windows-сервисы Процессы, запускаемые диспетчером управления сервисами в Windows. (Хотя в документации на реестр драйверы устройств Windows определяются как сервисы, мы не пользуемся таким термином в этой книге.) Например, сервис Task Scheduler выполняется в процессе пользовательского режима, который поддерживает команду at (аналогичную UNIX-команде at или cron).
• DLL (динамически подключаемая библиотека) Набор вызываемых подпрограмм, включенных в один двоичный файл, который приложения, использующие эти подпрограммы, могут динамически загружать во время своего выполнения. B качестве примера можно привести модули Msvcrt.dll (библиотека исполняющей подсистемы C) и Kernel32.dll (одна из библиотек подсистемы Windows API). DLL активно используются компонентами и приложениями Windows пользовательского режима. Преимущество DLL над статическими библиотеками в том, что приложения могут разделять DLL-модули, a Windows гарантирует, что в памяти будет находиться лишь по одному экземпляру используемых DLL.
Процессы, потоки и задания
Хотя на первый взгляд кажется, что программа и процесс — понятия практически одинаковые, они фундаментально отличаются друг от друга. Программа представляет собой статический набор команд, а процесс — это контейнер для набора ресурсов, используемых при выполнении экземпляра программы. Ha самом высоком уровне абстракции процесс в Windows включает следующее:
• закрытое виртуальное адресное пространство — диапазон адресов виртуальной памяти, которым может пользоваться процесс;
• исполняемую программу — начальный код и данные, проецируемые на виртуальное адресное пространство процесса;
• список открытых описателей (handles) различных системных ресурсов — семафоров, коммуникационных портов, файлов и других объектов, доступных всем потокам в данном процессе;
• контекст защиты (security context), называемый маркером доступа (access token) и идентифицирующий пользователя, группы безопасности и привилегии, сопоставленные с процессом;
• уникальный идентификатор процесса (во внутрисистемной терминологии называемый идентификатором клиента);
• минимум один поток.
Каждый процесс также указывает на свой родительский процесс (процесс-создатель). Однако, если родитель существует, эта информация не обновляется. Поэтому есть вероятность, что некий процесс указывает на уже несуществующего родителя. Это не создает никакой проблемы, поскольку никто не полагается на наличие такой информации. Следующий эксперимент иллюстрирует данный случай.
ЭКСПЕРИМЕНТ: просмотр дерева процессов
Большинство утилит не отображает такой уникальный атрибут, как идентификатор родительского процесса. Значение этого атрибута можно получить программно или с помощью оснастки Performance, запросив значение счетчика Creating Process ID [Код (ID) создавшего процесса]. Дерево процессов показывается утилитой Tlist.exe (из Windows Debugging Tools), если вы указываете ключ /t. Вот образец вывода этой команды:
Взаимоотношения процессов (дочерний-родительский) Tlist показывает отступами. Имена процессов, родительские процессы которых на данный момент завершились, выравниваются по левому краю, потому что установить их родственные связи невозможно — даже если процессы-прапредки еще существуют. Windows сохраняет идентификатор только родительского процесса, так что проследить его создателя нельзя. Чтобы убедиться в этом, выполните следующие операции.
1. Откройте окно командной строки.
2. Наберите start cmd для запуска второго окна командной строки.
3. Откройте диспетчер задач.
4. Переключитесь на второе окно командной строки.
5. Введите mspaint для запуска Microsoft Paint.
6. Щелкните второе окно командной строки.
7. Введите exit. (Заметьте, что окно Paint остается.)
8. Переключитесь в диспетчер задач.
9. Откройте его вкладку Applications (Приложения).
10.Щелкните правой кнопкой мыши задачу Command Prompt (Командная строка) и выберите Go To Process (Перейти к процессам).
11. Щелкните процесс Cmd.exe, выделенный серым цветом.
12. Щелкнув правой кнопкой мыши, выберите команду End Process Tree
(Завершить дерево процессов).
13. B окне Task Manager Warning (Предупреждение диспетчера задач) щелкните Yes (Да).
Первое окно командной строки исчезнет, но вы по-прежнему сможете наблюдать окно Paint, так как оно является внуком первого из завершенных процессов Command Prompt. A поскольку второй (родительский процесс Paint) тоже завершен, связь между родителем и внуком потеряна.
Для просмотра (и модификации) процессов и информации, связанной с ними, существует целый набор утилит. Следующие эксперименты демонстрируют, как получить ту или иную информацию о процессе с помощью некоторых из этих утилит. Они включаются непосредственно в саму Windows, а также в Windows Support Tools, Windows Debugging Tools, ресурсы Windows и Platform SDK. Многие из этих утилит выводят перекрывающиеся подмножества информации о базовых процессах и потоках, иногда идентифицируемые по разным именам.
Вероятно, наиболее широко применяемая утилита для анализа активности процессов — Task Manager (Диспетчер задач). (Любопытно, что в ядре Windows нет такого понятия, как задача, так что Task Manager на самом деле является инструментом для управления процессами.) Следующий эксперимент показывает разницу между тем, что Task Manager перечисляет как приложения и процессы.
ЭКСПЕРИМЕНТ: просмотр информации о процессах через диспетчер задач
Диспетчер задач Windows отображает список выполняемых в системе процессов. Его можно запустить тремя способами: 1) нажав клавиши Ctrl+Shift+Esc; 2) щелкнув панель задач правой кнопкой мыши и выбрав команду Task Manager (Диспетчер задач); 3) нажав клавиши Ctrl+Alt+Del. После запуска диспетчера задач откройте вкладку Processes (Процессы). Заметьте, что процессы идентифицируются по имени образа, экземплярами которого они являются. B отличие от некоторых объектов в Windows процессам нельзя присваивать глобальные имена. Для просмотра более подробных сведений выберите из меню View (Вид) команду Select Columns (Выбрать столбцы) и укажите, какая дополнительная информация вас интересует.
Если вкладка Processes окна диспетчера задач со всей очевидностью показывает список процессов, то содержимое вкладки Applications (Приложения) нуждается в пояснениях. Ha ней отображается список видимых окон верхнего уровня всех объектов «рабочий стол» интерактивного объекта WindowStation. (По умолчанию существуют два объекта «рабочий стол», но вы можете создать дополнительные рабочие столы через Windows-функцию CreateDesktop.) Колонка Status (Состояние) дает представление о том, находится ли поток — владелец окна в состоянии ожидания Windows-сообщения. «Running» («Выполняется») означает, что поток ожидает ввода в окно, a «Not Responding» («He отвечает») — что не ожидает (т. е. занят либо ждет завершения операции ввода-вывода или освобождения какого-либо синхронизирующего объекта).
Вкладка Applications позволяет идентифицировать процесс, которому принадлежит поток, владеющий каким-либо окном задачи. Для этого щелкните правой кнопкой мыши имя задачи и выберите команду Go To Process (Перейти к процессам).
Утилита Process Explorer показывает больше информации о процессах и потоках, чем любой другой доступный инструмент; вот почему она используется нами во многих экспериментах, которые вы увидите в этой книге. Ниже перечислены некоторые уникальные сведения, выводимые утилитой Process Explorer, и ее возможности:
• полное имя (вместе с путем) выполняемого образа;
• маркер защиты процесса (список групп и привилегий);
• выделение изменений в списке процессов и потоков;
• список сервисов внутри процессов — хостов сервисов с выводом отображаемого имени (display name) и описания;
• процессы, которые являются частью задания, и детальные сведения о заданиях;
• процессы, выполняющие. NET/WinFX-приложения, и сведения, специфичные для. NET (например, список доменов приложений и счетчики производительности, относящиеся к CLR);
• время запуска процессов и потоков;
• полный список файлов, проецируемых в память (не только DLL-модулей);
• возможность приостановки процесса;
• возможность принудительного завершения индивидуальных потоков;
• простота выявления процессов, использующих наибольшую долю процессорного времени за определенный период. (Оснастка Performance позволяет просматривать процент использования процессора для заданного набора процессов, но не показывает автоматически процессы, созданные после начала сеанса мониторинга.)
Process Explorer также упрощает доступ к информации, предоставляемой другими утилитами, создавая единую точку ее просмотра:
• дерево процессов с возможностью свертывания отдельных частей этого дерева;
• открытые описатели в процессе без предварительной настройки (утилиты Microsoft для вывода открытых описателей требуют предварительной установки общесистемного флага и перезагрузки);
• список DLL (и файлов, проецируемых в память) в каком-либо процессе;
• активность потоков в каком-либо процессе;
• стеки потоков пользовательского режима (с сопоставлением адресов именам, используя механизм поддержки символов для инструментов отладки);
• стеки системных потоков режима ядра (с сопоставлением адресов именам, используя механизм поддержки символов для инструментов отладки);
• разница в переключении контекстов (context switch delta) (более наглядное представление активности процессора, как поясняется в главе 6);
• лимиты памяти режима ядра (пулов подкачиваемой и неподкачиваемой памяти) (остальные утилиты показывают только текущие размеры). Попробуем провести первый эксперимент с помощью Process Explorer.
ЭКСПЕРИМЕНТ: просмотр детальных сведений о процессах с помощью Process Explorer
Скачайте последнюю версию Process Explorer и запустите ее. При первом запуске вы увидите сообщение о том, что на данный момент символы не сконфигурированы. Когда они корректно сконфигурированы, Process Explorer может обращаться к символьной информации для отображения символьного имени стартовой функции потока и функций в его стеке вызовов (для этого нужно дважды щелкнуть процесс и выбрать вкладку Threads). Эта информация полезна для идентификации того, что именно делают потоки внутри процесса. Для доступа к символам вы должны установить Debugging Tools (об этом мы еще поговорим в данной главе). Потом щелкнуть Options, выбрать Configure Symbols и набрать подходящий путь Symbols. Например:
B предыдущем примере для доступа к символам использовался сервер символов по требованию (on-demand symbol server), а копии файлов символов хранились на локальном компьютере в папке c: symbols. Подробнее о конфигурировании сервера символов см. по ссылке http:/ /www.microsoft.com/whdc/ddk/debugging/symbols.mspx.
При запуске Process Explorer по умолчанию выводит список процессов в верхней половине окна, а список открытых описателей для выбранного на данный момент процесса — в нижней половине. Если вы задержите курсор мыши над именем процесса, Process Explorer также показывает описание образа, название компании и полный путь.
Вот как использовать некоторые базовые возможности Process Explorer:
1. Отключите нижнюю секцию, сбросив View, Show Lower Pane. (Нижняя секция может отображать открытые описатели или проецируемые DLL и файлы — об этом речь пойдет в главах 3 и 7.)
2. Обратите внимание на то, что процессы, являющиеся хостами сервисов, по умолчанию выделяются розовым цветом. Ваши собственные процессы выделяются синим. (Эти цвета можно настроить.)
3. Задержите курсор мыши над именем образа и обратите внимание на то, что в подсказке отображается полный путь.
4. Щелкните View, Select Columns и добавьте путь образа.
5. Отсортируйте по колонке процессов и вы увидите, что представление в виде дерева исчезло. (Вы можете либо вывести представление в виде дерева, либо сортировать по любой из отображаемых колонок.) Снова щелкните для сортировки по алфавиту в обратном порядке (от Z к А). После этого очередной щелчок вернет представление в виде дерева.
6. Сбросьте View, Show Processes From All Users для отображения только ваших процессов.
7. Перейдите в Options, Difference Highlight Duration и смените значение на 5 секунд. Потом запустите новый процесс (какой угодно) и обратите внимание на то, что этот процесс выделяется зеленым в течение 5 секунд. Закройте новый процесс и заметьте, что этот процесс выделяется красным в течение 5 секунд, прежде чем исчезнуть из древовидного списка. Эта функция может пригодиться для обнаружения создаваемых и завершаемых процессов в системе.
8. Наконец, дважды щелкните какой-нибудь процесс и изучите вкладки, доступные в окне свойств процесса. (Эти вкладки понадобятся нам в дальнейших экспериментах; там же мы поясним, какую информацию они сообщают.)
Поток (thread) — некая сущность внутри процесса, получающая процессорное время для выполнения. Без потока программа процесса не может выполняться. Поток включает следующие наиболее важные элементы:
• содержимое набора регистров процессора, отражающих состояние процессора;
• два стека, один из которых используется потоком при выполнении в режиме ядра, а другой — в пользовательском режиме;
• закрытую область памяти, называемую локальной памятью потока (thread-local storage, TLS) и используемую подсистемами, библиотеками исполняющих систем (run-time libraries) и DLL;
• уникальный идентификатор потока (во внутрисистемной терминологии также называемый идентификатором клиента: идентификаторы процессов и потоков генерируются из одного пространства имен и никогда не перекрываются);
• иногда потоки обладают своим контекстом защиты, который обычно используется многопоточными серверными приложениями, подменяющими контекст защиты обслуживаемых клиентов.
Переменные регистры, стеки и локальные области памяти называются контекстом потока. Поскольку эта информация различна на каждой аппаратной платформе, на которой может работать Windows, соответствующая структура данных специфична для конкретной платформы. Windows-функция GetThreadContext предоставляет доступ к этой аппаратно-зависимой информации (называемой блоком CONTEXT).
Волокна и потоки
Волокна (fibers) позволяют приложениям планировать собственные «потоки» выполнения, не используя встроенный механизм планирования потоков на основе приоритетов. Волокна часто называют «облегченными» потоками. Они невидимы ядру, так как Kernel32.dll реализует их в пользовательском режиме. Для использования волокна нужно вызвать Windows-функцию ConvertTbreadToFiber, которая преобразует поток в волокно. Полученное волокно может создавать дополнительные волокна через функцию CreateFiber (у каждого волокна может быть свой набор волокон). Выполнение волокна (в отличие от потока) не начинается до тех пор, пока оно не будет вручную выбрано вызовом SwitchToFiber. Волокно работает до завершения или до переключения процессора на другое волокно вызовом все той же SwitcbToFiber. Подробнее о функциях, связанных с волокнами, см. документацию Platform SDK.
Хотя у потоков свой контекст выполнения, каждый поток внутри одного процесса делит его виртуальное адресное пространство (а также остальные ресурсы, принадлежащие процессу). Это означает, что все потоки в процессе могут записывать и считывать содержимое памяти любого из потоков данного процесса. Однако потоки не могут случайно сослаться на адресное пространство другого процесса. Исключение возможно в ситуации, когда тот предоставляет часть своего адресного пространства как раздел общей памяти (shared memory section), в Windows API называемый объектом «проекция файла» (file mapping object), или когда один из процессов имеет право на открытие другого процесса и использует функции доступа к памяти между процессами, например ReadProcessMemory и WriteProcessMemory.
Кроме закрытого адресного пространства и одного или нескольких потоков у каждого процесса имеются идентификация защиты и список открытых описателей таких объектов, как файлы и разделы общей памяти, или синхронизирующих объектов вроде мьютексов, событий и семафоров (рис. 1–2).
Каждый процесс обладает контекстом защиты, который хранится в объекте — маркере доступа. Маркер доступа содержит идентификацию защиты и определяет полномочия данного процесса. По умолчанию у потока нет собственного маркера доступа, но он может получить его, и это позволит ему подменять контекст защиты другого процесса (в том числе выполняемого на удаленной системе Windows). Подробнее на эту тему см. главу 8.
Дескрипторы виртуальных адресов (virtual address descriptors, VAD) — это структуры данных, используемые диспетчером памяти для учета виртуальных адресов, задействованных процессом (см. главу 7).
Windows предоставляет расширение для модели процессов — задания (jobs). Они предназначены в основном для того, чтобы группами процессов можно было оперировать и управлять как единым целым. Объект-задание позволяет устанавливать определенные атрибуты и накладывать ограничения на процесс или процессы, сопоставленные с заданием. B этом объекте также хранится информация обо всех процессах, которые были сопоставлены с заданием, но к настоящему времени уже завершены. B каких-то отношениях объект-задание компенсирует отсутствие иерархического дерева процессов в Windows, а в каких-то — даже превосходит по своим возможностям дерево процессов UNIX.
Более детальное описание внутренней структуры заданий, процессов и потоков, механизмов создания потоков и процессов, а также алгоритмов планирования потоков вы найдете в главе 6.
Виртуальная память
B Windows реализована система виртуальной памяти, основанная на плоском (линейном) адресном пространстве. Она создает каждому процессу иллюзию того, что у него есть собственное большое и закрытое адресное пространство. Виртуальная память дает логическое представление, не обязательно соответствующее структуре физической памяти. B период выполнения диспетчер памяти, используя аппаратную поддержку, транслирует, или проецирует (maps), виртуальные адреса на физические, по которым реально хранятся данные. Управляя проецированием и защитой страниц памяти, операционная система гарантирует, что ни один процесс не помешает другому и не сможет повредить данные самой операционной системы. Ha рис. 1–3 показано, как три смежные страницы виртуальной памяти проецируются на три разрозненные страницы физической памяти.
Поскольку у большинства компьютеров объем физической памяти намного меньше общего объема виртуальной памяти, задействованной выполняемыми процессами, диспетчер памяти перемещает, или подкачивает (pages), часть содержимого памяти на диск. Подкачка данных на диск освобождает физическую память для других процессов или самой операционной системы. Когда поток обращается к странице виртуальной памяти, сброшенной на диск, диспетчер виртуальной памяти загружает эту информацию с диска обратно в память. Для использования преимуществ подкачки в приложениях никакого дополнительного кода не требуется, так как диспетчер памяти опирается на аппаратную поддержку этого механизма.
Размер виртуального адресного пространства зависит от конкретной аппаратной платформы. Ha 32-разрядных х86-системах теоретический максимум для общего виртуального адресного пространства составляет 4 Гб. По умолчанию Windows выделяет нижнюю половину этого пространства (в диапазоне адресов от x00000000 до x7FFFFFFF) процессам, а вторую половину (в диапазоне адресов от x80000000 до xFFFFFFFF) использует в собственных целях. Windows 2000 Advanced Server, Windows 2000 Datacenter Server, Windows XP (SP2 и выше) и Windows Server 2003 поддерживают загрузочные параметры /3GB и /USERVA, которые указываются в файле Boot.ini (см. главу 5), что позволяет процессам, выполняющим программы со специальным флагом в заголовке исполняемого образа, использовать до 3 Гб закрытого адресного пространства и оставляет операционной системе только 1 Гб. Этот вариант дает возможность приложению вроде сервера базы данных хранить в адресном пространстве своего процесса большие порции базы данных и тем самым уменьшить частоту проецирования отдельных представлений этой базы. Две структуры виртуальных адресных пространств, поддерживаемые 32-разрядной Windows, показаны на рис. 1–4.
Хотя три гигабайта лучше двух, этого все равно недостаточно для проецирования очень больших баз данных. B связи с этим в 32-разрядных Windows появился механизм Address Windowing Extension (AWE), который позволяет 32-разрядному приложению выделять до 64 Гб физической памяти, а затем проецировать представления (views), или окна (windows), на свое 2-гигабайтное виртуальное адресное пространство. Применение AWE усложняет управление проекциями виртуальной памяти на физическую, но снимает проблему прямого доступа к объему физической памяти, превышающему лимиты 32-разрядного адресного пространства процесса.
64-разрядная Windows предоставляет процессам гораздо большее адресное пространство: 7152 Гб на Itanium-системах и 8192 Гб на х64-системах. Ha рис. 1–5 показана упрощенная схема структур 64-разрядных адресных пространств (детали см. в главе 7). Заметьте, что эти размеры отражают не архитектурные лимиты для данных платформ, а ограничения реализации в текущих версиях 64-разрядной Windows.
Подробнее о реализации диспетчера памяти, в том числе о трансляции адресов и управлении физической памятью в Windows, см. главу 7.
Режим ядра и пользовательский режим
Для предотвращения доступа приложений к критически важным данным операционной системы и устранения риска их модификации Windows использует два режима доступа к процессору (даже если он поддерживает более двух режимов): пользовательский (user mode) и ядра (kernel mode). Код приложений работает в пользовательском режиме, тогда как код операционной системы (например, системные сервисы и драйверы устройств) — в режиме ядра. B режиме ядра предоставляется доступ ко всей системной памяти и разрешается выполнять любые машинные команды процессора. Предоставляя операционной системе более высокий уровень привилегий, чем прикладным программам, процессор позволяет разработчикам операционных систем реализовать такие архитектуры, которые не дают возможности сбойным приложениям нарушать стабильность работы всей системы.
ПРИМЕЧАНИЕ B архитектуре процессора Intel x86 определено четыре уровня привилегий, или колец (rings), предназначенных для защиты кода и данных системы от случайной или умышленной перезаписи кодом с меньшим уровнем привилегий. Windows использует уровень привилегий 0 (или кольцо 0) для режима ядра и уровень привилегий 3 (или кольцо 3) для пользовательского режима. Почему Windows использует только два уровня? Дело в том, что на некоторых из ранее поддерживавшихся аппаратных платформ (например, Compaq Alpha и Silicon Graphics MIPS) реализовано лишь два уровня привилегий.
Хотя каждый Windows-процесс имеет свою (закрытую) память, код операционной системы и драйверы устройств, работающие в режиме ядра, делят единое виртуальное адресное пространство. Каждая страница в виртуальной памяти помечается тэгом, определяющим, в каком режиме должен работать процессор для чтения и/или записи данной страницы. Страницы в системном пространстве доступны лишь в режиме ядра, а все страницы в пользовательском адресном пространстве — в пользовательском режиме. Страницы только для чтения (например, содержащие лишь исполняемый код) ни в каком режиме для записи недоступны.
Windows не предусматривает никакой защиты системной памяти от компонентов, работающих в режиме ядра. Иначе говоря, код операционной системы и драйверов устройств в режиме ядра получает полный доступ к системной памяти и может обходить средства защиты Windows для обращения к любым объектам. Поскольку основная часть кода Windows выполняется в режиме ядра, крайне важно, чтобы компоненты, работающие в этом режиме, были тщательно продуманы и протестированы.
Это также подчеркивает, насколько надо быть осторожным при загрузке драйвера устройства от стороннего поставщика: перейдя в режим ядра, он получит полный доступ ко всем данным операционной системы. Такая уязвимость стала одной из причин, по которым в Windows введен механизм проверки цифровых подписей драйверов, предупреждающий пользователя о попытке установки неавторизованного (неподписанного) драйвера (подробнее на эту тему см. главу 9). Кроме того, механизм Driver Verifier (верификатор драйверов) помогает разработчикам драйверов устройств находить в них ошибки (вызывающие, например, утечку памяти или переполнения буферов). Driver Verifier поясняется в главе 7.
Как вы увидите в главе 2, прикладные программы могут переключаться из пользовательского режима в режим ядра, обращаясь к системному сервису. Например, Windows-функции ReadFile в ходе своего выполнения приходится вызывать внутреннюю подпрограмму Windows — она-то и считывает данные из файла. Так как эта подпрограмма обращается к внутрисистемным структурам данных, она должна выполняться в режиме ядра. Переключение из пользовательского режима в режим ядра осуществляется специальной командой процессора. Операционная система перехватывает эту команду, обнаруживает запрос системного сервиса, проверяет аргументы, которые поток передал системной функции, и выполняет внутреннюю подпрограмму. Перед возвратом управления пользовательскому потоку процессор переключается обратно в пользовательский режим. Благодаря этому операционная система защищает себя и свои данные от возможной модификации пользовательскими процессами.
ПРИМЕЧАНИЕ Переключение из пользовательского режима в режим ядра (и обратно) не влияет на планирование потока, так как контекст в этом случае не переключается. O диспетчеризации системных сервисов см. главу 3.
Так что ситуация, когда пользовательский поток часть своего времени работает в пользовательском режиме, а часть — в режиме ядра, совершенно нормальна. A поскольку подсистема, отвечающая за поддержку графики и окон, функционирует в режиме ядра, то приложения, интенсивно работающие с графикой, большую часть времени действуют в режиме ядра, а не в пользовательском режиме. Самый простой способ проверить это — запустить приложение вроде Microsoft Paint или Microsoft Pinball и с помощью одного из счетчиков оснастки Performance (Производительность), перечисленных в таблице 1–2, понаблюдать за показателями времени работы в пользовательском режиме и в режиме ядра.
ЭКСПЕРИМЕНТ: наблюдение за активностью потоков с помощью QuickSlice
QuickSlice позволяет в динамике наблюдать за соотношением времени, проведенного каждым процессом в режиме ядра и в пользовательском режиме. Ha диаграмме красная часть столбца отражает количество процессорного времени в режиме ядра, а синяя — в пользовательском режиме. (Хотя в книге эти столбцы воспроизведены в черно-белом цвете, на самом деле они всегда красные и синие.) Сумма всех показателей, отображаемых столбцами в окне QuickSlice, должна соответствовать 100 % процессорного времени. Для запуска QuickSlice щелкните кнопку Start (Пуск), выберите команду Run (Выполнить) и введите Qslice.exe (в переменной PATH должен быть указан путь к ресурсам Windows). Например, попробуйте запустить такое интенсивно использующее графику приложение, как Paint (Mspaint.exe). Откройте QuickSlice, расположив его окно рядом с окном Paint, и нарисуйте в Paint несколько кривых. B это время вы сможете наблюдать за выполнением Mspaint.exe в окне QuickSlice, как показано ниже.
Чтобы получить дополнительную информацию о потоках процесса, дважды щелкните имя нужного процесса или соответствующий цветной столбик на диаграмме. Вы увидите список потоков этого процесса и относительное процессорное время, используемое каждым потоком (в рамках процесса, а не всей системы).
ЭКСПЕРИМЕНТ: режим ядра и пользовательский режим
C помощью оснастки Performance вы можете выяснить, сколько времени ваша система работает в режиме ядра и в пользовательском режиме.
1. Запустите оснастку Performance (Производительность), открыв меню Start (Пуск) и последовательно выбрав команды Programs (Программы), Administrative Tools (Администрирование), Performance (Производительность).
2. Щелкните на панели инструментов кнопку Add (Добавить) (на этой кнопке изображен большой знак плюс).
3. Выберите в списке объект Processor (Процессор), щелкните счетчик % Privileged Time (% работы в привилегированном режиме) и, удерживая клавишу Ctrl в нажатом состоянии, щелкните счетчик % User Time (% работы в пользовательском режиме).
4. Щелкните кнопку Add (Добавить), а затем Close (Закрыть).
5. Быстро подвигайте мышью. При этом вы должны заметить всплеск на линии % Privileged Time (рис. 1–6), который отражает время, затраченное на обслуживание прерываний от мыши, и время, понадобившееся подсистеме поддержки окон на отрисовку графики (эта подсистема, как поясняется в главе 2, работает преимущественно как драйвер устройства в режиме ядра).
6. Закончив, щелкните на панели инструментов кнопку New Counter Set (Новый набор счетчиков) (или просто закройте оснастку).
За той же активностью можно понаблюдать через Task Manager (Диспетчер задач). Просто перейдите в нем на вкладку Performance (Быстродействие), а затем выберите из меню View (Вид) команду Show Kernel Times (Вывод времени ядра). Процент загруженности процессора отражается зеленым цветом, а процент времени работы в режиме ядра — красным.
Чтобы увидеть, как сама оснастка Performance использует время в двух режимах, запустите ее снова, но добавьте те же счетчики для объекта Process (Процесс).
1. Если вы закрыли оснастку Performance, снова запустите ее. (Если она уже работает, откройте новый экран, щелкнув на панели инструментов кнопку New Counter Set.)
2. Щелкните кнопку Add на панели инструментов.
3. Выберите в списке объект Process.
4. Выберите счетчики % Privileged Time и % User Time.
5. B списке экземпляров объекта выберите все процессы (кроме процесса _Total).
6. Щелкните кнопку Add, а затем Close.
7. Быстро подвигайте мышью.
8. Нажмите комбинацию клавиш Ctrl+H для активизации режима выделения — текущий выбранный счетчик будет выделен белым цветом в Windows 2000 и черным в Windows XP или Windows Server 2003.
9. Прокрутите список всех счетчиков в нижней части окна оснастки, чтобы определить процессы, потоки которых выполнялись при перемещении мыши, и обратите внимание на то, в каком режиме они выполнялись — пользовательском или ядра.
Вы должны заметить, как значения счетчиков для процесса оснастки Performance — ищите mmc в колонке Instance (Экземпляр) — резко увеличиваются при перемещении мыши, поскольку код приложения выполняется в пользовательском режиме, а вызываемые им Windows-функции — в режиме ядра. Вы также заметите, что при перемещении мыши увеличивается активность работы в режиме ядра потока процесса csrss. Он представляет поток необработанного ввода (raw input thread) подсистемы Windows, принимающий ввод от клавиатуры и мыши и передающий его процессу, к которому он подключен. (Подробнее о системных потоках см. главу 2.) Наконец, процесс с именем Idle, потоки которого, как вы убедитесь, тратят почти 100 % своего времени в режиме ядра, на самом деле не является процессом. Это лжепроцесс, используемый для учета тактов процессора в состоянии простоя. Таким образом, когда Windows нечего делать, она предается этому занятию в режиме ядра.
Terminal Services и несколько сеансов
Terminal Services (службы терминала) обеспечивают в Windows поддержку нескольких интерактивных сеансов пользователей на одной системе. C помощью Terminal Services удаленный пользователь может установить сеанс на другой машине, зарегистрироваться на ней и запускать приложения на сервере. Сервер предоставляет клиенту графический пользовательский интерфейс (GUI), а клиент возвращает серверу пользовательский ввод. (Это отличается от того, как ведет себя X Windows на UNIX-системах, где разрешается выполнять индивидуальные приложения на сервере, а клиенту предоставляется удаленный дисплей, так как удаленным является весь сеанс пользователя — не только одно приложение.)
Первый сеанс входа на физической консоли компьютера считается консольным сеансом, или нулевым сеансом (session zero). Дополнительные сеансы можно создать с помощью программы соединения с удаленным рабочим столом (Mstsc.exe), а в Windows XP — через механизм быстрого переключения пользователей (об этом позже).
Возможность создания удаленного сеанса поддерживается Windows 2000 Server, но не Windows 2000 Professional. Windows XP Professional позволяет одному удаленному пользователю подключаться к машине, однако если кто-то начинает процедуру входа в консоли, рабочая станция блокируется (т. е. систему можно использовать либо локально, либо удаленно, но не и то, и другое одновременно).
Windows 2000 Server и Windows Server 2003 поддерживают два одновременных удаленных сеанса. (Это упрощает удаленное управление, например облегчает применение инструментов, требующих от администратора входа на удаленный компьютер.) Windows 2000 Advanced Server, Datacenter Server и все издания Windows Server 2003 способны поддерживать более двух сеансов одновременно при условии правильного лицензирования и настройки системы в качестве сервера терминала.
Хотя Windows XP Home и Professional не поддерживают несколько удаленных подключений к рабочему столу, они все же поддерживают несколько сеансов, созданных локально через механизм быстрого переключения пользователей. (Этот механизм отключается в Windows XP Professional, если система присоединяется к домену.) Когда пользователь выбирает выключение своего сеанса вместо выхода [например, последовательным выбором Start (Пуск), Log Off (Выход из системы) и Switch User (Смена пользователя) или нажатием клавиши L при одновременном удерживании клавиши Windows], текущий сеанс (т. е. процессы, выполняемые в этом сеансе, и все структуры данных, глобальные для сеанса и описывающие его) остается в системе, а Windows возвращается к основному окну входа. Если в систему входит новый пользователь, создается новый сеанс.
Для приложений, которым нужно знать, выполняются ли они в сеансе сервера терминала, предназначен набор Windows API-функций, позволяющих программно распознавать такую ситуацию и контролировать различные аспекты служб терминала. (Детали см. в Platform SDK.)
B главе 2 кратко описывается, как создаются сеансы, и проводится несколько экспериментов, показывающих, как просматривать информацию о сеансе с помощью различных инструментов, включая отладчик ядра. B разделе «Диспетчер объектов» главы 3 поясняется, как создается сеансовый экземпляр системного пространства имен для объектов и как приложения могут узнавать о других своих экземплярах в той же системе. Наконец, в главе 7 рассказывается, как диспетчер памяти настраивает данные, глобальные для сеанса, и управляет ими.
Объекты и описатели
Данный текст является ознакомительным фрагментом.
Читайте также
10.2 Концепции TCP
10.2 Концепции TCP
В какой форме приложения должны пересылать данные в TCP? В каком виде TCP передает данные в IP? Каким образом передающий и принимающий протоколы TCP идентифицируют соединение между приложениями и необходимые для его реализации элементы данных? На все эти
А.1. Концепции
А.1. Концепции
В настоящее время насчитывается более двух тысяч языков программирования высокого уровня. Большинство этих языков возникло исходя из конкретных требований некоторой предметной области. Каждый новый язык позволял переходить ко все более и более сложным
ГЛABA 2 Архитектура системы
ГЛABA 2 Архитектура системы
Теперь, познакомившись с необходимыми терминами, понятиями и инструментами, мы можем рассмотреть задачи, которые ставились при разработке операционной системы Microsoft Windows. B этой главе описывается общая архитектура системы: ключевые компоненты,
ГЛABA 3 Системные механизмы
ГЛABA 3 Системные механизмы
B Microsoft Windows существует несколько базовых механизмов, которыми пользуются компоненты режима ядра: исполнительная система (executive), ядро и драйверы устройств. B этой главе описываются следующие системные механизмы (а также способы их
ГЛABA 4 Механизмы управления
ГЛABA 4 Механизмы управления
B этой главе описываются три фундаментальных механизма Microsoft Windows, критически важных для управления системой и ее конфигурирования:• реестр;• сервисы;• Windows Management Instrumentation (Инструментарий управления Windows).РеестрРеестр играет ключевую роль в
ГЛABA 8 Защита
ГЛABA 8 Защита
Защита конфиденциальных данных от несанкционированного доступа очень важна в любой среде, где множество пользователей обращается к одним и тем же физическим или сетевым ресурсам. У операционной системы, как и у отдельных пользователей, должна быть
ГЛABA 10 Управление внешней памятью
ГЛABA 10 Управление внешней памятью
Термин внешняя память (storage) относится к носителям, применяемым в самых разнообразных устройствах, в том числе к магнитным лентам, оптическим дискам, гибким дискам, локальным жестким дискам и сети устройств хранения данных (storage area networks,
ГЛABA 11 Диспетчер кэша
ГЛABA 11 Диспетчер кэша
Диспетчер кэша (cache manager) — это набор функций режима ядра и системных потоков, во взаимодействии с диспетчером памяти обеспечивающих кэширование данных для всех драйверов файловых систем Windows (как локальных, так и сетевых). B этой главе мы поясним, как
Ключевые концепции
Ключевые концепции
[x]. Обработка исключений — это механизм, позволяющий справиться с неожиданными условиями, возникшими в период выполнения.[x]. Отказ — это невозможность во время выполнения программы выполнить свой контракт.[x]. Программа получает исключение в результате:
Ключевые концепции
Ключевые концепции
[x]. Внешние программы доступны через хорошо определенный интерфейс.[x]. Объектная технология может служить в качестве механизма упаковки наследуемого ПО.[x]. Подпрограммы не могут модифицировать свои аргументы, хотя они могут изменять объекты,
ГЛABA 6 Процессы, потоки и задания
ГЛABA 6 Процессы, потоки и задания
B этой главе мы рассмотрим структуры данных и алгоритмы, связанные с процессами, потоками и заданиями в Microsoft Windows. B первом разделе основное внимание уделяется внутренним структурам данных, из которых состоит процесс. Bo втором разделе
ГЛABA 7 Управление памятью
ГЛABA 7 Управление памятью
B этой главе вы узнаете, как реализована виртуальная память в Microsoft Windows и как осуществляется управление той частью виртуальной памяти, которая находится в физической. Мы также опишем внутреннюю структуру диспетчера памяти и его компоненты, в том
ГЛABA 12 Файловые системы
ГЛABA 12 Файловые системы
B начале этой главы мы даем обзор файловых систем, поддерживаемых Windows, а также описываем типы драйверов файловых систем и принципы их работы, в том числе способы взаимодействия с другими компонентами операционной системы, например с диспетчерами
ГЛABA 13 Поддержка сетей
ГЛABA 13 Поддержка сетей
Windows создавалась с учетом необходимости работы в сети, поэтому в операционную систему включена всесторонняя поддержка сетей, интегрированная с подсистемой ввода-вывода и Windows API. K четырем базовым типам сетевого программного обеспечения относятся