Содержание
- 1 Содержание
- 2 История [ править | править код ]
- 3 Функции [ править | править код ]
- 4 Понятие [ править | править код ]
- 5 Ядро [ править | править код ]
- 6 Существующие операционные системы [ править | править код ]
- 7 UNIX, стандартизация операционных систем и POSIX [ править | править код ]
- 8 Пост-UNIX-архитектуры [ править | править код ]
Состояние | отпатрулирована |
Операцио́нная систе́ма, сокр. ОС (англ. operating system, OS ) — комплекс взаимосвязанных программ, предназначенных для управления ресурсами компьютера и организации взаимодействия с пользователем.
В логической структуре типичной вычислительной системы операционная система занимает положение между устройствами с их микроархитектурой, машинным языком и, возможно, собственными (встроенными) микропрограммами (драйверами) — с одной стороны — и прикладными программами с другой.
Разработчикам программного обеспечения операционная система позволяет абстрагироваться от деталей реализации и функционирования устройств, предоставляя минимально необходимый набор функций (см.: интерфейс программирования приложений).
В большинстве вычислительных систем операционная система является основной, наиболее важной (а иногда и единственной) частью системного программного обеспечения. С 1990-х годов наиболее распространёнными операционными системами являются системы семейства Windows, Unix и UNIX-подобные системы.
Содержание
История [ править | править код ]
Предшественником операционных систем следует считать служебные программы (загрузчики и мониторы), а также библиотеки часто используемых подпрограмм, начавшие разрабатываться с появлением универсальных компьютеров 1-го поколения (конец 1940-х годов). Служебные программы минимизировали физические манипуляции оператора с оборудованием, а библиотеки позволяли избежать многократного программирования одних и тех же действий (осуществления операций ввода-вывода, вычисления математических функций и т. п.).
В 1950—1960-х годах сформировались и были реализованы основные идеи, определяющие функциональность ОС: пакетный режим, разделение времени и многозадачность, разделение полномочий, реальный масштаб времени, файловые структуры и файловые системы.
Пакетный режим [ править | править код ]
Необходимость оптимального использования дорогостоящих вычислительных ресурсов привела к появлению концепции «пакетного режима» исполнения программ. Пакетный режим предполагает наличие очереди программ на исполнение, причём система может обеспечивать загрузку программы с внешних носителей данных в оперативную память, не дожидаясь завершения исполнения предыдущей программы, что позволяет избежать простоя процессора.
Разделение времени и многозадачность [ править | править код ]
Уже пакетный режим в своём развитом варианте требует разделения процессорного времени между выполнением нескольких программ.
Необходимость в разделении времени (многозадачности, мультипрограммировании) проявилась ещё сильнее при распространении в качестве устройств ввода-вывода телетайпов (а позднее, терминалов с электронно-лучевыми дисплеями) (1960-е годы). Поскольку скорость клавиатурного ввода (и даже чтения с экрана) данных оператором много ниже, чем скорость обработки этих данных компьютером, использование компьютера в «монопольном» режиме (с одним оператором) могло привести к простою дорогостоящих вычислительных ресурсов.
Разделение времени позволило создать «многопользовательские» системы, в которых один (как правило) центральный процессор и блок оперативной памяти соединялся с многочисленными терминалами. При этом часть задач (таких как ввод или редактирование данных оператором) могла исполняться в режиме диалога, а другие задачи (такие как массивные вычисления) — в пакетном режиме.
Разделение полномочий [ править | править код ]
Распространение многопользовательских систем потребовало решения задачи разделения полномочий, позволяющей избежать возможности изменения исполняемой программы или данных одной программы в памяти компьютера другой программой (намеренно или по ошибке), а также изменения самой системы прикладной программой.
Реализация разделения полномочий в операционных системах была поддержана разработчиками процессоров, предложивших архитектуры с двумя режимами работы процессора — «реальным» (в котором исполняемой программе доступно всё адресное пространство компьютера) и «защищённым» (в котором доступность адресного пространства ограничена диапазоном, выделенным при запуске программы на исполнение).
Масштаб реального времени [ править | править код ]
Применение универсальных компьютеров для управления производственными процессами потребовало реализации «масштаба реального времени» («реального времени») — синхронизации исполнения программ с внешними физическими процессами.
Включение функции масштаба реального времени позволило создавать решения, одновременно обслуживающие производственные процессы и решающие другие задачи (в пакетном режиме и/или в режиме разделения времени).
Файловые системы и структуры [ править | править код ]
Постепенная замена носителей с последовательным доступом (перфолент, перфокарт и магнитных лент) накопителями произвольного доступа (на магнитных дисках).
Файловая система — способ хранения данных на внешних запоминающих устройствах.
Функции [ править | править код ]
- Исполнение запросов программ (ввод и вывод данных, запуск и остановка других программ, выделение и освобождение дополнительной памяти и др.).
- Загрузка программ в оперативную память и их выполнение.
- Стандартизированный доступ к периферийным устройствам (устройства ввода-вывода).
- Управление оперативной памятью (распределение между процессами, организация виртуальной памяти).
- Управление доступом к данным на энергонезависимых носителях (таких как жёсткий диск, оптические диски и др.), организованным в той или иной файловой системе.
- Обеспечение пользовательского интерфейса.
- Сохранение информации об ошибках системы.
- Параллельное или псевдопараллельное выполнение задач (многозадачность).
- Эффективное распределение ресурсов вычислительной системы между процессами.
- Разграничение доступа различных процессов к ресурсам.
- Организация надёжных вычислений (невозможности одного вычислительного процесса намеренно или по ошибке повлиять на вычисления в другом процессе), основана на разграничении доступа к ресурсам.
- Взаимодействие между процессами: обмен данными, взаимная синхронизация.
- Защита самой системы, а также пользовательских данных и программ от действий пользователей (злонамеренных или по незнанию) или приложений.
- Многопользовательский режим работы и разграничение прав доступа (см.: аутентификация, авторизация).
Понятие [ править | править код ]
Существуют две группы определений операционной системы: «набор программ, управляющих оборудованием» и «набор программ, управляющих другими программами». Обе они имеют свой точный технический смысл, который связан с вопросом, в каких случаях требуется операционная система.
Есть приложения вычислительной техники, для которых операционные системы излишни. Например, встроенные микрокомпьютеры, содержащиеся во многих бытовых приборах, автомобилях (иногда по десятку в каждом), простейших сотовых телефонах, постоянно исполняют лишь одну программу, запускающуюся по включении. Многие простые игровые приставки — также представляющие собой специализированные микрокомпьютеры — могут обходиться без операционной системы, запуская при включении программу, записанную на вставленном в устройство «картридже» или компакт-диске.
Операционные системы нужны:
- если нужен универсальный механизм сохранения данных;
- для предоставления системным библиотекам часто используемых подпрограмм;
- для распределения полномочий;
- необходима возможность имитации «одновременного» исполнения нескольких программ на одном компьютере;
- для управления процессами выполнения отдельных программ.
Таким образом, современные универсальные операционные системы можно охарактеризовать, прежде всего, как:
- использующие файловые системы (с универсальным механизмом доступа к данным),
- многопользовательские (с разделением полномочий),
- многозадачные (с разделением времени).
Многозадачность и распределение полномочий требуют определённой иерархии привилегий компонентов в самой операционной системе. В составе операционной системы различают три группы компонентов:
- ядро, содержащее планировщик; драйверы устройств, непосредственно управляющие оборудованием; сетевая подсистема, файловая система;
- системные библиотеки;
- оболочка с утилитами.
Большинство программ, как системных (входящих в операционную систему), так и прикладных, исполняются в непривилегированном («пользовательском») режиме работы процессора и получают доступ к оборудованию (и, при необходимости, к другим ресурсам ядра, а также ресурсам иных программ) только посредством системных вызовов. Ядро исполняется в привилегированном режиме: именно в этом смысле говорят, что система (точнее, её ядро) управляет оборудованием.
В определении состава операционной системы значение имеет критерий операциональной целостности (замкнутости): система должна позволять полноценно использовать (включая модификацию) свои компоненты. Поэтому в полный состав операционной системы включают и набор инструментальных средств (от текстовых редакторов до компиляторов, отладчиков и компоновщиков).
Ядро [ править | править код ]
Ядро — центральная часть операционной системы, управляющая выполнением процессов, ресурсами вычислительной системы и предоставляющая процессам координированный доступ к этим ресурсам. Основными ресурсами являются процессорное время, память и устройства ввода-вывода. Доступ к файловой системе и сетевое взаимодействие также могут быть реализованы на уровне ядра.
Как основополагающий элемент операционной системы, ядро представляет собой наиболее низкий уровень абстракции для доступа приложений к ресурсам вычислительной системы, необходимым для их работы. Как правило, ядро предоставляет такой доступ исполняемым процессам соответствующих приложений за счёт использования механизмов межпроцессного взаимодействия и обращения приложений к системным вызовам ОС.
Описанная задача может различаться в зависимости от типа архитектуры ядра и способа её реализации.
Объекты ядра ОС:
Существующие операционные системы [ править | править код ]
UNIX, стандартизация операционных систем и POSIX [ править | править код ]
К концу 1960-х годов отраслью и научно-образовательным сообществом был создан целый ряд операционных систем, реализующих все или часть очерченных выше функций. К ним относятся Atlas (Манчестерский университет), CTTS (англ.) русск. и ITS (англ.) русск. (Массачусетский технологический институт, MIT), THE (Эйндховенский технологический университет), RS4000 (Университет Орхуса) и др. (всего эксплуатировалось более сотни различных ОС).
Наиболее развитые операционные системы, такие как OS/360 (IBM), SCOPE (CDC) и завершённый уже в 1970-х годах Multics (MIT и Bell Labs), предусматривали возможность исполнения на многопроцессорных компьютерах.
Эклектичный характер разработки операционных систем привёл к нарастанию кризисных явлений, прежде всего, связанных с чрезмерными сложностью и размерами создаваемых систем. Системы были плохо масштабируемыми (более простые не могли использовать все возможности крупных вычислительных систем; более развитые неоптимально исполнялись на малых или не могли исполняться на них вовсе) и полностью несовместимыми между собой, их разработка и совершенствование затягивались.
Задуманная и реализованная в 1969 году Кеном Томпсоном при участии нескольких коллег (включая Денниса Ритчи и Брайана Кернигана), операционная система UNIX (первоначально UNICS, что обыгрывало название Multics) вобрала в себя многие черты более ранних систем, но обладала целым рядом свойств, отличающих её от большинства предшественниц:
- простая метафорика (два ключевых понятия: вычислительный процесс и файл);
- компонентная архитектура: принцип «одна программа — одна функция» плюс мощные средства связывания различных программ для решения возникающих задач («оболочка»);
- минимизация ядра (кода, выполняющегося в «реальном» (привилегированном) режиме процессора) и количества системных вызовов;
- независимость от аппаратной архитектуры и реализация на машиннонезависимом языке программирования (язык программирования Си стал побочным продуктом разработки UNIX);
- унификация файлов.
UNIX, благодаря своему удобству прежде всего в качестве инструментальной среды (среды разработки), обрела популярность сначала в университетах, а затем и в отрасли, получившей прототип единой операционной системы, которая могла использоваться на самых разных вычислительных системах и, более того, могла быть быстро и с минимальными усилиями перенесена на любую вновь разработанную аппаратную архитектуру.
В конце 1970-х годов сотрудники Калифорнийского университета в Беркли внесли ряд усовершенствований в исходные коды UNIX, включая работу с протоколами TCP/IP. Их разработка стала известна под именем BSD (Berkeley Software Distribution).
Задачу разработать независимую (от авторских прав Bell Labs) реализацию той же архитектуры поставил и Ричард Столлман, основатель проекта GNU.
Благодаря конкурентности реализаций архитектура UNIX стала вначале фактическим отраслевым стандартом, а затем обрела статус и стандарта юридического — ISO/IEC 9945 [1] (POSIX).
Только системы, отвечающие спецификации Single UNIX Specification, имеют право носить имя UNIX. К таким системам относятся AIX, HP-UX, IRIX, Mac OS X, SCO OpenServer, Solaris, Tru64 и z/OS.
Операционные системы, следующие стандарту POSIX или опирающиеся на него, называют «POSIX-совместимыми» (чаще встречается словоупотребление «UNIX-подобные» или «семейство UNIX», но оно противоречит статусу торгового знака «UNIX», принадлежащего консорциуму The Open Group и зарезервированному для обозначения только операционных систем, строго следующих стандарту). Сертификация на совместимость со стандартом платная, из-за чего некоторые системы не проходили этот процесс, однако считаются POSIX-совместимыми по существу.
К UNIX-подобным относятся операционные системы, основанные на последней версии UNIX, выпущенной Bell Labs (System V), на разработках университета Беркли (FreeBSD, OpenBSD, NetBSD), на основе Solaris (OpenSolaris, BeleniX, Nexenta OS), а также Linux, разработанная в части утилит и библиотек проектом GNU и в части ядра — сообществом, возглавляемым Линусом Торвальдсом.
Стандартизация операционных систем преследует цель упрощения замены самой системы или оборудования при развитии вычислительной системы или сети и упрощении переноса прикладного программного обеспечения (строгое следование стандарту предполагает полную совместимость программ на уровне исходного текста; из-за профилирования стандарта и его развития некоторые изменения бывают всё же необходимы, но перенос программы между POSIX-совместимыми системами обходится на порядки дешевле, чем между альтернативными), а также преемственность опыта пользователей.
Самым заметным эффектом существования этого стандарта стало эффективное разворачивание Интернета в 1990-х годах.
Пост-UNIX-архитектуры [ править | править код ]
Коллектив, создавший UNIX, развил концепцию унификации объектов операционной системы, включив в исходную концепцию UNIX «устройство — это тоже файл» также и процессы, и любые другие системные, сетевые и прикладные сервисы, создав новую концепцию: «что угодно — это файл». Эта концепция стала одним из основных принципов системы Plan 9 (название было позаимствовано из фантастического триллера «План 9 из открытого космоса» Эдварда Вуда-младшего), призванной преодолеть принципиальные недостатки дизайна UNIX и сменившей «рабочую лошадку» UNIX System V на компьютерах сети Bell Labs в 1992 году.
Кроме реализации всех объектов системы в виде файлов и размещения их на едином и персональном для каждого терминала вычислительной сети пространстве (namespace), были пересмотрены другие архитектурные решения UNIX. Например, в Plan 9 отсутствует понятие «суперпользователь», и, соответственно, исключаются любые нарушения режима безопасности, связанные с нелегальным получением прав суперпользователя в системе. Для представления (хранения, обмена) информации Роб Пайк и Кен Томпсон разработали универсальную кодировку UTF-8, на сегодняшний день ставшую стандартом де-факто. Для доступа к файлам используется единый универсальный протокол 9P, по сети работающий поверх сетевого протокола (TCP или UDP). Таким образом, для прикладного ПО сети не существует — доступ к локальным и к удалённым файлам единообразен. 9P — байт-ориентированный протокол, в отличие от других подобных протоколов, являющихся блок-ориентированными. Это также результат работы концепции: доступ побайтно — к унифицированным файлам, а не поблочно — к разнообразным и сильно изменяющимся с развитием технологий устройствам. Для контроля доступа к объектам не требуется иных решений, кроме уже существующего в операционной системе контроля доступа к файлам. Новая концепция системы хранения избавила администратора системы от изнурительного труда по сопровождению архивов и предвосхитила современные системы управления версиями файлов.
Операционные системы, созданные на базе или идеях UNIX, такие как всё семейство BSD и системы Linux, постепенно перенимают новые идеи из Bell Labs. Возможно, эти новые идеи ждёт большое будущее и признание ИТ-разработчиков.
Новые концепции были использованы Робом Пайком в Inferno.
На основе Plan 9 в Испании разрабатываются системы Off++ и Plan B, носящие экспериментальный характер.
К попыткам создать пост-UNIX-архитектуру можно также отнести разработку языка программирования и операционной среды Оберон в Швейцарской высшей технической школе (ETH Zurich) под руководством профессора Никлауса Вирта.
На прошлой лекции было дано общее определение операционной системы. Применительно к операционной системе Windows 2000/XP можно дать следующее определение.
Операционная система Windows 2000/XP – это многопользовательская, многозадачная, многопоточная ОС с развитой системой приоритетного прерывания, имеющая графический пользовательский интерфейс и расширенные сетевые возможности.
Отличительными чертами этой операционной системы являются:
– встроенная сетевая поддержка, обеспечивающая совместное сетевое использование файлов, устройств и объектов;
– приоритетная многозадачность, позволяющая приложениям с более высоким приоритетом вытеснять менее приоритетные приложения, что приводит, в частности, к более эффективному использованию машинного времени ввиду автоматической ликвидации зависания системы при выполнении «сбойного» приложения;
– наличие достаточно мощных средств защиты программ и файлов различных пользователей от несанкционированного доступа. Наличие многоуровневого доступа к ресурсам с назначением пользователям различных прав;
– поддержка нескольких файловых систем. Кроме файловой системы DOS, поддерживаемой всеми версиями Windows (FAT 16/32), Windows 2000/XP поддерживает файловую систему Windows NT (NTFS) и файловую систему компакт-дисков (CDFS);
– поддержка широкого спектра компьютерных платформ, в том числе и многопроцессорных вычислительных систем.
Перечислим основные составные части операционной системы:
– BIOS – базовая система ввода вывода;
– загрузчик операционной системы;
– ядро операционной системы;
BIOS – это небольшая программа находящаяся в ПЗУ и проставляемая вместе с системной платой. Она позволяет обеспечить независимость программного обеспечения от специфики конкретной модели компьютеров, и выполняет следующие функции:
– тестирование аппаратной части при включении компьютера;
– инициализация векторов прерывания нижнего уровня;
– поиск на гибком или жестком диске программы-загрузчика операционной системы и загрузка его с диска в оперативную память.
BIOS содержит специальные программы по управлению стандартными внешними устройствами, тестовые программы для контроля работоспособности аппаратуры, программу начальной загрузки операционной системы.
Ядро операционной системы состоит программ, которые расширяют базовую систему ввода вывода и управляют всеми ресурсами ЭВМ.
Windows 2000/XP – операционная система внутренняя структура ядра которой тесно связана с особенностями процессоров, совместимых с Intel, поэтому при изучении Windows 2000/XP не помешает знание некоторых принципов функционирования процессоров Intel.
Процессоры, совместимые с Intel, поддерживают четыре уровня, или кольца, привилегированности, обеспечивающие различные степени защиты и привилегий для исполняемых программ. В каждый момент времени процессор может работать только на одном уровне привилегий.
Для выполнения кода системного уровня Windows 2000/XP использует нулевое кольцо защиты процессора. Программы, выполняемые в нулевом кольце, работают с аппаратурой напрямую, и ни одно постороннее приложение не может помешать выполнению кода с «нулевым допуском». Сервисом нулевого уровня защиты процессора пользуются файловая система защищенного режима, диспетчер виртуальных машин и аппаратно-ориентированные драйверы, в том числе написанные независимыми разработчиками и производителями аппаратного обеспечения. Поэтому, компоненты операционной системы, предназначенные для работы в нулевом кольце, должны быть тщательно проверены и отлажены, поскольку ошибка в таком драйвере может вызвать крах всей системы.
Прикладные программы и многие части операционной системы выполняются только в третьем кольце процессора. Соответственно, они не имеют таких прав, как у программ нулевого уровня, и не могут напрямую работать с устройствами компьютера, им приходится обращаться к драйверам устройств, выполняющимся в нулевом кольце. Зато они относительно безопасны для системы в целом.
Таким образом, в Windows 2000/XP реализована двухуровневая модель защиты, которую многие называют моделью «ядро-пользователь», а некоторые моделью «клиент-сервер». Оптимальное распределение всех выполняемых программ на системные с высоким уровнем приоритета и прикладные с низким уровнем привилегий обеспечивает достаточно высокую степень защиты без заметного ущерба для общей производительности системы. Именно поэтому Microsoft отказалась от использования первого и второго колец защиты в своих операционных системах, во всяком случае – пока.
Windows 2000/XP – многозадачная и многопоточная система. Это значит, что в операционной системе может «одновременно» выполняться несколько процессов, причем в пределах одного процесса могут параллельно существовать несколько более простых процессов, или так называемых потоков.
Существует два режима многозадачности:
1. Кооперативная многозадачность.
2. Вытесняющая многозадачность.
При кооперативной многозадачности каждое приложение (программа) получает фактически столько процессорного времени, сколько оно считает нужным. Все приложения делят процессорное время, периодически опрашивая друг друга. Поэтому хорошо заметно, когда одна программа «тормозит» другую, а при длительных операциях с диском замирает практически вся прочая деятельность. Такой режим использовался, например, в операционных системах Windows 3x, а также в Windows 9x при работе с 16-ти разрядными приложениями.
Необходимость использования в Windows 9x режима кооперативной многозадачности была связана с проблемой обеспечения совместимости ОС с программами, написанными ранее, однако, начиная с Windows 95, реализован и принципиально другой вид многозадачности, в котором операционная система действительно контролирует и управляет процессами, потоками и их переключением. Этот вид многозадачности получил название вытесняющая многозадачность.
Реализация ее выглядит так: все существующие в данный момент потоки, часть из которых может принадлежать одному и тому же процессу, претендуют на процессорное время и, с точки зрения пользователя должны выполняться одновременно. Для создания этой иллюзии система через определенные промежутки времени забирает управление, анализирует свою очередь сообщений, распределяет сообщения по другим очередям в пространстве процессов и, если считает нужным, переключает потоки.
Переключением потоков занимаются планировщики приоритетов, которые вычисляют приоритеты (возможные значения – от 0 до 31) и определяют количество процессорного времени, выделяемого каждому потоку. При этом планировщик приоритетов действует следующим образом:
– повышается приоритет потоков, находящихся в ожидании пользовательского ввода (приоритетных приложений). Таким образом, система может более оперативно реагировать на действия пользователя;
– если поток обладает низшим приоритетом, он начинает повышаться;
– периодически повышается приоритет каждого потока, чтобы приложения с низким приоритетом не «зависали»;
– если приоритет потока наивысший, он начинает понижаться;
– если несколько потоков имеют одинаково высокие приоритеты, им устраивают «карусель», выделяя каждому по очереди одинаковое количество времени.
Реализация вытесняющей многозадачности в Windows 2000/XP дает не только возможность плавного переключения задач, но и устойчивость среды к зависаниям, так как ни одно приложение не может получить неограниченные права на процессорное время и другие ресурсы. Так система создает эффект одновременного выполнения нескольких приложений. Если компьютер имеет несколько процессоров, или процессор Pentium IV с включенной через BIOS технологией Hyper-Threading * то системы Windows 2000/XP могут действительно совмещать выполнение нескольких приложений. Если процессор один, то совмещение остается иллюзией. Когда заканчивается квант времени, отведенный текущей программе, система ее прерывает, сохраняет контекст и отдает управление другой программе, которая ждет своей очереди. Величина кванта времени зависит от ОС и типа процессора, в Windows 2000 она в среднем равна 20 мс. Следует отметить, что добиться одновременного выполнения потоков можно только на машинах с операционными системами Windows 2000/XP и выше, ядра которых поддерживают распределение потоков между процессорами и процессорного времени между потоками на каждом процессоре. Windows 9x/ME работают только с одним процессором. Даже если у компьютера несколько процессоров, под управлением Windows 9x/ME будет задействован лишь один из них, а остальные простаивают.
В третьем кольце защиты процессора Intel работают виртуальные машины Windows. Прикладные программы выполняются в виртуальных машинах, которые для них создают операционная система и процессор. Виртуальная машина представляет собой среду, имитирующую отдельный (виртуальный) компьютер со всеми его системными и периферийными устройствами. Процессор при этом решает задачу эмуляции отдельного процессора для каждой виртуальной машины, а операционная система дополняет картину виртуальными устройствами. Благодаря системе виртуальных машин разработчикам программного обеспечения не приходится беспокоиться о том, чтобы их программы отслеживали использование ресурсов компьютера другими программами, поскольку память и наборы ресурсов каждой виртуальной машины изолированы от памяти и ресурсов других виртуальных машин.
В Windows 9x при загрузке всегда создается системная виртуальная машина, в пределах которой выделяется отдельное адресное пространство для ядра системы. Каждому запущенному 32-разрядному приложению Windows 9x (их называют приложениями Win32) также выделяется отдельное пространство адресов в пределах системной виртуальной машины. Для всех 16-разрядных приложений Windows (приложения Winl6) система Windows 9x использует общее адресное пространство в пределах системной виртуальной машины. Каждое приложение DOS выполняется в собственной виртуальной машине.
В Windows 2000/XP при загрузке также создается системная виртуальная машина. Однако в отличие от Windows 9x, в Windows 2000/XP все 32-разрядные приложения работают в своих виртуальных машинах, а для приложений MS-DOS и Win16 (16-разрядные приложения Windows 3x) создается общая виртуальная DOS-машина (NTVDM) которая работает, как системный фоновый процесс и отделена от ядра системы. В Windows 2000/XP 16-разрядные программы и программы MS-DOS работают как отдельные потоки в многопотоковом процессе NTVDM.
____________________________________________________________________________________________________________________________________________________________
* Сущность технологии Hyper-Threading заключается в том, что один физический процессор представляется операционной системе как два логических процессора, и операционная система не видит разницы между одним процессором HT или двумя обычными процессорами. В обоих случаях операционная система направляет потоки как на двухпроцессорную систему. Далее все вопросы решаются на аппаратном уровне. В процессоре НТ каждый логический процессор имеет свой собственный набор регистров (включая и отдельный счетчик команд), а чтобы не усложнять технологию, в ней не реализуется одновременное выполнение инструкций выборки / декодирования в двух потоках. То есть такие инструкции выполняются поочередно. Параллельно выполняются лишь обычные команды.
Такая многозадачная архитектура Windows 2000/XP позволяет более быстро и более надежно выполнять 32-разрядные приложения, поскольку при выходе из приложения Win32 или приложения MS-DOS и Win16 (в том числе принудительном прекращении работы приложения) просто завершается работа соответствующей виртуальной машины, и все использовавшиеся ею системные ресурсы освобождаются.
Определение драйверов устройств было дано на предыдущей лекции. Драйверы отвечают за операции с аппаратным обеспечением. Они принимают команды от операционной системы и переводят их в конкретные инструкции, понятные соответствующим устройствам. Благодаря этому прикладные программы для Windows не зависят от различных устройств и пользуются сервисом, который им предоставляет операционная система. Windows 2000/XP поддерживает три типа драйверов устройств – драйверы реального режима MS-DOS (SYS-файлы), 16-разрядные драйверы для Windows 3.x (DRV-файлы) и виртуальные 32-разрядные драйверы (например: VDD – виртуальный драйвер дисплея, VTD – виртуальный драйвер таймера, VPD – виртуальный драйвер принтера; их общее наименование – VxD).
Встроенные функции операционной системы Windows 2000/XP находятся в DLL – динамически загружаемых модулях (dynamic-link library). Модули DLL – это разделяемые библиотеки процедур, к которым по мере необходимости обращаются исполняемые программы.
Основой кода Windows 2000/XP, выполняемого в основном, в нулевом кольце защиты процессора (в Windows 9x – выполнение производилось в третьем кольце защиты), являются следующие 32-разрядные DLL-модули:
1. Windows Manager – компонент, который управляет вводом и выводом на экран. Этот модуль имеет и другое имя – User. Он и располагается в библиотеке User32.dll.
2. Graphics Device Interface (GDI) – библиотека функций и структур, которые реализуют рисование в контексте устройства. Контекст устройства – это логическая структура, не зависящая от физического устройства и позволяющая пользоваться максимальными возможностями и средствами для вывода графики. Вывод в конкретное физическое устройство производится с помощью драйвера устройства. Система при этом преобразовывает и, возможно, искажает информацию с учетом ограничений, характерных для конкретного устройства. Поэтому реальная картина может отличаться от идеальной, созданной в контексте устройства.
3. Graphics Device Drivers (GDD) – аппаратно-зависимые драйверы, которые осуществляют связь с конкретными физическими устройствами ввода и вывода.
4. Console – компонент, который поддерживает текстовый режим вывода в окне.
5. Operating System Functions – функции, которые поддерживают все другие компоненты подсистемы Win32.
Вывод по первому вопросу: основные достоинства персональной вычислительной машины проявляются в диалоговом режиме. Организацию работы в таком режиме обеспечивает операционная система. Современные операционные системы должны сочетать в себе такие качества, как высокое быстродействие, защищенность, надежность, а также приемлемые требования к аппаратному обеспечению. Наиболее полно все эти качества для операционных систем фирмы Microsoft сочетаются в системах Windows 2000/XP.
Все программы и данные хранятся в виде файлов на дисках. За их хранение отвечает файловая система, являющаяся частью любой операционной системы. Рассмотрению файловой системы посвящен второй учебный вопрос данной лекции.
Системное ПО
Операционная система – это совокупность программных средств, которые обеспечивают управление аппаратными ресурсами вычислительной системы и взаимодействие программных процессов с аппаратурой, другими процессами и пользователем.
Операционная система выполняет следующие функции:
· управление памятью, вводом – выводом информации, файловой системой, взаимодействием процессов;
· диспетчеризацию процессов; защиту информации; учет использования ресурсов;
· обработку командного языка; выявление разных моментов, которые возникают в процессе работы, и соответствующую реакцию на них (например, при ошибочных ситуациях).
ОС координирует работу всех устройств компьютера. При параллельной работе процессора, памяти и внешних устройств операционная система обеспечивает разделение ресурсов, чем предотвращает возможность возникновения конфликтов между компонентами вычислительной системы.
Одной из важнейших функций ОС является автоматизация процессов ввода-вывода информации, управления выполнением прикладных задач, решаемых пользователем. ОС загружает нужную программу в память компьютера и следит за ходом ее выполнения; анализирует ситуации, препятствующие нормальным вычислениям, и дает указания о том, что необходимо сделать, если возникли затруднения. Пользователь взаимодействует с персональным компьютером через внешний интерфейс, организуемый операционной системой. В зависимости от своих целей, он вводит задания и получает результаты их выполнения либо, работая в диалоговом режиме, использует для общения с компьютером специальный интерфейс диалога. Диалоговый интерфейс – это совокупность программных средств, предназначенных для обмена информацией между пользователем и операционной системой. Существуют два типа диалоговых интерфейсов между пользователем и компьютером: текстовый, как, например, в операционной системе MS DOS, и графический, характерный для операционной системы Windows. В графических интерфейсах информация и команды представляются в виде пиктограмм (значков), и пользователь выполняет те или иные действия, указывая на эти пиктограммы и манипулируя ими определенным образом
Термин "операционная система" не имеет строгого определения, поскольку в различных операционных системах в ее состав входят различные системные программы. Наиболее важными частями операционной системы являются: файловая система, драйверы внешних устройств, загрузчик, системная библиотека.
Не нашли то, что искали? Воспользуйтесь поиском:
Лучшие изречения: Студент – человек, постоянно откладывающий неизбежность. 10573 – | 7332 – или читать все.