Файл: Функции операционных систем персональных компьютеров (История операционных систем ).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). В основном используется два сокета – сокет отправителя и сокет получателя.

Каждый процесс может создать серверный («слушающий») сокет и привязать его к какому-нибудь порту операционной системы. Слушающий процесс в основном находится в цикле ожидания и просыпается при появлении нового соединения.

Разграничение доступа

Основными понятиями процесса разграничения доступа к объектам операционной системы являются объект доступа, метод доступа к объекту и субъект доступа.

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

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

Субъектом доступа называют любую сущность, способную инициировать выполнение операций над объектами (обращаться к объектам по некоторым методам доступа). Обычно полагают, что множество субъектов доступа и множество объектов доступа не пересекаются. Несмотря на то что логичнее считать субъектом доступа именно пользователя, от имени которого выполняется процесс, иногда к субъектам доступа относят процессы, выполняющиеся в системе.