Файл: Функции операционных систем персональных компьютеров (История операционных систем ).pdf
Добавлен: 14.05.2023
Просмотров: 227
Скачиваний: 3
Рисунок 4. Наглядная иллюстрация драйвера
С внешними запоминающими устройствами взаимодействует часть операционной системы, называемая системой ввода-вывода, которая предоставляет всю информацию в виде непрерывной последовательности блоков фиксированного размера в распоряжение файловой системы - более высокоуровневого компонента операционной системы. Система ввода-вывода оперирует с физическими блоками диска, которые характеризуется физическим адресом (диск, цилиндр, сектор), в свою очередь файловая система имеет дело с логическими блоками, которые равны или кратны по размеру физическим блокам, и имеют простую адресацию.
Систему управления файлами делят на базисную подсистему, выделяющую пространство конкретным файлам, и логическую подсистему, использующую структуру дерева директорий для предоставления модулю базисной подсистемы необходимой информации по символическому имени файла и также отвечающую за разграничение доступа.
Примечательно, что абстракция «буква диска», используемая традиционно в операционных системах Windows для различия дисков и разделов друг от друга, в частности буквы «C» как диска на котором установлена операционная система, уходит корнями к MS-DOS, где буквы «A» и «B» зарезервированы для двух приводов гибких дисков, которая в свою очередь унаследовала это от CP/M в 1970-х, и, наконец от CP/CMS разработанной в 1967 году.
Управление памятью
Оперативная память является одним из самых важнейших ресурсов, требующих тщательного управления со стороны операционной системы. Проблема размещения в памяти программ, размер которых превышает имеющуюся в наличии свободную память появилась вместе с первым компьютером. Одним из решений является разбиение программы на части (оверлеи) ещё на этапе программирования. 0-ой оверлей начинал выполняться первым, вызывая после окончания следующий оверлей. Все оверлеи хранились на диске и перемещались между памятью и диском средствами операционной системы, однако разбиение программы на оверлеи и планирование их загрузки в оперативную память должен был осуществлять программист.
Развитие методов организации вычислительного процесса в этом направлении привело к появлению метода, известного под названием виртуальная память, которую можно предоставить программе размером превосходящую всю имеющуюся в системе реальную оперативную память. Пользователь пишет программы так, как будто в его распоряжении имеется однородная оперативная память большого объема, но в действительности все данные, используемые программой, хранятся на одном или нескольких разнородных запоминающих устройствах, обычно на дисках, и при необходимости частями загружаются («подкачиваются») в реальную память.
Менеджер виртуальной памяти позволяет операционной системе адресовать приложению память большую, чем объём ОЗУ, упрощает адресацию прикладным приложениям, рационально управлять ОЗУ компьютера, а также изолирует процессы друг от друга.
Процессы, планирование, многозадачность, многопоточность.
Процесс - программа, которая выполняется в текущий момент на компьютере. Стандарт ISO 9000:2000 определяет процесс как совокупность взаимосвязанных и взаимодействующих действий, преобразующих входящие данные в исходящие. Компьютерная программа сама по себе - это только пассивная последовательность инструкций, в то время как процесс - это непосредственное выполнение этих инструкций.
Каждому процессу выделяется изолированный сегмент памяти, который называется адресное пространство процесса, в котором также хранятся входные и выходные данные процесса.
Многозадачность – возможность операционной системы параллельной (или псевдопараллельной) обработки нескольких задач. Программа — наименьший элемент управляемого кода, которым управляет такой планировщик операционной системы. В многозадачной операционной системе все процессы выполняется по очереди, в каждый момент времени выполняется только один процесс. Вся информация о процессах хранится в таблице процессов, которая обычно организована в виде дерева, с базовым процессом в корневом узле, который запускается при загрузке операционной системы и порождает все прочие процессы.
Примитивные многозадачные среды обеспечивают чистое «разделение ресурсов», когда за каждой задачей закрепляется определённый участок памяти, и задача активизируется в строго определённые интервалы времени.
Более развитые многозадачные системы проводят распределение ресурсов динамически, когда задача стартует в памяти или покидает память в зависимости от её приоритета и от стратегии системы. Такая многозадачная среда обладает следующими особенностями:
- Каждая задача имеет свой приоритет, в соответствии с которым получает процессорное время и память;
- Система организует очереди задач так, чтобы все задачи гарантированно получили ресурсы, в зависимости от приоритетов и стратегии системы;
- Система организует обработку прерываний, по которым задачи могут активироваться, деактивироваться и удаляться;
- По окончании положенного кванта времени ядро временно переводит задачу из состояния выполнения в состояние готовности, отдавая ресурсы другим задачам. При нехватке памяти страницы (виртуальной памяти) невыполняющихся задач могут быть выгружены на диск, а потом, по требованию, загружены в оперативную память (подкачка страниц);
- Система обеспечивает защиту адресного пространства задачи от несанкционированного вмешательства других задач;
- Система распознаёт сбои и зависания отдельных задач и прекращает эти задачи, решает конфликты доступа к ресурсам и устройствам, не допуская тупиковых ситуаций общего зависания от ожидания заблокированных ресурсов;
- Система обрабатывает запросы реального времени;
- Система обеспечивает коммуникацию между процессами.
Многопоточность – возможность операционной системы выполнять один процесс с помощью нескольких параллельных потоков в общем адресном пространстве.
Поток выполнения - наименьшая единица обработки, исполнение которой может быть назначено ядром операционной системы. Реализация потоков выполнения и процессов в разных операционных системах отличается друг от друга, но в большинстве случаев поток выполнения находится внутри процесса. Несколько потоков выполнения могут существовать в рамках одного и того же процесса и совместно использовать ресурсы, такие как память, тогда как процессы не разделяют этих ресурсов. В частности, потоки выполнения разделяют инструкции процесса (его код) и его контекст (значения переменных, которые они имеют в любой момент времени).
В многопоточных операционных системах процесс по сути является оболочкой (контекстом) для потоков. В случае, если потоки выполнения требуют относительно сложного взаимодействия друг с другом, возможно проявление проблем многопоточности, таких как взаимные блокировки.
Многопоточное выполнение программы имеет следующие преимущества перед многозадачным:
- Упрощение программы в некоторых случаях за счёт использования общего адресного пространства;
- Меньшие относительно процесса временные затраты на создание потока;
К достоинствам многопоточного выполнения программы перед однопоточным можно отнести следующее:
- Упрощение программы в некоторых случаях, за счёт вынесения механизмов чередования выполнения различных слабо взаимосвязанных подзадач, требующих одновременного выполнения, в отдельную подсистему многопоточности;
- Повышение производительности процесса за счёт распараллеливания процессорных вычислений и операций ввода-вывода.
Межпроцессное взаимодействие (англ. inter-process communication, IPC) — обмен данными между потоками одного или разных процессов. Реализуется посредством механизмов, предоставляемых ядром операционной системы или процессом, использующим механизмы операционной системы и реализующим новые возможности IPC. Может осуществляться как на одном компьютере, так и между несколькими компьютерами сети. Из механизмов, предоставляемых операционной системой для взаимодействия процессов выделяют:
- механизмы обмена сообщениями;
- механизмы синхронизации;
- механизмы разделения памяти;
- механизмы удалённых вызовов (RPC).
Для оценки производительности различных механизмов IPC используют следующие параметры:
- пропускная способность (количество сообщений в единицу времени, которое ядро ОС или процесс способно обработать);
- задержки (время между отправкой сообщения одним потоком и его получением другим потоком).
Межпроцессное взаимодействие, наряду с механизмами адресации памяти, является основой для разграничения адресного пространства между процессами.
Сетевые функции операционных систем
Большинство современных операционных систем изначально разрабатываются для работы в вычислительных сетях и имеют встроенные сетевые функции, поэтому толкование сетевой операционной системы как системы ориентированной на работу с компьютерной сетью является историческим. Под сетевой операционной системой сейчас понимают специализированную операционного систему для сетевых устройств.
Причины, по которым компьютеры объединяют сеть:
- Необходимость совместного использования ресурсов, например, сетевой принтер или сетевая папка;
- Возможность ускорения вычислений, как альтернатива многопроцессорным компьютерам, распределённые вычисления, часто используются при компиляции или рендеринге больших проектов;
- Повышение отказоустойчивости системы создавая в сети дублирующие компьютеры;
- Возможность общения, электронная почта, телеконференции.
Вычислительные сети принято делить по территориальной распространённости, но к разным масштабам сети также применяются различные подходы для решения поставленных вопросов в рамках той или иной сети с различными протоколами:
Рисунок 5. Территориальное деление сетей
- WAN (Wide Area Network) – глобальная вычислительная сеть, покрывающая большие географические регионы;
- RAN (Regional Area Network) – региональная вычислительная сеть;
- MAN (Metropolitan Area Network) – городские сети между учреждениями в пределах одного или нескольких близлежащих городов;
- CAN (Campus Area Network) – кампусная сеть, объединяет локальные сети близко расположенных зданий;
- LAN (Local Area Network)– локальные сети, имеющие замкнутую инфраструктуру до выхода на поставщиков услуг;
- PAN (Personal Area Network) – персональная сеть, предназначенная для взаимодействия различных устройств, принадлежащих одному владельцу;
- BAN (Body Area Network) – Сеть надеваемых или имплантированных устройств;
- В последнее время стали еще выделять класс корпоративных сетей, их масштаб и структура определяются потребностями предприятий – владельцев.
Сетевая модель OSI (ГОСТ Р ИСО/МЭК 7498-1-99) – сетевая модель стека сетевых протоколов, посредствам которой различные сетевые устройства могут взаимодействовать друг с другом.
Горизонтальные уровни называют протоколами, а методы для вертикального взаимодействие соседних протоколов называют интерфейсом. Передача информации между компьютерами осуществляется только на канальном уровне, т.е. при отправке информации с любого уровня она по интерфейсам «опускается» до 1-ого канального уровня и передаётся на другой компьютер на котором в обратном порядке «поднимается» на свой уровень.
Рисунок 6. Модель OSI
Сокет (socket – разъём) – название программного интерфейса для обеспечения обмена данными между процессами. Сокет – это абстрактный объект, выступающий конечной точкой соединения.
В процессе обмена с помощью стека протоколов TCP/IP используются адреса и порты, каждая пара которых определяет сокет (mmm.nnn.ppp.qqq:xxxxx). В основном используется два сокета – сокет отправителя и сокет получателя.
Каждый процесс может создать серверный («слушающий») сокет и привязать его к какому-нибудь порту операционной системы. Слушающий процесс в основном находится в цикле ожидания и просыпается при появлении нового соединения.
Разграничение доступа
Основными понятиями процесса разграничения доступа к объектам операционной системы являются объект доступа, метод доступа к объекту и субъект доступа.
Объектом доступа называют любой элемент ОС, к которому необходимо ограничить доступ пользователей и других субъектов. Возможность доступа к объектам операционной системы определяется не только архитектурой ОС, но и текущей политикой безопасности. Под объектами доступа понимают, как аппаратные ресурсы (принтер, внешние накопители), так и программные ресурсы (файлы, программы, семафоры). Каждый объект доступа должен иметь уникальное имя, отличающее его от других объектов в системе, должен быть доступен через определенные и значимые операции.
Методом доступа к объекту называются предопределённые операции для каждого типа объектов. Например, МФУ может печатать или сканировать документы, считыватель магнитных карт может считывать, а для файлов могут быть определены методы доступа «чтение», «запись» и «добавление»
Субъектом доступа называют любую сущность, способную инициировать выполнение операций над объектами (обращаться к объектам по некоторым методам доступа). Обычно полагают, что множество субъектов доступа и множество объектов доступа не пересекаются. Несмотря на то что логичнее считать субъектом доступа именно пользователя, от имени которого выполняется процесс, иногда к субъектам доступа относят процессы, выполняющиеся в системе.