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

Многопользовательские операционные системы. Ч. 1

Покупка
Артикул: 753125.01.99
Доступ онлайн
2 000 ₽
В корзину
Первая часть курса лекций «Многопользовательские операционные системы», много лет преподаваемого на кафедре инженерной кибернетики МИСиС, содержит материал трех тем. Первая посвящена основным понятиям современных операционных систем. Во второй рассмотрены история и генеалогия семейства UNIX/Linux. И наконец, в третьей теме излагаются основы интерфейса, который обеспечивает современные операционные системы как в графическом режиме, так и с использованием командной строки. Материал практикума соответствует учебному плану курса «Многопользовательские операционные системы». Предназначен для студентов специальности 230401 «Прикладная математика».
Широков, А. И. Многопользовательские операционные системы. Ч. 1 : курс лекций / А. И. Широков, В. А. Грузман, С. В. Никифоров ; под. ред. Ю. Ю. Прокопчука, Н. В. Крапухиной. - Москва : ИД МИСиС, 2007. - 105 с. - Текст : электронный. - URL: https://znanium.com/catalog/product/1232726 (дата обращения: 20.04.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
№ 785

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

Кафедра инженерной кибернетики

А.И. Широков
В.А. Грузман
С.В. Никифоров

Многопользовательские
операционные системы

Курс лекций

Часть 1

Под редакцией кандидатов технических наук
Ю.Ю. Прокопчука, Н.В. Крапухиной

Допущено УМО по образованию в области Прикладной
математики и управления качеством в качестве учебного
пособия для студентов высших учебных заведений,
обучающихся по направлению подготовки 230400
´Прикладная математикаª специальности 230401
´Прикладная математикаª

Москва  Издательство ´УЧЕБАª
2007

 

УДК 004.45 
 
Ш64 

Р е ц е н з е н т  
д-р техн. наук, проф. В.М. Вишневский (МФТИ) 

Широков А.И., Грузман В.А., Никифоров С.В. 
Ш64  
Многопользовательские операционные системы: Курс лекций. Ч. 1 / Под ред. Ю.Ю. Прокопчука, Н.В. Крапухиной. – М.: 
МИСиС, 2007. – 105 с. 

Первая часть курса лекций «Многопользовательские операционные системы», много лет преподаваемого на кафедре инженерной кибернетики МИСиС, 
содержит материал трех тем. Первая посвящена основным понятиям современных операционных систем. Во второй рассмотрены история и генеалогия семейства UNIX/Linux. И наконец, в третьей теме излагаются основы интерфейса, который обеспечивает современные операционные системы как в графическом режиме, так и с использованием командной строки. 
Материал практикума соответствует учебному плану курса «Многопользовательские операционные системы». 
Предназначен для студентов специальности 230401 «Прикладная математика».  

© Государственный технологический  
университет «Московский институт 
стали и сплавов» (МИСиС), 2007 

ОГЛАВЛЕНИЕ 

Введение......................................................................................................5 
Тема 1. Понятие об операционных системах на примере семейства 
UNIX/Linux.................................................................................................7 
1.1. Структура компьютера и задачи, решаемые его отдельными 
элементами ..............................................................................................7 
1.2. Взаимодействие пользователей с компьютером.........................21 
1.3. Определение термина «Операционная система»........................25 
Приложение. Классификация аппаратных и компьютерных 
платформ ...............................................................................................30 
П1.1. Типы аппаратных платформ ..................................................30 
П1.2. Классификация программного обеспечения ........................32 
П1.3. Определение термина «Компьютерная платформа» ...........34 
Вопросы для самопроверки. ................................................................36 
Тема 2. История и основные черты семейства операционных 
систем UNIX/Linux..................................................................................37 
2.1. История семейства операционных систем UNIX/Linux............38 
2.1.1. Первые шаги............................................................................38 
2.1.2. Генеалогия...............................................................................47 
2.1.3. Некоторые известные версии UNIX .....................................56 
2.2. Основные стандарты, связанные с UNIX....................................64 
2.2.1. Деятельность комитетов POSIX ...........................................65 
2.2.2. System V Interface Definition (SVID) .....................................69 
2.2.3. Деятельность X/Open, OSF и The Open Groupe................70 
2.2.4. Другие стандарты семейства UNIX (BSD, Lsb) ..................71 
2.2.5. Стандарты языка программирования C................................71 
2.3. Значения термина UNIX ...............................................................72 
2.4. Отличия UNIX/Linux от Windows и MS DOS...........................75 
Приложение. Основные события в истории семейства 
UNIX/Linux...........................................................................................76 
Вопросы для самопроверки .................................................................80 
Тема 3. Работа на компьютере под управлением операционных 
систем семейства UNIX/Linux................................................................81 
3.1. Компьютерный интерфейс пользователя ....................................81 
3.2. Графический режим операционных систем семейства 
UNIX/Linux...........................................................................................88 
3.2.1. Краткая история X Window system ......................................88 

3.2.2. Основные понятия системы X Window ...............................90 
3.2.3. X Window в Linux..................................................................92 
3.2.4.  Графическая среда KDE........................................................94 
3.2.5. Графическая среда GNOME ..................................................96 
3.3. Командный режим операционной системы Linux.....................97 
3.3.1. Функции оболочки .................................................................98 
3.3.2. Типы и количество команд..................................................100 
3.3.3. Структура командной строки..............................................102 
Вопросы для самопроверки ...............................................................103 
Библиографический список...............................................................104 
 

ВВЕДЕНИЕ 

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

Как уже было отмечено выше, в предложенном курсе лекций наше 
рассмотрение концентрируется на функциях только одной из составляющих системного программного обеспечения – операционной системе. Это реализовано на примере семейства UNIX/Linux, а в лабораторном практикуме [14] нашего курса на одной из версии Linux. Что 
касается других подобных программных комплексов, прежде всего 
продуктов компании Microsoft – Windows, то многие идеи, излагаемые в курсе лекций, реализованы и для них, но при этом ряд деталей и 
терминов может потребовать уточнения. В процессе изложения материала несколько конкретных положений будут проиллюстрированы и 
интерпретированы на основе не только Linux, но и Windows.  
И в заключение отметим, что затронутый в курсе лекций материал 
многообразен, некоторые понятия раскрыть полностью не представилось возможным. Восполнить этот пробел можно подробно изучив 
литературные источники, представленные в библиографическом списке, или ссылки на источники в Интернете, приведенные в тексте.  

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

Тема 1. ПОНЯТИЕ ОБ ОПЕРАЦИОННЫХ 
СИСТЕМАХ НА ПРИМЕРЕ СЕМЕЙСТВА UNIX/LINUX 

1.1. Структура компьютера и задачи, решаемые 
его отдельными элементами 

Компьютер – это устройство для переработки информации. Начнем 
с такого тривиального утверждения, что он делится, прежде всего, на 
две части: аппаратное и программное обеспечение. Но структура программного обеспечения не однородна. В ней выделяют, как минимум, 
две части: системное программное обеспечение и прикладные программы пользователей. В составе первого, прежде всего, следует отметить операционную систему.  
Структура программно-аппаратного комплекса показана на рис 1.1 
[2, с. 18]. 

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

В представленной схеме три части компьютера (аппаратное обеспечение, операционная система и приложения) разделены, в свою очередь, на составляющие их элементы. Нижний уровень схемы – аппаратура состоит из отдельных устройств: центральный процессор, дис
ки, CD ROM т.д. Конкретная вычислительная установка может сильно 
отличаться от других по составу, фирме-изготовителю отдельных 
элементов, характеристикам последних. Например, на персональном 
компьютере устанавливают процессор фирмы Intel или AMD разных 
моделей и с широким набором базовых тактовых частот.  
Уровнем выше в схеме располагается та часть программного обеспечения, которая, пожалуй, наиболее идентична (одинакова) у разных 
вычислительных установок определенного типа. Если говорить о 
UNIX, то это ядро. Если взять конкретную версию операционной системы Linux, то ее ядро представляет собой один исполнимый файл. 
Но его функциональность, определяемая составом включенных компонент, зависит, в том числе, и от состава аппаратной части компьютера. Но есть общая часть, присущая всем реализациям определенной 
версии Linux. Аналогичное можно утверждать и относительно операционной системы Windows: все конкретные ее реализации имеют 
идентичный (одинаковый) базовый состав компонент. В рассматриваемой схеме операционная система, в соответствии со своими главными задачами, представлена двумя подсистемами: управление аппаратурой и управление всеми остальными программами – приложениями.  
И наконец, верхний уровень формируется из программ, состав которых различен для конкретных вычислительных установок. Какие 
прикладные программы или приложения будут установлены, например, на персональном компьютере, зависит от его назначения и, в отличие от операционной системы, их состав может широко изменяться 
в процессе эксплуатации.  
Теперь расширим представление об уровнях компьютерной системы и выделим «слои» в его аппаратной части. Приведем следующую 
схему (рис. 1.2) [12, с. 22]. 
Нижний уровень составляют собственно физические устройства. 
Современные компьютерные системы объединяют в себе множество 
элементов: процессор, память, дисковые накопители, мониторы и т.д. 
Именно их набор расположен внизу схемы. Такие устройства являются предметом забот множества инженеров-электронщиков, обслуживающих и ремонтирующих компьютеры. 

Рис. 1.2. Основные части компьютерной системы 

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

Роль операционной системы заключается в том, чтобы оградить 
исполняемую программу от конкретных деталей работы оборудования 
любого типа. Для этого операционная система берет на себя все тонкости работы с аппаратурой на уровне микроархитектуры и машинных команд. В этом проявляется роль операционной системы как виртуальной машины по отношению к аппаратуре. 
Остальные уровни схемы, представленной на рис. 1.3, содержат 
программы (два уровня – системные, а последний – конкретные средства решения прикладных задач). Следующая схема программноаппаратного комплекса выделяет отдельные подсистемы ядра [9, с. 
17]. При таком делении фиксируются три его основных подсистемы, 
осуществляющие управление. 

процессами, 
файлами, 
вводом/выводом. 

 

Рис. 1.3. Внутренняя структура UNIX 

В приведенной схеме пользователи представлены запущенными 
программами (процессами). Последние получают необходимые услуги 
ядра через интерфейс системных вызовов. В свою очередь оно, вы
полнив запрос, возвращает процессу необходимую информацию. Три 
главные подсистемы ядра обеспечивают возложенные на него функции. В процессе своей работы подсистемы взаимодействуют как между собой, так и с другими компонентами системы. Также в ядре добавлен контроль аппаратуры.  
Кратко опишем назначение трех основных частей ядра ОС. Современные компьютеры, работающие, например, под управлением систем 
UNIX/Linux, обеспечивают одновременное выполнение нескольких программ, возможно, запущенных разными пользователями. Каждая такая 
программа должна быть размещена в свободном участке памяти, защищенном от других процессов, и получать в порядке очереди время обработки на процессоре. Реализация многозадачного режима требует планирования выполнения процессов на основе постоянно вычисляемых приоритетов. Решение всех этих задач осуществляет подсистема управления 
процессами. Она создает и удаляет все процессы, разрешает конфликты 
между ними, обеспечивает их взаимодействие между собой.  
Активные процессы используют разнообразные внешние устройства. 
Операционные системы семейства UNIX/Linux работают на основе единого унифицированного интерфейса обращения ко всем видам аппаратуры. Это предполагает операции открытия, чтения или записи и закрытия 
файлов разного типа. Всем этим управляет файловая подсистема. Она 
размещает и удаляет файлы, контролирует права доступа к ним.  
Еще один элемент ядра – подсистема ввода/вывода – должен, принимая запросы от файловой подсистемы и учитывая специфику аппаратуры, обслужить их. При этом отдельные устройства управляются 
специальными программами – драйверами. 
В процессе работы операционная система, управляя, с одной стороны, аппаратурой, и, с другой стороны, приложениями пользователей, выполняет свои функции в несколько этапов. Кратко опишем их, 
немного расширив текст, содержащийся в первоисточнике [2, с. 18]. 
Выделяются следующие этапы работы операционной системой.  
ЭТАП 1. Управление аппаратурой I. После включения компьютера и выполнения действий, предшествующих загрузке операционной системы, последняя получает управление. Свою работу она начинает с ряда операций, делающих вычислительную установку работоспособной. При этом проверяется все активное оборудование, и оно 
приводится в состояние, при котором может отвечать на запросы прикладных программ. Для операционной системы UNIX протокол ее 
загрузки можно просмотреть, выполнив команду dmesg.  

До наступления второго этапа работы операционной системы, кроме инициализации всего имеющегося оборудования, могут быть еще 
запущены и некоторые стартовые системные процессы.  
ЭТАП 2. Управление процессами I. После инициализации оборудования и запуска стартовых системных программ операционная система готова выполнить прикладные задачи. В системе они представлены процессами. Для каждой задачи порождается новый процесс, за 
которым в системе закрепляются ресурсы. Важнейшие из последних – 
память и процессорное время. В операционной системе UNIX информация о процессах собирается в структуру данных в стиле языка программирования С. Среди них информация о выделенных процессу ресурсах, их использовании, приоритетах и т.д.  
ЭТАП 3. Управление процессами II. Каждый порожденный в 
системе процесс нуждается в регулярном получении доступа к системным ресурсам. Как было сказано выше, это, прежде всего, память и 
процессорное время. Первый из них является ресурсом, неразделяемым между процессами (кроме специальных областей). Поскольку в 
системе существуют одновременно много процессов, то второй ресурс 
постоянно распределяется между ними на основе динамических приоритетов. Перед каждым квантом времени пересчитываются приоритеты всех процессов, и процессорное время получает тот процесс, который обладает самым высоким значением приоритета.  
Отметим, что операционная система распределяет во времени между процессами и другие ресурсы. Часто в литературе приводится пример, в котором говорится, что если несколько процессов начнут одновременно вывод на принтер, то напечатанное будет смесью строк, 
подготовленных для вывода разными процессами. Благодаря ОС этого 
не происходит. Операционная система, таким образом, реализуется 
как менеджер ресурсов.  
ЭТАП 4. Управление аппаратурой II. На этом этапе операционная система дает возможность прикладным программам работать с 
разнообразным оборудованием, не отвлекаясь на детали. Если необходимо записать файл на жесткий диск, то прикладному процессу не 
надо знать, сколько головок имеется на устройстве или с какой скоростью вращаются диски. Также не важно, как физически организован 
файл, где он будет расположен. Все это справедливо и для других типов оборудования: мониторов, принтеров, сетевых карт и т.д.  
ЭТАП 5. Управление аппаратурой III. После выполнения команды выключения компьютера операционная система должна завершить 

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