Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

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

Покупка
Новинка
Артикул: 410741.03.99
Доступ онлайн
1 000 ₽
В корзину
Курс предназначен для студентов младших курсов в области ИТ. Он знакомит с принципами архитектуры и функционирования современных операционных систем (ОС) и сетей, дает теоретические знания и практические навыки для работы в распространенных ОС - Windows, Linux, Solaris, а также в ОС для мобильных устройств и облачных вычислений. Особое внимание уделяется алгоритмам и структурам данных, используемым в ОС, их надежности и безопасности. В курсе подробно рассматриваются архитектура операционных систем (ОС), основные алгоритмы и структуры данных, используемые в ОС. Рассмотрены методы управления оперативной и внешней памятью, виртуальная память, ее страничная и сегментная организация, методы управления процессами и потоками и их синхронизации, методы диспетчеризации процессов, методы распределения ресурсов и алгоритмы предотвращения и обнаружения тупиков, системы вводавывода, файловые системы, сети и сетевые протоколы, безопасность ОС и сетей. Изложение сопровождается практическими примерами, помогающими студентам практически овладеть излагаемыми концепциями. Материал курса отражает 35-летний опыт автора в использовании широкого спектра зарубежных и отечественных ОС (ОС ДИСПАК для БЭСМ-6, ОС "Эльбрус”, ОС ЕС ЭВМ, ОС СМ ЭВМ, MS-DOS, Windows, Solaris, Linux). Курс входит в число основных дисциплин для студентов 2 курса по специальности 010503 (математическое обеспечение и администрирование операционных систем) и 080801, 080802 (прикладная информатика).
Сафонов, В. О. Основы современных операционных систем : краткий курс / В. О. Сафонов. - Москва : ИНТУИТ, 2016. - 631 с. - ISBN 978-5-9963-0495-0. - Текст : электронный. - URL: https://znanium.ru/catalog/product/2155046 (дата обращения: 07.05.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
Основы современных операционных систем

2-е издание, исправленное

Сафонов В.О.

Национальный Открытый Университет “ИНТУИТ”
2016

2
УДК 004.451(075.8)
ББК 20
С21
Основы современных операционных систем / Сафонов В.О. - M.: Национальный Открытый
Университет “ИНТУИТ”, 2016 (Основы информационных технологий)
ISBN 978-5-9963-0495-0

Курс предназначен для студентов младших курсов в области ИТ. Он знакомит с принципами
архитектуры и функционирования современных операционных систем (ОС) и сетей, дает
теоретические знания и практические навыки для работы в распространенных ОС – Windows, Linux,
Solaris, а также в ОС для мобильных устройств и облачных вычислений. Особое внимание уделяется
алгоритмам и структурам данных, используемым в ОС, их надежности и безопасности.
В курсе подробно рассматриваются архитектура операционных систем (ОС), основные алгоритмы и
структуры данных, используемые в ОС. Рассмотрены методы управления оперативной и внешней
памятью, виртуальная память, ее страничная и сегментная организация, методы управления
процессами и потоками и их синхронизации, методы диспетчеризации процессов, методы
распределения ресурсов и алгоритмы предотвращения и обнаружения тупиков, системы ввода-
вывода, файловые системы, сети и сетевые протоколы, безопасность ОС и сетей. Изложение
сопровождается практическими примерами, помогающими студентам практически овладеть
излагаемыми концепциями. Материал курса отражает 35-летний опыт автора в использовании
широкого спектра зарубежных и отечественных ОС (ОС ДИСПАК для БЭСМ-6, ОС “Эльбрус”, ОС
ЕС ЭВМ, ОС СМ ЭВМ, MS-DOS, Windows, Solaris, Linux). Курс входит в число основных дисциплин
для студентов 2 курса по специальности 010503 (математическое обеспечение и администрирование
операционных систем) и 080801, 080802 (прикладная информатика).

(c) ООО “ИНТУИТ.РУ”, 2011-2016
(c) Сафонов В.О., 2011-2016

3
Понятие операционной системы (ОС), цели ее работы.
Классификация компьютерных систем

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

Введение

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

Комментарии к списку литературы

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

Вот некоторые комментарии к этому списку.

Книга [1] классический учебник по ОС Йельского университета (США). Некоторые
материалы презентаций к этому курсу использованы при подготовке презентаций
моего курса, за что автор выражает признательность коллегам из Йельского
университета.

Книги [2], [3] профессора Эндрю Таненбаума входят в “золотой фонд” современной
учебной литературы по ИТ. Настоятельно рекомендую их студентам в качестве
основной литературы по моему курсу.

Учебник [4] представляет классическую литературу по ОС прошлых лет (1970-х гг.).
Несмотря на свой возраст, он является фундаментальной работой, одной из лучших
книг по операционным системам, материал которой не устарел и по сей день.

Книги [5], [6], [8], [9] посвящены некоторым конкретным современным операционным
системам – Windows, Linux, MacOS.

Книга [7] уникальна, так как является первой книгой по внутренней архитектуре
Windows. Она написана специалистами, несколько лет работавшими совместно с
подразделением разработки Windows в Microsoft (один из ее авторов стал сотрудником
Microsoft).

Рекомендую для использования также материалы своих курсов по ОС в электронном
виде на русском и английском языках [20], [10].

Краткое содержание курса

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

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

Набор операционных систем, рассматриваемых в курсе, очень широк. Это прежде
всего ОС семейства Windows (2000, XP, 2003, Vista, 2008, 7), в том числе – Windows
для встроенных систем (Windows Embedded), Windows для мобильных устройств
(Windows Mobile) и Windows для облачных вычислений (Windows Azure).

Кроме того, рассматриваются популярные ОС семейства Linux, а также особенно
хорошо известная автору ОС Solaris разработки Sun / Oracle, которая была для автора
основным рабочим инструментом в течение 10 лет.

Рассмотрена также популярная современная ОС для мобильных устройств Google
Android.

Современность курса нашла свое выражение также в рассматриваемых сетевых
протоколах. Рассмотрена не только классическая модель сетевых протоколов ISO / OSI,
но и некоторые современные протоколы, например, Wi-Fi, GPRS, EVDO, SIMPLE/SIP.

Почему важно знать операционные системы – мнение эксперта из
Microsoft

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

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

С этим компетентным мнением нельзя не согласиться.

Расцвет ОС в 2000-х гг

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

Бесспорным лидером в данной области является корпорация Microsoft, выпустившая
менее чем за 10 недавних лет целую серию ОС семейства Windows: Windows XP,

5
Windows 2003, Windows Vista (2007), Windows 2008, Windows 2008 High-Performance
Computing (HPC), Windows 7.

Развиваются также диалекты ОС Linux (Red Hat, Fedora, Mandrake, Ubuntu, SuSE и др.–
сотни диалектов). Linux – операционная система типа UNIX, ядро которой свободно
распространяется с исходными кодами.

Фирма Sun (в 2010 г. вошедшая в состав фирмы Oracle) разрабатывает и выпускает ОС
Solaris – одну из наиболее современных ОС типа UNIX с развитой поддержкой
параллельного программирования, новыми видами файловых систем, отличающуюся
своей повышенной надежностью.

Это лишь некоторые ОС, которым в данном курсе будет уделено значительное
внимание. Существует также много других операционных систем. В США и Канаде,
как известно, весьма популярны компьютеры семейства Macintosh фирмы Apple
(коротко – Mac) со своей операционной системой MacOS, являющейся законодателем
мод в области графических пользовательских интерфейсов (GUI) и обмена
мультимедийной информацией (например, речевого ввода). Назовем также ОС фирмы
IBM для суперкомпьютеров и компьютеров общего назначения (mainframes).

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

Корпорация Microsoft положила начало этому движению в 2003 г., когда была
объявлена академическая программа Windows Embedded Shared Source – был открыт
исходный код Windows для встроенных систем. А в 2006 г. произошло и вовсе
невероятное доселе в программистском мире событие – Microsoft открыла “святую
святых”, исходный код ядра ОС Windows семейства NT (NT/2000/XP/2003/2008/7) и
предоставила в распоряжение университетов и академических организаций Windows
Research Kernel (WRK) – самодокументированный исходный код “исследовательского”
ядра Windows. Теперь каждый студент, преподаватель и исследователь имеют
возможность изучать систему Windows “изнутри” и даже развивать ее, но только для
целей обучения и исследований, а не для коммерции.

Фирма Sun (ныне – Oracle) положила начало аналогичной инициативе для ОС Solaris –
несколько лет назад был начат проект OpenSolaris. Результаты этого академического
проекта используются при выпуске новых версий коммерческой ОС Solaris.

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

Также интенсивно развиваются ОС для мобильных устройств. Еще несколько лет назад
наиболее используемыми ОС в этой области были ОС семейства Symbian. Однако
сейчас ОС Microsoft Windows Mobile и Google Android активно теснят Symbian с рынка.

ОС для облачных вычислений – принципиально новый вид ОС, отражающий

6
современную тенденцию к организации вычислений как облачных (cloud
computing).Облако – это метафора Интернета. При облачных вычислениях
пользователь со своего компьютера получает платный доступ через Интернет к Web-
сервисам, работающим на компьютерах мощных центров обработки данных
(например, на серверах Microsoft). При этом не только используемое программное
обеспечение (в виде набора Web-сервисов), но и сами обрабатываемые данные
пользователя хранятся на серверах “облачного” центра обработки данных. На своем
компьютере пользователь имеет лишь простой и удобный и не требующий больших
ресурсов “облачный” Web-интерфейс. Наиболее распространенной ОС для облачных
вычислений является в настоящее время Microsoft Windows Azure.

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

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

Понятие операционной системы и цели ее работы

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

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

Основные цели работы операционной системы следующие.

1. Обеспечение удобства, эффективности, надежности, безопасности выполнения

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

2. Обеспечение удобства, эффективности, надежности, безопасности использования

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

3. Обеспечение удобства, эффективности, надежности, безопасности использования

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

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

безопасности, надежности и защиты данных. Следует учитывать, что компьютер и
операционная система работают в сетевом окружении, в котором постоянно
возможны и фактически происходят атаки хакеров и их программ, ставящие своей
целью нарушение работы компьютера, “взлом” конфиденциальных данных
пользователя, хранящихся на нем, похищение логинов, паролей, использование
компьютера как “робота” для рассылки реклам или вирусов и др. В связи с этим в
2002 г. фирма Microsoft объявила инициативу по надежным и безопасным
вычислениям (trustworthy computing initiative ), целью которой является
повышение надежности и безопасности всего программного обеспечения, прежде
всего – операционных систем. В данном курсе мы будем подробно
останавливаться на том, какие действия по обеспечению надежности,
безопасности и защите данных предпринимают современные ОС.

Компоненты компьютерной системы

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

1. Аппаратура (hardware) компьютера, основные части которой – центральный

процессор (Central Processor Unit - CPU ), выполняющий команды (инструкции)
компьютера; память (memory),хранящая данные и программы, и устройства ввода-
вывода, или внешние устройства (input-output devices, I/O devices ),
обеспечивающие ввод информации в компьютер и вывод результатов работы
программ в форме, воспринимаемой пользователем-человеком или другими
программами. Часто на программистском слэнге аппаратуру называют “железом”.

2. Операционная система (operating system) – основной предмет нашего курса;

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

3. Прикладное программное обеспечение (applications software) – программы,

предназначенные для решения различных классов задач. К ним относятся, в
частности, компиляторы, обеспечивающие трансляцию программ с языков
программирования, например, C++, в машинный код (команды); системы
управления базами данных (СУБД ); графические библиотеки, игровые
программы, офисные программы. Прикладное программное обеспечение образует
следующий, более высокий уровень, по сравнению с операционной системой, и
позволяет решать на компьютере различные прикладные и повседневные задачи.

8
4. Пользователи (users) – люди и другие компьютеры. Отнесение пользователя-

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

Девизом фирмы Sun Microsystems еще в 1982 г., при ее создании, стал афоризм ” The
network is the computer ” (Сеть – это компьютер). Эту истину следует помнить всем
пользователям компьютеров и их операционных систем и шире использовать
возможности компьютерных сетей, распределяя различные функции между ее
различными компьютерами (или хостами – hosts, как на компьютерном слэнге принято
называть компьютеры в сети). Изолированный от сети компьютер ныне – это
“каменный век”. Отсюда – неразрывная связь операционных систем и сетей.

Общая картина функционирования компьютерной системы

Рис. 1.1.  Общая картина функционирования компьютерной системы

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

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

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

Суперкомпьютеры (super-computers) – мощные многопроцессорные компьютеры,
наиболее современные из которых имеют производительность до нескольких petaflops
(1015 вещественных операций в секунду; аббревиатура flops расшифровывается как
floating-point operations per second ). Пример – суперкомпьютер “Ломоносов”,
установленный в МГУ. Суперкомпьютеры используются для вычислений, требующих
больших вычислительных мощностей, сверхвысокой производительности и большого
объема памяти. В реальной практике это прежде всего задачи моделирования –
например, моделирования климата в регионе и прогнозирования на основе
построенной модели погоды в данном регионе на ближайшие дни. Особенностью
суперкомпьютеров является их параллельная архитектура – как правило, все они
являются многопроцессорными. Соответственно, ОС для суперкомпьютеров должны
поддерживать распараллеливание решения задач и синхронизацию параллельных
процессов, одновременно решающих подзадачи некоторой программы.

Многоцелевые компьютеры, или компьютеры общего назначения (mainframes) –
традиционное историческое название для компьютеров, распространенных в 1950-х –
1970-х гг., еще до эпохи всеобщего распространения персональных компьютеров.
Именно для mainframe-компьютеров создавались первые ОС. Типичные примеры таких
компьютеров: IBM 360/370; из отечественных – М-220, БЭСМ-6. На таких
компьютерах решались все необходимые задачи – от расчета зарплаты сотрудников в
организации до расчета траекторий космических ракет. Подобный компьютер
выглядел достаточно неуклюже и громоздко и мог занимать целый большой зал.
Вспомните, например. огромный компьютер HAL на космическом корабле в
фантастическом фильме 1960-х гг. Стэнли Кубрика “Космическая одиссея 2001 г.” Но
никакие фантасты не смогли предвидеть прогресса компьютерной техники XXI века –
прежде всего, того, что мощный компьютер будет не занимать целую комнату, а
помещаться в небольшом ящике. Параметры ранних mainframe-компьютеров были
весьма скромными: быстродействие - несколько тысяч операций в секунду,
оперативная память – несколько тысяч ячеек (слов). Недостаточно удобным был
пользовательский интерфейс (интерактивное взаимодействие с компьютерами было
реализовано гораздо позже, в 1960-х гг.). Тем не менее, на таких компьютерах
решались весьма серьезные задачи оборонного и космического назначения. С
появлением персональных и портативных компьютеров классические mainframe-
компьютеры ушли в прошлое. Однако следует подчеркнуть, что в именно в
операционных системах для mainframe-компьютеров были реализованы все основные

10
Доступ онлайн
1 000 ₽
В корзину