1. Понятие ОС. Основные функции ОС.

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

Основными функциями ОС являются:

1. Прием от пользователя заданий или команд.

2. Прием и исполнение программных запросов на запуск, приостановку и остановку других программ.

4. Инициация программы (передача ей управления, в результате чего процессор исполняет программу).

5. Идентификация всех программ и данных.

6. Обеспечение работы системы управления файлами и СУБД. что увеличивает эффективность работы всего ПО.

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

8. Управление операциями ввода/вывода.

9. Удовлетворение жестким ограничениям в режиме реального времени.??

10. Распределение памяти, организация виртуальной памяти.

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

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

13. Защита программ от влияния друг на друга. обеспечение сохранности данных.

14. Предоставление услуг на случай сбоя системы.

15. Обеспечение работы систем программирования.

2. Прерывания. Обработка прерываний.

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

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

1. Установление факта прерывания (прием и идентификация сигнала на прерывание).

2. Запоминание состояния прерванного процесса (состояние процесса определяется значением счетчика команд, содержимым регистра процессора, спецификацией режима: пользовательский или привилегированный)

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

4. Сохранение информации прерванной программе, которую не удалось спасти с помощью действий аппаратуры.

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

6. восстановление информации относящейся к прерванному процессу.

7. Возврат в прерванную программу.

Первые 3 шага реализуются аппаратными средствами, а остальные – программно.

Главные функции механизма прерывания:

1. Распознавание или классификация прерывания.

2. Передача управления обработчику прерывания.

3. Корректное возвращение к прерванной программе

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

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

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

2) с абсолютным приоритетом. Всегда обслуживаются задачи с наивысшим приоритетом. Для реализации этой дисциплины при запросе на обработку прерываний маскируются все прерывания с низшим приоритетом. При этом возможно многоуровневое прерывание, т. е. прерывание программы обработки прерывания. Число уровней прерывания в этом режиме изменяется и зависит от приоритета запроса по принципу стека: LCFS – last come first served, т. е. запрос с более высоким приоритетом может прервать запрос с более низким приоритетом. При появлении запроса на прерывание система прерываний идентифицирует сигнал и если прерывания разрешены, то управление передается на соотв. программу обработки прерываний.

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

3. В чем заключается различие между повторновходимым (реентерным) и повторнопрерываемыми программными модулями. Как они реализуются.

1. Что такое система управления файлами (СУФ)?

Назначение СУФ.

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

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

2. Внешние, внутренние и программные прерывания.

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

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

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

7.1. Основные концепции операционных систем

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

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

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

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

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

Обобщая сказанное, можно предложить следующую структуру программного обеспечения (рис. 7.1).

Рис.7.1. Классификация программного обеспечения



Предложенная классификация программного обеспечения является в большой мере условной, так как в настоящее время программные продукты многих фирм стали объединять в себе программные элементы из разных классов. Например, операционная система Windows, являясь комплексом системных программ, в своем составе содержит блок служебных программ (дефрагментация, проверка, очи­стка диска и др.), а также текстовый процессор WordPad, графичес­кий редактор Paint, которые принадлежат классу прикладных про­грамм.

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

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

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

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

Наиболее распространенные операционные системы: MS-DOS, OS/2, UNIX, WINDOWS, LINUX, WINDOWS NT, они имеют разные модификации.

Основные функции (простейшие ОС):

Стандартизованный доступ к периферийным устройствам (устройства ввода-вывода);

Управление оперативной памятью (распределение между процессами, виртуальная память);

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

Пользовательский интерфейс;

Сетевые операции, поддержка стека протоколов

Дополнительные функции:

Параллельное или псевдопараллельное выполнение задач (многозадачность);

Взаимодействие между процессами: обмен данными, взаимная синхронизация;

Защита самой системы, а также пользовательских данных и программ от злонамеренных действий пользователей или приложений;

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

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

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

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

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

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

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

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

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

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

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

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

Классификация операционных систем.

Операционные системы классифицируются по:

Количеству одновременно работающих пользователей: однопользовательские, многопользовательские;

Числу процессов, одновременно выполняемых под управлением системы: однозадачные, многозадачные;

Количеству поддерживаемых процессоров: однопроцессорные, многопроцессорные;

Разрядности кода ОС: 8-разрядные, 16-разрядные, 32-разрядные, 64-разрядные;

Типу интерфейса: командные (текстовые) и объектно-ориентированные (графические);

Типу доступа пользователя к ЭВМ: с пакетной обработкой, с разделением времени, реального времени;

Типу использования ресурсов: сетевые, локальные.

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

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

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

Четвертый признак подразделяет операционные системы на 8-, 16-, 32- и 64-разрядные. При этом подразумевается, что разрядность операционной системы не может превышать разрядности процессора.

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

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

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

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

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

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

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

Увеличение пропускной способности ЭВМ, т.е. увеличение общего объема работы, выполняемой ЭВМ в единицу времени;

Уменьшение времени реакции системы, т.е. сокращение интервала времени между моментами поступления заданий в ЭВМ и моментами времени получения результатов;

Контроль работоспособности технических и программных средств;

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

Управление программами и данными в ходе вычислений;

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

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

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

Интерфейса между пользователем и программно-аппаратными средствами ком­пьютера (интерфейс пользователя);

Интерфейса между программным и аппаратным обеспечением (аппаратно-программный интерфейс);

Интерфейса между разными видами программного обеспечения (программный интерфейс).

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

Основные критерии подхода к выбору операционной системы:

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

Чтобы выбрать ту или иную ОС, необходимо знать:

На каких аппаратных платформах и с какой скоростью работает ОС;

Какое периферийное аппаратное обеспечение ОС поддерживает;

Как полно удовлетворяет ОС потребности пользователя, то есть каковы функции системы;

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

Существуют ли информативные подсказки, встроенные справочники и т. д.;

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

Какие возможности предоставляет ОС для организации сетей;

Обеспечивает ли ОС совместимость с другими операционными системами;

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

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

Какие известные пакеты прикладных программ можно использовать при работе с данной системой;

Как осуществляется в ОС защита информации и самой системы.

1. Концептуальные основы операционной системы

1.1. Понятие операционной системы. Основные функции ОС.

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

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

· обеспечивать загрузку пользовательских программ в оперативную память и их исполнение;

· обеспечивать работу с устройствами долговременной памяти, такими как магнитные диски, ленты, оптические диски и т.д. Как правило, ОС управляет свободным пространством на этих носителях и структурирует пользовательские данные;

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

· предоставлять некоторый пользовательский интерфейс. Слово некоторый здесь сказано не случайно - часть систем ограничивается командной строкой, в то время как другие на 90% состоят из средств интерфейса пользователя;

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

Более развитые ОС предоставляют также следующие возможности:

· параллельное (точнее, псевдопараллельное, если машина имеет только один процессор) исполнение нескольких задач;

· распределение ресурсов компьютера между задачами;

· организация взаимодействия задач друг с другом;

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

· организация межмашинного взаимодействия и разделения ресурсов;

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

1.2. Классификация ОС

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

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

Дисковая операционная система MS DOS для IBM PC является примером систем подобного класса. Она, правда, умеет загружать несколько программ, но не предоставляет средств для исполнения этих программ. Более того, с точки зрения документированных функций, этим программам нельзя работать (существуют, однако, так называемые недокументированные задние двери (backdoors) ).

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

ОС . К этому классу относятся системы, берущие на себя выполнение всех вышеперечисленных функций. Разделение на ОС и ДОС идет, по-видимому, от систем IBM DOS/360 и OS/360 для больших компьютеров этой фирмы, клоны которых известны у нас в стране под названием ЕС ЭВМ серии 10XX . (Кстати, у IBM была еще TOS/360 , Tape Operating System - Ленточная Операционная Система).

Здесь и далее под ОС мы будем подразумевать системы ``общего назначения"", то есть рассчитанные на интерактивную работу одного или нескольких пользователей в режиме разделения времени, при не очень жестких требованиях на время реакции системы на внешние события. Как правило, в таких системах уделяется большое внимание защите самой системы, программного обеспечения и пользовательских данных от ошибочных и злонамеренных программ и пользователей. Обычно такие системы используют встроенные в архитектуру процессора средства защиты и виртуализации памяти. К этому классу относятся такие широко распространенные системы, как VAX/VMS , системы семейства Unix и OS/2 , хотя последняя не обеспечивает одновременной работы нескольких пользователей и защиты пользователей друг от друга.

Часто такие системы являются подсистемой ОС общего назначения: MS DOS и MS Windows-эмуляторы под UNIX и OS/2, окно DOS в MS Windows, эмулятор RT-11 в VAX/VMS.

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

Системы реального времени . Это системы, предназначенные для облегчения разработки так называемых приложений реального времени . Это программы, управляющие некомпьютерным по природе оборудованием, часто с очень жесткими ограничениями по времени. Примером такого приложения может быть программа бортового компьютера крылатой ракеты, системы управления ускорителем элементарных частиц или промышленным оборудованием. Такие системы обязаны поддерживать многопроцессорность, гарантированное время реакции на внешнее событие, простой доступ к таймеру и внешним устройствам. Такие системы могут по другим признакам относиться как к классу ДОС (RT-11 ), так и к ОС (OS /2 ). Часто такие системы (например, VxWorks ) рассчитаны на работу совместно с управляющей host-машиной, исполняющей "нормальную" операционную систему.

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

Кросс-загрузчики . Это системы - полностью ориентированные на работу с host-машиной. Чаще всего они используются для написания и отладки кода, позднее прошиваемого в ПЗУ. Это системы программирования микроконтроллеров семейства Intel 8048 и подобных им, TD S (Transputer Development System) фирмы Inmos, и многие другие. Такие системы, как правило, включают в себя набор компиляторов и ассемблеров, работающих на host-системе (реже - загружаемых с host-машины в целевую систему), библиотеки, выполняющие большую часть функций ОС при работе программы (но не загрузку этой программы!), и средства отладки.

Системы промежуточных типов . Существуют системы, которые с первого взгляда нельзя отнести к одному из вышеперечисленных классов. Такова, например, система RT-11, которая, по сути своей, является ДОС, но позволяет одновременное исполнение нескольких программ с довольно богатыми средствами взаимодействия и синхронизации. Другим примером промежуточной ОС являются MS Windows 3.x и Windows 95 которые, как ОС, используют аппаратные средства процессора для защиты и виртуализации памяти и даже могут обеспечивать некоторое подобие многозадачной работы, но не защищают себя и программы от ошибок других программ.

В последнее время вошел в употребление еще один термин: сетевые ОС , или сокращенно NOS (Networking Operating System) . На взгляд авторов, сложившееся использование этого термина несколько неудачно. Его можно употреблять в двух различных смыслах:

1. Системы, предназначенные для предоставления сетевых услуг, аналогично тому, как ДОС предназначена для предоставления средств работы с диском. Под такое понимание NOS подходят узкоспециализированные системы, такие как Novell Netware или программное обеспечение маршрутизаторов Cisco .

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

Судя по тому, что большинство "обзоров сетевых операционных систем" в компьютерных журналах сравнивают не маршрутизатор Cisco , а Windows NT с SunSoft Solaris или OS/2 , термин NOS в этих публикациях понимается во втором смысле. Как уже говорилось, практически все современные ОС и некоторые ДОС способны предоставлять сетевые сервисы, поэтому этот термин почти эквивалентен словам "Современная ОС общего назначения" и, таким образом, почти не несет полезной информации.

1.3.Выбор операционной системы

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

Например, задачи управления промышленным или исследовательским оборудованием в режиме жесткого реального времени вынуждают нас делать выбор между специализированными ОС реального времени и некоторыми ОС общего назначения, такими как Unix System V Release 4 . Другие приложения, например серверы баз данных, просто требуют высокой надежности и производительности, что отсекает системы класса ДОС и MS Windows .

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

Сейчас же стоимость аппаратуры резко упала, а требования персонального программного обеспечения резко возросли. Последняя версия пакета MS Office занимает около 120 мегабайт на диске и требует для комфортабельной работы 8-16 мегабайт памяти и процессор класса 486/Pentium OS/2 , Linux и некоторых коммерческих систем семейства Unix . Тем не менее, в большинстве ситуаций выбор по-прежнему делается в пользу MS Windows . Обычно при этом ссылаются на отсутствие программного обеспечения для "альтернативных" систем, несмотря на то, что объективный анализ ситуации показывает несостоятельность этого утверждения.

Например, OS/2 способна исполнять практически все прикладное ПО, разработанное для DOS и MS Windows , для этой системы существует также ряд офисных приложений - текстовые процессоры Describe , ClearLook , AmiPro/2 , электронные таблицы Lotus-123 и т.д.

Для Linux приложений конторской направленности меньше, и они выглядят несколько странно для пользователя, привыкшего к MS Windows , однако они существуют - например, WYSIWYG текстовый процессори электронные таблицы.

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

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

Проблема: организация имеет двенадцать велосипедов. Стоит задача: перевезти рояль. Что делать? Грузовик не предлагать...

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

Основы операционных систем. Курс лекций. Карпов В.Е., Коньков К.А.

М.: Интернет-университет информационных технологий, 2005. - 536 с.

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

Формат: pdf

Размер: 5 ,6Мб

Скачать: drive.google

Содержание
Часть I. Обзор 13
Лекция 1. Введение 13
Что такое операционная система 13
Краткая история эволюции вычислительных систем 16
Основные понятия, концепции ОС 24
Архитектурные особенности ОС 27
Классификация ОС 32
Заключение 34
Часть II. Процессы и их поддержка в операционной системе 41
Лекция 2. Процессы 41
Понятие процесса 41
Состояния процесса 43
Операции над процессами и связанные с ними понятия 46
Заключение 54
Лекция 3. Планирование процессов 59
Уровни планирования 59
Критерии планирования и требования к алгоритмам 61
Параметры планирования 62
Вытесняющее и невытесняющее планирование 64
Алгоритмы планирования 65
Заключение 82
Лекция 4. Кооперация процессов и основные аспекты ее логической организации 87
Взаимодействующие процессы 87
Категории средств обмена информацией 89
Логическая организация механизма передачи информации 90
Нити исполнения 96
Заключение 100
Лекция 5. Алгоритмы синхронизации 105
Interleaving, race condition и взаимоисключения 105
Критическая секция 108
Программные алгоритмы организации взаимодействия процессов 111
Аппаратная поддержка взаимоисключений 117
Заключение 119
Лекция 6. Механизмы синхронизации 123
Семафоры 123
Мониторы 126
Сообщения 129
Эквивалентность семафоров, мониторов и сообщений 130
Заключение 133
Лекция 7. Тупики 141
Введение 141
Условия возникновения тупиков 143
Основные направления борьбы с тупиками 143
Игнорирование проблемы тупиков 144
Способы предотвращения тупиков 144
Обнаружение тупиков 149
Восстановление после тупиков 150
Заключение 151
Часть III. Управление памятью 155
Лекция 8. Организация памяти компьютера. Простейшие схемы управления памятью 155
Введение 155
Простейшие схемы управления памятью 161
Страничная память 166
Сегментная и сегментно-страничная организация памяти 168
Заключение 171
Лекция 9. Виртуальная память. Архитектурные средства поддержки виртуальной памяти 175
Понятие виртуальной памяти 175
Архитектурные средства поддержки виртуальной памяти 177
Заключение 185
Лекция 10. Аппаратно-независимый уровень управления виртуальной памятью 189
Исключительные ситуации при работе с памятью 189
Стратегии управления страничной памятью 190
Алгоритмы замещения страниц 191
Управление количеством страниц, выделенным процессу. Модель рабочего множества 197
Страничные демоны 200
Программная поддержка сегментной модели памяти процесса.. 201
Отдельные аспекты функционирования менеджера памяти.... 203
Заключение 205
Часть IV. Файловые системы 209
Лекция 11. Файлы с точки зрения пользователя 209
Введение 209
Общие сведения о файлах 212
Организация файлов и доступ к ним 214
Операции над файлами 217
Директории. Логическая структура файлового архива 218
Операции над директориями 222
Защита файлов 223
Заключение 224
Лекция 12. Реализация файловой системы 229
Общая структура файловой системы 229
Управление внешней памятью 232
Реализация директорий 240
Монтирование файловых систем 243
Связывание файлов 245
Кооперация процессов при работе с файлами 247
Надежность файловой системы 250
Производительность файловой системы 254
Реализация некоторых операций над файлами 256
Современные архитектуры файловых систем 259
Заключение 260
Часть V. Ввод-вывод 265
Лекция 13. Система управления вводом-выводом 265
Физические принципы организации ввода-вывода 266
Логические принципы организации ввода-вывода 276
Алгоритмы планирования запросов к жесткому диску 286
Заключение 291
Часть VI. Сети и сетевые операционные системы 295
Лекция 14. Сети и сетевые операционные системы 295
Для чего компьютеры объединяют в сети 296
Сетевые и распределенные операционные системы 297
Взаимодействие удаленных процессов как основа работы вычислительных сетей 298
Основные вопросы логической организации передачи информации между удаленными процессами 301
Понятие протокола 302
Многоуровневая модель построения сетевых вычислительных систем 304
Проблемы адресации в сети 308
Проблемы маршрутизации в сетях 315
Связь с установлением логического соединения и передача данных с помощью сообщений 318
Синхронизация удаленных процессов 320
Заключение 320
Часть VII. Проблемы безопасности операционных систем 325
Лекция 15. Основные понятия информационной безопасности 325
Введение 325
Угрозы безопасности 327
Формализация подхода к обеспечению информационной безопасности 329
Криптография как одна из базовых технологий безопасности ОС 331
Заключение 335
Лекция 16. Защитные механизмы операционных систем 339
Идентификация и аутентификация 339
Авторизация. Разграничение доступа к объектам ОС 342
Выявление вторжений. Аудит системы защиты 347
Анализ некоторых популярных ОС с точки зрения их защищенности 348
Заключение 353
Семинары 357
Семинары 1-2. Введение в курс практических занятий. Знакомство с операционной системой UNIX 357
Семинары 3-4. Процессы в операционной системе UNIX 385
Семинар 5. Организация взаимодействия процессов через pipe и FIFO в UNIX 403
Семинары 6-7. Средства System V IPC. Организация работы с разделяемой памятью в UNIX. Понятие нитей исполнения (thread) 431
Семинар 8. Семафоры в UNIX как средство синхронизации процессов 465
Семинар 9. Очереди сообщений в UNIX 479
Семинары 10-11. Организация файловой системы в UNIX. Работа с файлами и директориями. Понятие о memory mapped файлах 501
Семинары 12-13. Организация ввода-вывода в UNIX. Файлы устройств. Аппарат прерываний. Сигналы в UNIX 539
Семинары 14-15. Семейство протоколов TCP/IP. Сокеты (sockets) в UNIX и основы работы с ними 575
Литература 627

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

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

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

1. Что такое компьютер и операционная система

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

2. Эволюция ОС. Фундаментальные проблемы. Слои абстракции.

Главные проблемы компьютера и разработки ОС.

3. Представление и обработка процессов. Структуры данных. Очереди.

Здесь вам помогут разобраться в способах представления задач в ОС.

4. Треды. SMP. Микроядро

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

5. Взаимное исключение. Семафоры. Мониторы. Передача сообщений. Проблема чтения/записи.

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

6. Дедлок. Проблема обедающих философов.

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

7. Организация памяти. Виртуальная память.

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

8. Планирование выполнения задач. Диспетчеризация.

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

9. Ввод и вывод

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