Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
007.docx
Скачиваний:
105
Добавлен:
13.03.2016
Размер:
7.55 Mб
Скачать

185

1.1. Поняття операційної системи.

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

1.2. Процеси і потоки.

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

Компьютерная программа сама по себе это только пассивная совокупность инструкций, в то время как процесс — это непосредственное выполнение этих инструкций. Т.о. процесс - это выполнение пассивных инструкций компьютерной программы на процессоре ЭВМ

Часто процессом называют выполняющуюся программу и все её элементы: адресное пространство, глобальные переменные, регистры, стек, открытые файлы и т. д.

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

Поток определяет последовательность исполнения кода в процессе. При запуске программы ОС всегда создает один поток – главный. Именно в нем программа начинает свое выполнение. В зависимости от типа программы и настроек компилятора в главном потоке может выполняться функция main, WinMain, _tmain или функция, заданная пользователем. Главный поток живет до тех пор, пока самая первая функция в стеке не завершила свое выполнение.

Многопоточность — свойство платформы или приложения, состоящее в том, что процесс, порождённый в операционной системе, может состоять из нескольких потоков, выполняющихся «параллельно», то есть без предписанного порядка во времени.

Виды многопоточности:

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

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

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

1.3. Планування. Управління ресурсами, боротьба з взаємоблокуванням. Управління пам’яттю.

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

Типы планирования:

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

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

  • долгосрочное (выработка решения о том, добавлять ли процесс к выполняемым);

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

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

- выделения свободного ресурса одному из процессов, запросивших ресурс для использования;

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

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

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

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

  • Не должно возникать ситуации бесконечного ожидания входа в критическую секцию

  • Когда в критическом разделе нет ни одного процесса, любой процесс, запросивший возможность входа в к/р должен его немедленно получить.

  • Не должно делаться никаких предположений ни о количестве процессов, ни об их относительной скорости выполнения

  • Любой процесс должен находиться в к/р ограниченное время

Алгоритм Петерсона - программный алгоритм взаимного исключения потоков исполнения кода, который изначально был сформулирован для 2-х поточного случая, но может быть обобщён для произвольного количества потоков. Алгоритм условно называется программным, т.к. не основан на использовании специальных команд процессора для запрета прерываний, блокировки шины памяти и т.д., используются только общие переменные памяти и цикл для ожидания входа в критическую секцию исполняемого кода. Глобальная переменная flag указывает положение каждого процесса по отношению к взаимоисключению, а глобальная переменная turn разрешает конфликты одновременности.

Алгоритм Деккера гарантирует корректное решение проблемы взаимоисключения для двух процессов. Управляющие переменные ResourceProc1, ResourceProc1 обеспечивают взаимоисключение, переменная ProcessNum исключает возможность бесконечного откладывания. Если оба процесса пытаются получить доступ к ресурсу, то процесс, номер которого указан в ProcessNum, продолжает проверку возможности доступа к ресурсу (внешний цикл ожидания ресурса). Другой же процесс в этом случае снимает свой запрос на ресурс, ожидает своей очереди доступа к ресурсу (внутренний цикл ожидания) и возобновляет свой запрос на ресурс. Алгоритм Деккера может быть обобщен на случай произвольного количества процессов, однако, такое обобщение приводит к заметному усложнению выполняемых действий. Кроме того, программное решение проблемы взаимоисключения процессов приводит к нерациональному использованию процессорного времени ЭВМ (процессу, ожидающему освобождения ресурса, постоянно требуется процессор для проверки возможности продолжения – активное ожидание (busy wait)). Наличие аппаратной поддержки взаимоисключений позволяет упростить алгоритмы и повысить их эффективность точно так же, как это происходит и в других областях программирования. Мы уже обращались к общепринятому hardware для решения задачи реализации взаимоисключений, когда говорили об использовании механизма запрета/разрешения прерываний. Многие вычислительные системы помимо этого имеют специальные команды процессора, которые позволяют проверить и изменить значение машинного слова или поменять местами значения двух машинных слов в памяти, выполняя эти действия как атомарные операции.

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

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

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

В широком смысле понятие "файловая система" включает:

  • совокупность всех файлов на диске,

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

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

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

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

Рисунок 5 Общая модель файловой системы

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

Рисунок 6 Функции физического уровня файловой системы

V - размер блока N - номер первого блока файла S - смещение логической записи в файле

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

Виды файловых систем

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

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

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

Как и любая другая система, NTFS делит все полезное место на кластеры - блоки данных, используемые единовременно. NTFS поддерживает почти любые размеры кластеров - от 512 байт до 64 Кбайт, неким стандартом же считается кластер размером 4 Кбайт

При установке NTFS, диск разделяется на две неравные части: первая отводиться под MFT (Master File Table - общая таблица файлов), называется MFT - зоной, вторую часть занимают собственно данные. MFT лежит в начале диска, каждая запись в MFT соответствует какому-либо файлу и занимает около 1 Kb. По своей сути это каталог всех файлов находящихся на диске.

  • EXT 2 (The Second Extended File System)

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

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

  • EXT 3

является усовершенствованной версией файловой системы ext2. Эти усовершенствования предоставляют следующие преимущества:

1)Доступность

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

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

2) Целостность данных

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

3) Скорость

Несмотря на то, что некоторые данные записываются неоднократно, в большинстве случаев ext3 работает быстрее, чем ext2, так как журналирование ext3 позволяет оптимизировать перемещение головки жёсткого диска. Вы можете оптимизировать скорость, выбирая из трёх режимов журналирования, но учтите, что это влияет на уровень целостности данных.