DAY06 (Старые версии Машбука или нечто подобное)

2019-05-08СтудИзба

Описание файла

Файл "DAY06" внутри архива находится в следующих папках: Старые версии Машбука или нечто подобное, Лекции (Машечкин 1998). Документ из архива "Старые версии Машбука или нечто подобное", который расположен в категории "". Всё это находится в предмете "операционные системы" из 3 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Онлайн просмотр документа "DAY06"

Текст из документа "DAY06"

6

Лекция №6

Лекция 6

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

  • пакетная ОС;

  • ОС разделения времени;

  • ОС реального времени.

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

Управление подкачкой и буфером ввода.

Под термином «подкачка» подразумеваются две симметричные операции:

  • Откачка. Перемещение всего процесса или его части во внешнюю память;

  • Подкачка. Загрузка всего процесса или его части из ВЗУ в ОЗУ.

Необходимость в подкачке возникает тогда, когда программе требуется добраться до той информации, которая в данный момент не находится в RAM. (Пример: в программе происходит безусловный переход на ту точку программы, которая находится не в ОЗУ, а на ВЗУ.) Откачка происходит тогда, когда требуется освободить кусок оперативной памяти, например, для того, чтобы загрузить новую задачу. Подходы к проблеме, что именно откачивать, различны. Они определяются той или иной операционной системой, в некоторых ОС устанавливаются опционально. Примеры подходов к откачке:

  1. Откачивать тот процесс, который дольше всего «занимал» CPU.

  2. Откачивать процесс, использующий наибольший объем ресурсов.

  3. В первую очередь откачивать те процессы (по тому или иному критерию, например по 1-му или 2-му), которые не являются задачами операционной системы.

Существует две схемы организации механизма «подкачки»:

  1. Swapping всего процесса. «Ленивый» способ. Просто организуется, но не эффективен.

  2. Swapping осуществляется некоторыми блоками данных. (Например, страницами или сегментами).

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

  1. Буфер ввода разделяется на две части:

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

  • буфер остальных задач.

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

  • выбираются все задачи подряд;

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

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

Управление разделяемыми ресурсами.

Здесь мы обозначим только проблему, потому что конкретные ее решения мы рассмотрим на примере ОС UNIX несколько позже.

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

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

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

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

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

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

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

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

Файловая система.

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

Основные свойства файлов, файловых систем:

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

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

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

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

  2. Закрытие файла. Закрытие файла - информация операционной системе о том, что работа с файлом завершена. При этом меняется статус доступа к файлу со стороны процессов. Операция закрытия файла осуществляется двумя функциями:

  • закрыть и сохранить текущее содержимое файла;

  • уничтожить файл.

  1. Создать новый файл. Функция создает новый файл. В некоторых ОС создание файла осуществляется по функции открытия файла.

  2. Чтение/запись. Обычно обмен с файлами может организовываться некоторыми блоками данных. С одной стороны, размеры этих блоков данных могут варьироваться программистом, с другой стороны реальные физические ресурсы также могут иметь блочную структура и, следовательно, определенный размер блока. Получается, что эффективность обменов, а, следовательно, и эффективность работы всей ВС в целом, в данном случае зависит от умения программиста, потому что именно он при использовании функций чтения/записи определяет длину блоков, которыми будет осуществляться обмен. Например, размер блока нашего жесткого диска равен 512 Кб, а мы читаем довольно приличный объем данных «порциями» по 128 Кб, то это значительно отразится на эффективности работы нашей программы, не смотря на то, что некоторые «умные» операционные системы пытаются сглаживать эти элементы неэффективности.

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

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5224
Авторов
на СтудИзбе
428
Средний доход
с одного платного файла
Обучение Подробнее