Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Стандарт POSIX



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

Наиболее ранним и распространенным стандартом ОСРВ является стандарт POSIX

Первоначальный вариант стандарта POSIX появился в 1990 г. и был предназначен для UNIX-систем

Стандарт POSIX был создан как стандартный интерфейс сервисов операционных систем. Этот стандарт дает возможность создавать переносимые приложения. Впоследствии этот стандарт был расширен особенностями режима реального времени.

Спецификации POSIX задают стандартный механизм взаимодействия приложения и ОС.

Таким образом, ОС поддерживает следующие интерфейсы: пользовательский (командный язык для управления функционированием системы и набор сервисных услуг); программный (набор услуг, освобождающий программиста от кодирования рутинных операций).

9. Операционные системы UNIX. Основные линии развития (AT&T и BSD UNIX). Современные реализации для ПЭВМ.

UNIX (читается ю́никс) — группа переносимых, многозадачных и многопользовательских операционных систем.

Первая система UNIX была разработана в 1969 г. в подразделении Bell Labs компании AT&T. С тех пор было создано большое количество различных UNIX-систем. Юридически лишь некоторые из них имеют полное право называться «UNIX»; остальные же, хотя и используют сходные концепции и технологии, объединяются термином «UNIX-подобные» (англ. Unix-like).

Некоторые отличительные признаки UNIX-систем включают в себя:

использование простых текстовых файлов для настройки и управления системой;

широкое применение утилит, запускаемых в командной строке;

взаимодействие с пользователем посредством виртуального устройства — терминала;

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

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

В настоящее время UNIX используются в основном на серверах, а также как встроенные системы для различного оборудования. На рынке ОС для рабочих станций и домашнего применения лидером является Microsoft Windows, UNIX занимает только второе (Mac OS X) и третье (GNU/Linux) места.

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

С 1978 года начинает свою историю BSD UNIX, созданный в университете Беркли. Его первая версия была основана на шестой редакции. В 1979 выпущена новая версия, названная 3BSD, основанная на седьмой редакции. BSD поддерживал такие полезные свойства, как виртуальную память и замещение страниц по требованию. Автором BSD был Билл Джой.

В начале 1980-х компания AT&T, которой принадлежали Bell Labs, осознала ценность UNIX и начала создание коммерческой версии UNIX. Эта версия, поступившая в продажу в 1982 году, носила название UNIX System III и была основана на седьмой версии системы.

В середине 1983 года была выпущена версия BSD 4.2, поддерживающая работу в сетях Ethernet и Arpanet. Система стала весьма популярной. Между 1983 и 1990 годом в BSD было добавлено много новых возможностей, таких как отладчик ядра, сетевая файловая система NFS, виртуальная файловая система VFS, и существенно улучшены возможности работы с файловыми сетями.

Тем временем AT&T выпускала новые версии своей системы, названной System V. В 1983 была выпущена версия 1

), включавшая полноэкранный текстовый редактор vi, библиотеку curses, буферизацию ввода-вывода, кеширование inode.

Современные реализации UNIX, как правило, не являются системами V или BSD в чистом виде. Они реализуют возможности как System V, так и BSD.

Основными принципами операционной системы UNIX являются многозадачность и стандартизация. Пользователю приходиться работать с двумя основными объектами операционной системы: файлами и процессами.

Операционную систему UNIX можно представить в виде трёх уровней: монолитное ядро, системные утилиты и демоны, пользовательские программы. Первые два работают на уровне привилегий системы, третий — на уровне пользователя

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

Для объединения файловых систем нескольких устройств используются виртуальная файловая система и механизм монтирования. Стандарт на файловую систему описывает основные каталоги иерархической файловой системы UNIX.

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

Заслуга полноценного переноса UNIX на IBM/PC принадлежит Линусу Торвальдсу, который в 1991 году опубликовал первую версию написанной им реализации ядра UNIX-совместимой операционной системы для IBM/PC x386, известной сегодня как Linux. Благодаря открытой публикации и активному участию множества этузиастов, Linux динамично развивался и быстро стал полноценной и современной операционной системой и дал путь широкому распространению идей и технологий UNIX в том числе и на персональных компьютерах. Linux как реализация UNIX был в свою очередь перенесён и на другие вычислительные архитектуры.

Технологии UNIX пришли и на современные персональные компьютеры Macintosh: начиная с версии 10 (Mac OS X) вся базовая часть операционной системы Mac OS, работающая с ресурсами и оборудованием, представляет собой один из вариант ов FreeBSD — Darwin.

10. Операционные системы Microsoft Windows. Основные версии и реализации, их характеристики и свойства.

Эти версии Windows не были полноценными операционными системами, а являлись надстройками к операционной системе MS-DOS и были по сути многофункциональным расширением, добавляя поддержку новых режимов работы процессора, поддержку многозадачности, обеспечивая стандартизацию интерфейсов аппаратного обеспечения и единообразие для пользовательских интерфейсов программ. Предоставляли встроенные средства (GDI) для создания графического интерфейса пользователя. Они работали с процессорами начиная с Intel 8086.

Windows 1.0 (1985)

Windows 2.0 (1987)

Windows 2.1 (Windows 386) (1987) — в системе появилась возможность запуска DOS-приложений в графических окнах, причём каждому приложению предоставлялись полные 640 Кб памяти. Полная поддержка процессора 80286. Появилась поддержка процессоров 80386.

Windows 3.0 (1990) — улучшена поддержка процессоров 80386 и защищённого режима.

Windows 3.1 (1992) — серьёзно переработанная Windows 3.0; устранены UAE (Unrecoverable Application Errors — фатальные ошибки прикладных программ), добавлен механизм OLE, печать в режиме WYSIWYG («что видите, то и получите»), шрифты TrueType, изменён Проводник (диспетчер файлов), добавлены мультимедийные функции.

Windows для рабочих групп (Windows for Workgroups) 3.1/3.11 — первая версия ОС семейства с поддержкой локальных сетей. В WFWG 3.11 также испытывались отдельные усовершенствования ядра, применённые позднее в Windows 95.

Семейство Windows 9x

Включает в себя Windows 95, Windows 98 и Windows Me.

Windows 95 была выпущена в 1995 году. Её отличительными особенностями являются новый пользовательский интерфейс, поддержка длинных имён файлов, автоматическое определение и конфигурация периферийных устройств Plug and Play, и способность исполнять 32-битные приложения. Windows 95 использует вытесняющую многозадачность и выполняет каждое 32-битное приложение в своём адресном пространстве.

Операционные системы этого семейства не являлись безопасными многопользовательскими системами как Windows NT, поскольку строгое разделение исполняющихся приложений не было реализовано в ядре. Программный интерфейс был подмножеством Win32 API поддерживаемым Windows NT, но имел поддержку юникода в очень ограниченном объёме[6]. Также в нём не было должного обеспечения безопасности.

В составе Windows 95 присутствовал MS-DOS 7.0, однако его роль сводилась к обеспечению процесса загрузки и исполнению 16-битных DOS приложений.

Семейство Windows NT

Текстовый логотип Windows® XP (обычно используется вместе с графическим)

Операционные системы этого семейства в настоящее время работают на процессорах с архитектурами x86, x64, и Itanium. Ранние версии (до 4.0 включительно) также поддерживали некоторые RISC-процессоры: Alpha, MIPS, и Power PC. Все операционные системы этого семейства являются полностью 32-битными операционными системами, и не нуждаются в MS-DOS даже для загрузки.

Только в этом семействе представлены операционные системы для серверов. До версии Windows 2000 включительно они выпускались под тем же названием что и аналогичная версия для рабочих станций, но с добавлением суффикса, например «Windows NT 4.0 Server» и «Windows 2000 Datacenter Server». Начиная с Windows Server 2003, серверные операционные системы называются по-другому.

Windows NT 3.1 (1993)

Windows NT 3.5 (1994)

Windows NT 3.51 (1995)

Windows NT 4.0 (1996)

Windows 2000 (2000) — Windows NT 5.0

Windows XP (2001) — Windows NT 5.1

Windows XP 64-bit Edition (2006) — Windows NT 5.2

Windows Server 2003 (2003) — Windows NT 5.2

Windows Vista (2006) — Windows NT 6.0

Windows Home Server (2007) — Windows NT 5.2

Windows Server 2008 (2008) — Windows NT 6.0

Windows Small Business Server (2008) — Windows NT 6.0

Windows 7 — Windows NT 6.1 (2009)

Windows Server 2008 R2 — Windows NT 6.1 (2009)

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

Семейство Windows NT относится к операционным системам с вытесняющей многозадачностью. Разделение процессорного времени между потоками происходит по принципу «карусели». Ядро операционной системы выделяет квант времени (в Windows 2000 квант равен примерно 20 мс) каждому из потоков по очереди при условии, что все потоки имеют одинаковый приоритет. Поток может отказаться от выделенного ему кванта времени. В этом случае система перехватывает у него управление (даже если выделенный квант времени не закончен) и передаёт управление другому потоку. При передаче управления другому потоку система сохраняет состояние всех регистров процессора в особой структуре в оперативной памяти. Эта структура называется контекстом потока. Сохранение контекста потока достаточно для последующего возобновления его работы.

Некоторыми из наиболее существенных улучшений в Windows 2000 по сравнению с Windows NT 4.0 являются:

Языковая интеграция: предыдущие версии Windows выпускались в трёх вариантах — для европейских языков (однобайтные символы, письмо только слева направо), для дальневосточных языков (многобайтные символы) и для ближневосточных языков (письмо справа налево с контекстными вариантами букв). Windows 2000 объединяет эти возможности; все её локализованные версии сделаны на единой основе.

Некоторыми из наиболее заметных улучшений в Windows XP по сравнению с Windows 2000 являются:

· Новое оформление графического интерфейса, включая более округлые формы и плавные цвета; а также дополнительные функциональные улучшения (такие, как возможность представления папки в виде слайд-шоу в проводнике Windows).

· Поддержка метода сглаживания текста ClearType, улучшающего отображение текста на ЖК-дисплеях (по умолчанию отключена).

11. Современные типы ОС для ПЭВМ. Назначение, характеристики и свойства.

История развития операционных систем для персональных компьютеров началась в далеком 1981 году. И первой ОС стала MS-DOS (Microsoft Disk Operation System). «ДОС» поставлялась тогда с новыми компьютерами от IBM. Несмотря на то, что «ДОС» была выпущена Microsoft, это не оригинальная разработка этой компании: до нее существовала ОС под названием QDOS, созданная компанией Seattle Computer Products, и Билл Гейтс со товарищи просто взял и переделал ее. К слову сказать, другие версии DOS появлялись и позже. Так, в свое время на Руси была популярна DR-DOS производства компании Digital Research, называвшаяся в России «Дурдосом». Главные недостатки «ДОСа», которые потом и потребовали разработки новых ОС, -- невозможность работы с графикой, «объемными» программами и однозадачность. Под DOS было написано великое множество программ, но быстрорастущие потребности, а также конкуренция потребовали новых решений. Поэтому в конце 80-х годов и появились Windows.

Первые версии знаменитых «окон» не произвели большого фурора, несмотря на то, что в них уже появилась и многозадачность (хотя и условная: больше, чем три программы, она не позволяла запускать одновременно), и графика. Но в 1992 году, когда вышла Windows 3.0, а затем и версии 3.1 и 3.11, Microsoft уже воспринималась как компания, разрабатывающая системы для домашних компьютеров. ОС от Билла Гейтса могли уже пользоваться не только многоопытные программисты, но и обычные пользователи. Доступность по цене сделала их безумно привлекательными. Хотя Windows 3.0 и все ее модификации не были самостоятельной ОС, это было что-то типа дополнительного ПО для MS-DOS, которое просто расширяло его возможности.

С середины 1993 года Microsoft начала выпуск новых операционных систем "новой технологии" (New Technology - NT) Windows NT.

Операционная система Windows NT с самого начала проектировалась с учетом всех требований, предъявляемых к современным ОС: расширяемости, переносимости, надежности, совместимости, производительности. Эти свойства были достигнуты за счет применения передовых технологий структурного проектирования, таких как клиент-сервер, микроядра, объекты.

В отличие от Windows, в которой реализована многозадачность без вытеснения (non-preemptive multitasking), в Windows NT используется механизм многозадачности с вытеснением (preemptive multitasking).

Помимо совместимости программных интерфейсов, Windows NT поддерживает существующие файловые системы, включая файловую систему MS-DOS (FAT), файловую систему CD-ROM, файловую систему OS/2 (HPFS) и собственную новую файловую систему (NTFS).

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

Позже на базе Windows NT появились Windows 2000 и Windows XP (eXperience), которые составляют сейчас львиную долю установленных операционных систем в мире.

Компьютеры с изображением семицветного яблочка уже давно перестали быть диковинкой. Их теперь можно встретить практически везде - в издательствах, рекламных агентствах, дизайн - студиях. Высокую популярность компьютеров Apple среди верстальщиков и дизайнеров можно объяснить множеством причин, но высокое качество, удобный интерфейс и надежность работы техники этой марки отмечают все. К новому тысячелетию компания подходит уверенно занимающей достойное место среди крупнейших производителей компьютеров. Новые разработки на базе процессоров PowerPC 750 (G3) уже завоевали заслуженную популярность, и Apple готовит к выпуску еще более мощные модели компьютеров, оснащенные надежной и удобной операционной системой MacOS. Одна из последних моделей - iMac - стала просто хитом сезона, побив все рекорды по продажам. Отличительные особенности этого компьютера - высокая вычислительная мощность, простота установки и настройки, элегантный дизайн при невысокой стоимости.

Настоящий успех пришел с моделью Apple II. Это был первый в истории человечества персональный компьютер в пластиковом корпусе, с цветной графикой. Стоил этот компьютер 1298 долларов. В начале 1978 года на рынок вышел недорогой дисковод для дискет Apple Disk II, который еще больше увеличил объемы продаж.

Летом 2000 года Apple разворачивает выпуск нового класса машин - Power Mac G4 Cube - компьютеров, призванных объединить в себе мощь Power Mac G4 с дизайном и миниатюрностью iMac.

G4 Cube, заключенный в прозрачный 8-и дюймовый куб, не смотря на свои размеры, обладает процессором Power PC G4 450. Спроектированный как нечто, слегка напоминающее машину времени, G4 Cube имеет центральный вертикальный охладительный канал, так как использовалась новая технология охлаждения, он не издает абсолютно никаких звуков, а легко снимающиеся внешние панели помогут вам в считанные секунды получить доступ к любому устройству компьютера. Power Mac G4 Cube включает в себя 450 МГц процессор PowerPC G4 с Velosity Engine (с изменяемой конфигурацией до 500 МГц), 64 Мб памяти (максимально - 1.5 Гб), жесткий диск 20 Гб или 40 Гб, слот DVD на вершине Куба, два FireWire и два USB порта, 10/100BASE-T Ethernet карту, 56К V.90 модем и новую оптическую мышь с клавиатурой.

Исходная философия для разработки Unix состоит в распределении функциональности по нескольким маленьким частям, программам.

Изначально это было требованием, исходящим из аппаратуры, на которой Unix изначально работал. По какой-то странной причине, получившаяся операционная система оказалось весьма полезной на другой аппаратуре. Вы можете относительно просто достичь новой функциональности и новых возможностей, объединяя маленькие части (программы) новым способом. Если появляются новые утилиты (так и происходит), Вы можете встроить его в Ваш старый инструментарий. К сожалению, в наше время программы для Unix становятся все большими, и включают в себя все больше возможностей, но некоторая гибкость и возможность взаимодействия по-прежнему остается. К примеру, когда я писал этот документ, я активно использовал эти программы; fvwm - для управления "окнами", emacs для редактирования текста, LaTeX - для форматирования его, xdvi для просмотра отформатированного текста, dvips - для подготовки его к печати, и, наконец, lpr для печати. Если я завтра найду новую лучшую программу просмотра dvi, я смогу использовать ее вместо старой, не изменяя остальных установок.

Развитие Linux'а разделилось на две ветви. Первая, с номерами версий, начинающимися с 1.0, считается более стабильной, надежной версией Linux'а. Вторая, чьи версии нумеруются 1.1, является более дерзкой и быстрее развивающейся и, следовательно (к сожалению), более богатой ошибками.

В данный момент изменения в Linux'е касаются поддержки TCP/IP и борьбы с ошибками. Linux - это достаточно большая система, но, к сожалению, содержит ошибки, которые находятся и исправляются. Хотя некоторые люди все еще регулярно сталкиваются с ошибками, как правило, это происходит из-за того, что они используют нестандартную или неадекватную аппаратуру. Очевидных ошибок становится все меньше, и они встречаются все реже.

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

Ядро является базой LINUX-а. Вы можете как угодно переставлять любую из библиотек, но пока есть ядро есть и LINUX. Оно включает в себя драйвера устройств, механизм распределения памяти, управление процессами и связями. Разработчики ядра стараются следовать рекомендациям POSIX, которые иногда осложняют, а иногда упрощают программирование. И если ваша программа поведет себя иначе на новой версии ядра, то вероятнее всего, в этой версии учтена еще какая-нибудь рекомендация POSIX. Информацию о ядре для программиста можно найти в Linux Kernel Hacker's Guide (Справочное руководство по ядру LINUX для программиста).

12. Функциональная организация (структура) типовой многозадачной ОС. Базовые функциональные подсистемы. Ядро и пользовательский слой ОС.

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

К таким базовым концепциям относятся:

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

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

• Наличие нескольких прикладных сред дает возможность в рамках одной ОС одновременно выполнять приложения, разработанные для нескольких ОС. Многие современные операционные системы поддерживают одновременно прикладные среды MS-DOS, Windows, UNIX (POSIX), OS/2 или хотя бы некоторого подмножества из этого популярного набора. Концепция множественных прикладных сред наиболее просто реализуется в ОС на базе микроядра, над которым работают различные серверы, часть которых реализуют прикладную среду той или иной операционной системы.

Распределенная организация операционной системы позволяет упростить работу пользователей и программистов в сетевых средах. В распределенной ОС реализованы механизмы, которые дают возможность пользователю представлять и воспринимать сеть в виде традиционного однопроцессорного компьютера. Характерными признаками распределенной организации ОС являются: наличие единой справочной службы разделяемых ресурсов, единой службы времени, использование механизма вызова удаленных процедур (RPC) для прозрачного распределения программных процедур по машинам, многонитевой обработки, позволяющей распараллеливать вычисления в рамках одной задачи и выполнять эту задачу сразу на нескольких компьютерах сети, а также наличие других распределенных служб.

В состав операционной системы входят следующие подсистемы:

Управление процессами;

Управление основной памятью;

Управление внешней памятью;

Управление устройствами ввода/вывода;

Управление файлами;

Защита системы;

Сетевая поддержка;

Командный интерфейс системы.

Управление процессами

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

создание и удаление процессов;

приостановка и возобновление процессов;

обеспечение механизмов для синхронизации процессов;

обеспечение механизмов для взаимодействия процессов.

Управление основной памятью

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

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

принимает решение о загрузке процессов при освобождении пространства ОП;

распределяет и освобождает пространство ОП в соответствии с действующими стратегиями.

Управление внешней памятью

Поскольку основная память (первичная память) энергозависима и слишком мала для размещения всех данных и программ постоянно, ВС должна обеспечить вторичную память для сохранения основной памяти. Большинство современных ВС используют диски как средство оперативного хранения, как программ так и данных. ОС отвечает за следующие действия в связи с управлением внешней памятью:

управление свободным пространством;

распределение памяти;

управление диском.

Подсистема управления устройствами ввода/вывода

Подсистема ввода/вывода состоит из:

системы кэширования - буферирования;

общего интерфейса драйверов устройств;

драйверов специализированных устройств.

Подсистема управления файлами

Файл представляет собой набор взаимосвязанной информации, определенной при создании. Кроме собственно данных, файлы представляют программы, как в исходном, так и в объектном виде.

Подсистема ОС отвечает за следующие действия в связи с управлением файлами:

создание файлов;

создание и удаление подкаталогов;

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

представление файлов во внешней памяти;

выгрузка файлов на другие внешние устройства.

Защита системы

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

Механизм защиты должен:

различать авторизованное и не авторизованное использование;

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

обеспечить средства реализации.

Сетевое обеспечение

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

увеличить скорость вычислений;

увеличить объем доступной информации;

повысить надежность

Командный интерфейс системы

Множество команд в ОС предназначено для выполнения функций управления, которые имеют дело с

созданием и управлением процессов;

управлением вводом/выводом;

управлением внешней памятью;

управлением основной памятью;

доступом к файловой системе;

защитой;

сетевым обеспечением.

Программа, которая читает и интерпретирует команды управления, называется различным образом:

интерпретатор управляющих карт;

процессор команд консолей

shell (в Unix)

Их функцией является принять и выполнить очередное утверждение.

Сервисы операционных систем

выполнение программ - способность системы загружать программу в память и выполнять ее;

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

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

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

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

13. Архитектурные принципы (принципы разработки и организации) современной мультипрограммной ОС. Модульная структура ОС.

Под архитектурой операционной системы понимают структурную и функциональную организацию ОС на основе некоторой совокупности программных модулей. В состав ОС входят исполняемые и объектные модули стандартных для данной ОС форматов, программные модули специального формата (например, загрузчик ОС, драйверы ввода-вывода), конфигурационные файлы, файлы документации, модули справочной системы и т.д.

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

• модульная организация;

• функциональная избыточность;

• функциональная избирательность;

• параметрическая универсальность;

• концепция многоуровневой иерархической вычислительной системы, по которой ОС представляется многослойной структурой;

• разделение модулей на две группы по функциям: ядро – модули, выполняющие основные функции ОС, и модули, выполняющие вспомогательные функции ОС;

• разделение модулей ОС на две группы по размещению в памяти вычислительной системы: резидентные, постоянно находящиеся в оперативной памяти, и транзитные, загружаемые в оперативную память только на время пополнения своих функций;

• реализация двух режимов работы вычислительной системы: привилегированного режима (режима ядра – Kernel mode), или режима супервизора (supervisor mode), и пользовательского режима (user mode), или режима задачи (task mode);

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

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

Особый класс функций ядра служит для поддержки приложений, создавая для них так называемую прикладную программную среду. Приложения могут обращаться к ядру с запросами – системными вызовами – для выполнения тех или иных действий, например, открытие и чтение файла, получение системного времени, вывода информации на дисплей и т.д. Функции ядра, которые могут вызываться приложениями, образуют интерфейс прикладного программирования – API (Application Programming Interface).

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

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

Вспомогательные модули обычно подразделяются на группы:

• утилиты – программы, выполняющие отдельные задачи управления и сопровождения вычислительной системы;

• системные обрабатывающие программы – текстовые и графические редакторы (Paint, Imaging в Windows 2000), компиляторы и др.;

• программы предоставления пользователю дополнительных услуг (специальный вариант пользовательского интерфейса, калькулятор, игры, средства мультимедиа Windows 2000);

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

Эти модули ОС оформляются как обычные приложения, обращаются к функциям ядра посредством системных вызовов и выполняются в пользовательском режиме (user mode). В этом режиме запрещается выполнение некоторых команд, которые связаны с функциями ядра ОС (управление ресурсами, распределение и защита памяти и т.п.).

14. Подсистема планирования (управления) процессов и потоков в ОС. Понятие процесса, потока и ресурса. Типы ресурсов. Информационные структуры процесса (потока).

Процесс (задача) - программа, находящаяся в режиме выполнения. С каждым процессом связывается его адресное пространство, из которого он может читать и в которое он может писать данные.

Потоки (нити, треды-thread) это отдельные параллельно выполняющиеся программы в рамках одного процесса. Для потоков в отличии от процессов характерно следующие важное свойство: они делят между собой почти все ресурсы потока- одновременно используют эти ресурсы. Обычно различные потоки совместно используют следующие ресурсы потока: 1) адресное пространство; 2) глобальные переменные; 3) открытые файлы; 4) дочерние процессы; 5) необработанные аварийные сигналы; 6) сигналы тревоги и их обработчики; 7) информацию об используемых ресурсах.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

15. Жизненный цикл процесса. Диаграмма состояний. Переходы между состояниями. Диаграмма состояний потоков в ОС MS Windows (2000/XP).

Состояние процессов

В многозадачной (многопроцессной) системе процесс может находиться в одном из трех основных состояний:

ВЫПОЛНЕНИЕ - активное состояние процесса, во время которого процесс обладает всеми необходимыми ресурсами и непосредственно выполняется процессором;

ОЖИДАНИЕ - пассивное состояние процесса, процесс заблокирован, он не может выполняться по своим внутренним причинам, он ждет осуществления некоторого события, например, завершения операции ввода-вывода, получения сообщения от другого процесса, освобождения какого-либо необходимого ему ресурса;

ГОТОВНОСТЬ - также пассивное состояние процесса, но в этом случае процесс заблокирован в связи с внешними по отношению к нему обстоятельствами: процесс имеет все требуемые для него ресурсы, он готов выполняться, однако процессор занят выполнением другого процесса.

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

В состоянии ВЫПОЛНЕНИЕ в однопроцессорной системе может находиться только один процесс, а в каждом из состояний ОЖИДАНИЕ и ГОТОВНОСТЬ - несколько процессов, эти процессы образуют очереди соответственно ожидающих и готовых процессов. Жизненный цикл процесса начинается с состояния ГОТОВНОСТЬ, когда процесс готов к выполнению и ждет своей очереди. При активизации процесс переходит в состояние ВЫПОЛНЕНИЕ и находится в нем до тех пор, пока либо он сам освободит процессор, перейдя в состояние ОЖИДАНИЯ какого-нибудь события, либо будет насильно "вытеснен" из процессора, например, вследствие исчерпания отведенного данному процессу кванта процессорного времени. В последнем случае процесс возвращается в состояние ГОТОВНОСТЬ. В это же состояние процесс переходит из состояния ОЖИДАНИЕ, после того, как ожидаемое событие произойдет.

Рис. 2.1. Граф состояний процесса в многозадачной среде

Состояния потоков

16. Алгоритмы планирования. Квантование времени (вытеснение). Планирование на основе приоритетов. Приоритетное планирование потоков в MS Windows (2000/XP).

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

Планирование процессов включает в себя решение следующих основных задач:

1) Определение момента времени для смены определяемого процесса;

2) Вывод процесса на выполнения из очереди готовых процессов;

3) Переключение контекстов в процессы;

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

1) Алгоритмы, основанные на квантование;

2) Алгоритмы, основанные на приоритетах.

В соответствие с алгоритмами основанные на квантование, смена активного процесса происходит если:

1) Исчерпан квант процессорного времени;

2) Процесс завершился и покинул систему;

3) Процесс перешел в состояние ожидания;

4) Произошла ошибка.

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

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

По-разному могут организованными очереди процессов. На пример первый пришел первый обслужился(fee fo).

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

Планирование потоков в Windows

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

· Конфигурационных параметров

· Статуса процесса

· Использования объекта задание

· Код отвечающий за планирование рассредоточен по ядру

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

Код Windows, отвечающий за планирование, реализован в ядре. Поскольку этот код рассредоточен по ядру, единого модуля или процедуры с названием «планировщик» нет. Совокупность процедур, выполняющих эти обязанности, называется диспетчерам ядра (kernel's dispatcher). Диспетчеризация потоков может быть вызвана любым из следующих событий:

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

Поток выходит из состояния Running (выполняется), так как его квант истек или поток завершается либо переходит в состояние ожидания.

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

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

Планирование в Windows осуществляется на уровне потоков.

Поскольку решения, принимаемые в ходе планирования, касаются исключительно потоков, система не обращает внимания на то, какому процессу принадлежит тот или иной поток. Так, если у процесса А есть 10, у процесса В — 2 готовых к выполнению потока, и все 12 имеют одинаковый приоритет, каждый из потоков теоретически получит 1/12 процессорного времени, потому что Windows не станет поровну делить процессорное время между двумя процессами.

17. Организация взаимодействия (синхронизация) параллельных процессов и потоков. Эффект гонок. Критическая секция. Типовые задачи синхронизации.





Дата публикования: 2015-01-13; Прочитано: 1834 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.044 с)...