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

Скачать на Телефон 12.06.2019

Виды операционных систем

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

Функции ОС :
* Управление памятью;
* Управление доступом к устройствам ввода-вывода;
* Управление файловой системой;
* Управление взаимодействием процессов, диспетчеризация процессов;
* Управление использованием ресурсов;
* Загрузка программ в оперативную память и их выполнение;
* Интерфейс с пользователем;
* Межмашинное взаимодействие (сеть);
* Защита самой системы и пользовательских данных и программ;
* Разграничение прав доступа и многопользовательский режим работы.

Многозадачность (multitasking, multiprogramming) - свойство операционной системы и ЭВМ, при которой один процессор может обрабатывать несколько разных программ или разных частей одной программы одновременно. При этом все программы вместе удерживаются в оперативной памяти и каждая выполняется за какой-то период времени. Например, одна программа может работать, пока другие ожидают включения периферийного устройства или сигнала (команды) оператора. Способность к многозадачности зависит в большей степени от операционной системы, чем от типа ЭВМ. Наиболее распространенной многозадачной системой является Unix фирмы AT&T’s Bell Laboratories (США).

Виды ОС:
* Многопользовательская система , система с коллективным доступом, система коллективного доступа (multiuser system, multiaccess system) - вычислительная система или ее часть (например операционная система), позволяющая нескольким пользователям одновременно иметь доступ к одной ЭВМ со своего терминала (локального или удаленного). Многопользовательский характер работы достигается благодаря режиму разделения времени, который заключается в очень быстром переключении ЭВМ между разными терминалами и программами и соответственно быстрой отработке команд каждого пользователя. При этом последний не замечает задержек времени, связанных с обслуживанием других пользователей. Примерами разработок указанного вида могут служить помимо Windows операционные системы: NetWare, созданная и развиваемая фирмой Novell (США) для локальных информационных вычислительных систем; Unix фирмы AT&T’s Bell Laboratories (США); REAL/32 и др.
* Однопользовательская система (one user system) - операционная система, не обладающая свойствами многопользовательской. Примерами однопользовательских ОС являются MS DOS фирмы Microsoft (США) и ОС/2, созданная совместно Microsoft и IBM.
* Сетевая операционная система, СОС (NOS, Network Operating System) - операционная система, предназначенная для обеспечения работы вычислительной сети. Примерами сетевых операционных систем являются Windows NT, Windows 2000, Novel Netware, Unix, Linux и др.

Типы ОС :
* графические (с наличием графического пользовательского интерфейса - GUI) - текстовые (только командная строка);
* бесплатные - платные;
* открытые (с возможностью редактировать исходный код) - закрытые (без возможности редактировать исходный код);
* клиентские - серверные;
* высокая стабильность (устойчивость к сбоям аппаратной части)- низкая стабильность;
* простая в администрировании (для рядового пользователя) - сложная, для системных администраторов;
* 16-разрядная - 32-разрядная - 64-разрядная (в далеком прошлом были еще и 8-разрядные);
* с высоким уровнем безопасности данных - с низким уровнем безопасности;

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

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

Операционные системы, в свою очередь, нужны, если:
* вычислительная система используется для различных задач, причём программы, исполняющие эти задачи, нуждаются в сохранении данных и обмене ими. Из этого следует необходимость универсального механизма сохранения данных; в подавляющем большинстве случаев ОС отвечает на неё реализацией файловой системы. Современные ОС, кроме того, предоставляют возможность непосредственно «связать» вывод одной программы с вводом другой, минуя относительно медленные дисковые операции;
* различные программы нуждаются в выполнении одних и тех же рутинных действий. Напр., простой ввод символа с клавиатуры и отображение его на экране может потребовать исполнения сотен машинных команд, а дисковая операция - тысяч. Чтобы не программировать их каждый раз заново, ОС предоставляют системные библиотеки часто используемых подпрограмм (функций);
* между программами и пользователями системы необходимо распределять полномочия, чтобы пользователи могли защищать свои данные от чужого взора, а возможная ошибка в программе не вызывала тотальных неприятностей;
* необходима возможность имитации «одновременного» исполнения нескольких программ на одном компьютере (даже содержащем лишь один процессор), осуществляемой с помощью приёма, известного как «разделение времени». При этом специальный компонент, называемый планировщиком, «нарезает» процессорное время на короткие отрезки и предоставляет их поочередно различным исполняющимся программам (процессам);
* наконец, оператор должен иметь возможность, так или иначе, управлять процессами выполнения отдельных программ. Для этого служат операционные среды, одна из которых - оболочка и набор стандартных утилит - является частью ОС (прочие, такие, как графическая операционная среда, образуют независимые от ОС прикладные платформы). Таким образом, современные универсальные ОС можно охарактеризовать прежде всего как
* использующие файловые системы (с универсальным механизмом доступа к данным),
* многопользовательские (с разделением полномочий),
* многозадачные (с разделением времени).

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

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

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

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

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

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

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

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

Более менее нормальное творение удалось создать Кену Томпсону. В 1969 году он написал игру Space Travel, которая не имела совершенно никакого успеха и перспектив развития у нее небыло. Но это сильно сказано - небыло. Взявшись за свое детище, Кен Томпсон стал модернизировать операционную систему Multics для работы игры. Позже операционная система получила название Unics (от названия операционной системы Multics), а еще позже - UNIX.

Операционная система была написана с использованием языка программирования - ассемблер, не имела графического интерфейса, работала в режиме командной строки. Отличалась от предыдущей надежностью. Это качество сохранилось и до теперешних времен. В ней имелся командный интерпритатор BASH - Bounre Again SHell, позволяющий работать в среде операционной системы. Немного позже Кен Томпсон и его соратники по созданию Unix, стали продавать свою систему, как вполне устойчивый коммерческий проект.

Одной из первых операционнйх систем для персональных компьютеров была CP/M (Control Program/Microcomputer) - Управляющая Программа/Микрокомпьютер, созданная для компьютеров с 8-разрядными процессорами Intel 8080, Intel 8085, Z-80. Создатель системы: Гарри Килдэл, в последующем основатель компании Digitasl Research. При создании персональных компьютеров в 1981 году компания обратилась к IBM Digital Research с предложением создать для IBM PC 5150 операционную систему с графическим интерфейсом. Те отказались помогать, и поэтому компания IBM обратилась за помощью к фирме Microsoft, которая с 1982 года начинает выпускать для IBM-совместимых персоналок операционне системы MS-DOS (Microsoft Discs Opereating System).

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

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

Первой операционной системой с поддержкой графического интерфейса пользователя (GUI, Graphical User Interface - полное название графического интерфейса) стала операционная система Macintosh (сокращенно - Mac), разработанная для компьютеров Apple PC. Такой интерфейс создавался в пределах компании Apple и никто не имел никакого права копировать эту систему и устанавливать ее на компьютерах, не совместимых с Apple. Этот интерфейс был весьма удобным, появился рабочий стол, окна, раскрывающиеся меню и пиктограммы ярлыков позволяли использовать компьютер с максимальным удобством. Впервые такой графический интерфейс был разработан в компании Apple в 1983 году, а его продажа и даже реклама компьютера Apple с графической ОС Macintosh прошла по Американскому телевидению в 1984 году.

Лишь 20 ноября 1985 года компания Microsoft представила свою "операционную систему" Windows 1.0 на выставке компьютерных технологий в Лас-Вегасе. Данная операционная система была очень "сырой", ее даже назвать полноценной операционной системой - это было бы просто самообманом. Windows 1.0 был построен с использованием DOS, фактически он являлся полноценной надстройкой DOS - графический проводник, позволяющий выполнять простейшие задачи над файлами и запускать программы после одного щелчка мышки по пикрограмме программы. В системе была так же реализована панель управления. На этом собственно удобство ОС заканчивалось. Система работала на компьютере с процессором i286. Позже последовал проект Windows 2.0, за ним Windows NT (New Technologies), Windows 3.0. Настоящий успех начался с операционными системами с выходом версии Windows 3.0.

Несколько слов о так называемых программах-надстройках DOS. Это программы, запускаемые при запуске операционной системы, позволяющие выполнять операции по редактированию текста с помощью специального редактора, копирование, перемещение, переименование и удаление файлов и каталогов с носителей информации и тому подобные операции. В таких надстройках была реализована мышка, клавиатурные комбинации клавиш, а для еще большего удобства были задействованы специальные функциональные клавиши - это 12 клавиш, подписанные как F1, F2, F3 и так далее, находятся и на современных клавиатурах над группой буквенно-цифровых клавиш. Пример подобных программ - Norton Commander производства Symantec Corporation. Подобные программы существуют и сейчас и активно используются на серверах при администрировании. Подобные Nortonу: Volkov Commander, Far, Windows Commander.

В 1986 году компания IBM и Microsoft объеденили свои усилия с целью создания качественного программного обеспечения. Результатом их работы стала операционная система OS/2.

ОПЕРАЦИОННЫЕ СИСТЕМЫ, ИХ НАЗНАЧЕНИЕ И РАЗНОВИДНОСТИ

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

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

К современным операционным системам предъявляются следующие требования:

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

По числу одновременно выполняемых задач выделяют ОС однозадачные (MS DOS, ранние версии PC DOS) и многозадачные (OS/2, UNIX, Windows).

Однозадачные ОС предоставляют пользователю виртуальную машину и включают средства управления файлами, периферийными устройствами и средства общения с пользователем. Многозадачные ОС дополнительно управляют разделением между задачами совместно используемых ресурсов. Многозадачность бывает невытесняющая (NetWare, Windows3/95/98) и вытесняющая (Windows NT, OS/2, UNIX). В первом случае активный процесс по окончании сам передает управление ОС для выбора из очереди другого процесса. Во втором - решение о переключении процессора с одного процесса на другой принимает ОС.

По числу одновременно работающих пользователей ОС делятся на однопользовательские (MS DOS, Windows Зх, ранние версии OS/2) и многопользовательские (UNIX, WINDOWS NT). В многопользовательских системах присутствуют средства защиты информации пользователей от несанкционированного доступа.

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

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

В настоящий момент около 90% компьютеров используют ОС Windows. Более широкий класс ОС ориентирован для использования на серверах. К этому классу ОС относятся семейство UNIX, разработки фирмы Microsoft (MS DOS и Windows), сетевые продукты Novell и корпорации IBM.

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

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

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

В целом ОС семейства UNIX ориентированы прежде всего на большие локальные (корпоративные) и глобальные сети, объединяющие работу тысяч пользователей. Большое распространение UNIX и ее версия LINUX получили в сети Интернет, где важнейшее значение имеет машинонезависимость ОС.

ОС MS DOS широко использовалась для персональных компьютеров, построенных на базе процессоров Intel 8088-80486.

В настоящее время MS DOS для управления персональными компьютерами практически не применяется. Однако ее не следует считать полностью исчерпавшей свои возможности и потерявшей актуальность. Низкие требования к аппаратным ресурсам оставляют DOS перспективной для практического использования. Так, в 1997 г. компания СаШега начала работы по адаптации DR DOS (аналог MS DOS) к рынку встроенных ОС мелких высокоточных устройств, присоединяемых к Интернету и интранет-сетям. К этим устройствам относятся кассовые аппараты, факсы, персональные цифровые ассистенты, электронные записные книжки и др.

Операционные системы Windows - это семейство операционных систем, включающих: Windows 3.1, Windows for Workgroups 3.11, Windows 9X, Windows NT, Windows 2000, Windows ME (первые две обычно называют операционными оболочками, поскольку ОС DOS для них устанавливалась отдельно). Windows 95 характеризуется простотой инсталляции, невысокими уровнями защиты данных и устойчивости к сбоям приложений. Windows 95 обладает интуитивно понятным интерфейсом, поддерживает, технологию plug-and-play, содержит встроенные средства для сетевой работы.

Windows 98 является развитием Windows 95. Эта версия тесно интегрирована с Web-броузером Internet Explorer и содержит большое количество драйверов к старым и новым устройствам. Пользователи отмечают упрощенный процесс инсталляции ОС, пониженные по сравнению с NT требования к мощности процессора, объему памяти и дисковому пространству. Одной из разновидностей Windows является ОС Windows СЕ. Эта линия ОС предназначена для использования на портативных компьютерах. Windows СЕ представляет собой 32-разрядную объектно-ориентированную многозадачную ОС, имеет встроенные функции энергосбережения. Версия Windows СЕ 3.0 (2000) приближается по своим возможностям к системам реального времени. Основная часть этой компактной ОС записана в перепрограммируемое ПЗУ портативных компьютеров. Windows NT 5.0 или Windows 2000 - полностью 32-разрядная ОС с приоритетной многозадачностью, улучшенной реализацией работы с памятью и изначально проектировалась со средствами обеспечения надежности, защиты и управления. Windows 2000 выпускается в четырех вариантах: Windows 2000 Professional, Windows 2000 Server, Windows 2000 Advanced Server и Windows 2000 DataCenter Server. Эти версии отличаются количеством входящих в поставку служб и программ, степенью поддержки аппаратного обеспечения.

Операционная система OS/2 (Operating system/2) является однопользовательской многозадачной ОС, односторонне (MS DOS -> OS/2) программно совместимой с MS DOS и предназначенной для работы с МП 80386 и выше (ПК IBM PC и PS/2). OS/2 может одновременно выполнять до 16 программ (каждая из них в своем сегменте памяти), но среди них только одну, подготовленную для MS DOS.

Важными особенностями OS/2 является наличие многооконного интерфейса пользователя; программных интерфейсов для работы с системой баз данных; эффективных программных интерфейсов для работы в локальных вычислительных сетях. К недостаткам OS/2 относится в первую очередь сравнительно небольшой объем программных приложений, наработанных к настоящему времени.

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

На самом верхнем уровне находятся ОС для мэйнфреймов. Эти огромные машины еще можно встретить в больших организациях. Мэйнфреймы отличаются от персональных компьютеров по своим возможностям ввода/вывода. Довольно часто встречаются мэйнфреймы с тысячью дисков и терабайтами данных. Мэйнфреймы выступают в виде мощных web -серверов и серверов крупных предприятий и корпораций. Операционные системы для мэйнфреймов в основном ориентированы на обработку множества одновременных заданий, большинству из которых требуется огромное количество операций ввода-вывода. Обычно они выполняют три вида операций: пакетную обработку, обработку транзакций (групповые операции) и разделение времени. При пакетной обработке выполняются стандартные задания пользователей, работающих в интерактивном режиме.
Системы обработки транзакций управляют очень большим количеством запросов, например бронирование авиабилетов. Каждый отдельный запрос невелик, но система должна отвечать на сотни и тысячи запросов в секунду. Системы, работающие в режиме разделения времени, позволяют множеству удаленных пользователей одновременно выполнять свои задания на одной машине, например,работать с большой базой данных. Все эти функции тесно связаны между собой, и операционная система мэйнфрейма выполняет их все. Примером операционной системы для мэйнфрейма является OS /390.

Уровнем ниже находятся серверные ОС. Серверы представляют собой или многопроцессорные компьютеры, или даже мэйнфреймы. Эти ОС одновременно обслуживают множество пользователей и позволяют им делить между собой программно-аппаратные ресурсы. Серверы также предоставляют возможность работы с печатающими устройствами, файлами или Internet . У Internet -провайдеров обычно работают несколько серверов для того, чтобы поддерживать одновременный доступ к сети множества клиентов. На серверах хранятся страницы web -сайтов и обрабатываются входящие запросы. UNIX и Windows 2000 являются типичными серверными ОС. Теперь для этой цели стала использоваться и операционная система Linux .

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

Еще один вид ОС - это системы реального времени. Главным параметром таких систем является время. Например, в системах управления производством компьютеры, работающие в режиме реального времени, собирают данные о промышленном процессе и используют их для управления оборудованием. Такие процессы должны удовлетворять жестким временным требованиям. Если, например, по конвейеру передвигается автомобиль, то каждое действие должно быть осуществлено в строго определенный момент времени. Если сварочный робот сварит шов слишком рано или слишком поздно, то нанесет непоправимый вред изделию. Системы VxWorks и QNX являются операционными системами реального времени.

Встроенные операционные системы используются в карманных компьютерах и бытовой технике. Карманный компьютер - это маленький компьютер, помещающийся в кармане и выполняющий не-
большой набор функций, например, телефонной книжки и блокнота. Встроенные системы, управляющие работой устройств бытовой техники, не считаются компьютерами, но обладают теми же характеристиками, что и системы реального времени, и при этом имеют особые размер, память и ограничения мощности, что выделяет их в отдельный класс. Примерами таких операционных систем являются PalmOS и Windows СЕ (Consumer Electronics - бытовая техника).

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

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

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

Первая категория как причина переустановки отпадает практически сразу же, потому что большая часть проблем с файловой системой решаются такими программами, как ScanDisk, Norton Disk Doctor, без всякой переустановки. Хотя из каждого правила существуют исключения - иногда постоянно появляющиеся ошибки можно устранить только путем полного форматирования, но такие ситуации не так уж часто встречаются, по крайней мере, с новыми винчестерами.

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

Неполное удаление программ (в том числе игровых), когда файлы уже удалены, а ссылки на них по-прежнему остаются;

Неполная установка программ (в том числе игровых), когда ссылки на файлы уже внесены в системный реестр, а сами файлы еще не созданы;

Неполная установка или удаление драйверов устройств;

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

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

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

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

Конечно, существует ряд программ, якобы очищающих реестр от всех неправильных ссылок либо исправляющих их на верные (например, Norton WinDoctor), но все они позволяют избавиться только от части проблемы, т. к. могут исправлять в основном те ошибки, которые связаны с изменением размещения файла или его отсутствием. Здесь же возможен вариант, когда программа путает нужный файл с похожим на него файлом, обладающим похожими атрибутами, делая системный реестр полностью неработоспособным.

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

На компьютере вообще не установлена операционная система;

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

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

Работа операционной системы больше стала напоминать езду на велосипеде со спущенным колесом;

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

Разновидности операционных систем

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

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

В настоящее время наиболее распространено целое семейство операционных систем Windows, которое является продуктом компании Microsoft. В свою очередь Windows-подобные системы подразделяются на два подсемейства: Windows 9x и Windows NT.

К первому из них относятся Windows 95, Windows 98, Windows 98SE и Windows ME, второе же имеет меньшее количество версий - Windows NT 4.0 (более младшие версии сейчас уже не используются), Windows 2000 и наиболее современная версия - Windows XP. Не так уж давно в свет вышла еще одна версия - Windows 2003 Server, но мы рассматривать ее пока не будем, ведь кто знает, сколько новых проблем несет она в себе? Подождем, пока ее тщательно протестируют, выпустят парочку поправок, так называемых заплаток, а уже после этого будем пробовать устанавливать ее на домашний компьютер.

Немного истории

Если рассматривать всю историю операционных систем с графической оболочкой, то семейство Windows берет свое начало от графической оболочки Windows 3.1 или ее сетевого варианта Windows 3.11 for Workgroup. Эта оболочка загружалась в память компьютера подобно файловом} менеджеру Norton Commander.

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

Следует отметить, что существует две основных версии - Windows 95 и Windows 95 OSR2, в которой наиболее яркой особенностью является поддержка FAT32, которая в свою очередь, в отличие от FAT16, способна поддерживать жесткие диски с объемом более 2 Гбайт. Если вы используете эту версию Windows, обязательно обновите ее до OSR2, в противном случае любой жесткий диск вы сможете отформатировать только на 2 Гбайт, а остальное пространство будет недоступно для использования.

Следующим шагом в развитии операционных систем стало появление Windows 98, а за ней и Windows 98 SE (Second Edition). Стоит отметить, что вторая версия прилично отличается от оригинальной Windows 98, в первую очередь тем, что в ней исправлено немалое количество ошибок, особенно связанных с работой с локальной сетью. Да и драйверы для устройств в сумме с системой Plug and Play реализованы намного лучше, поэтому если вы вдруг захотите установить именно Windows 98, то вам следует выбирать второй выпуск, а не первый, т. е. Windows 98 SE.

Самой последней версией из семейства Windows 9x является Windows ME, которую многие пользователи называют еще и Windows 2000, что совершенно не верно, хотя внешний вид обеих версий очень похож. На этой версии компания Microsoft все-таки решила поставить точку в жизни операционных систем семейства Windows 9x.

Параллельно с разработкой все более новых версий Windows 9x велись исследования в направлении повышения надежности работы компьютера, которые, в конце концов, привели к появлению совершенно нового класса операционных систем - семейства Windows NT (New Technology). Первые версии Windows NT (наиболее популярными были версии 3.51 и 4.0, все остальные быстро канули в лету) отличались более или менее высокой стабильностью работы за счет отсутствия как системы Plug and Play, так и поддержки мультимедийных технологий, таких как драйверы DirectX. Все это весьма ограничивало их использование в качестве домашних систем, хотя в качестве рабочих станций они показали себя на высоте.

Первая попытка перевести домашние системы на семейство Windows NT проявилась в выпуске операционной системы Windows 2000, которая изначально должна была стать Windows NT v5.0, но в конце концов, была переименована. Больно уж пугала всех аббревиатура NT. В Windows 2000 разработчики не только постарались учесть опыт создания NT-систем предыдущего поколения, сохранив все их традиционные достоинства, но и включили в нее много полезных наработок из привычной в своей доступности и простоте Windows 9x, как бы сблизив эти две совершенно разные системы. Впервые платформа NT обрела совместимость со многими программами, которые по традиции предназначались только для Windows 9x, правда, далеко не со всеми, но все-таки это был большой прогресс.

Ни для кого не секрет, что, несмотря на все попытки одомашнить Windows 2000, с нею было немало проблем - игры отказывались устанавливаться, в старых играх не было звука и многое другое. Поэтому компания Microsoft продолжила исследования, которые вылились в новой версии операционной системы Windows XP. На сегодня это наиболее совершенная система, когда-либо произведенная компанией Microsoft. Естественно, что и с ней также связано немало нюансов в работе старых программ, но такова плата за прогресс.

Особенности семейства Windows 9x

Никто не станет отрицать, что операционные системы семейства Windows 9x самые популярные. В основном это связано с тем, что они позволяют использовать как самые новейшие программы, так и наиболее старые, которые были предназначены для работы еще в среде MS-DOS. Для пользователя в основном важны те программы, которые относятся к разряду игровых программ. Как говорится, обычно покупают компьютер совсем не для того, чтобы на нем работать, как говорят пользователи, а для того, чтобы играть на нем.

Наиболее ярким отличием семейства Windows 9x от конкурирующей платформы NT является крайне нестабильная работа. В основном это связано с особенностями тех модулей, которые занимаются распределением ресурсов между всеми работающими программами, т. е. обеспечением работы системы в режиме многозадачности. Здесь каждая запущенная программа самостоятельно решает, когда освободить ресурсы компьютера, чтобы какая-нибудь другая программа смогла их захватить. Отсюда появляются частые зависания, что, в общем-то, можно считать нормальным явлением. Представьте ситуацию: дается команда на чтение с компакт-диска, при этом приводу CD-ROM отсылается запрос на готовность диска к чтению. Если диск сильно поцарапан, то привод очень долго и безуспешно будет пытаться считать с диска служебную информацию, а в это время все остальные операции на компьютере будут блокированы, что фактически уже можно назвать зависанием. Нестабильность работы также в немалой степени связана с возможностью запуска программ, предназначенных для работы в среде MS-DOS.

Windows 95

Операционная система Windows 95 отличается от всех остальных версий Windows:

Тем, что имеет самый маленький по объему дистрибутив, позволяющий устанавливать ее на диски небольшого объема, например, на старенький ноутбук;

Самой маленькой базой драйверов, встроенных в дистрибутив, что практически сводит к нулю все преимущества системы Plug and Play, которая реализована в Windows 95 крайне плохо. Да это и понятно - первый блин комом;

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

Плохо проработанным, хотя и быстро работающим интерфейсом;

Практически полным прекращением поддержки со стороны компании Microsoft, что выражается в прекращении выпуска обновлений, вносящих поддержку новых устройств и стандартов.

Установка Windows 95 рекомендуется только на компьютерах конфигурации ниже, чем: Pentium 200 МГц, 32 Мбайт оперативной памяти, 1 Гбайт жесткий диск. На всех остальных (более мощных) конфигурациях, вплоть до самых современных, установка этой версии Windows является фактически добровольным отказом от преимуществ, даваемых более старшими и более функциональными версиями.

Windows 98

Операционная система Windows 98 отличается от всех остальных версий Windows:

Наиболее оптимальным соотношением возможности - качество. В основном это выражается в неплохой поддержке как наиболее новых, так и наиболее старых программ, устройств, стандартов (дальше дополните сами). Именно поэтому эта версия Windows как применялась со времен первых Pentium, так и применяется до сих пор на компьютерах, собранных на базе Pentium 4 или Athlon XP;

Наличием огромного количества программ тонкой настройки, которые позволяют настроить компьютер практически под любого пользователя;

Неплохо проработанным интерфейсом, который, правда, очень часто дает сбои.

Установка Windows 98 (имеется в виду версия 98 SE) рекомендуется на компьютерах с конфигурацией: Pentium 200 МГц, оперативная память 32 Мбайт, жесткий диск 1 Гбайт и выше, вплоть до самых современных компьютеров. Хотя самые современные устройства позволяют полноценно использовать некоторые свои функции только в более новых версиях Windows.

Windows ME

Windows ME является продолжением линейки Windows 95, 98, 98SE, никаких коренных изменений в ней, кроме интерфейса, нет. В Windows ME убрана поддержка реального режима MS-DOS, т. е. компьютер вы теперь уже не можете загрузить в режиме поддержки командной строки, хотя загрузочный диск, который создается средствами операционной системы, по-прежнему предлагает эту функцию. Впервые применена технология отката настроек, когда пользователь может без переустановки операционной системы вернуть старые настройки программ:

Наиболее полная база драйверов, встроенных в дистрибутив, из всей линейки Windows 9x;

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

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

Стоит отметить, что финальной версией Windows ME является 4.90.3000.

Windows NT

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

Устойчивость платформы NT объясняется также еще и тем, что она полностью 32-разрядная, т. е. в ней нет никакой MS-DOS, а все программы, предназначенные для работы в этой операционной среде, запускаются только лишь в окне эмуляции, не способном полностью предоставить возможности чистой MS-DOS. Любой прямой доступ к оборудованию, например к порту LPT, будет полностью заблокирован. В Windows NT также не запустятся программы, которые обращаются напрямую к железу, и те, которые используют VxD-драйверы, применяемые только в Windows 9x.

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

Операционные системы Windows NT намного лучше работают с оперативной памятью, чем любая из операционных систем Windows 9x. Наиболее существенно заметно увеличение производительности новых операционных систем на мощных компьютерах, особенно критичными параметрами являются тактовая частота центрального процессора и объем оперативной памяти.

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

Как ни странно сознавать, но компания Microsoft в своей операционной системе Windows NT с самого начала ее существования не реализовала системы Plug and Play, что сильно ограничивало ее применение, зато придавало изумительную стабильность работы. Поэтому применение операционных систем Windows NT v4.0 и ниже обычно не рекомендуют для домашнего компьютера, т. к. это может привести к сложностям при установке драйверов устройств.

Windows 2000

Основные особенности:

Появилась поддержка системы Plug and Play, что в сумме с достаточно большой базой драйверов немало облегчило жизнь пользователя. Хотя здесь не обошлось, как всегда, без небольших нюансов - система автоматической настройки далеко не всегда правильно работает, что уменьшает стабильность работы компьютера в целом и операционной системы в частности;

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

Поддержка очень надежной файловой системы NTFS (v4.0 и 5.0), а также более распространенных файловых систем FAT 16 и FAT32;

Появилось разделение на несколько групп - Windows 2000 Professional, Server, Advanced Server и DataCenter. Финальная версия Windows 2000 имеет номер 2195.

Устанавливать операционную систему Windows 2000 можно рекомендовать только в тех случаях, когда компьютер используется в качестве рабочей станции, например, сервера. Для домашнего компьютера эта версия Windows не подходит, хотя можно ее установить даже на игровой компьютер, правда, при этом придется помучиться при установке игр.

Windows XP

Windows XP - это первая операционная система, максимально направленная на то, чтобы все пользователи перешли на использование систем семейства Windows NT. Ее основные особенности:

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

Появилась возможность запуска программ в режиме совместимости практически с любой из предыдущих версий операционных систем, что увеличивает число тех программ, которые можно беспрепятственно использовать. Естественно, что для операционной системы MS-DOS здесь места уже не нашлось и все программы, которые требуют чистого DOSa по-прежнему имеют проблемы с запуском;

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

По традиции идет разделение на группы - Home Edition и Professional, а также и Windows.NET. Последняя версия имеет три варианта: NET Server, NET Advanced Server, NET DataCenter Server. Естественно, что специализированные сетевые версии не предназначены для работы на домашних системах, поэтому мы их не будем рассматривать вообще. Финальная версия Windows XP имеет номер 2600.




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

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

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

Уровнем ниже находятся серверные ОС. Серверы представляют собой или многопроцессорные компьютеры. Эти ОС одновременно обслуживают множество пользователей и позволяют им делить между собой программно-аппаратные ресурсы. Серверы также предоставляют возможность работы с печатающими устройствами, файлами или Internet . У Internet -провайдеров обычно работают несколько серверов для того, чтобы поддерживать одновременный доступ к сети множества клиентов. На серверах хранятся страницы web -сайтов и обрабатываются входящие запросы. UNIX и Windows 2000 являются типичными серверными ОС.

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

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


23. Базовые понятия операционных систем. Процессы и потоки. Управление памятью.

Процессы

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

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

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

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

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

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

Модель процессов упрощает представление о внутреннем поведении системы. Некоторые процессы запускают программы, выполняющие команды, введенные с клавиатуры пользователем. Другие

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

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

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

Потоки

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

Модель процесса базируется на двух независимых концепциях: группировании ресурсов и выполнении программы. Когда их разделяют, появляется понятие потока.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Компьютеры обладают также десятками мегабайт энергозависимой оперативной памяти ОЗУ (RAM , RandomAccessMemory - память с произвольным доступом) и десятками или сотнями гигабайт медленного энергонезависимого пространства на жестком диске. Одной из задач ОС является координация использования всех этих составляющих памяти.

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

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

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

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

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

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

При использовании многозадачности повышается эффективность загрузки ЦП. Если средний процесс выполняет вычисления только 20 % от времени, которое он находится в памяти, то при обработке

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

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

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

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

Работа системы свопинга заключается в следующем. Пусть имеются 4 процесса - А, В, С, D . На начальной стадии в памяти находится только процесс А. Затем с течением времени создаются или загружаются с диска последовательно процессы В и С. В следующий момент процесс А выгружается на диск. Затем появляется процесс D , а процесс В завершается. Наконец, процесс А снова возвращается в память. Распределение памяти изменяется по мере того, как процессы поступают в память и покидают ее. Так как теперь процесс А имеет другое размещение в памяти, его адреса должны быть перенастроены или программно во время загрузки в память, или аппаратно во время выполнения программы.

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

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

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

части, она находится в состоянии ввода-вывода и не может работать, поэтому ЦП может быть отдан другому процессу.

24. Ввод-вывод ОС. Драйверы устройств. Схема логического расположения драйверов устройств.

Ввод-Вывод

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

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

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

Устройства ввода-вывода обычно состоят из механической и электронной частей. Механический компонент находится в самом устройстве. Электронный компонент устройства называется контроллером или адаптером. В современных компьютерах контроллеры встраиваются в материнскую плату или располагаются на самом устройстве ввода-вывода.

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

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

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

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

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

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

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

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

Драйверы Устройств

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

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

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

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

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

Драйвер устройства выполняет несколько функций:

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

2) инициализацию устройства;

3) управление энергопотреблением устройства и регистрацией событий;

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

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

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

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

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

25. Файловые системы ОС.

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

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

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

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

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

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

При организации ФС в виде дерева каталогов требуется некоторый способ указания файла. Для этого обычно используются два различных метода. В первом случае каждому файлу дается абсолютное имя пути, состоящее из имен всех каталогов от корневого до того,в котором содержится файл, и имени самого файла. Например, путь \ user \ abc \ myfile . doc означает, что корневой каталог содержит каталог user , который, в свою очередь, содержит подкаталог abc , где находится файл myfile . doc .

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

Определение физического расположения частей файла;

Определение наличия свободного места и выделение его для вновь создаваемых файлов.

26. Рассмотрение конкретных операционных систем (Windows, UNIX, Linux).



Рекомендуем почитать

Наверх