h i ? j : p b h g gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных...

71
Серия внутривузовских методических указаний СибАДИ Министерство науки и высшего образования Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования «Сибирский государственный автомобильно-дорожный университет (СибАДИ)» Кафедра «Прикладная информатика в экономике» ОПЕРАЦИОННЫЕ СИСТЕМЫ Методические указания к дисциплине «Операционные системы» Составитель Л.Е. Олейник Омск 2018

Upload: others

Post on 19-Jul-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

С е р и я в н у т р и в у з о в с к и х

м е т о д и ч е с к и х у к а з а н и й С и б А Д И

Министерство науки и высшего образования Российской Федерации

Федеральное государственное бюджетное образовательное учреждение высшего образования

«Сибирский государственный автомобильно-дорожный университет (СибАДИ)»

Кафедра «Прикладная информатика в экономике»

ОПЕРАЦИОННЫЕ СИСТЕМЫ

Методические указания к дисциплине

«Операционные системы»

Составитель Л.Е. Олейник

Омск 2018

Page 2: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

УДК 004.9

ББК 32.97

О 60

Рецензент

Доктор технических наук, профессор, С.Н. Чуканов

(Заведующий кафедрой «Компьютерные информационные

автоматизированные системы» ФГБОУ ВО СибАДИ.)

Работа утверждена редакционно-издательским советом университета в

качестве методических указаний.

О 60 Операционные системы [Электронный ресурс] : Методические

указания / сост. Л.Е.Олейник. – (Серия внутривузовских методических указаний

СибАДИ). – Электрон. дан. – Омск : СибАДИ, 2018. – Режим

свободный после доступа: http://bek.sibadi.org/fulltext/bn1151.pdf, авторизации. – Загл. с экрана.

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

работ, дана рекомендуемая литература и перечень дополнительных ресурсов,

необходимых для освоения дисциплины «Операционные системы». Для

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

вопросы и типовые тесты.

Имеется интерактивное оглавление в виде закладок.

Методические указания предназначены для бакалавров направления 09.03.03

«Прикладная информатика». Также могут быть использованы как

дополнительный учебный материал в различных информационных дисциплинах

для формирования профессиональных компетенций.

Издание подготовлено на кафедре «Прикладная информатика в экономике».

Системные требования: Intel, 3,4 GHz; 150 Мб; Windows XP/Vista/7; DVD-

ROM;

1 Гб свободного места на жестком диске; программа для чтения pdf-файлов:

Adobe Acrobat Reader; Foxit Reader

Издание первое. Дата подписания к использованию

Издательско-полиграфический комплекс СибАДИ. 644080, г. Омск, пр.

Мира, 5

РИО ИПК СибАДИ. 644080, г. Омск, ул. 2-я Поселковая, 1

© ФГБОУ ВО «СибАДИ», 2018

_____________________________

Согласно 436-ФЗ от 29.12.2010 «О защите детей от

информации,

причиняющей вред их здоровью и развитию» данная продукция

маркировке не подлежит.

_____________________________

Page 3: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

СОДЕРЖАНИЕ

ВВЕДЕНИЕ ................................................................................................... 5

1. ТЕОРЕТИЧЕСКИЙ МАТЕРИАЛ К ЛАБОРАТОРНЫМ РАБОТАМ 7

Раздел 1 Понятие и эволюция операционных систем .............................. 7

1.1. Основные понятия, назначение и функции ОС .................................. 7

1.2. Эволюция вычислительных и операционных систем ........................ 8

Раздел 2 Архитектурные особенности ОС. Классификация ОС ........... 11

2.1. Архитектурные особенности ОС ....................................................... 11

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

Раздел 3 Управление процессами ............................................................. 17

3.1. Мультипрограммирование ................................................................. 17

3.2. Планирование процессов и потоков .................................................. 20

3.3. Взаимодействие и синхронизация процессов и потоков ................. 23

Раздел 4 Управление памятью................................................................... 25

4.1. Основные положения об управлении памятью ................................ 25

4.2. Распределение памяти ......................................................................... 28

Раздел 5 Файловые системы ...................................................................... 30

5.1 Физическая организация жесткого диска .......................................... 30

5.2. Принципы построения файловой системы ....................................... 32

5.3. Особенности загрузки ОС ................................................................... 34

5.4. Файлы и файловая система ................................................................. 35

5.5. Особенности организации некоторых файловых систем ................ 37

5.6. Дисковые массивы RAID .................................................................... 40

2. ЛАБОРАТОРНЫЕ РАБОТЫ ................................................................. 42

2.1 Лабораторная работа 1 «Управление программами. Планирование

приоритетов» ............................................................................................... 42

2.2 Лабораторная работа 2 «Интерфейс программирования прикладных

Page 4: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

программ Win32» ........................................................................................ 43

2.3 Лабораторная работа 3 «Основные особенности и характеристики

ОС семейства Linux» .................................................................................. 46

2.4 Лабораторная работа 4 «Управление программами. Планирование

приоритетов» ............................................................................................... 51

2.5 Лабораторная работа 5 «Механизмы синхронизации. Проблемы

синхронизации. Понятие критической секции. Способы

синхронизации: семафоры, исключающие семафоры (мьютексы),

мониторы» ................................................................................................... 52

2.6 Лабораторная работа 6 «Задачи по управлению памятью» ............. 54

2.7 Лабораторная работа 7 «Типы файлов: обычные файлы,

специальные файлы, каталоги. Логическая организация файла.

Физическая организация и адрес файла» ................................................. 61

2.8 Лабораторная работа 8 «Управление доступом к файлам и

каталогам. Защита от несанкционированного доступа» ........................ 62

2.9 Лабораторная работа 9 «Многоуровневая модель файловой

системы. Работа c файлами и каталогами в среде Linux» ...................... 62

2.10 Лабораторная работа 10 «Реализация многозадачности. Основные

особенности и характеристики ОС семейства QNX» ............................. 63

СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ .................................... 70

ПЕРЕЧЕНЬ РЕСУРСОВ СЕТИ «ИНТЕРНЕТ», РЕКОМЕНДУЕМЫХ

ДЛЯ ОСВОЕНИЯ ДИСЦИПЛИНЫ ......................................................... 70

Page 5: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

ВВЕДЕНИЕ

Операционная система (ОС) — программный комплекс,

предоставляющий пользователю среду для выполнения прикладных

программ и управления ими, а прикладным программам средства

доступа и управления аппаратными ресурсами.

Каждый пользователь ОС использует в своей деятельности

инструменты, предоставляемые либо непосредственно ядром ОС, либо

работающими под управлением ОС прикладными программами.

Для решения своих задач пользователь формализует описание

задачи на некотором входном языке для ОС или программ. Синтаксис

и семантика таких языков различна в зависимости от решаемых при их

помощи задач. Эти задачи могут быть разделены на следующие

группы:

расширение функциональности ОС;

конфигурирование режимов работы ОС;

разработка прикладных программ;

решение прикладных задач при помощи готовых программ.

Целями освоения учебной дисциплины «Операционные системы»

являются формирование систематизированного представления об

операционных системах, средах и оболочках; ознакомление с

фундаментальными понятиями и принципами работы операционных

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

систем (FAT, NTFS, ext2fs), управление памятью и процессами;

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

современных операционных систем; углубленное изучение

внутреннего устройства и алгоритмов работы основных компонентов

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

Для достижения цели дисциплина призвана решить следующие

задачи:

научить выделять различия разных систем, их

преимущества и недостатки;

представить основные направления развития современных

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

дать навыки по установке, настройке и использованию

операционных систем и оболочек;

Лабораторные работы помогут студентам приобрести навыков по

работе с операционными системами и их администрированию, в том

числе непосредственно при прохождении практик, а также для

написания выпускной квалификационной работы (магистерской

диссертации).

Page 6: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

В результате изучения дисциплины студент должен знать:

основные типы операционных систем, возможности современных

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

обеспечения; принципы построения современных операционных

систем, примеры современных ОС, методы разработки прикладных

программ, ориентированных на работу с серверами баз данных и

серверами приложений. Студент научится использовать современные

операционные системы и оболочки; использовать современные

операционные системы и оболочки; сравнивать и оценивать различные

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

процессов; выбирать, обосновывая свой выбор, оптимальные

алгоритмы управления ресурсами Студент получит навыки работы в

различных операционных средах; работы с программным

обеспечением информационных систем.

Page 7: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

1. ТЕОРЕТИЧЕСКИЙ МАТЕРИАЛ К ЛАБОРАТОРНЫМ

РАБОТАМ

Раздел 1 Понятие и эволюция операционных систем

1.1. Основные понятия, назначение и функции ОС

Вопросы для рассмотрения: Цели и задачи дисциплины. Место

и роль дисциплины в общей структуре подготовки специалистов, связь

с другими дисциплинами. Назначение операционных систем (ОС). Роль

и место ОС в архитектуре вычислительных систем.

Рекомендуемая литература: 1, 5, 6.

Перечень дополнительных ресурсов: 2, 3, 4. Наименование вида самостоятельной работы: изучение

литературы.

Операционная система – комплекс взаимосвязанных программ,

обеспечивающих взаимодействие пользователя с вычислительной

системой, а также управления ресурсами вычислительной системы.

Функции:

Предоставление пользователю вместо реальной аппаратуры

виртуальной машины (виртуальной аппаратуры);

Повышенная эффективность использования аппаратуры путём

рационального использования ресурсов.

ОС регулирует конфликты, возникающие между процессами при

разделении ресурсов. ОС удовлетворяет запросы на ресурсы, учитывая

их свободность или занятость.

Вычислительная система – программно-аппаратный комплекс,

который предоставляет услуги пользователю.

Аппаратные средства – нижний уровень - это аппаратура, то, что

делается из металла, пластика и прочих материалов, используемых для

производства «железа» компьютера.

Управление физическими устройствами осуществляют

программы, ориентированные на качества и свойства аппаратуры,

взаимодействующие с аппаратными структурами, знающие «язык»

аппаратуры.

Уровень управления логическими устройствами ориентирован на

пользователя, предназначен для сглаживания аппаратных

особенностей устройств. Команды этого уровня обращены к

предыдущему слою.

Система программирования – это комплекс программ для

поддержки всего технологического цикла разработки программного

Page 8: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

обеспечения.

Прикладные программы предназначены для решения некоторых

задач в конкретных областях знаний.

Ресурс – всякий объект, который может распределяться внутри

ОС:

процессоры (процессорное время)

память

периферийные устройства (диски, таймеры, наборы данных,

принтеры, сетевые устройства и т.п.)

Ресурсы могут быть:

разделяемые (несколько процессов используют их

одновременно) и неделимые;

выгружаемые (могут быть отобраны у процесса без

негативных последствий – например, оперативная память) и

невыгружаемые (принудительная выгрузка приводит к сбою).

Управление ресурсами включает в себя решение следующих

задач:

планирование ресурса (когда, кому и в каком объёме);

удовлетворение запросов на ресурсы;

отслеживание состояния и учёт использования ресурса;

разрешение конфликтов между процессами времени, таким

образом, что пользователи, запустившие программы на выполнение,

получают возможность поддерживать с ними диалог.

ОС реального времени предназначены для управления

различными техническими объектами или технологическими

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

представляет собой фиксированный набор заранее разработанных

программ, а выбор программы на выполнение осуществляется по

прерываниям (исходя из состояния управляемого объекта) или в

соответствии с расписанием плановых работ. Критерий эффективности

работы ОС реального времени – способность системы выдерживать

заранее заданные интервалы времени между запуском программы и

получением результата (реактивность системы).

1.2. Эволюция вычислительных и операционных систем

Вопросы для рассмотрения: История развития ОС. Основные

функции ОС. Особенности современного этапа развития ОС

Рекомендуемая литература: 5, 6.

Перечень дополнительных ресурсов: 4. Наименование вида самостоятельной работы: изучение

Page 9: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

литературы.

Первый период (1945 -1955).В середине 40-хбыли созданы

первые ламповые вычислительные устройства (в США и

Великобритании), в СССР первая ламповая вычислительная машина

появилась в 1951 году. Программирование осуществлялось

исключительно на машинном языке. Элементная база – электронные

лампы и коммуникационные панели. Операционных систем не было,

все задачи организации вычислительного процесса решались вручную

программистом с пульта управления. Системное программное

обеспечение - библиотеки математических и служебных подпрограмм.

Второй период (1955 - 1965). С середины 50-хгодов начался

новый период в развитии вычислительной техники, связанный с

появлением новой технической базы - полупроводниковых элементов

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

следовательно, первые системные программы - компиляторы.

Стоимость процессорного времени возросла, что потребовало

уменьшения непроизводительных затрат времени между запусками

программ. Появились первые системы пакетной обработки,

увеличивающие коэффициент загрузки процессора. Системы пакетной

обработки явились прообразом современных операционных систем,

они стали первыми системными программами, предназначенными для

управления вычислительным процессом. Был разработан формальный

язык управления заданиями. Появился механизм виртуальной памяти.

Третий период (1965 - 1975). Переход к интегральным

микросхемам. Создание семейств программно-совместимых машин

(серия машин IBM System/360, советский аналог - машины серии ЕС).

В этот период времени были реализованы практически все основные

концепции, присущие современным ОС: мультипрограммирование,

мультипроцессирование, многотерминальный режим, виртуальная

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

процессорах появился привилегированный и пользовательский режим

работы, специальные регистры для переключения контекстов, средства

защиты областей памяти и система прерываний. Другое нововведение -

спулинг (spooling). Спулинг в то время определялся как способ

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

задания считывались с перфокарт на диск в том темпе, в котором они

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

очередное задание завершалось, новое задание с диска загружалось в

освободившийся раздел. Появился новый тип ОС - системы разделения

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

сети ARPANET, ставшей отправной точкой для Интернета. К

Page 10: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

середине70-хгодов широкое распространение получили мини-

компьютеры.Их архитектура была значительно упрощена по

сравнению с мейнфреймами, что нашло отражение и в их ОС.

Экономичность и доступность мини-компьютеров послужила мощным

стимулом к созданию первых локальных сетей. С середины70-хгодов

началось массовое использование ОС UNIX. В конце70-хбыл создан

рабочий вариант протокола TCP/IP, в 1983 году он был

стандартизирован.

Четвертый период (1980 - настоящее время). Следующий период

в эволюции операционных систем связан с появлением больших

интегральных схем (БИС). В эти годы произошел резкий рост степени

интеграции и удешевление микросхем. Наступила эра персональных

компьютеров. Компьютеры стали широко использоваться

неспециалистами. Реализован графический интерфейс пользователя

(GUI - Graphical User Interface), теория которого была разработана еще

в 60-егоды. С

1985 года стала выпускаться Windows, это была графическая

оболочка MS-DOS вплоть до 1995г., когда вышла полноценная ОС

Windows 95. IBM и Microsoft совместно разработали операционную

систему OS/2. Она поддерживала вытесняющую многозадачность,

виртуальную память, графический пользовательский интерфейс,

виртуальную машину для выполнения DOS-приложений. Первая

версия вышла 1987 г. В дальнейшем Microsoft отказалась от OS/2 и

приступила к разработке Windows NT. Первая версия вышла в 1993г.

В 1987г. была выпущена операционная система MINIX (прототип

LINUX), она была построена по принципу микроядерной архитектуры.

В 80-егоды были приняты основные стандарты на

коммуникационное оборудование для локальных сетей: в 1980 году–

Ethernet,в 1985 – Token Ring, в конце80-х– FDDI. Это позволило

обеспечить совместимость сетевых ОС на нижних уровнях, а также

стандартизировать интерфейс ОС с драйверами сетевых адаптеров.

В 90-егоды практически все ОС стали сетевыми. Появились

специализированные ОС, предназначенные исключительно для

решения коммуникационных задач (IOS компании Cisco Systems).

Появление службы World Wide Web (WWW) в 1991 году придало

мощный импульс развитию популярности Интернета. Развитие

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

план. Возобновляется развитие ОС мейнфреймов. В 1991г. была

выпущена LINUX. Чуть позже вышла FreeBSD (основой для нее

послужила BSD UNIX).

В 90е годы практически все ОС стали сетевыми, эти функции

включались в ядро. Полная совместимость с основными технологиями

Page 11: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

локальных и глобальных сетей. Особое внимание в течении всего

последнего десятилетия уделялось корпоративным сетевым ОС. Их

дальнейшее развитие представляет одну из наиболее важных задач и в

обозримом будущем. Для таких сетей важно наличие средств

централизованного администрирования и управления. Для них так же

важно в силу их гетерогенности наличие и следование множеству

стандартов.

Так же на современном этапе развития ОС на первый план вышли

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

многоплатформенность (переносимость). Повышается удобство

работы человека с компьютером.

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

систему на ряд более мелких уровней с хорошо определенными

связями между ними, так чтобы объекты уровня N могли вызывать

только объекты уровня N-1. Нижним уровнем в таких системах обычно

является hardware, верхним уровнем – интерфейс пользователя. Чем

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

может выполнять модуль, находящийся на этом уровне. Впервые такой

подход был применен при создании системы THE (Technishe

Hogeschool Eindhoven) Дейкстрой (Dijkstra) и его студентами в 1968 г.

Раздел 2 Архитектурные особенности ОС. Классификация ОС

2.1. Архитектурные особенности ОС

Вопросы для рассмотрения: Понятие ядра ОС. Монолитное

ядро. Микроядерная архитектура. Многоуровневые системы.

Виртуальные машины. Смешанные системы.

Рекомендуемая литература: 5, 6.

Перечень дополнительных ресурсов: 4. Наименование вида самостоятельной работы: изучение

литературы.

Компоненты операционной системы являются не

самостоятельными модулями, а составными частями одной

программы. Такая структура операционной системы называется

монолитным ядром (monolithic kernel). Монолитное ядро представляет

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

процедуры работают в привилегированном режиме. Таким образом,

монолитное ядро – это такая схема операционной системы, при

которой все ее компоненты являются составными частями одной

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

друг с другом путем непосредственного вызова процедур. Для

Page 12: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

монолитной операционной системы ядро совпадает со всей системой.

Монолитное ядро — классическая и, на сегодняшний день,

наиболее распространённая архитектура ядер операционных систем.

Монолитные ядра предоставляют набор абстракций оборудования. Все

части монолитного ядра работают в одном адресном пространстве.

Современная тенденция в разработке операционных систем

состоит в перенесении значительной части системного кода на уровень

пользователя и одновременной минимизации ядра. Речь идет о подходе

к построению ядра, называемом микроядерной архитектурой

(microkernel architecture) операционной системы, когда большинство ее

составляющих являются самостоятельными программами. В этом

случае взаимодействие между ними обеспечивает специальный модуль

ядра, называемый микроядром. Микроядро работает в

привилегированном режиме и обеспечивает взаимодействие между

программами, планирование использования процессора, первичную

обработку прерываний, операции ввода-вывода и базовое управление

памятью.

Основное достоинство микроядерной архитектуры – высокая

степень модульности ядра операционной системы. Это существенно

упрощает добавление в него новых компонентов. В микроядерной

операционной системе можно, не прерывая ее работы, загружать и

выгружать новые драйверы, файловые системы и т. д. Существенно

упрощается процесс отладки компонентов ядра, так как новая версия

драйвера может загружаться без перезапуска всей операционной

системы. Компоненты ядра операционной системы ничем

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

для их отладки можно применять обычные средства. Микроядерная

архитектура повышает надежность системы, поскольку ошибка на

уровне непривилегированной программы менее опасна, чем отказ на

уровне режима ядра.

Недостаток — плата за принудительное «переключение»

процессов в ядре (переключение контекста); этот факт собственно и

объясняет трудности в проектировании и написании ядер подобной

конструкции. Эти недостатки способны обойти ОС, использующие

архитектуру экзоядра, являющуюся дальнейшим развитием

микроядерной архитектуры.

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

Вопросы для рассмотрения: Режимы работы операционных

систем. Однозадачный режим (однозадачные однопользовательские

операционные системы. MS-DOS 6. Функциональные возможности.

Page 13: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

Модули ОС и размещение их в памяти и на дисках. Загрузка ОС и

организация выполнения команд. BIOS, основные функции. Модуль

расширения BIOS, основные функции. Файл CONFIG.SYS. Модуль

обработки прерываний, назначение. Прерывания верхнего уровня DOS.

Вызовы функций DOS через механизм прерываний. Виды обращений к

DOS. Файловая система. Файлы и каталоги. Основные команды для

выполнения операций над файлами и каталогами. Командные файлы.

Файл AUTOEXEC.BAT). Многозадачный режим (многозадачные

многопользовательские операционные системы. Основные функции

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

Операционные системы семейства Win32. Аппаратные требования.

Архитектура. Состав. Реализация многозадачности. Виртуальные

машины среды Windows.). Режим разделения времени. Сетевой

режим. Режим распределенной обработки. Режим реального времени.

Универсальные ОС. ОС специального назначения. Пользовательский

интерфейс операционных систем. Командный интерфейс. Оконный

интерфейс (WIMP-интерфейс). Речевой интерфейс (SILK-интерфейс).

Назначение и функции операционных оболочек. Far Manejer, Norton

Commander. Возможности Far Manejer (Norton Commander 5.0).

Windows Commander. Возможности Windows Commander 4. Пакет

сервисных программ Norton Utilities: назначение, основные

возможности. Тенденции развития операционных систем.

Рекомендуемая литература: 5, 6.

Перечень дополнительных ресурсов: 3, 4. Наименование вида самостоятельной работы: изучение

литературы.

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

по особенностям алгоритмов управления ресурсами –

локальные и сетевые ОС. Локальные ОС управляют ресурсами

отдельного компьютера. Сетевые ОС участвуют в управлении

ресурсами сети;

по числу одновременно выполняемых задач - однозадачные и

многозадачные. Однозадачные ОС выполняют функцию

предоставления пользователю виртуальной вычислительной машины,

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

компьютером, средствами управления периферийными устройствами и

файлами. Многозадачные ОС, кроме вышеперечисленных функций,

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

процессор, оперативная память, файлы и внешние устройства;

по числу одновременно работающих пользователей -

однопользовательские и многопользовательские. Основным отличием

Page 14: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

многопользовательских систем от однопользовательских является

наличие средств защиты информации каждого пользователя от

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

по возможности распараллеливания вычислений в рамках

одной задачи - поддержка многонитевости. Многонитевая ОС

разделяет процессорное время не между задачами, а между их

отдельными ветвями – нитями;

по способу распределения процессорного времени между

несколькими одновременно существующими в системе процессами

или нитями - невытесняющая многозадачность и вытесняющая

многозадачность. В невытесняющей многозадачности механизм

планирования процессов целиком сосредоточен в операционной

системе, а в вытесняющей распределен между системой и

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

активный процесс выполняется до тех пор, пока он сам по

собственной инициативе не передаст управление операционной

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

процесса. При вытесняющей многозадачности решение о

переключении процессора с одного процесса на другой принимается

операционной системой, а не самим активным процессом;

по отсутствию или наличию в ней средств поддержки

многопроцессорной обработки. Многопроцессорные ОС, в свою

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

вычислительного процесса в системе с многопроцессорной

архитектурой: асимметричные ОС и симметричные ОС.

Асимметричная ОС целиком выполняется только на одном из

процессоров системы, распределяя прикладные задачи по остальным

процессорам. Симметричная ОС полностью децентрализована и

использует весь набор процессоров, разделяя их между системными и

прикладными задачами;

по ориентации на аппаратные средства - операционные

системы персональных компьютеров, серверов, мейнфреймов,

кластеров;

по зависимости от аппаратных платформ – зависимые и

мобильные. В мобильных ОС аппаратно зависимые места

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

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

другой тип компьютера является написание ее на машинно-

независимом языке, например, на С;

по особенностям областей использования – ОС пакетной

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

Page 15: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

обработки предназначены для решения задач вычислительного

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

целью и критерием эффективности систем пакетной обработки

является максимальная пропускная способность, то есть решение

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

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

терминал, с которого он может вести диалог со своей программой.

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

так что ни одна задача не занимает процессор надолго. Если квант

времени выбран небольшим, то у всех пользователей, одновременно

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

из них единолично использует машину. Системы реального времени

применяются для управления различными техническими объектами,

когда существует предельно допустимое время, в течение которого

должна быть выполнена та или иная программа управления объектом.

Невыполнение программы в срок может привести к аварийной

ситуации. Таким образом, критерием эффективности систем реального

времени является их способность выдерживать заранее заданные

интервалы времени между запуском программы и получением

результата - управляющего воздействия;

по структурной организации и концепциям, положенным в

основу:

по способу построения ядра системы - монолитное ядро или

микроядерный подход. ОС использующие монолитное ядро,

компонуются как одна программа, работающая в привилегированном

режиме и использующая быстрые переходы с одной процедуры на

другую, не требующие переключения из привилегированного режима в

пользовательский и наоборот. При построении ОС на базе микроядра,

работающего в привилегированном режиме и выполняющего только

минимум функций по управлению аппаратурой, функции более

высокого уровня выполняют специализированные компоненты ОС –

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

таком построении ОС работает более медленно, так как часто

выполняются переходы между привилегированным режимом и

пользовательским, но система получается более гибкой и ее функции

можно модифицировать, добавляя или исключая серверы

пользовательского режима;

по построению на базе объектно-ориентированного подхода;

по наличию нескольких прикладных сред в рамках одной ОС,

позволяющих выполнять приложения, разработанные для нескольких

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

Page 16: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

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

работают различные серверы, часть которых реализуют прикладную

среду той или иной операционной системы;

по распределению функций операционной системы среди

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

обеспечивающие пользователя возможностью представлять и

воспринимать сеть в виде однопроцессорного компьютера.

Признаками распределенной ОС является наличие единой справочной

службы разделяемых ресурсов и службы времени, использование

механизма вызова удаленных процедур для распределения

программных процедур по машинам, многонитевой обработки,

позволяющей распараллеливать вычисления в рамках одной задачи и

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

а также наличие других распределенных служб.

Структуру ОС составляют следующие модули:

базовый модуль (ядро ОС) - управляет работой программ и

файловой системой, обеспечивает доступ к ней и обмен файлами

между периферийными устройствами;

командный процессор - расшифровывает и исполняет

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

драйверы периферийных устройств - программно

обеспечивают согласованность работы этих устройств с процессором

(каждое периферийное устройство обрабатывает информацию по-

разному и в различном темпе);

дополнительные сервисные программы (утилиты) - делают

удобным и многосторонним процесс общения пользователя с

компьютером.

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

функции:

предоставляет другим программам определенный вид

обслуживания (посредством программ-утилит), например выделение и

назначение памяти, синхронизацию процесса вычислений и

организацию взаимосвязи между различными процессами в

вычислительной системе;

обеспечивает защиту (в определенной мере) других программ

от последствий различных особых ситуаций, возникающих при

машинной реализации данной программы, таких, как прерывания и

машинные сбои;

реализует с той или иной степенью сложности принцип

“виртуальной машины”, что позволяет группе программ использовать

общие вычислительные ресурсы, например процессор (процессоры) и

Page 17: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

основную память;

организует и следит за выполнением принципов управления

при решении таких задач, как обеспечение защиты данных от

несанкционированного доступа и реализация системы приоритетов

доступа программ к вычислительным ресурсам.

Обеспечивает работу с устройствами долговременной памяти,

такими как магнитные диски, ленты, оптические диски и т.д

Предоставляет стандартный доступ к различным устройствам

ввода/вывода, таким как терминалы, модемы, печатающие устройства.

Предоставляет некоторый пользовательский интерфейс. Часть

систем ограничивается командной строкой, в то время как другие на

90% состоят из средств интерфейса пользователя.

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

возможности:

Параллельное (точнее, псевдопараллельное, если машина

имеет только 1 процессор) исполнение нескольких задач.

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

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

Взаимодействие пользовательских программ с

нестандартными внешними устройствами.

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

ресурсов.

Защита системных ресурсов, данных и программ

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

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

Раздел 3 Управление процессами

3.1. Мультипрограммирование

Вопросы для рассмотрения: Мультипрограммирование в

системах пакетной обработки. Мультипрограммирование в системах

разделения времени. Мультипрограммирование в системах реального

времени. Мультипрограммирование при мультипроцессорной

обработке. Роль прерываний при мультипрограммировании.

Концепция прерывания. Основные виды прерываний. Обработка

прерываний. Векторы прерываний. Управление программами.

Планирование приоритетов. Интерфейс программирования

прикладных программ Win32. Основные особенности и

характеристики ОС семейства Linux.

Рекомендуемая литература: 5, 6.

Перечень дополнительных ресурсов: 2, 4.

Page 18: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

Наименование вида самостоятельной работы: изучение

литературы.

Мультипрограммирование – это режим обработки данных, при

котором ресурсы вычислительной системы предоставляются каждому

процессу из группы процессов обработки данных, находящихся в

вычислительной системе, на интервалы времени, длительность и

очередность предоставления которых определяется управляющей

программой этой системы с целью обеспечения одновременной работы

в интерактивном режиме.

Суть мультипрограммного режима работы ОС заключается в

том, что пока одна программа (один вычислительный процесс)

ожидает завершения очередной операции ввода-вывода (подпись «Вв»

на оси ординат), другая программа (процесс) может быть поставлена

на решение. Это позволяет более полно использовать имеющиеся

ресурсы (например, как видно из рисунка, центральный процессор

начинает меньше простаивать) и уменьшить общее (суммарное) время,

необходимое для решения некоторого множества задач.

При мультипрограммировании повышается пропускная

способность системы, но отдельный процесс никогда не может быть

выполнен быстрее, чем если бы он выполнялся в однопрограммном

режиме (всякое разделение ресурсов замедляет работу одного из

участников за счет дополнительных затрат времени на ожидание

освобождения ресурса). При мультипрограммировании программы

совместно используют не только процессор, но и другие ресурсы

компьютера (оперативную и внешнюю память, устройства ввода-

вывода, данные).

Для повышения пропускной способности компьютера стремятся

к обеспечению минимизации простоев (например, из-за отсутствия

соответствующих данных) всех его устройств, и прежде всего

центрального процессора. Естественным решением, ведущим к

повышению эффективности использования процессора, является

переключение процессора на выполнение другой задачи, у которой

есть данные для обработки. Такой подход к реализации

мультипрограммирования положен в основу пакетных систем.

Основное предназначение систем пакетной обработки – решать

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

результатов. Главной целью и критерием эффективности систем

пакетной обработки является пропускная способность, то есть решение

числа задач в единицу времени.

Для достижения этой цели в системах пакетной обработки

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

Page 19: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

формируется пакет заданий, каждое из которых содержит требование к

системным ресурсам. Из пакета заданий формируется

мультипрограммная «смесь», то есть множество одновременно

выполняемых задач. Для одновременного выполнения выбираются

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

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

вычислительной машины. Например, в мультипрограммной смеси

желательно одновременное присутствие вычислительных задач и задач

с интенсивным вводом-выводом.

С целью повышения удобства и эффективности работы

пользователя применяют другой способ мультипрограммирования –

разделения времени. В системах разделения времени пользователю

(пользователям) предоставляется возможность интерактивной работы с

несколькими приложениями одновременно. В системах разделения

времени эта проблема решается за счет того, что ОС принудительно

периодически приостанавливает приложения, не дожидаясь, когда они

добровольно освободят процессор. Всем приложениям попеременно

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

запустившие программы на выполнение, получают возможность

поддерживать с ними диалог.

Системы разделения времени призваны исправить основной

недостаток систем пакетной обработки – изоляцию пользователя-

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

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

может вести диалог со своей программой. В связи с тем, что в системах

разделения времени каждой задаче выделяется только квант

процессорного времени, ни одна задача не занимает процессор надолго

и время ответа оказывается приемлемым. Если квант выбран

небольшой, то у всех пользователей, одновременно работающих на

одной и той же машине, складывается впечатление, что каждый из них

использует ее единолично.

Еще одна разновидность мультипрограммирования

используется ОСРВ, предназначенных, как отмечено выше в п. 2.2, для

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

объектами или технологическими процессами. Критерием

эффективности этих систем является способность выдерживать заранее

заданные интервалы времени между запуском программы и

получением результата (управляющего воздействия). Это время

называется временем реакции системы, а соответствующее свойство

системы – реактивностью. Требования ко времени реакции зависят от

специфики управляемого процесса.

В ОСРВ «мультипрограммная смесь» представляет собой

Page 20: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

фиксированный набор заранее разработанных программ, а выбор

программы на выполнение осуществляется по прерываниям (исходя из

текущего состояния объекта) или в соответствии с расписанием

плановых работ.

Мультипроцессорная обработка – это способ организации

вычислительного процесса в системах с несколькими процессорами,

при котором несколько задач (процессов, потоков) могут

одновременно выполняться на разных процессорах системы.

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

выполняться одновременно, так как имеется несколько

обрабатывающих устройств – процессоров. Очевидно, что

мультипроцессирование не исключает мультипрограммирования – на

каждом из процессоров может попеременно выполняться некоторый

закрепленный за данным процессором набор задач.

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

координировать параллельное функционирование отдельных

устройств вычислительной системы и реагировать на особые

состояния, возникающие при работе процессора, то есть прерывание –

это принудительная передача управления от выполняемой программы

к системе (а через нее – к соответствующей программе обработки

прерывания), происходящая при возникновении определенного

события.

Механизм прерываний реализуется аппаратно-программными

средствами вычислительной системы. Структуры систем прерывания

(в зависимости от аппаратной архитектуры) могут быть самыми

разными, но все они имеют одну общую особенность – прерывание

непременно влечет за собой изменение порядка выполнения команд

процессором.

3.2. Планирование процессов и потоков

Вопросы для рассмотрения: Разновидности задач: процессы и

потоки (нити). Основные свойства задач: приоритет, контекст,

статус, реентерабильность. Дескриптор задачи. Многозадачность.

Понятие событийного вида обработки. Обработчики событий.

Кооперативная (невытесняющая) и вытесняющая многозадачность.

Создание процессов и потоков. Управляющие структуры процессов и

потоков. Состояния процесса. Критерии планирования. Цели и

свойства алгоритмов планирования. Виды планирования. Алгоритмы

планирования. Ресурс. Классификация ресурсов. Дисциплины

распределения ресурсов: одноочередные (FIFO, LIFO, RR) и

многоочередные (бесприоритетные и приоритетные). Концепция

Page 21: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

виртуализации. Виртуализация ресурсов, примеры. Понятие

виртуальной машины. Менеджер виртуальных машин. Очередь

готовых задач. Приоритеты задач: статические и динамические.

Основные алгоритмы планирования задач: алгоритмы, основанные на

квантовании (разделения времени), алгоритмы, основанные на

приоритетах (невытесняющая и вытесняющая многозадачность),

комбинированные алгоритмы. Взаимосвязанные задачи. Способы их

коммуникации: сообщения, почтовые ящики. Конкурирующие задачи.

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

Понятие критической секции. Способы синхронизации: семафоры,

исключающие семафоры (мутексы), мониторы.

Рекомендуемая литература: 6.

Перечень дополнительных ресурсов: 2, 3, 4. Наименование вида самостоятельной работы: изучение

литературы.

Три основных события, приводящие к созданию процессов

(вызов fork (в UNIX) или CreateProcess (вWindows)):

- загрузка системы;

- работающий процесс подает системный вызов на создание

процесса;

- запрос пользователя на создание процесса.

Во всех случаях активный текущий процесс посылает системный

вызов на создание нового процесса. Создать процесс означает:

- создать описатель процесса;

- загрузить коды и данные исполняемой программы процесса с

диска в оперативную память;

- в многопоточной системе для каждого создаваемого процесса

создать как минимум один поток выполнения.

При управлении процессами используется два основных типа

информационных структур: дескриптор процесса и контекст процесса.

Дескриптор процесса содержит такую информацию о процессе,

которая необходима ядру в течение всего жизненного цикла процесса

независимо от того, находится он в активном или пассивном

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

диск. В дескрипторе прямо или косвенно содержится информация о

состоянии процесса, о расположении образа процесса в оперативной

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

глобальном приоритете, об идентификаторе пользователя, создавшего

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

Контекст процесса содержит менее оперативную, но более

объемную часть информации о процессе, необходимую для

Page 22: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

возобновления выполнения процесса с прерванного места: содержимое

регистров процессора, коды ошибок выполняемых процессором

системных вызовов, таблица открытых файлов, информация о

незавершенных операциях ввода/вывода и др.

За время своего существования в системе поток может

многократно находиться в одном из трех состояний:

- выполнение – активное состояние, во время которого поток

обладает всеми необходимыми ресурсами и непосредственно

выполняется процессором;

- готовность – пассивное состояние, поток заблокирован в связи

с внешними по отношению к нему обстоятельствами; в очередь

готовых к выполнению попадает вновь созданный процесс;

-ожидание – пассивное состояние, находясь в котором поток

заблокирован по своим внутренним причинам (ждет осуществления

некоторого события, например, завершения операции ввода/вывода).

Возможные переходы между состояниями:

1. Поток выбран на выполнение

2. Поток ожидает завершения ввода/вывода

3. Ввод/вывод завершен (событие произошло)

4. Поток вытеснен.

В состоянии выполнения в однопроцессорной системе может

находиться не более одного потока, а в каждом из состояний ожидания

и готовности – несколько потоков. Эти потоки организуются в

очереди.

На протяжении существования процесса выполнение его потоков

может быть многократно прервано и продолжено. Переход от одного

потока к другому осуществляется в результате планирования и

диспетчеризации.

Планирование включает в себя решение двух задач:

- определение момента времени для смены текущего активного

потока;

- выбор для выполнения потока из очереди готовых потоков.

Планирование может быть динамическим (решения принимаются

во время работы системы на основе анализа текущей ситуации) и

статическим (решения приняты заранее, работа по расписанию).

Диспетчеризация заключается в реализации найденного в

результате планирования решения, то есть в переключении процессора

с одного потока на другой.

Диспетчеризация сводится к следующему:

- сохранение контекста текущего потока, который требуется

сменить;

- загрузка контекста нового потока, выбранного в результате

Page 23: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

планирования;

- запуск нового потока на выполнение.

Ситуации, когда необходимо планирование:

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

Планировщик переводит задачу в состояние готовности и выполняет

перепланирование.

Активная задача выполнила системный вызов, связанный с

запросом на ввод/вывод или на доступ к ресурсу, который в настоящий

момент занят. Планировщик переводит задачу в состояние ожидания и

выполняет перепланирование.

Активная задача выполнила системный вызов, связанный с

освобождением ресурса. Если есть, то она переводится из состояния

ожидания в состояние готовность. Проверяются приоритеты готовых к

выполнению задач.

Завершение периферийным устройством операции ввода/вывода

переводит соответствующую задачу в очередь готовых и выполняется

планирование.

Внутреннее прерывание сигнализирует об ошибке, которая

произошла в результате выполнения активной задачи. Планировщик

снимает задачу и выполняет перепланирование.

Все существующие алгоритмы планирования можно разделить на

два класса:

- невытесняющие алгоритмы основаны на том, что активному

потоку позволяется выполняться до тех пор, пока он сам, по

собственной инициативе, не отдаст управление операционной системе

для того, чтобы та выбрала из очереди другой готовый к выполнению

поток;

- вытесняющие алгоритмы – это такие способы планирования

потоков, в которых решение о переключении процессора с выполнения

одного потока на выполнение другого потока принимается

операционной системой, а не активной задачей.

Выбор алгоритма планирования зависит от типа задач, для

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

3.3. Взаимодействие и синхронизация процессов и потоков

Вопросы для рассмотрения: Независимые и

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

синхронизации. Пример необходимости синхронизации. Механизмы

синхронизации. Проблемы синхронизации. Механизмы межпроцессного

взаимодействия. Взаимосвязанные задачи. Способы их коммуникации:

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

Page 24: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

синхронизации: тупики, инверсия приоритетов, гонки. Понятие

критической секции. Способы синхронизации: семафоры,

исключающие семафоры (мьютексы), мониторы.

Рекомендуемая литература: 5, 6.

Перечень дополнительных ресурсов: 3, 4. Наименование вида самостоятельной работы: изучение

литературы.

В мультипрограммных однопроцессорных системах процессы

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

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

перекрытие процессов. Обе эти технологии, которые можно

рассматривать как примеры параллельных вычислений, порождают

одинаковые проблемы. Выполнение процессов и потоков в

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

невозможно предсказать относительную скорость выполнения

процессов. Момент прерывания потоков, время нахождения их в

очередях к разделяемым ресурсам, порядок выбора потоков для

выполнения – все эти события являются результатом стечения многих

обстоятельств и являются случайными, это справедливо как по

отношению к потокам одного процесса, выполняющим общий

программный код, так и по отношению к потокам разных процессов,

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

Способы взаимодействия процессов (потоков) можно

классифицировать по степени осведомленности одного процесса о

существовании другого.

Процессы не осведомлены о наличии друг друга (например,

процессы разных заданий одного или различных пользователей). Это

независимые процессы, не предназначенные для совместной работы.

Хотя эти процессы и не работают совместно, ОС должна решать

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

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

же диску или принтеру. ОС должна регулировать такие обращения.

Процессы косвенно осведомлены о наличии друг друга

(например, процессы одного задания). Эти процессы не обязательно

должны быть осведомлены о наличии друг друга с точностью до

идентификатора процесса, однако они разделяют доступ к некоторому

объекту, например, буферу ввода-вывода, файлу или БД. Такие

процессы демонстрируют сотрудничество при разделении общего

объекта.

Процессы непосредственно осведомлены о наличии друг друга

(например, процессы, работающие последовательно или поочередно в

Page 25: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

рамках одного задания). Такие процессы способны общаться один с

другим с использованием идентификаторов процессов и изначально

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

сотрудничество при работе.

Между конкурирующими процессами не происходит никакого

обмена информацией. Однако выполнение одного процесса может

повлиять на поведение конкурирующего процесса. Это может,

например, выразиться в замедлении работы одного процесса, если ОС

выделит ресурс другому процессу, поскольку первый процесс будет

ждать завершения работы с этим ресурсом. В предельном случае

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

ресурсу и, следовательно, никогда не сможет завершиться.

В случае конкурирующих процессов (потоков) возможно

возникновение трех проблем. Первая из них – необходимость

взаимных исключений (mutual exclusion). Предположим, что два или

большее количество процессов требуют доступ к одному

неразделяемому ресурсу, как например принтер. О таком ресурсе

будем говорить как о критическом ресурсе, а о части программы,

которая его использует, – как о критическом разделе (critical section)

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

момент могла находиться только одна программа. Например, во время

печати файла требуется, чтобы отдельный процесс имел полный

контроль над принтером, иначе на бумаге можно получить

чередование строк двух файлов.

Раздел 4 Управление памятью

4.1. Основные положения об управлении памятью

Вопросы для рассмотрения: Задачи по управлению памятью.

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

виртуальные и физические. Методы распределения памяти без

использования дискового пространства. Мультипрограммирование с

фиксированными разделами. Мультипрограммирование с переменными

разделами. Фрагментация памяти. Перемещаемые разделы.

Рекомендуемая литература: 5, 6.

Перечень дополнительных ресурсов: 3, 4. Наименование вида самостоятельной работы: изучение

литературы.

Память является важнейшим ресурсом, требующим тщательного

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

Особая роль памяти объясняется тем, что процессор может выполнять

Page 26: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

инструкции протравы только в том случае, если они находятся в

памяти. Память распределяется как между модулями прикладных

программ, так и между модулями самой операционной системы.

В ранних ОС управление памятью сводилось просто к загрузке

программы и ее данных из некоторого внешнего накопителя

(перфоленты, магнитной ленты или магнитного диска) в память. С

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

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

несколькими одновременно выполняющимися программами.

Функциями ОС по управлению памятью в мультипрограммной

системе являются:

отслеживание свободной и занятой памяти;

выделение памяти процессам и освобождение памяти по

завершении процессов;

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

на диск (полное или частичное), когда размеры основной памяти не

достаточны для размещения в ней всех процессов, и возвращение их в

оперативную память, когда в ней освобождается место;

настройка адресов программы на конкретную область

физической памяти.

Помимо первоначального выделения памяти процессам при их

создании ОС должна также заниматься динамическим распределением

памяти, то есть выполнять запросы приложений на выделение им

дополнительной памяти во время выполнения. После того как

приложение перестает нуждаться в дополнительной памяти, оно может

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

случайные моменты времени из общего пула памяти приводит к

фрагментации и, вследствие этого, к неэффективному ее

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

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

Для идентификации переменных и команд на разных этапах

жизненного цикла программы используются символьные имена

(метки), виртуальные адреса и физические адреса)

Символьные имена присваивает пользователь при написании

программы на алгоритмическом языке или ассемблере.

Виртуальные адреса, называемые иногда математическими, или

логическими адресами, вырабатывает транслятор, переводящий

программу на машинный язык. Поскольку во время трансляции в

общем случае не известно, в какое место оперативной памяти будет

загружена программа, то транслятор присваивает переменным и

командам виртуальные (условные) адреса, обычно считая по

Page 27: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

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

Физические адреса соответствуют номерам ячеек оперативной

памяти, где в действительности расположены' или будут расположены

переменные и команды.

Механизм страничной памяти в большинстве универсальных

операционных систем применяется ко всем сегментам

пользовательской части виртуального адресного пространства

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

например ОС реального времени, в которых некоторые сегменты

жестко фиксируются в оперативной памяти и соответственно никогда

не выгружаются на диск — это обеспечивает быструю реакцию

определенных приложений на внешние события.

Системная часть виртуальной памяти в ОС любого типа включает

область, подвергаемую страничному вытеснению (paged), и область, на

которую страничное вытеснение не распространяется (non-paged). В не

вытесняемой области размещаются модули ОС, требующие быстрой

реакции и/или постоянного присутствия в памяти, например диспетчер

потоков или код, который управляет заменой страниц памяти.

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

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

Простейший способ управления оперативной памятью состоит в

том, что память разбивается на несколько областей фиксированной

величины, называемых разделами. Такое разбиение может быть

выполнено вручную оператором во время старта системы или во время

ее установки. После этого границы разделов не изменяются.

Такой способ управления памятью применялся в ранних

мультипрограммных ОС. Однако и сейчас метод распределения

памяти фиксированными разделами находит применение в системах

реального времени, в основном благодаря небольшим затратам на

реализацию. Детерминированность вычислительного процесса систем

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

требования к памяти, а иногда и моменты запуска) компенсирует

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

При динамическом распределении память машины не делится

заранее на разделы. Сначала вся память, отводимая для приложений,

свободна. Каждому вновь поступающему на выполнение приложению

на этапе создания процесса выделяется вся необходимая ему память

(если достаточный объем памяти отсутствует, то приложение не

принимается на выполнение и процесс для него не создается). После

завершения процесса память освобождается, и на это место может

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

момент времени оперативная память представляет собой случайную

Page 28: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

последовательность занятых и свободных участков (разделов)

произвольного размера.

4.2. Распределение памяти

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

памятью в однопрограммных ОС. Особенности организации

управления памятью в мультипрограммных ОС. Распределение

фиксированными разделами. Распределение динамическими разделами.

Распределение перемещаемыми разделами. Сегментное распределение.

Страничное распределение. Особенности эффективного

использования таблиц страниц. Сегментно-страничное

распределение. Методы распределения памяти с использованием

дискового пространства. Понятие виртуальной памяти. Страничное

распределение. Сегментное распределение. Странично-сегментное

распределение. Механизмы реализации виртуальной памяти. Свопинг.

Стратегии управления виртуальной памятью. Иерархия

запоминающих устройств. Принцип кэширования данных. Кэш-

память. Многопроцессорный режим работы. Совместное

использование памяти. Защита памяти.

Рекомендуемая литература: 6.

Перечень дополнительных ресурсов: 4. Наименование вида самостоятельной работы: изучение

литературы.

Необходимым условием для того, чтобы программа могла

выполняться, является ее нахождение в оперативной памяти. Только в

этом случае процессор может извлекать команды из памяти и

интерпретировать их, выполняя заданные действия.

Все алгоритмы распределения памяти разделены на два класса:

алгоритмы, в которых используется перемещение сегментов процессов

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

внешняя память не привлекается.

Простейший способ управления оперативной памятью состоит в

том, что память разбивается на несколько областей фиксированной

величины, называемых разделами. Такое разбиение может быть

выполнено вручную оператором во время старта системы или во время

ее установки. После этого границы разделов не изменяются.

Очередной новый процесс, поступивший на выполнение,

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

разделу.

Подсистема управления памятью в этом случае выполняет

Page 29: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

следующие задачи:

сравнивает объем памяти, требуемый для вновь

поступившего процесса, с размерами свободных разделов и выбирает

подходящий раздел;

осуществляет загрузку программы в один из разделов и

настройку адресов.

Уже на этапе трансляции разработчик программы может задать

раздел, в котором ее следует выполнять. Это позволяет сразу получить

машинный код, настроенный на конкретную область памяти.

Достоинство– простота реализации.

Недостаток– жесткость, так как в каждом разделе может

выполняться только один процесс и уровень мультипрограммирования

заранее ограничен числом разделов.

Метод распределения памяти фиксированными разделами

находит применение в системах реального времени, в основном

благодаря небольшим затратам на реализацию.

Необходимым условием для того, чтобы программа могла

выполняться, является ее нахождение в оперативной памяти. Только в

этом случае процессор может извлекать команды из памяти и

интерпретировать их, выполняя заданные действия.

Все алгоритмы распределения памяти разделены на два класса:

алгоритмы, в которых используется перемещение сегментов процессов

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

внешняя память не привлекается.

Изначально вся память, отводимая для приложений, свободна.

Каждому вновь поступающему на выполнение приложению на этапе

создания процесса выделяется вся необходимая ему память (если

достаточный объем памяти отсутствует, то приложение не

принимается на выполнение и процесс для него не создается). После

завершения процесса память освобождается, и на это место может

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

момент времени оперативная память представляет собой случайную

последовательность занятых и свободных участков (разделов)

произвольного размера.

Функции операционной системы, предназначенные для

реализации данного метода управления памятью:

1.Ведение таблиц свободных и занятых областей, в которых

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

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

просмотр таблицы свободных областей и выбор раздела, размер

которого достаточен для размещения кодов и данных нового процесса.

Выбор раздела может осуществляться по разным правилам, например:

Page 30: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

«первый попавшийся раздел достаточного размера», «раздел,

имеющий наименьший достаточный размер» или «раздел, имеющий

наибольший достаточный размер».

3.Загрузка программы в выделенный ей раздел и корректировка

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

что программный код не перемещается во время выполнения, а значит,

настройка адресов может быть проведена единовременно во время

загрузки.

4.После завершения процесса корректировка таблиц свободных и

занятых областей.

Достоинство:по сравнению с методом распределения памяти

фиксированными разделами данный метод обладает гораздо большей

гибкостью.

Недостаток– фрагментация памяти, т.е. наличие большого числа

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

(фрагментов), настолько маленького, что ни одна из вновь

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

хотя суммарный объем фрагментов может составить значительную

величину, намного превышающую требуемый объем памяти.

Раздел 5 Файловые системы

5.1 Физическая организация жесткого диска

Вопросы для рассмотрения: Устройство жесткого диска.

Считывание избыточных данных при обмене с диском. Разбиение

диска на разделы. Хранение, запись и чтение данных.

Форматирование.

Рекомендуемая литература: 5, 6.

Перечень дополнительных ресурсов: 4. Наименование вида самостоятельной работы изучение

литературы.

Основным типом устройств, которые используются в

современных вычислительных системах для хранения файлов,

являются дисковые накопители. Эти устройства предназначены для

считывания и записи данных на жесткие и гибкие магнитные диски.

Жесткий диск состоит из одной или нескольких стеклянных или

металлических пластин, каждая из которых покрыта с одной или двух

сторон магнитным материалом. Таким образом, диск в общем случае

состоит из пакета пластин.

На каждой стороне каждой пластины размечены тонкие

концентрические кольца – дорожки (англ. traks), на которых хранятся

Page 31: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

данные. Количество дорожек зависит от типа диска. Нумерация

дорожек начинается с 0 от внешнего края к центру диска. Когда диск

вращается, элемент, называемый головкой, считывает двоичные

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

Головка может позиционироваться над заданной дорожкой.

Головки перемещаются над поверхностью диска дискретными шагами,

каждый шаг соответствует сдвигу на одну дорожку. Запись на диск

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

свойства дорожки. В некоторых дисках вдоль каждой поверхности

перемещается одна головка, а в других – имеется по головке на

каждую дорожку. В первом случае для поиска информации головка

должна перемещаться по радиусу диска. Обычно все головки

закреплены на едином перемещающем механизме и двигаются

синхронно. Поэтому, когда головка фиксируется на заданной дорожке

одной поверхности, все остальные головки останавливаются над

дорожками с такими же номерами. В тех же случаях, когда на каждой

дорожке имеется отдельная головка, никакого перемещения головок с

одной дорожки на другую не требуется, за счет этого экономится

время, затрачиваемое на поиск данных.

Совокупность дорожек одного радиуса на всех поверхностях всех

пластин пакета называется цилиндром (англ. cylinder). Каждая дорожка

разбивается на фрагменты, называемые секторами (англ. sectors) или

блоками (англ. blocks), так что все дорожки имеют равное число

секторов, в которые можно максимально записать одно и то же число

байт. Сектор имеет фиксированный для конкретной системы размер,

выражающийся степенью двойки.

Сектор – наименьшая адресуемая единица обмена данными

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

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

сектора: номер цилиндра, номер поверхности и номер

сектораОперационная система при работе с диском использует, как

правило, собственную единицу дискового пространства, называемую

кластером. При создании файла место на диске ему выделяется

кластерами. Например, если файл имеет размер 2560 байт, а размер

кластера в файловой системе определен в 1024 байта, то файлу будет

выделено на диске 3 кластера.

Дорожки и секторы создаются в результате выполнения

процедуры физического, или низкоуровневого форматирования диска,

предшествующей использованию диска. Для определения границ

блоков на диск записывается идентификационная информация.

Разметку диска под конкретный тип файловой системы

выполняют процедуры высокоуровневого, или логического,

Page 32: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

форматирования. При высокоуровневом форматировании определяется

размер кластера и на диск записывается информация, необходимая для

работы файловой системы, в том числе информация о доступном и

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

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

Жесткий диск может содержать до четырех основных разделов.

Это ограничение связано с характером организации данных на жестких

дисках IBM-совместимых компьютеров.

В первом физическом секторе жесткого диска располагается

головная запись загрузки и таблица разделов.

Головная запись загрузки (англ. master boot record, MBR) – первая

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

начальной загрузки BIOS (ROM Bootstrap routine), которая при

загрузке с жесткого диска считывает и загружает в память первый

физический сектор на активном разделе диска, называемый

загрузочным сектором (англ. Boot Sector).

Последние два байта таблицы разделов имеют значение 055AAh,

то есть чередующиеся значения 0 и 1 в двоичном представлении

данных. Эта сигнатура выбрана для того, чтобы проверить

работоспособность всех линий передачи данных. Значение 055AAh,

присвоенное последним двум байтам, имеется во всех загрузочных

секторах.

5.2. Принципы построения файловой системы

Вопросы для рассмотрения: Интерфейс файловой системы.

Функциональная схема организации файловой системы. Типовая

структура файловой системы на диске. Способы выделения дискового

пространства. Управление дисковым пространством. Размер

логического блока.

Рекомендуемая литература: 6.

Перечень дополнительных ресурсов: 4. Наименование вида самостоятельной работы: изучение

литературы.

Файл – это именованный объект, который может хранить данные,

программу или другую информацию.

Файловую систему можно определить как состоящую из двух

составных частей:

1.Совокупность файлов и управляющей информации на диске для

доступа к файлам.

2.Совокупность программных средств ОС для доступа к файлам,

Page 33: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

которые выполняют следующие операции с файлами:

создание файлов;

уничтожение файлов;

поиск файлов на диске;

чтение-запись информации из файла ( в файл );

защита файлов от несанкционированного доступа;

открытие файлов;

закрытие файлов.

Виды файлов:

регулярные – обычные файлы на диске, которые состоят из

блоков фиксированной длины – секторов (в MS-DOS – 512 б). При

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

программе – драйверу блокового устройства.

специальные символьные файлы – логическое

представление драйвера символьного устройства;

директории – файлы, хранящие специальную информацию

о регулярных файлах и директориях.

Драйвер устройства – специальная программа, которая

выполняет физическое управление ПУ.

различает два класса драйверов:

драйверы символьных устройств (за одно обращение

переносится один символ);

драйверы блоковых устройств (за одно обращение

переносится один блок).

Все драйверы подразделяются на стандартные и инсталлируемые

(устанавливаемые).

Символьные устройства, имеющие свои драйверы, трактуются

операционной системой как файлы с уникальным именем, доступ к

которым осуществляется с помощью специальных системных вызовов.

Имя драйвера становится известным системе в ходе начальной

загрузки. Конкретному символьному устройству соответствует только

одно имя, поэтому драйвер символьного устройства управляет работой

только одного устройства.

В отличие от драйверов символьных устройств доступ к

драйверам блоковых устройств осуществляется по букве логического

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

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

устройствами-единицами (units).

С точки зрения программиста файл представляет собой ленту

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

чтения-записи – текущая позиция ленты байтов, к которой

Page 34: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

осуществляется доступ.

При каждом переносе байтов ( чтении или записи ) указатель

автоматически передвигается вперед на перенесенное число байтов.

Достижение конца файла определяется ОС, которая сообщает об этом

в программу передачей специального условия EOF – End Of File.

Условие EOF регистрируется ОС только при чтении информации в тот

момент, когда указатель чтения-записи достигает значения, равного

размеру файла.

Для текстовых файлов условие EOF регистрируется при чтении

специального символа EOF – это ASCII-символ 1Ah (символ Ctrl-Z),

после которого, как правило, следует комбинация символов CR-LF

(0Dh,0Ah).

Автоматическое приращение указателя записи-чтения позволяет

осуществлять доступ к файлу байт за байтом. Это так называемый

последовательный доступ (consequtive access). Наличие средств

перемотки указателя на необходимую позицию в файле дает

возможность осуществлять доступ к заданному месту в файле. Этот

доступ называется прямым или произвольным ( direct or random access

).

Чтобы получить доступ к файлу, он должен быть открыт.

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

с созданием ОС управляющей информации о файле. Эта информация

сведена в специальную внутреннюю системную таблицу.

Если файл больше не нужен, он закрывается, при этом

разрушается внутренняя информация о файле и обновляется

информация о файле в директории, если выполнялась запись в файл.

5.3. Особенности загрузки ОС

Вопросы для рассмотрения: Этапы загрузки ОС. Особенности

загрузки различных ОС.

Рекомендуемая литература: 6.

Перечень дополнительных ресурсов: 4. Наименование вида самостоятельной работы: изучение

литературы.

Первый этап загрузки ОС. В системном блоке компьютера

находится постоянное запоминающее устройство (ПЗУ, постоянная

память, ROM-Read Only Memory - память с доступом только для

чтения), в котором содержатся программы тестирования блоков

компьютера и первого этапа загрузки ОС. Они начинают выполнятся с

первым импульсом тока при включении компьютера. На этом этапе

Page 35: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

процессор обращаются к диску и проверяет наличие на определенном

месте (в начале диска) очень небольшой программы - загрузчика. Если

эта программа обнаружена, то она считывается в ОЗУ и ей передается

управление.

Второй этап загрузки ОС. Программа - загрузчик, в свою очередь,

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

передает ему управление.

Третий этап загрузки ОС. В состав базового модуля входит

основной загрузчик, который ищет остальные модули ОС и считывает

их в ОЗУ. После окончания загрузки ОС управление передается

командному процессору и на экране появляется приглашение системы

к вводу команды пользователя.

Заметим, что в оперативной памяти во время работы компьютера

обязательно должны находится базовый модуль ОС и командный

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

оперативную память все файлы ОС одновременно. Драйверы

устройств и утилиты могут подгружаться в ОЗУ по мере

необходимости, что позволяет уменьшать обязательный объем

оперативной памяти, отводимый под системное программное

обеспечение.

5.4. Файлы и файловая система

Вопросы для рассмотрения: Имена файлов. Типы файлов:

обычные файлы, специальные файлы, каталоги. Логическая

организация файла. Физическая организация и адрес файла.

Дескриптор файла. Управление доступом к файлам и каталогам.

Защита от несанкционированного доступа. Многоуровневая модель

файловой системы. Отображение файлов в адресное пространство

выполняемого процесса. Архитектура современной файловой

системы. Цели и задачи файловой системы. Типы файлов. Атрибуты

файла. Доступ к файлам. Операции над файлами. Иерархическая

структура каталогов. Операции над директориями.

Рекомендуемая литература: 6.

Перечень дополнительных ресурсов: 4. Наименование вида самостоятельной работы: изучение

литературы.

Все программы данные хранятся в долговременной (внешней)

памяти компьютера в виде файла.

Файл -это определенное количество информации (программа или

данные), имеющие имя и хранящееся в долговременной (внешней)

Page 36: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

памяти.

Имя файла. Полное имя файла состоит из двух частей,

разделенных точкой: собственного имя файла и расширение,

определяющее его тип (программа, данные и т.д.). Собственно имя

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

автоматически при его создании.

В различных операционных системах существуют различные

форматы имен файлов. В операционной системе МS-DOSсобственно

имя файла должно содержать не более 8 букв латинского алфавита и

цифр, а расширение состоит из трех латинских букв,

например:proba.txt.

В операционной системе Windowsимя файла может иметь до 255

символов, причем можно использовать русский алфавит, например:

Единицы измерения информации.Doc.

Файловая система. На каждом носителе информации (гибком,

жестком или лазерном диске) может храниться большое количество

файлов. Порядок хранения файлов на диске определяется

используемой файловой системой.

Каждый диск разбивается на две области: область хранения

файлов и каталог. Каталог содержит название файла и указание на

начало его размещения на диске. Если провести аналогию диска с

книгой, то область хранения файлов соответствует тексту книги, а

каталог – ее оглавлению. Причем книга состоит из страниц, а диск – из

секторов.

Для дисков с небольшим количеством файлов (до нескольких

десятков) может использоваться одноуровневая файловая система,

когда каталог (оглавление диска) представляет собой линейную

последовательность имен файлов. Такой каталог можно сравнить с

оглавлением детской книжки, которое содержит только названия

отдельных рассказов.

Если на диске хранятся сотни и тысячи файлов, то для удобства

поиска файлы хранятся в многоуровневой иерархической файловой

системе, которая имеет “древовидную” структуру. Такую

иерархическую систему можно сравнить, например, с оглавлением

данного учебника, которое содержит иерархическую систему разделов,

глав, параграфов и пунктов. Начальный, корневой, каталог содержит

вложенные каталоги 1-го уровня, в свою очередь, каждый из них

может содержать вложенные каталоги 2-го уровня и т.д. Необходимо

отметить, что в каталогах всех уровней могут храниться и файлы.

Файловая система– это система хранения файлов и организации

каталогов.

В операционных системах с графическим интерфейсом

Page 37: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

иерархическая файловая система представляется в виде иерархической

системы папок.

Имя файла обычно состоит из собственного имени и так

называемого расширения, служащего для определения типа данных,

хранящихся в файле (типа файла). Имя файла и его расширение

разделяются точкой.

Кроме имени, файл имеет атрибуты(дата создания, дата

изменения, пользователь прав доступа и т.д.).

Файловая система позволяет организовывать файлы в

иерархические древовидные каталоги. Каталог самого верхнего уровня

называетсякорневым каталогом. Во многих операционных системах

корневой каталог обозначается именем логического источника данных

– латинской буквой с двоеточием.

Остальные каталоги делятся на системные и пользовательские.

Системные каталоги имеют служебные имена, назначенные

операционной системой при установке. Имена пользовательских

каталогов задаются пользователем по его усмотрению.

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

момент, называется текущим каталогом.

Последовательность имен каталогов, проходимых от некоторого

каталога до нужного файла, называется путем к этому файлу. Имена

каталогов в этой последовательности принято разделять знаком «\».

Абсолютное имяфайла складывается из пути к файлу от

корневого каталога и имени файла.Относительное имя– из пути к

файлу из текущего каталога и имени файла.

5.5. Особенности организации некоторых файловых систем

Вопросы для рассмотрения: FAT, FAT32, VFAT, NTFS, HPFS,

UFS. Назначение и функции операционных оболочек. Norton

Commander. Возможности Norton Commander 5.0. Windows

Commander. Возможности Windows Commander 4. Пакет сервисных

программ Norton Utilities: назначение, основные возможности.

Рекомендуемая литература: 5, 6.

Перечень дополнительных ресурсов: 3, 4. Наименование вида самостоятельной работы: изучение

литературы.

Файловая система FAT (от англ. File Allocation Table) была

разработана Биллом Гейтсом (англ. Bill Gates) и Марком

МакДональдом (англ. Mark McDonald) в 1977 году и первоначально

использовалась в ОС 86-DOS. Чтобы добиться переносимости

Page 38: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

программ из ОС CP/M в 86-DOS, в ней были сохранены ранее

принятые ограничения на имена файлов. В дальнейшем 86-DOS была

приобретена Microsoft и стала основой для ОС MS-DOS 1.0,

выпущенной в августе 1981 года. Файловая система FAT была

предназначена для работы с гибкими дисками размером менее 1

Мбайт, и вначале не предусматривала поддержки жестких дисков. В

настоящее время FAT поддерживает файлы и разделы размером до 2

Гбайт.

Файловая система Virtual FAT (VFAT), реализованная в Windows

NT 3.5, Windows 95 (DOS 7.0) – это файловая система FAT,

включающая поддержку длинных имен файлов (Long File Name, LFN)

в кодировке UNICODE (каждый символ имени кодируется 2 байтами).

Система VFAT использует ту же самую схему распределения

дискового пространства, что и файловая система FAT, поэтому размер

кластера определяется величиной раздела. В VFAT ослаблены

ограничения, устанавливаемые соглашениями по именам файлов FAT:

имя может быть длиной до 255 символов;

в имя можно включать несколько пробелов и точек, однако, текст

после последней точки рассматривается как расширение;

регистр символов в именах не различается, но сохраняется.

Основной задачей при разработке VFAT была необходимость

корректной работы старых программ, не поддерживающих длинные

имена файлов. Как правило, прикладные программы для доступа к

файлам используют функции ОС. Если у элемента каталога установить

комбинацию битов атрибутов «только для чтения», «скрытый»,

«системный», «метка тома» – то любые файловые функции старых

версий ОС DOS и Windows не заметят такого элемента каталога.

Поэтому для каждого файла и подкаталога в VFAT хранится два

имени: длинное и короткое в формате 8.3 для совместимости со

старыми приложениями. Длинные имена хранятся в специальных

записях каталога, байт атрибутов, у которых равен 0Fh. Для любого

файла или подкаталога непосредственно перед единственной записью

каталога с его именем в формате 8.3 находится группа из одной или

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

запись содержит часть длинного имени файла не более 13 символов, из

всех таких записей ОС составляет полное имя файла. Поскольку одно

длинное имя файла может занимать до 21 записи, а корневой каталог

FAT ограничен 512 записями, желательно ограничить использование

длинных имен в корневом каталоге.

Файловая система NTFS (New Technology File System) – наиболее

предпочтительная файловая система при работе с ОС Windows NT,

поскольку она была специально для нее разработана.

Page 39: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

Диск NTFS условно делится на две части. Первые 12% диска

отводятся под так называемую MFT зону (Master File Table или главная

файловая таблица) – пространство, в котором происходит рост

метафайла MFT.

Запись каких-либо данных в эту область невозможна. MFT-зона

всегда держится пустой – это делается для того, чтобы самый главный,

служебный файл не фрагментировался при своем росте. Остальные

88% диска представляют собой обычное пространство для хранения

файлов, причем свободное место диска включает в себя всё физически

свободное место, включая незаполненные фрагменты MFT-зоны.

Высокопроизводительная файловая система (англ. High

Performance File System – HPFS) была представлена фирмой IBM в

1989 году вместе с ОС OS/2 1.20. Файловая система HPFS также

поддерживалась ОС Windows NT до версии 3.51 включительно. По

производительности эта система существенно опережает FAT. Система

HPFS позволяет использовать жесткие диски объемом до 2 Терабайт

(первоначально до 4 Гбайт). Кроме того, она поддерживает разделы

диска размером до 512 Гб и позволяет использовать имена файлов

длиной до 255 символов (на каждый символ отводится 2 байта). В

HPFS по сравнению с FAT уменьшено время доступа к файлам в

больших каталогах.

Файловая система HPFS распределяет пространство на диске не

кластерами как в FAT, а физическими секторами по 512 байт, что не

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

сектора (блока). Чтобы уменьшить фрагментацию диска, при

распределении пространства под файл система HPFS стремится, по

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

секторах. Фрагмент файла, располагающийся в смежных секторах,

называется экстентом.

Для нумерации единиц распределения пространства диска HPFS

использует 32 разряда, что дает 232, или более 4 миллиардов номеров.

Однако HPFS использует числа со знаком, что сокращает число

возможных номеров блоков до 2 миллиардов. Помимо стандартных

атрибутов файла, HPFS поддерживает расширенные атрибуты файла

(англ. Extended Attributes – EA), которые могут содержать до 64 Кб

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

Диск HPFS имеет следующие три базовые структуры (рис. 48):

загрузочный блок (англ. BootBlock), дополнительный блок (англ.

SuperBlock) и резервный блок (англ. SpareBlock).

Файл в ОС Unix представляет собой множество символов с

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

помещенные туда пользователем, и файл не имеет никакой иной

Page 40: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

структуры, кроме той, какую создаст в нем пользователь.

Информация на дисках размещается блоками. В первой версии

файловой системы размер блока – 512 байт. Во многих современных

файловых системах, разработанных для конкретной версии Unix-

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

быстродействие файловых операций. Например, в системе FFS (Fast

File System – быстродействующая файловая система) размер блока

равен 8192 байт.

5.6. Дисковые массивы RAID

Вопросы для рассмотрения: RAID1: Зеркальные диски. RAID 2:

матрица с поразрядным расслоением. RAID 3: аппаратное

обнаружение ошибок и четность. RAID 4: внутригрупповой

параллелизм. RAID 5: четность вращения для распараллеливания

записей.

Рекомендуемая литература: 5, 6.

Перечень дополнительных ресурсов: 2, 3, 4. Наименование вида самостоятельной работы: изучение

литературы.

Одним из способов повышения производительности ввода/вывода

является использование параллелизма путем объединения нескольких

физических дисков в матрицу (группу) с организацией их работы

аналогично одному логическому диску. К сожалению, надежность

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

Существует несколько способов объединения дисков RAID.

Каждый уровень представляет свой компромисс между пропускной

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

хранения избыточной информации.

Когда какой-либо диск отказывает, предполагается, что в течение

короткого интервала времени он будет заменен и информация будет

восстановлена на новом диске с использованием избыточной

информации. Это время называется средним временем восстановления

(mean time to repair - MTTR). Этот показатель можно уменьшить, если

в систему входят дополнительные диски в качестве "горячего резерва":

при отказе диска резервный диск подключается аппаратно-

программными средствами. Периодически оператор вручную заменяет

все отказавшие диски. Четыре основных этапа этого процесса состоят в

следующем:

определение отказавшего диска,

устранение отказа без останова обработки;

Page 41: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

восстановление потерянных данных на резервном диске;

периодическая замена отказавших дисков на новые.

RAID1: Зеркальные диски.

Зеркальные диски представляют традиционный способ

повышения надежности магнитных дисков. Это наиболее

дорогостоящий из рассматриваемых способов, так как все диски

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

на проверочный диск. Таким образом, приходится идти на некоторые

жертвы в пропускной способности ввода/вывода и емкости памяти

ради получения более высокой надежности. Зеркальные диски широко

применяются многими фирмами. В частности компания Tandem

Computers применяет зеркальные диски, а также дублирует

контроллеры и магистрали ввода/вывода с целью повышения

отказоустойчивости. Эта версия зеркальных дисков поддерживает

параллельное считывание.

RAID 2: матрица с поразрядным расслоением

Один из путей достижения надежности при снижении потерь

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

в которой для исправления одиночных и обнаружения двойных

ошибок используются избыточные контрольные разряды. Такое

решение можно повторить путем поразрядного расслоения данных и

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

контрольных дисков для обнаружения и исправления одиночных

ошибок. Один диск контроля четности позволяет обнаружить

одиночную ошибку, но для ее исправления требуется больше дисков.

RAID 3: аппаратное обнаружение ошибок и четность

Большинство контрольных дисков, используемых в RAID уровня

2, нужны для определения положения неисправного разряда. Эти

диски становятся полностью избыточными, так как большинство

контроллеров в состоянии определить, когда диск отказал при помощи

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

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

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

существу, если контроллер может определить положение ошибочного

разряда, то для восстановления данных требуется лишь один бит

четности. Уменьшение числа контрольных дисков до одного на группу

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

количество дисков в группе равно 5 (4 диска данных плюс 1

контрольный). Подобные устройства выпускаются, например,

фирмами Maxtor и Micropolis. Каждое из таких устройств

воспринимается машиной как отдельный логический диск с

учетверенной пропускной способностью, учетверенной емкостью и

Page 42: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

значительно более высокой надежностью.

RAID 4: внутригрупповой параллелизм

RAID уровня 4 повышает производительность передачи

небольших объемов данных за счет параллелизма, давая возможность

выполнять более одного обращения по вводу/выводу к группе в

единицу времени. Логические блоки передачи в данном случае не

распределяются между отдельными дисками, вместо этого каждый

индивидуальный блок попадает на отдельный диск.

Достоинство поразрядного расслоения состоит в простоте

вычисления кода Хэмминга, что необходимо для обнаружения и

исправления ошибок в системах уровня 2. В RAID уровня 3

обнаружение ошибок диска с точностью до сектора осуществляется

дисковым контроллером. Следовательно, если записывать отдельный

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

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

Главное отличие между системами уровня 3 и 4 состоит в том, что в

последних расслоение выполняется на уровне сектора, а не на уровне

битов или байтов.

RAID 5: четность вращения для распараллеливания записей

RAID уровня 4 позволяли добиться параллелизма при считывании

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

выполнения одной операции на группу, так как при каждой операции

должны выполняться запись и чтение контрольного диска. Система

уровня 5 улучшает возможности системы уровня 4 посредством

распределения контрольной информации между всеми дисками

группы.

Это небольшое изменение оказывает огромное влияние на

производительность записи небольших массивов информации. Если

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

данными и соответствующими им блоками четности к разным дискам,

появляется возможность параллельного выполнения N/2 записей, где N

- число дисков в группе. Данная организация имеет одинаково

высокую производительность при записи и при считывании как

небольших, так и больших объемов информации, что делает ее

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

2. ЛАБОРАТОРНЫЕ РАБОТЫ

2.1 Лабораторная работа 1 «Управление программами.

Планирование приоритетов»

Рекомендуемая литература: 1, 5, 6.

Page 43: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

Перечень дополнительных ресурсов: 2, 3, 4.

Цель: обучение управлением программами и планированию

приоритетов.

Задание:

- выполнить команды по созданию, копированию, перемещению,

переименованию и удалению папок и файлов, по определению и по

изменению атрибутов файлов и папок;

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

2.2 Лабораторная работа 2 «Интерфейс программирования

прикладных программ Win32»

Рекомендуемая литература: 5, 6.

Перечень дополнительных ресурсов: 4.

Цель: изучить интерфейс вызова функций Win32 API. Освоить

на практике использование системных вызовов по созданию и

завершению объектов ядра ОС Windows.

Задание: Интерфейс системных вызовов. Если исходить из

принципа минимального механизма, тогда операционная система

должна предоставлять настолько мало системных вызовов, насколько

это возможно (необходимый минимум), и каждый системный вызов

должен быть настолько прост, насколько это возможно (но не проще).

Объединяющая парадигма данных может играть главную роль в этом.

Например, если файлы, процессы, устройства ввода-вывода и прочее

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

помощи всего одного системного вызова read. В противном случае

пришлось бы иметь различные системные вызовы, такие как read_file,

read_proc, read_tty и т. д.

В некоторых случаях может потребоваться несколько вариантов

системных вызовов, но, как правило, на практике лучше иметь один

системный вызов, обрабатывающий общий случай, с различными

библиотечными процедурами, скрывающими этот факт от

программистов. Например, в операционной системе UNIX есть

системный вызов exec для замены виртуального адресного

пространства процесса. Наиболее общий вариант его использования

выглядит следующим образом:

exec(name. argp. envp);

Данный системный вызов загружает исполняемый файл пате и

передает ему аргументы, на которые указывает argp, и список

переменных окружения, на который указывает envp.

Page 44: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

Эти процедуры всего лишь помещают аргументы в массив, после

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

работу. Такая схема является лучшей в обоих смыслах: благодаря

единственному простому системному вызову операционная система

сохраняет свою простоту, в то же самое время программист получает

возможность обращаться к системному вызову exec различными

способами.

Разумеется, пытаясь использовать один-единственный системный

вызов для всех случаев жизни, легко дойти до крайностей. Для

создания процесса в операционной системе UNIX требуется два

системных вызова: fork, за которым следует exec. У первого вызова нет

параметров; у второго вызова три параметра. Для сравнения: у вызова

Win32 API для создания процесса, CreateProcess, 10 параметров, один

из которых представляет собой указатель на структуру с

дополнительными 18 параметрами. Давным-давно следовало задать

вопрос: «Произойдет ли катастрофа, если мы опустим что-нибудь из

этого?» Правдивый ответ должен был звучать так: «В некоторых

случаях программист будет вынужден совершить больше работы для

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

компактную и надежную операционную систему». Конечно, человек,

предлагающий версию с этими 10 + 18 параметрами, мог добавить:

«Но пользователи любят все эти возможности». Возразить на это

можно было бы так: «Еще больше им нравятся системы, которые

используют мало памяти и никогда не ломаются». Компромисс,

заключающийся в большей функциональности за счет использования

большего объема памяти, по крайне мере, виден невооруженным

глазом и ему можно дать оценку (так как стоимость памяти известна).

Однако трудно оценить количество дополнительных сбоев в год,

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

неизвестно, сделали бы пользователи тот же выбор, если им заранее

была известна эта скрытая цена. Этот эффект можно резюмировать

первым законом программного обеспечения Таненбаума:

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

ней ошибок также увеличивается.

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

добавляются новые процедуры, а вместе с ними и новые ошибки.

Программисты, полагающие, что при добавлении новых функций к

программе не добавится новых ошибок, либо являются новичками в

программировании, либо верят, что за ними присматривает добрая фея.

Простота является не единственным принципом, которым

следует руководствоваться при разработке системных вызовов.

Page 45: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

Если у аппаратного обеспечения есть крайне эффективный

способ выполнить что-либо, программистам следует предоставить

простой доступ к этой возможности, а не хоронить ее внутри некой

абстракции. Назначение абстракций заключается в том, чтобы

скрывать нежелательные свойства, а не полезные свойства. Например,

предположим, что у аппаратуры есть специальный способ

перемещения больших участков изображений по экрану (то есть в

видеопамяти) на высокой скорости. В этом случае ввод нового

системного вызова, предоставляющего доступ к этому механизму,

будет оправдан, так как это лучше, чем читать данные из видеоОЗУ в

обычную память, а затем писать эти данные обратно в видеоОЗУ.

Новый вызов должен просто перемещать биты в видеопамяти. Если

этот новый системный вызов будет быстрым, это позволит

пользователям создавать более эффективные программы. Если

системный вызов медленный, никто не будет им пользоваться.

При проектировании системы возникает также вопрос

использования ориентированных на соединение вызовов или вызовов,

не использующих соединений. Стандартные системные вызовы UNIX

и Win32 для чтения файлов являются ориентированными на

соединение. Сначала вы открываете файл, затем читаете его и,

наконец, закрываете файл. Некоторые протоколы работы с

удаленными файлами также являются ориентированными на

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

пользователь сначала регистрируется на удаленной машине, читает

файлы, а затем выходит из системы.

С другой стороны, некоторые протоколы удаленного доступа к

файлам не требуют соединений. Например, протокол NFS не требует

соединений, как было показано в главе 10. Каждый вызов NFS

является независимым, поэтому файлы не открываются до их чтения

или записи, разумеется, файлы не нужно закрывать после чтения или

записи. Всемирная паутина также не требует соединений: чтобы

прочитать web-страницу, вы просто запрашиваете ее. Не требуется

никаких предварительных настроек (TCP-соединение все-таки

требуется, но оно представляет собой более низкий уровень протокола;

протокол HTTP, используемый для доступа к самой web-странице, не

требует соединений).

От того, какой из механизмов выбрать - ориентированный на

соединение или не требующий соединений, - зависит, будет ли от

механизма требоваться дополнительная работа (например, по

открытию файлов), или же эта работа перекладывается на плечи

использующей механизм прикладной программы. В последнем случае

получается существенный выигрыш в эффективности, если к одному и

Page 46: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

тому же файлу программа обращается много раз. Для системы ввода-

вывода на одной машине, где стоимость подготовки ввода-вывода

(открытия файла) низка, вероятно, лучше использовать стандартный

способ (сначала открыть, затем использовать). Для удаленных

файловых систем возможно использование обоих вариантов.

Другой вопрос, возникающий при проектировании интерфейса

системных вызовов, заключается в его открытости. Список системных

вызовов, определяемых стандартом POSIX, легко найти. Эти

системные вызовы поддерживаются всеми системами UNIX, как и

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

публикуется. Корпорация Microsoft, напротив, никогда не публиковала

список системных вызовов Windows 2000. Вместо этого публикуются

функции интерфейса Win32 API, а также вызовы других интерфейсов;

эти списки содержат огромное количество библиотечных вызовов

(более 13 000 в Windows 2000), но только малое их число является

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

системных вызовов заключается в том, что программистам становится

известна цена использования функций. Функции, исполняемые в

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

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

также имеет свои преимущества, заключающиеся в том, что в

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

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

изменять действительные системные вызовы, сохраняя при этом

работоспособность прикладных программ.

2.3 Лабораторная работа 3 «Основные особенности и

характеристики ОС семейства Linux»

Рекомендуемая литература: 5, 6.

Перечень дополнительных ресурсов: 3, 4.

Цель: Освоить на практике использование системных вызовов

по созданию и завершению потоков в ОС Linux. Компилировать и

выполнить программу, реализующую многопоточность в ОС Linux.

Задание: 1 Основными активными сущностями в ос Linux

являются процессы. Процессы в Linux - классические,

последовательные процессы. Каждый процесс выполняет одну

программу и изначально получает один поток управления. У процесса

есть один счетчик команд, который отслеживает следующую

исполняемую команду. Linux позволяет процессу создавать

дополнительные потоки.

Page 47: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

Также Linux представляет собой многозадачную систему, так,

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

У каждого процесса в Linux есть пользовательская часть, в которой

работает программа пользователя, однако, когдаодин из потоков

делает системный вызов,то происходит эмулированное прерывание с

переключением в режим ядра. После этого поток начинает работу в

контексте ядрас другой картой памяти, своим стеком ядра, счетчиком

команд в режиме ядра и полным доступом ко всем ресурсам машины.

Ядро ОC Linux внутренним образом представляет процессы как задачи

при помощи структуры задач task_struct. Процесс с одним потоком

представляется одной структурой задач, а многопоточный процесс

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

пользовательского уровня.

Само ядро является многопоточным и имеет потоки уровня

ядра, которые не связаны ни с какими пользовательскими процессами

и выполняют код ядра. Для каждого процесса в памяти находится его

дескриптор типа task_struct. Он содержит важную информацию,

необходимую ядру для управления всеми процессами. Дескриптор

процесса создается при создании процесса.

Для совместимости с другими системами unix процессы в Linux

идентифицируются при помощи идентификатора процесса PID

(ProcessIdentifier). Ядро организует все процессы в двунаправленный

список структур задач. Информация в дескрипторе процесса

подразделяется на следующие категории:

1. Параметры блокирования (приоритет процесса,

израсходованное за последний учитываемый период времени,

количество проведенного в режиме ожидания времени)

2. Образ памяти (указатели на сегмент текста, данных и стека)

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

части на диске.

3. Сигналы (маски, указывающие, какие сигналы

перехватываются, какие временно заблокированы, и какие находятся в

процессе доставки).

4. Машинные регистры. Когда происходит эмулированное

прерывание в ядро, то машинные регистры сохраняются здесь

5. Состояние системного вызова (здесь хранится информация

о текущем системном вызове)

6. Таблица дескрипторов файлов (Когда делается системный

вызов, использующий дескриптор файла, то файловый дескриптор

используется как индекс в этой таблице для обнаружения

соответствующей этому файлу структуры данных).

Page 48: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

7. Учетные данные (Указатель на таблицу, в которой

отслеживается использованное процессом пользовательское и

системное время процесса).

8. Стек ядра (фиксированный стек для использования той

частью процесса, которая работает в режиме ядра)

9. Разное (текущее состояние процесса, ожидаемое процессом

событие, PID процесса, идентификаторы родительского процесса,

группы)

2. Взаимодействие процессов

В системе Linux процессы могут общаться друг с другом с

помощью следующих структур:

трубы (pipes) – создается канал между двумя процессами, в

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

может его читать.

Сигналы (signals) – процессы общаются при помощи

программных прерываний. Процессы могут сообщить системе, какие

действия следует предпринимать, когда придет сигнал:

проигнорировать сигнал, перехватить его, позволить сигналу убить

процесс.

SIGABRT– посылается, чтобы прервать процесс и создать дамп

памяти

SIGFPE – произошла ошибка при выполнении операции с

плавающей точкой

SIGILL – пользователь нажал клавишу delete, чтобы прервать

процесс

Процесс может посылать сигналы только членам своей группы,

состоящих из его братьев, сестер и прочих потомков.

3. Механизмы создания нового процесса. Системный вызов fork

в родительском процессе (parentprocess), создает новый процесс,

который называется дочерним процессом (child process). У

родительского и дочернего процесса есть свои собственные образы

памяти. Если впоследствии, родительский процесс изменяет свои

переменные, то эти изменения остаются невидимыми для дочернего

процесса. Сразу после выполнения системного вызова fork, значения

всех соответствующих переменных в обоих процессах одинаковы, но

после копирования всего адресного пространства родителя,

последующие изменения в одном процессе не влияют на другой.

Системный вызов fork возвращает дочернему процессу число 0, а

родительскому – отличный от нуля PID дочернего процесса. Оба

процесса проверяют возвращаемое значение и действуют

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

дочерними процессами совместно. Это значит, что, если какой-либо

Page 49: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

файл был открыт в родительском процессе, до выполнения системного

вызоваfork, то он остается открытым в обоих процессах. Изменения,

произведенные с этим файлом любым из процессов видны другому.

Если дочерний процесс желает узнать свой идентификатор, то он

может воспользоваться системным вызовом getpid. Например, когда

дочерний процесс завершается, его родитель получает идентификатор

только что завершившегося процесса.

Механизм создания процесса

Для дочернего процесса создается новый дескриптор и

пользовательская область, которая заполняется из родительской.

Дочерний процесс получает идентификатор, настраивается его карта

памяти. Предоставляется доступ к общим файлам. Далее

настраиваются регистры дочернего процесса, после чего он готов к

запуску.

При вызове fork() происходит следующее:

1. Выделение структуры задач для потомка

2. Заполнение структуры задач потоком данными родителя

3. Выделение памяти для стека и области пользователя

дочернего процесса

4. Заполнение области пользователя дочернего процесса

5. Выделение идентификатора для дочернего процесса

6. Настройка дочернего процесса на использование

программы родительского процесса

7. Копирование таблицы страниц для данных и стека

8. Настройка совместного использования открытых файлов

9. Копирование регистров родительского процесса в дочерний

процесс

При системном вызове exec() происходит следующее:

1. Поиск исполняемого файла

2. Проверка разрешения на выполнение

3. Чтение и проверка заголовка

4. Копирование аргументов, среды в ядро

5. Освобождение нового адресного пространства

6. Копирование аргументов среды в стек

7. Сбрасывание сигнала

8. Инициализация регистров

Когда выполняется системный вызов fork(), вызывающий

процесс выполняет эмулированное прерывание в ядро и создает

структуру задачи. Большая часть содержимого дескриптора процесса

заполняется значениями из дескриптора родителя, затем Linux ищет

доступный идентификатор и обновляет элемент хэш-таблицы

идентификаторов, чтобы там был указатель на новую структуру

Page 50: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

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

таблицы страниц, но эти таблицы указывают на страницы

родительского процесса, помеченного, как доступные только для

чтения. Когда дочерний процесс пытается писать в такую страницу,

происходит нарушение защиты. Ядро видит это и выделяет дочернему

процессу новую копию этой страницы, которую помечает как

доступную для чтения и для записи. Таким образом копируются только

те страницы, в которые дочерний процесс пишет. Такой механизм

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

процесс начинает работу, его код делает системный вызов exec(),

задавая имя команды в качестве параметра, при этом ядро находит и

проверяет исполняемый файл, копирует в ядро аргументы и

освобождает старое адресное пространство. Далее записывается новое

адресное пространство. Сигналы сбрасываются, а все регистры

устанавливаются в 0. После этого программа готова к работе.

4 Реализация потоков в ОС Linux

В 2000 году в Linux был введен новый системный вызов clone,

который размыл отличия между процессами и потоками

Clone(function, stack_ptr, sharing-flags, arf);

Вызов clone создает новый поток либо в новом процессе, либо в

текущем, все зависит от флаг аsharing-flags. Если новый поток

находится в текущем процессе, то он совместно с существующими

потоками использует адресное пространство и каждая запись в любой

байт становится видна всем остальным потокам данного процесса. С

другой стороны, если адресное пространство совместно не

используется, то последующие записи новых потоков не будут видны

старым. В обоих случаях новый поток начинает выполнение функции

function с аргументом arg в качестве единственного параметра. Также в

обоих случаях новый поток получает свой собственный стек, при этом

указатель стека инициализируется параметром stack_ptr. Параметр

sharing-flags представляет собой битовый массив. Каждый бит может

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

копирует ли новый поток эту структуру данных или использует ее

совместно с вызывающим потоком.

CLOVE_VM 1 - создать новый поток, 0 – создать новый

процесс. Если этот бит установлен, но новый поток добавляется к

старым. Если этот бит сброшен, то новый поток получает свое

собственное адресное пространство.

CLONE_FS 1 – совместно используется рабочий каталог root и

флаг umask. 0 – не использовать их совместно. Даже если у нового

потока есть адресное пространство, старый и новый потоки будут

использовать совместно общие каталоги.

Page 51: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

CLONE_PID 1 – поток получает старый идентификатор. 0 –

поток получает свой собственный идентификатор. Это свойство нужно

при загрузке системы. Процессам пользователя не разрешается

использовать это свойство

2.4 Лабораторная работа 4 «Управление программами.

Планирование приоритетов»

Рекомендуемая литература: 5, 6.

Перечень дополнительных ресурсов: 2, 4. Цель: Освоить на практике использование системных вызовов

по созданию и завершению процессов и потоков в ОС Windows:

CreateProcess, ExitProcess, CreateThread, ExitThread. Компилировать и

выполнить программы, реализующие многопоточность в ОС Windows.

Задание: Системные вызовы (system calls) – это интерфейс

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

Они создают, удаляют и используют различные объекты,

главные из которых – процессы и файлы. Пользовательская программа

запрашивает сервис у операционной системы, осуществляя системный

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

регистры определенными параметрами и осуществляют прерывание

процессора, после чего управление передается обработчику данного

вызова, входящему в ядро операционной системы. Цель таких

библиотек – сделать системный вызов похожим на обычный вызов

подпрограммы.

Основное отличие состоит в том, что при системном вызове

задача переходит в привилегированный режим или режим ядра (kernel

mode).

Поэтому системные вызовы иногда еще называют

программными прерываниями, в отличие от аппаратных прерываний,

которые чаще называют просто прерываниями.

В этом режиме работает код ядра операционной системы,

причем исполняется он в адресном пространстве и в контексте

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

имеет полный доступ к памяти пользовательской программы, и при

системном вызове достаточно передать адреса одной или нескольких

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

областей памяти для результатов вызова.

Page 52: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

2.5 Лабораторная работа 5 «Механизмы синхронизации. Проблемы

синхронизации. Понятие критической секции. Способы

синхронизации: семафоры, исключающие семафоры (мьютексы),

мониторы»

Рекомендуемая литература: 5, 6.

Перечень дополнительных ресурсов: 2, 3, 4. Цель: Освоить на практике использование системных вызовов

по созданию и завершению объектов ОС Windows. Компилировать и

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

секцию в ОС Windows.

Задание: Основными типами объектов синхронизации являются

события (events), мьютексы (mutexes) и семафоры (semaphores).

1. Событие (event) - это флаг общего доступа для нескольких по-

токов. Существует несколько типов событий, каждый из которых

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

состоянии в случае, если соответствующий флаг установлен.

События могут быть мануальными (manual) и единичными

(single), соответственно оповещающие о том что событие произошло

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

событие сбрасывается системой автоматически. Тип события

указывается при его создании.

2. Мьютекс ( mutex , mutual exclusion — взаимное исключение).

Поток может получить мьютекс в собственное владение. При этом

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

поток не освободит его. Таким образом, в любой момент времени

мьютекс может принадлежать только одному потоку, что исключает

конфликты между потоками. Вместе с тем поток, являющийся

владельцем мьютекса , может попытаться стать владельцем мьютекса

повторно. Если поток присваивал себе мьютекс несколько раз, он

обязан освободить его такое же количество раз и это расценивается как

одно oбpaщение . Вызовы, предназначенные для работы с мьютексами

, перечислены в таблице.

Мьютекс находится в сигнальном состоянии в случае, если он

никому не принадлежит. Если мьютекс больше не нужен, его можно

освободить при помощи вызова ReleaseMutex .

3. Семафор — это объект синхронизации, содержащий в себе

счетчик. При создании семафора необходимо указать начальное

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

значение счетчика уменьшается на единицу. Когда значение счетчика

Page 53: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

становится равным нулю, семафор становится недоступным для каких-

либо потоков.

Семафор находится в сигнальном состоянии, если его счетчик

больше нуля. Чтобы освободить занятый вами ранее семафор,

используйте вызов ReleaseSemaphore . При этом счетчик семафора

будет увеличен на единицу.

Другие объекты синхронизации

Критические секции работают приблизительно как мьютексы ,

однако их нельзя использовать для синхронизации работы нескольких

процессов. Критическая секция ограничивает доступ к некоторому

участку кода для нескольких потоков, принадлежащих одному и тому

же процессу, работают быстрее, чем мьютексы .

Чтобы использовать критическую секцию, необходимо создать в

глобальной памяти переменную CRITICAL_SECTION. После этого

программа должна один раз обратиться к функции

InitializeCriticalSection . В начале участка кода, доступ к которому

требуется ограничить, необходимо разместить обращение к функции

EnterCriticalSection . В конце критического участка кода следует

разместить обращение к функции LeaveCriticalSection .

Блокированные переменные. Windows позволяет организовать

работу программы таким образом, чтобы к некоторым переменным в

любой момент времени мог обращаться только один поток. Для этого

служат так называемые блокированные вызовы. Например, вызов

InternetlockedIncrement.

Таймер синхронизации ( waitable timer ) является еще одним

способом вызова функции АРС.

Оповещение об изменении ( change notification ) — это

специальный объект, который переходит в сигнальное состояние в

случае, если содержимое дискового каталога изменяется. Чтобы

создать оповещение об изменении, необходимо обратиться к функции

F i ndFirstChangeNotification .

Дискриптор консоли переходит в сигнальное состояние в

случае, если в стандартном потоке ввода находятся данные, которые

необходимо прочитать.

Системные вызовы (system calls) – это интерфейс между

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

Они создают, удаляют и используют различные объекты,

главные из которых – процессы и файлы. Пользовательская программа

запрашивает сервис у операционной системы, осуществляя системный

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

регистры определенными параметрами и осуществляют прерывание

процессора, после чего управление передается обработчику данного

Page 54: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

вызова, входящему в ядро операционной системы. Цель таких

библиотек – сделать системный вызов похожим на обычный вызов

подпрограммы.

Основное отличие состоит в том, что при системном вызове

задача переходит в привилегированный режим или режим ядра (kernel

mode).

Поэтому системные вызовы иногда еще называют

программными прерываниями, в отличие от аппаратных прерываний,

которые чаще называют просто прерываниями.

В этом режиме работает код ядра операционной системы,

причем исполняется он в адресном пространстве и в контексте

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

имеет полный доступ к памяти пользовательской программы, и при

системном вызове достаточно передать адреса одной или нескольких

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

областей памяти для результатов вызова.

2.6 Лабораторная работа 6 «Задачи по управлению памятью»

Рекомендуемая литература: 5, 6.

Перечень дополнительных ресурсов: 3, 4. Цель: Освоить на практике использование

Задание: Основные задачи управления памятью.

Основная память (она же ОЗУ) является важнейшим ресурсом,

эффективное использование которого решающим образом влияет на

общую производительность системы.

Для однозадачных ОС управление памятью не является

серьезной проблемой, поскольку вся память, не занятая системой под

собственные нужды, может быть отдана в распоряжение

единственного пользовательского процесса. Процедуры управления

памятью решают следующие задачи:

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

запуске и освобождение этой памяти при завершении процесса;

обеспечение настройки запускаемой программы на

выделенные адреса памяти;

управление выделенными областями памяти по запросам

программы пользователя (например, освобождение части памяти перед

запуском порожденного процесса).

Совершенно иначе обстоят дела в многозадачных ОС.

Суммарные требования к объему памяти всех одновременно

работающих в системе программ, как правило, превышают имеющийся

Page 55: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

в наличии объем основной памяти. В этих условиях ОС не имеет

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

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

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

почти полностью застопорить работу ОС, которая большую часть

времени будет заниматься записью и чтением с диска.

К основным задачам, которые должна решать подсистема

управления памятью многозадачной ОС, добавляются следующие:

предоставление процессам возможностей получения и

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

эффективное использование ограниченного объема

основной памяти для удовлетворения нужд всех работающих

процессов, в том числе с использованием дисков как расширения

памяти;

изоляция памяти процессов, исключающая случайное или

намеренное несанкционированное обращение одного процесса к

областям памяти, занимаемым другим процессом;

предоставление процессам возможности обмена данными

через общие области памяти.

Классификация методов распределения памяти

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

1.1 Распределение памяти фиксированными разделами

Простейший способ управления оперативной памятью состоит в

том, что память разбивается на несколько областей фиксированной

величины, называемых разделами. Такое разбиение может быть

выполнено вручную оператором во время старта системы или во время

ее установки. После этого границы разделов не изменяются.

Очередной новый процесс, поступивший на выполнение,

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

разделу

Подсистема управления памятью в этом случае выполняет

следующие задачи:

Сравнивает объем памяти, требуемый для вновь поступившего

процесса, с размерами свободных разделов и выбирает подходящий

раздел;

Осуществляет загрузку программы в один из разделов и

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

может задать раздел, в котором ее следует выполнять. Это позволяет

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

машинный код, настроенный на конкретную область памяти.

При очевидном преимуществе -- простоте реализации, данный

Page 56: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

метод имеет существенный недостаток -- жесткость. Так как в каждом

разделе может выполняться только один процесс, то уровень

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

Независимо от размера программы она будет занимать весь раздел.

Так, например, в системе с тремя разделами невозможно выполнять

одновременно более трех процессов, даже если им требуется совсем

мало памяти. С другой стороны, разбиение памяти на разделы не

позволяет выполнять процессы, программы которых не помещаются

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

нескольких разделов.

Такой способ управления памятью применялся в ранних

мультипрограммных ОС. Однако и сейчас метод распределения

памяти фиксированными разделами находит применение в системах

реального времени, в основном благодаря небольшим затратам на

реализацию. Детерминированность вычислительного процесса систем

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

требования к памяти, а иногда и моменты запуска) компенсирует

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

1.2 Распределение памяти динамическими разделами

В этом случае память машины не делится заранее на разделы.

Сначала вся память, отводимая для приложений, свободна. Каждому

вновь поступающему на выполнение приложению на этапе создания

процесса выделяется вся необходимая ему память (если достаточный

объем памяти отсутствует, то приложение не принимается на

выполнение и процесс для него не создается). После завершения

процесса память освобождается, и на это место может быть загружен

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

оперативная память представляет собой случайную

последовательность занятых и свободных участков (разделов)

произвольного размера. Состояние памяти в различные моменты

времени при использовании динамического распределения. Так, в

момент t0 в памяти находится только ОС, а к моменту t1 память

разделена между 5 процессами, причем процесс П4, завершаясь,

покидает память. На освободившееся от процесса П4 место

загружается процесс П6, поступивший в момент t3.

Функции операционной системы, предназначенные для

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

Ведение таблиц свободных и занятых областей, в которых

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

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

просмотр таблицы свободных областей и выбор раздела, размер

которого достаточен для размещения кодов и данных нового процесса.

Page 57: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

Выбор раздела может осуществляться по разным правилам, например:

«первый попавшийся раздел достаточного размера», «раздел,

имеющий наименьший достаточный размер» или «раздел, имеющий

наибольший достаточный размер».

Загрузка программы в выделенный ей раздел и корректировка

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

что программный код не перемещается во время выполнения, а значит,

настройка адресов может быть проведена единовременно во время

загрузки.

После завершения процесса корректировка таблиц свободных и

занятых областей.

По сравнению с методом распределения памяти

фиксированными разделами данный метод обладает гораздо большей

гибкостью, но ему присущ очень серьезный недостаток --

фрагментация памяти. Фрагментация -- это наличие большого числа

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

(фрагментов). Настолько маленького, что ни одна из вновь

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

хотя суммарный объем фрагментов может составить значительную

величину, намного превышающую требуемый объем памяти.

Распределение памяти динамическими разделами лежит в

основе подсистем управления памятью многих мультипрограммных

операционных системах 60-70-х годов, в частности такой популярной

операционной системы, как OS/360.

1.3 Перемещаемые разделы

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

перемещение всех занятых участков в сторону старших или младших

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

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

при распределении памяти динамическими разделами в данном случае

она должна еще время от времени копировать содержимое разделов из

одного места памяти в другое, корректируя таблицы свободных и

занятых областей. Эта процедура называется сжатием. Сжатие может

выполняться либо при каждом завершении процесса, либо только

тогда, когда для вновь создаваемого процесса нет свободного раздела

достаточного размера. В первом случае требуется меньше

вычислительной работы при корректировке таблиц свободных и

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

Так как программы перемещаются по оперативной памяти в

ходе своего выполнения, то в данном случае невозможно выполнить

настройку адресов с помощью перемещающего загрузчика. Здесь

более подходящим оказывается динамическое преобразование адресов.

Page 58: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

Хотя процедура сжатия и приводит к более эффективному

использованию памяти, она может потребовать значительного

времени, что часто перевешивает преимущества данного метода.

Концепция сжатия применяется и при использовании других

методов распределения памяти, когда отдельному процессу выделяется

не одна сплошная область памяти, а несколько несмежных участков

памяти произвольного размера (сегментов). Такой подход был

использован в ранних версиях OS/2, в которых память распределялась

сегментами, а возникавшая при этом фрагментация устранялась путем

периодического перемещения сегментов.

2. Управление виртуальной памятью

В многозадачном режиме кроме активного процесса имеются

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

данном случае в распоряжение программ предоставляется виртуальная

оперативная память. Использование виртуальной памяти

осуществляется за счет модулей ос и аппаратных схем процессора. В

настоящее время существует 3 схемы распределения виртуальной

памяти.

2.1 Страничный способ распределения виртуальной памяти

При таком способе все фрагменты программы, на которые она

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

Оперативная память разбивается на физические страницы, а программа

на виртуальные. Часть виртуальных страниц программы размещается в

оперативной памяти, а часть на внешней, на диске. При обращении к

виртуальной странице, не оказавшейся в данный момент в оперативной

памяти, возникает прерывание и управление передается диспетчеру

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

диспетчер памяти выбирает для замещения ту страницу на которой не

было ссылки на протяжении длительного времени.

Преимущества: устранение фрагментации памяти, т.е. страницы

одинакового размера.

Недостатки: программа разбивается на страницы случайно, без

учета логической связи, это приводит к потерям времени на

межстраничные переходы.

В ОС Windows память может быть увеличена до 4 Гб, а размер

страниц до 4 Кб.

2.2 Сегментный способ распределения виртуальной памяти

Виртуально - адресное пространство делится на сегменты с

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

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

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

подыскивает ос непрерывный участок определенного размера. Если в

Page 59: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

оперативной памяти недостаточно места для загрузки сегмента, то

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

подкачки. ОС (в частности диспетчер памяти) подбирает для выгрузки

сегмент, который не использовался наиболее длительное время. В

оперативной памяти для каждого сегмента хранятся информационные

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

- о месте расположения сегмента (в оперативной памяти или на

жестком диске);

- права доступа;

- отметка об обращении к сегменту (т.е. давно или недавно

использовался сегмент).

Преимуществом является то, что это был первый способ

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

устанавливать права доступа к сегментам.

Недостатки: потеря процессорного времени на загрузку

сегментов и на обработку информационных структур,

информационные структуры требовали для себя памяти,

дефрагментация памяти.

2.3 Сегментно-страничный способ распределения виртуальной

памяти

В данном способе программа разбивается на логически-

законченные части, а сегменты на страницы и адрес страницы состоит

из номера сегмента, при этом сегмент при загрузке в оперативную

память размещается целиком, но страницы одного сегмента могут

занимать несмежные страницы.

Преимущества: сокращается время для загрузки страниц, но

требуются вычислительные ресурсы для хранения информационных

структур - способ используется в дорогих ос.

3. Подсистема управления памятью в ОС MS-DOS

MS-DOS - это ОС, работающая в реальном режиме процессора

i86, что предполагает использование адресного пространства размером

всего лишь 1 Мб. На самом деле, в компьютерах IBM гарантируется

наличие лишь 640 Кб основной памяти, старшие же адреса памяти

заняты под BIOS и видеопамять, хотя среди них попадаются

разрозненные куски оперативной памяти, называемые UMB (верхний

блок памяти).

Адрес в реальном режиме записывается в формате [сегмент :

смещение], однако здесь сегмент - это не селектор, адресующий строку

таблицы сегментов, а просто номер параграфа памяти (1 параграф = 16

байт). Поэтому можно считать, что в MS-DOS используются только

физические адреса.

Page 60: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

В принципе, программы, работающие в MS-DOS, могут

получить доступ к памяти за пределами 1 Мб, но для этого требуется

специальный драйвер расширенной памяти.

Поскольку делить имеющуюся память между несколькими

процессами не приходится, распределение получается бесхитростное.

Нижнюю часть памяти занимают модули ОС: обработчики

прерываний, резидентная часть интерпретатора команд, драйверы

устройств. Некоторые системные программы могут быть ради

экономии загружены в верхний блок памяти (выше 640 Кб). Все, что

остается в середине, может быть предоставлено процессу

пользователя.

Для пущей экономии памяти некоторые нерезидентные модули

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

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

которой потребуется вся имеющаяся память.

Часть системной памяти и вся область пользователя разбита на

прилегающие друг к другу блоки, размер которых кратен параграфу.

Перед началом каждого блока памяти размещается блок управления

памятью (MCB, Memory Control Block), который занимает один

параграф и содержит следующие данные:

признак, определяющий, последний ли это блок памяти или

за ним будут еще блоки (соответственно буква `Z' или `M');

адрес PSP программы, владеющей этим блоком (0 означает

свободный блок);

размер блока в параграфах;

имя программы-владельца (до 8 символов); это поле

избыточно (зная PSP программы, можно найти имя ее файла), оно

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

параграфа MCB.

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

нужд или по запросу программы пользователя, она просматривает

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

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

занятый соответствующим владельцем. Если выделяется не весь

свободный блок, то после выделенного блока система записывает еще

один MCB, описывающий свободный остаток блока.

При освобождении блока система записывает 0 в поле владельца

MCB. Если с одной или с двух сторон от освобождаемого блока лежат

свободные блоки, то два или три свободных блока сливаются в один.

При запуске программы система выделяет ей два блока памяти:

сначала небольшой блок для переменных среды, затем самый большой

Page 61: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

среди оставшихся свободных блоков для самой программы (блок PSP).

Обычно этот блок занимает всю свободную память. Такое решение

приемлемо, поскольку других претендентов на память нет.

Почему блок среды выделяется раньше, чем блок PSP?

При завершении программы система просматривает все блоки

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

завершаемая программа. Исключением является случай завершения с

установкой резидента, при этом блок PSP не освобождается, но

уменьшается до указанного размера. В дальнейшем этот блок остается

занятым до перезагрузки системы.

MS-DOS предоставляет в распоряжение пользователя функции,

позволяющие выполнять основные действия с блоками памяти.

· Выделение блока указанного размера. Если свободного блока

достаточной величины не имеется, то система возвращает

максимальный размер, который может быть выделен.

· Освобождение ранее выделенного блока.

· Изменение размера блока. Уменьшение блока возможно

всегда, увеличение - только в том случае, если после данного блока

расположен свободный блок достаточного размера.

Одним из немногих случаев, когда эти функции оказываются

полезны, является запуск порожденного процесса. Система должна

иметь достаточно свободного места, чтобы разместить блок среды и

блок PSP загружаемой программы. Однако, как было сказано выше,

вся свободная память обычно отдается под блок PSP текущей

программы. Поэтому прежде чем запускать порожденный процесс,

программа должна уменьшить свой собственный блок PSP, оставив

себе необходимый минимум.

Проанализировав общие принципы управления памятью, видно,

что в простейших системах нет свопинга или страничной организации

памяти. Программа, загруженная в память, остается там до своего

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

чем одному процессу, в то время как другие поддерживают

многозадачность.

2.7 Лабораторная работа 7 «Типы файлов: обычные файлы,

специальные файлы, каталоги. Логическая организация файла.

Физическая организация и адрес файла»

Рекомендуемая литература: 5, 6.

Перечень дополнительных ресурсов: 4. Цель: изучение типов файлов и их особенностей.

Page 62: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

Задание: 1. Создать файлы и каталоги в ОС MSDOS и командном

процессоре в ОС Windows.

2. Создать файлы и каталоги с помощью Far и Total Commander.

3. Создать файлы и каталоги в ОС QNX

4. Облачные вычисления. Создать файлы и каталоги.

2.8 Лабораторная работа 8 «Управление доступом к файлам и

каталогам. Защита от несанкционированного доступа»

Рекомендуемая литература: 6.

Перечень дополнительных ресурсов: 4.

Цель: изучение управления доступом к файлам.

Общие сведения: Групповые политики – это набор правил,

обеспечивающих инфраструктуру, в которой администраторы

локальных компьютеров и доменных служб Active Directory могут

централизовано развертывать и управлять настройками пользователей

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

операционной системы, аудита, системного реестра, параметров

безопасности, установки программного обеспечения и прочие

параметры развертываются и обновляются в рамках домена при

помощи параметров объектов групповой политики GPO (Group Policy

Object). Групповые политики являются компонентом операционной

системы Windows и основываются на тысячах отдельных параметров

политик, иначе говоря, политик, определяющих определённую

конфигурацию для своего применения.

Задание:

1. В виртуальной машине Oracle Virtual Box на основе Windows

Server 2012 R2 создать сервер.

2. В виртуальной машине Oracle Virtual Box на основе Windows

10 создать рабочую станцию.

3. На сервере создать учетные записи пользователей с

отличающимися правами.

4. С рабочей станции проверить заданные в п.3 ограничения для

пользователей.

2.9 Лабораторная работа 9 «Многоуровневая модель файловой

системы. Работа c файлами и каталогами в среде Linux»

Рекомендуемая литература: 6.

Page 63: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

Перечень дополнительных ресурсов: 4.

Цель: изучение многоуровневой модели файловой системы.

Задание: 1. Создать в домашнем каталоге ОС Linux каталог учебного

заведения Sibadi.

2. Создать в каталоге Sibadi каталоги c фамилией и именем

пользователя.

3. Создать в каждом из них по несколько файлов.

4. Выполнить команды по созданию, копированию,

перемещению, переименованию и удалению папок и файлов, по

проверке и изменению атрибутов файлов и папок.

2.10 Лабораторная работа 10 «Реализация многозадачности.

Основные особенности и характеристики ОС семейства QNX»

Рекомендуемая литература: 5, 6.

Перечень дополнительных ресурсов: 2, 3, 4.

Цель: реализация многозадачности и изучение основные

особенности и характеристики ОС семейства QNX.

Задание: Освоить на практике использование системных вызовов

по созданию и завершению процессов и потоков в ОС QNX.

Компилировать и выполнить программы, реализующие

многопоточность в ОС QNX.

Page 64: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

3. ВОПРОСЫ ДЛЯ ПОДГОТОВКИ К ИТОГОВОЙ ФОРМЕ

КОНТРОЛЯ

1. Основные понятия, назначение и функции ОС.

2. Назначение операционных систем (ОС).

3. Роль и место ОС в архитектуре вычислительных систем.

4. Эволюция вычислительных и операционных систем.

5. Основные функции ОС.

6. Особенности современного этапа развития ОС.

7. Архитектурные особенности ОС.

8. Понятие ядра ОС.

9. Монолитное ядро.

10. Микроядерная архитектура.

11. Многоуровневые системы.

12. Виртуальные машины.

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

14. Режимы работы операционных систем.

15. Однозадачный режим (однозадачные однопользовательские

операционные системы).

16. MS-DOS 6. Функциональные возможности. Модули ОС и

размещение их в памяти и на дисках.

17. MS-DOS. Загрузка ОС и организация выполнения команд.

BIOS, основные функции.

18. Прерывания верхнего уровня DOS. Вызовы функций DOS

через механизм прерываний. Виды обращений к DOS.

19. MS-DOS 6. Файловая система. Файлы и каталоги. Основные

команды для выполнения операций над файлами и каталогами.

Командные файлы.

20. Многозадачный режим (многозадачные

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

21. Основные функции многозадачных многопользовательских

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

22. Реализация многозадачности. Виртуальные машины среды

Windows.

23. Режим разделения времени. Сетевой режим.

24. Режим распределенной обработки. Режим реального

времени.

25. Универсальные ОС.

26. ОС специального назначения.

27. Пользовательский интерфейс операционных систем.

28. Командный интерфейс.

Page 65: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

29. Оконный интерфейс (WIMP-интерфейс).

30. Речевой интерфейс (SILK-интерфейс).

31. Назначение и функции операционных оболочек. Far

Manejer, Total Commander.

32. Возможности Far Manejer. Возможности Total Commander.

33. Пакет сервисных программ: назначение, основные

возможности.

34. Тенденции развития операционных систем.

35. Мультипрограммирование в системах пакетной обработки.

36. Мультипрограммирование в системах разделения времени.

37. Мультипрограммирование в системах реального времени.

38. Мультипрограммирование при мультипроцессорной

обработке.

39. Роль прерываний при мультипрограммировании.

Концепция прерывания. Основные виды прерываний. Обработка

прерываний. Векторы прерываний.

40. Управление программами. Планирование приоритетов.

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

Win32.

42. Основные особенности и характеристики ОС семейства

Linux.

43. Задачи. Разновидности задач: процессы и потоки (нити).

Основные свойства задач: приоритет, контекст, статус,

реентерабильность. Дескриптор задачи. Многозадачность.

44. Понятие событийного вида обработки. Обработчики

событий.

45. Кооперативная (невытесняющая) и вытесняющая

многозадачность.

46. Создание процессов и потоков.

47. Управляющие структуры процессов и потоков.

48. Состояния процесса. Критерии планирования.

49. Цели и свойства алгоритмов планирования. Виды

планирования. Алгоритмы планирования.

50. Ресурс. Классификация ресурсов. Дисциплины

распределения ресурсов: одноочередные (FIFO, LIFO, RR) и

многоочередные (бесприоритетные и приоритетные).

51. Концепция виртуализации. Виртуализация ресурсов,

примеры. Понятие виртуальной машины. Менеджер виртуальных

машин.

52. Очередь готовых задач. Приоритеты задач: статические и

динамические.

53. Основные алгоритмы планирования задач: алгоритмы,

Page 66: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

основанные на квантовании (разделения времени), алгоритмы,

основанные на приоритетах (невытесняющая и вытесняющая

многозадачность), комбинированные алгоритмы.

54. Взаимосвязанные задачи. Способы их коммуникации:

сообщения, почтовые ящики.

55. Конкурирующие задачи. Проблемы синхронизации: тупики,

инверсия приоритетов, гонки.

56. Понятие критической секции. Способы синхронизации:

семафоры, исключающие семафоры (мьютексы), мониторы.

57. Взаимодействие и синхронизация процессов и потоков.

58. Независимые и взаимодействующие вычислительные

процессы.

59. Цели и средства синхронизации. Пример необходимости

синхронизации. Механизмы синхронизации. Проблемы

синхронизации. Механизмы межпроцессного взаимодействия.

4. ЭКЗАМЕНАЦИОННЫЕ БИЛЕТЫ

1) Операционные системы семейства Windows. Аппаратные

требования. Архитектура. Состав.

2) Тенденции развития операционных систем.

3) Реализация многозадачности. Виртуальные машины среды

Windows.

4) Классификация ОС. Режимы работы операционных систем.

Однозадачный режим

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

6) Особенности организации некоторых файловых систем

FAT, FAT32, VFAT, NTFS, HPFS, UFS.

7) Управление памятью. Файловые системы FAT, FAT32,

NTFS. Управление программами.

8) Архитектурные особенности ОС.

9) Управление процессами, памятью, вводом-выводом,

файлами их функции. Роль и место ОС в архитектуре вычислительных

систем. Понятие ядра ОС.

10) Операционные системы реального времени. Основные

функции операционных систем реального времени. Аппаратные

требования. Архитектура. Состав.

11) Режимы работы операционных систем (однозадачный

режим, многозадачный режим, режим разделения времени, сетевой

режим, режим распределенной обработки, режим реального времени).

Page 67: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

12) Файловая система. Цели и задачи файловой системы. Типы

файлов. Атрибуты файла. Доступ к файлам. Операции над файлами.

Иерархическая структура каталогов. Операции над директориями.

13) Универсальные ОС. ОС специального назначения.

14) Файлы. Имена файлов. Типы файлов: обычные файлы,

специальные файлы, каталоги. Логическая организация файла.

Физическая организация и адрес файла. Дескриптор файла.

Управление доступом к файлам и каталогам. Защита от

несанкционированного доступа. Многоуровневая модель файловой

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

процесса. Архитектура современной файловой системы.

15) Компоненты сети. Работа в сети. Установка сетевой

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

16) Методы распределения памяти с использованием дискового

пространства. Понятие виртуальной памяти. Механизмы реализации

виртуальной памяти. Свопинг. Стратегии управления виртуальной

памятью. Принцип кэширования данных. Многопроцессорный режим

работы. Совместное использование памяти. Защита памяти.

17) Пользовательский интерфейс операционных систем.

Командный интерфейс.

18) Общие принципы управления памятью в однопрограммных

и мультипрограммных ОС. Распределение фиксированными,

динамическими разделами и перемещаемыми разделами. Сегментное,

страничное и сегментно-страничное распределение. Особенности

эффективного использования таблиц страниц.

19) Оконный интерфейс (WIMP-интерфейс). Речевой интерфейс

(SILK-интерфейс).

20) Задачи по управлению памятью. Типы адресации. Функции

ОС по управлению памятью. Типы адресов: виртуальные и

физические. Методы распределения памяти без использования

дискового пространства. Мультипрограммирование с фиксированными

разделами. Мультипрограммирование с переменными разделами.

Фрагментация памяти. Перемещаемые разделы.

21) Функции ОС по управлению памятью. Типы адресов:

виртуальные и физические.

22) Взаимосвязанные задачи. Способы их коммуникации:

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

синхронизации: тупики, инверсия приоритетов, гонки. Понятие

критической секции. Способы синхронизации: семафоры,

исключающие семафоры (мьютексы), мониторы.

23) Методы распределения памяти без использования

дискового пространства. Фрагментация памяти. Перемещаемые

Page 68: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

разделы.

24) Независимые и взаимодействующие вычислительные

процессы. Цели и средства синхронизации. Пример необходимости

синхронизации. Механизмы синхронизации. Проблемы

синхронизации. Механизмы межпроцессного взаимодействия.

25) Методы распределения памяти с использованием дискового

пространства. Понятие виртуальной памяти.

26) Очередь готовых задач. Приоритеты задач: статические и

динамические. Основные алгоритмы планирования задач: алгоритмы,

основанные на квантовании, алгоритмы, основанные на приоритетах

(невытесняющая и вытесняющая многозадачность), комбинированные

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

сообщения, почтовые ящики. Конкурирующие задачи.

27) Страничное распределение. Сегментное распределение.

Странично-сегментное распределение.

28) Ресурс. Классификация ресурсов. Дисциплины

распределения ресурсов: одноочередные (FIFO, LIFO, RR) и

многоочередные (бесприоритетные и приоритетные). Концепция

виртуализации. Виртуализация ресурсов, примеры. Понятие

виртуальной машины. Менеджер виртуальных машин.

29) Принцип кэширования данных. Кэш-память.

30) Создание процессов и потоков. Управляющие структуры

процессов и потоков. Состояния процесса. Критерии планирования.

Цели и свойства алгоритмов планирования. Виды планирования.

Алгоритмы планирования.

31) Многопроцессорный режим работы. Совместное

использование памяти. Защита памяти.

32) Задачи. Разновидности задач: процессы и потоки (нити).

Основные свойства задач: приоритет, контекст, статус,

реентерабильность. Дескриптор задачи. Многозадачность. Понятие

событийного вида обработки. Обработчики событий. Кооперативная

(невытесняющая) и вытесняющая многозадачность.

33) Файловая система. Имена файлов. Типы файлов: обычные

файлы, специальные файлы, каталоги. Логическая организация файла.

Физическая организация и адрес файла.

34) Управление программами. Планирование приоритетов.

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

Основные особенности и характеристики ОС семейства Linux.

35) Управление доступом к файлам и каталогам. Защита от

несанкционированного доступа.

36) Мультипрограммирование при мультипроцессорной

обработке. Роль прерываний при мультипрограммировании.

Page 69: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

Концепция прерывания. Основные виды прерываний. Обработка

прерываний. Векторы прерываний.

37) Файловая система. Файлы и каталоги. Основные команды

для выполнения операций над файлами и каталогами. Командные

файлы.

38) Назначение и функции операционных оболочек Far Manejer,

Total Commander. Возможности Far Manejer. Total Commander. Пакет

сервисных программ: назначение, основные возможности.

39) Принципы построения операционных систем (принцип

модульности, перемещаемости, генерируемости, переносимости).

40) Дисковые массивы RAID.

41) Многоуровневая модель файловой системы. Архитектура

современной файловой системы.

42) Мультипрограммирование в системах пакетной обработки,

в системах разделения времени и в системах реального времени.

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

системы семейства Windows. Основные функции многозадачных

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

44) ОС специального назначения. Пользовательский интерфейс

операционных систем. Командный интерфейс. Оконный интерфейс

(WIMP-интерфейс). Речевой интерфейс (SILK-интерфейс).

Page 70: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ

1. Алексеев, А.П. Информатика 2015 [Электронный ресурс] :

учебное пособие. — Электрон. дан. — М. : СОЛОН-Пресс, 2015. —

400 с. — Режим доступа: http://e.lanbook.com/book/64921 — Загл. с

экрана.

2. Кудинов, Ю.И. Основы современной информатики

[Электронный ресурс] : учебное пособие / Ю.И. Кудинов, Ф.Ф.

Пащенко. — Электрон. дан. — СПб. : Лань, 2011. — 256 с. — Режим

доступа: http://e.lanbook.com/book/68468 — Загл. с экрана.

3. Кудинов, Ю.И. Практикум по основам современной

информатики [Электронный ресурс] : учебное пособие / Ю.И.

Кудинов, Ф.Ф. Пащенко, А.Ю. Келина. — Электрон. дан. — СПб. :

Лань, 2011. — 351 с. — Режим доступа: http://e.lanbook.com/book/

68471 — Загл. с экрана.

4. Осмоловский, С.А. Стохастическая информатика:

инновации в информационных системах [Электронный ресурс] : . —

Электрон. дан. — М. : Горячая линия-Телеком, 2011. — 320 с. —

Режим доступа: http://e.lanbook.com/book/5184 — Загл. с экрана.

5. Проскурин, В. Г. Защита в операционных системах [Текст]:

учебное пособие / В. Г. Проскурин. - М.: Горячая линия - Телеком,

2014. - 192 с. - (Учебное пособие для вузов). - Библиогр.: с. 189-190.

6. Стащук, П.В. Краткое введение в операционные системы

[Электронный ресурс] : учебное пособие. — Электрон. дан. — М. :

ФЛИНТА, 2014. — 124 с. — Режим доступа:

http://e.lanbook.com/book/63042 — Загл. с экрана.

ПЕРЕЧЕНЬ РЕСУРСОВ СЕТИ «ИНТЕРНЕТ»,

РЕКОМЕНДУЕМЫХ ДЛЯ ОСВОЕНИЯ ДИСЦИПЛИНЫ

1. Операционная система Linux Длительность: 26:36:00

http://www.intuit.ru/studies/courses/37/37/info

2. Безопасность компьютерных систем на основе

операционных систем Windows 2003/XP Длительность: 13:02:00

http://www.intuit.ru/studies/courses/1003/203/info

3. Основы работы в ОС Linux Длительность: 41:47:00

http://www.intuit.ru/studies/courses/91/91/info

4. Операционные системы реального времени для 32-

разрядных микропроцессоров (QNX) Длительность: 11:01:00

http://www.rtsoft-training.ru/?p=600067

5. Администрирование ОС Linux Длительность: 10:36:00

http://www.intuit.ru/studies/courses/23/23/info

Page 71: H I ? J : P B H G Gbek.sibadi.org/fulltext/bn1151.pdf · 2019-01-26 · операционных систем и оболочек; ... История развития ОС. Основные

6. Введение в облачные вычисления Длительность: 12:28:00

http://www.intuit.ru/studies/courses/673/529/info

7. Основы операционных систем. Практикум Длительность:

15:33:00 http://www.intuit.ru/studies/courses/2249/52/info

8. Операционная система UNIX Длительность: 18:12:00

http://www.intuit.ru/studies/courses/22/22/info

9. Основы операционных систем Длительность: 19:18:00

http://www.intuit.ru/studies/courses/2192/31/info