Операционные системы
Несколько семейств операционных систем. Создание специальных разделяемых областей памяти. Элементы иерархических файловых систем. Управление и потребление ресурсов в многозадачной системе. Термины для определения способов межпроцессного взаимодействия.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | реферат |
Язык | русский |
Дата добавления | 12.06.2009 |
Размер файла | 19,7 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
11
Операционные системы
Операционные системы, развиваясь вместе с ЭВМ, прошли длинный путь от простейших программ в машинных кодах длинной в несколько килобайт до монстров, написанных на языках высокого уровня, размер которых исчисляется десятками мегабайт. Такой значительный рост размера операционных систем обусловлен, главным образом, стремлением разработчиков 'украсить' операционную систему, расширить ее возможности, добавить возможности, изначально несвойственные операционным системам, а также сделать интерфейс пользователя интуитивным. Все эти попытки дали свои результаты, и положительные, и отрицательные (усложнение настройки и программного интерфейса при упрощении пользовательского).
На сегодняшний день на рынке програмного обеспечения для IBM PC-совместимых компьютеров сосуществуют несколько семейств операционных систем. Однозадачные однопользовательские ОС MS-DOS и PC-DOS являются самыми распространенными ввиду своей простоты и 'неприхотливости', большую роль здесь играет и то, что подавляющее большинство программ работает именно под их управлением. MS-DOS и PC-DOS характеризуются минимальным пользовательским и программным интерфейсами, в тоже время, работая со всевозможными програмными оболочками, интегрированными средами (такими как Microsoft Windows или DESQview), создают комфортабельную среду для пользователя и программы.
ОС Microsoft Windows NT, ориентированная на работу в разнородных сетях, высоконадежна, однако, это достигнуто за счет частичной потери совместимости с MS-DOS.
Операционная система OS/2 стоит особняком: будучи полноправной многозадачной операционной системой, со своим оригинальным графическим пользовательским и программным интерфейсами, она сохраняет совместимость с MS-DOS и PC-DOS (начиная с версии WARP 3.0 и с Microsoft Windows).
ОС UNIX - одна из старейших и наиболее простых операционных систем, изначально была рассчитана на разработку программ (для нее самой и не только) на мини-ЭВМ и позволяла без больших затрат труда программиста переносить программу из одной системы ЭВМ на другую. Неудивительно, что сейчас продается много различных вариантов мобильной операционной системы UNIX, таких как XENIX, UNIXWARE, SUN-OS, LINUX, BSD.
Рассмотрим программные интерфейсы Microsoft Windows, ОS/2 и UNIX (согласно стандарту POSIX) для персональных ЭВМ, совместимых с IBM PC.
Общие сведения
Все рассматриваемые операционные системы работают в многозадачном однопользовательском режиме работы (UNIX также поддерживает и многопользовательский режим); поддерживают иерархическую файловую систему, межпроцессное взаимодействие, встроенные средства отладки программ, стандартизируют программный интерфейс для многих внешних устройств, обычно трактуя их как файлы с последовательным доступом.
Управление памятью
Все рассматриваемые операционные системы обеспечивают выделение участка памяти для нужд программы, изменение его размера и освобождение. По-разному поддерживается концепция виртуальной памяти.
Операционная система OS/2 использует страничную модель памяти, то есть программа получает память порциями по 4 кб; подкачка также осуществляется порциями по 4 кб. Программа не может управлять процессом подкачки.
Важной особенностью OS/2 является возможность создания специальных разделяемых областей памяти, которые могут использоваться для межпроцессного взаимодействия (см. гл. межпроцессное взаимодействие).
Microsoft Windows использует сегментированную модель память. Исторически сложилось так, что ОС (а, точнее, программная оболочка) Microsoft Windows до разработки процессора 80386 работала в реальном режиме ('real mode') и защищенном режиме 80286-го процессора ('standart mode'). В реальном режиме механизм подкачки не использовался; при наличии 286-го процессора ОС позволяла выгружать на диск только MS-DOS-освские программы. С появлением процессора 80386 и использованием его защищенного режима, возможности использования виртуальной памяти резко расширились: появилась возможность выгрузить на диск любой сегмент памяти компьютера. С помощью системных вызовов, программа пользователя может управлять многими нюансами распределения памяти: разрешением на выгрузку страницы, сборкой мусора, перемещением объектов в памяти.
Файловая система
Все системы поддерживают следующие элементы иерархических файловых систем: обычные файлы, каталоги, специальные байт-ориентированные и блок-ориентированные файлы. Файл является массивом байтов (блоков фиксированной длины). Каталоги обеспечивают связь между именами файлов и собственно файлами. Каждый элемент каталога содержит имя файла и ссылку на конкретный файл. Для именования файлов используются корневой и текущий каталоги. Имя файла состоит из последовательности компонентов - локальных имен, разделенных символами '\' (В операционной системе UNIX - '/').
ОС UNIX характеризуется единственной однородной файловой системой на один или несколько компьютеров. В Microsoft Windows и OS/2 файловые системы ассоциируются с носителями (посредством логических имен - букв латинского алфавита).
Операционная система OS/2, кроме того, поддерживает свою файловую систему - HPFS (High Performance File System - высокопроизводительная файловая система), характеризующаяся хранением имен файлов и каталогов в виде B-дерева.
Внешние устройства (такие как терминал, принтер) так же часто представляются как файлы для упрощения работы с ними.
Операционные системы предоставляют следующие системные вызовы: запрос на смену и получение имени текущего каталога; создание, открытие, закрытие, удаление, переименование и получение информации о файле или каталоге, позиционирование в них.
Все рассматриваемые операционные системы поддерживают операции блокировки файла для защиты доступа к нему со стороны других процессов в многозадачной среде.
Управление процессами
Единицей управления и потребления ресурсов в многозадачной системе является процесс. В частности, ввод-вывод выполняется синхронно, и процесс приостанавливается до его завершения. Если требуется продолжить выполнение процесса параллельно с инициированным им вводом-выводом, нужно предварительно породить другой процесс для реализации ввода-вывода. Microsoft Windows, OS/2 и UNIX предоставляют сходные системные вызовы для обслуживания и управления процессами ('сессия' в OS/2): порождение, уничтожение.
OS/2 предоставляет гораздо более широкий спектр системных вызовов для управления процессами. В OS/2 существуют три вида процессов: нити (цепи или треды), 'настоящие' процессы и экранные группы. Экранные группы - наиболее независимый тип процессов. Каждая экранная группа имеет свою собственную виртуальную консоль, адресное пространство, открытые файлы, очереди и каналы (см. ниже). Внутри экранной группы могут находится один или более 'настоящих' процессов, у каждого из которых могут быть свои открытые файлы и свое адресное пространство. Нити - самый простой класс процессов, они имеют только свое собственное адресное пространство, а все остальные ресурсы наследуют от породившего их 'настоящего' процесса.
В операционной системе OS/2 планировщик задач может выделять 'настоящим' процессам кванты времени по двум алгоритмам: динамического и абсолютного приоритетов. Алгоритм динамического приоритета выражается: система подсчитывает интенсивность операций ввода-вывода, использования процессорного времени, и по ним определяет количество квантов времени, предоставляемых процессу. При использовании абсолютных приоритетов ОС распределяет кванты времени согласно числовым значениям, заданным при старте процесса. Процесс может изменять свой приоритет в небольших пределах с помощью системной функции.
В Microsoft Windows планировщика задач распределяет кванты процессорного времени аналогично алгоритму абсолютных приоритетов в операционной системе OS/2. Программа никак не может повлиять на количество предоставляемого ей процессорного времени.
В операционной системе UNIX алгоритм работы планировщика задач зависит от реализации.
Межпроцессное взаимодействие
Операционные системы используют разные термины для определения способов межпроцессного взаимодействия.
Единственным видом межпроцессного взаимодействия в ОС UNIX является сигнальный механизм. Посредством сигналов передается информация о необходимости завершения процесса, об ошибке в программе пользователя, об исключительных ситуациях или завершении порожденного процесса. Сигнал генерируется, когда происходит событие, вызывающее данный сигнал. Одно и то же событие может вызвать посылку сигнала нескольким процессорам. На каждый сигнал, определенный в системе, процесс должен иметь реакцию - действие, которое он выполняет при получении сигнала.
Операционная система OS/2 предоставляет три типа межпроцессного взаимодействия: каналы, очереди и семафоры.
Канал представляет собой кольцевой буфер с двумя указателями - начала и конца; используется для перенаправления ввода-вывода и стандартных файлов между процессами. Только два процесса могут читать или писать в канал - сервер и клиент.
Очередь - это упорядоченный список из 32-битных значений, интерпретируемых процессом по контексту (это может быть целое, указатель на общую область памяти или просто флаг). Любой процесс может прочесть информацию из канала в любом порядке или записать туда любую информацию.
Семафор - это объект, имеющий два устойчивых состояния (рабочее и нерабочее) и используемый для синхронизации исполнения процессов. Существует несколько видов семафоров: семафор событий, взаимного исключения, взаимного ожидания и именованный.
Когда семафор событий находится в нерабочем состоянии, операционная система блокирует исполнение всех процессов, которые запрашивают состояние семафора.
Семафоры взаимного исключения предотвращают возникновение тупиков при обращении к разделяемым ресурсам. Операционная система блокирует доступ к разделяемому ресурсу до тех пор, пока соответствующий семафор не будет свободен. При использовании разделяемого ресурса система устанавливает значение семафора в рабочее состояние, показывая тем самым, что ресурс занят.
Семафор взаимного ожидания представляет собой пакет из семафоров взаимного исключения или семафоров событий. Система может приостановить процесс до тех пор, пока один или все семафоры внутри именованного семафора не окажутся в состоянии 'свободен' (в зависимости от потребности процесса).
Реакция на именованный семафор зависит от процессов, совместно использующих его.
В операционных системах OS/2 и Microsoft Windows существует специальный механизм для взаимодействия процессов в реальном масштабе времени. Этот механизм называется DDE (Dynamic Data Exchange - динамический обмен данными). Он стандартизирует процесс обмена командами, сообщениями и объектами для обработки между задачами. Наиболее распространенные действия, для которых используются DDE - печать.
Другим интерфейсом для обмена данными является OLE (Object Linking and Embedding - объектное связывание со встраиванием). Этот интерфейс позволяет хранить объекты, созданные одной программой, в объектах, созданных другой программой, а также редактировать (печатать) их без нарушения целостности информации и связей.
Одним из наиболее простых, удобных и интуитивных интерфейсов межпрограмного взаимодействия является буфер обмена - Clipboard. Буфер обмена может содержать в себе один информационный объект - кусок текста, картинку и т.д. С помощью системного вызова процесс может получить копию информации, содержащейся в буфере обмена или сам поместить объект в буфер, при этом старое содержимое буфера теряется. Таким образом, программы получают простой, но эффективный способ обмена информацией в процессе своей работы.
Операционная система UNIX не предоставляет этого способа обмена информацией, Microsoft Windows же позволяет задачам обмениваться информацией таким образом, даже в DOS-сессиях.
Графический интерфейс пользователя
Графический интерфейс пользователя изначально был несвойственен неигровым программам, однако, будучи призванным облегчить общение пользователя с компьютером и программой, хорошо прижился на IBM PC и стал неотъемлемой частью любой уважающей себя операционной системы.
Оболочка Microsoft Windows не была изначально операционной системой, да и сейчас не может считаться в полноценной операционной системой, так как она существует 'поверх' операционной системы типа MS-DOS. Она возникла в виде стандартизатора графического интерфейса и прижилась исключительно потому, что пользователь хотел видеть программу, с которой ему часто приходится работать красивой, практичной, удобной и легкой в освоении и использовании.
Для ОС UNIX также был создан специальный графический интерфейс - X-Windows; промышленный гигант - фирма IBM выпустила вместе с операционной системой OS/2 свой вариант графического интерфейса пользователя (GUI - Graphics User Interface) - Presentation Manager.
После запуска программа обычно создает одно окно, с которым она ассоциируется и работает. Пользователь, работая с окном и находящимися в нем объектами заставляет операционную систему (или программную оболочку) посылать программе сообщения, активизирующие необходимые пользователю возможности программы. В процессе работы программа также может создавать другие окна (выбора, диалога, обрабатываемого файла и др.) и получать от них сообщения, таким образом, стандартизируется часто используемые элементы диалога с пользователем.
Операционная система (оболочка), ориентированная на графический интерфейс пользователя, предоставляет не только функции, поддерживающие ввод-вывод, но и широкий спектр системных вызовов, позволяющих использовать различные графические примитивы: от самых простых (точки, линии, дуги) до самых сложных (области, окна, курсоры). Основным преимуществом использования графического интерфейса операционной системы является то, что с помощью него программа может создавать графические изображения, которые будут выглядеть одинаково на всех устройствах, поддерживаемых операционной системой (принцип What We See Is What We Get - что видим, то и получаем).
Большое внимание в графическом интерфейсе операционной системы обычно уделяется шрифтам. Исторически сложилось так, что первыми и долгое время единственными шрифтами для компьютеров оставались растровые (точечно-матричные) шрифты. Такие шрифты занимали малый объем памяти, однако, их невозможно было вращать, наклонять, уменьшать, без искажений, а увеличивать можно было только в целое число раз. С появлением графического интерфейса, операционные системы стали предоставлять системные вызовы для поддержки использования векторных шрифтов, которые не только легко масштабируются, меняют наклон и толщину, но и выглядят одинаково на всех устройствах, поддерживаемых операционной системой. Каждая операционная система поддерживает свой стандарт векторных шрифтов (TrueType для Microsoft Windows; Adobe Type Manager для OS/2; GhostScript для LINUX).
Объектно-ориентированное программирование и операционные системы
Использование объектно-ориентированного подхода к разработке программ не могло не оказать своего влияния на операционную систему. Графический интерфейс пользователя и программный интерфейс операционной системы начали также использовать объектно-ориентированный подход.
Наиболее развитый объектно-ориентированный программный интерфейс имеет операционная система OS/2. Все графические и программные примитивы представляются в ней в виде объектов (память, дисплей, принтер, папка, звуковая карта, дисковод - все это - объекты). Однако, объектно-ориентированный подход неэффективно использует ресурсы памяти, поэтому использование операционной системы OS/2 на компьютерах с 4 Мб памяти (на одном из таких писался данный реферат) затруднительно.
Выводы
Современная операционная система - сложный комплекс программных средств, предоставляющих пользователю не только стандартизированный ввод-вывод и управление программами, но и упрощающий работу с компьютером. Программный интерфейс операционных систем позволяет уменьшить размер конкретной программы, упростить ее работу со всеми компонентами вычислительной системы.
Подобные документы
История появления первых операционных систем, мультипрограммные операционные системы для мэйнфреймов. Первые локальные и глобальные сети. Развитие операционных систем в 80-е годы. Построение двумерных графиков в MathCAD, решение систем уравнений.
контрольная работа [559,1 K], добавлен 11.06.2014Важность операционной системы для мобильных устройств. Популярность операционных систем. Доля LINUX на рынке операционных систем. История OS Symbian, BlackBerry OS, Palm OS. Отличия смартфона от обычного мобильного телефона. Учет ограничений по памяти.
презентация [477,3 K], добавлен 01.12.2015Виртуальные файловые системы. Интерфейс системных вызовов для различных типов файловых систем. Реализация директорий. Индексируемое размещение. Управление свободной памятью. Список свободной дисковой памяти. Различные методы размещения кэша для диска.
презентация [1,9 M], добавлен 24.01.2014Особенности современного этапа развития операционных систем. Назначение операционных систем, их основные типы. Операционные системы мини-компьютеров. Принцип работы матричного принтера, проектирование и воспроизведение произвольных символов для них.
курсовая работа [258,2 K], добавлен 23.06.2011Эволюция и классификация ОС. Сетевые операционные системы. Управление памятью. Современные концепции и технологии проектирования операционных систем. Семейство операционных систем UNIX. Сетевые продукты фирмы Novell. Сетевые ОС компании Microsoft.
творческая работа [286,2 K], добавлен 07.11.2007Основные классификации операционных систем. Операционные системы семейства OS/2, UNIX, Linux и Windows. Разграничение прав доступа и многопользовательский режим работы. Пользовательский интерфейс и сетевые операции. Управление оперативной памятью.
реферат [22,8 K], добавлен 11.05.2011История разработок и совершенствования операционных систем компании Microsoft, их характеристика и отличительные признаки от систем других марок, преимущества и недостатки. Современное состояние и возможности операционных систем Microsoft и перспективы.
реферат [22,6 K], добавлен 22.11.2009Исследование эволюции операционных систем для персонального компьютера компании Microsoft. Характеристика основных функциональных особенностей Windows XP, Windows Vista и Linux. Достоинства и недостатки операционных систем, произведенных компанией Apple.
реферат [36,8 K], добавлен 10.04.2018Понятие операционных систем, их классификация и разновидности, отличительные признаки и основные свойства. Содержание операционных систем, порядок взаимодействия и назначение их компонентов. Организация дискового пространства. Описание современных ОС.
контрольная работа [42,4 K], добавлен 07.11.2009Основные понятия об операционных системах. Виды современных операционных систем. История развития операционных систем семейства Windows. Характеристики операционных систем семейства Windows. Новые функциональные возможности операционной системы Windows 7.
курсовая работа [60,1 K], добавлен 18.02.2012