Что такое задача операционной системы

Задачи операционной системы

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

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

Функции ОС по управлению памятью в мультипрограммной системе следующие:

 отслеживание свободной и занятой памяти;

 выделение памяти процессам и освобождение памяти по завершении процессов;

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

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

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

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

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

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

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

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

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

Рис. 1. Типы адресов

Совокупность виртуальных адресов процесса называется виртуальным адресным пространством. Диапазон возможных адресов виртуального пространства у всех процессов является одним и тем же. Например, при использовании 32-разрядных виртуальных адресов этот диапазон задается границами 0000000016и FFFFFFFF16. Тем не менее каждый процесс имеет собственное виртуальное адресное пространство – транслятор присваивает виртуальные адреса переменным и кодам каждой программе независимо (рис. 2).

Рис. 2. Виртуальные адресные пространства нескольких программ

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

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

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

Рис. 3. Типы виртуальных адресных пространств:

а) плоское; б) сегментированное

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

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

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

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

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

Рис. 4. Схема динамического преобразования адресов

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

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

Необходимо различать максимально возможное виртуальное адресное пространство процесса и назначенное (выделенное) процессу виртуальное адресное пространство. В первом случае речь идет о максимальном размере виртуального адресного пространства, определяемом архитектурой компьютера, на котором работает ОС, и, в частности, разрядностью его схем адресации (32-битная, 64-битная и т. п.). Например, при работе на компьютерах с 32-разрядными процессорами Intel Pentium операционная система может предоставить каждому процессу виртуальное адресное пространство до 4 Гбайт (232). Однако это значение представляет собой только потенциально возможный размер виртуального адресного пространства, который редко на практике бывает необходим процессу. Процесс использует только часть доступного ему виртуального адресного пространства.

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

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

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

Рис. 5. Соотношение объемов виртуального адресного пространства и физической памяти:а) виртуальное адресное пространство превосходит объем физической памяти; б) виртуальное адресное пространство меньше объема физической памяти

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

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

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

Обычно виртуальное адресное пространство процесса делится на две непрерывные части: системную и пользовательскую. В некоторых ОС (например, Windows NT, OS/2) эти части имеют одинаковый размер – по 2 Гбайт, хотя в принципе деление может быть и другим, например 1 Гбайт – для ОС и 2 Гбайт – для прикладных программ. Часть виртуального адресного пространства каждого процесса, отводимая под сегменты ОС, является идентичной для всех процессов. Поэтому при смене активного процесса заменяется только вторая часть виртуального адресного пространства, содержащая его индивидуальные сегменты, как правило, – коды и данные прикладной программы. Архитектура современных процессоров отражает эту особенность структуры виртуального адресного пространства, например в процессорах Intel Pentium существует два типа системных таблиц – одна для описания сегментов, общих для всех процессов, а другая для описания индивидуальных сегментов данного процесса. При смене процесса первая таблица остается неизменной, а вторая заменяется новой.

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

Статьи к прочтению:

03 — Архитектура ЭВМ. Базовые элементы операционной системы

Похожие статьи:

Операционная система (ОС) — это пакет системных программ, выполняющих управление прикладными программами и управляющих работой устройств вычислительной…

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

Понятие, значение и основные задачи
операционной системы

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

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

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

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

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

Этой программной прослойкой и является операционная система.

Операционная система

Если сравнить компьютер с человеком, то частями тела компьютера будут процессор, материнская плата, оперативная память, запоминающее устройство, блок питания и другие «железки», входящие в его состав (подробнее об устройстве компьютера читайте здесь). Все эти части в сборе представляют собой единый «компьютерный организм» (тело). Непосредственно общаться с аппаратной частью компьютера человеку очень тяжело (ну что ты возьмешь с простых железок). Интеллектом компьютера является операционная система. Она заставляет все части компьютерного организма правильно взаимодействовать между собой. Она же взаимодействует и с окружающей средой, в частности, с человеком.

Наличие у компьютера операционной системы позволяет пользователю комфортно общаться с компьютером. Ему (пользователю) не приходится иметь дело непосредственно с процессором, оперативной памятью или другим частям организма и упрашивать эти железки что-то сделать. Человек обращается к разуму компьютера, к его операционной системе, которая понимает собеседника «с полуслова» и с легкость заставляет подчиненную ей аппаратную часть компьютера выполнять все просьбы пользователя.

Таким образом, операционная система компьютера решает три важные задачи:

1) обеспечивает функционирование аппаратного обеспечения компьютера как единого целого, управляет ресурсами процессора, оперативной памяти и других устройств системы;

2) взаимодействует с пользователем, интерпретирует его действия (команды) в понятный компьютеру язык и заставляет его выполнить их;

3) позволяет приспосабливать компьютер к решению определенного круга задач путем установки и управления работой соответствующих программ.

Как и человеческий разум, операционную систему можно развивать и совершенствовать, устанавливая дополнительные программы. В нашем примере эти программы можно сравнить со своеобразными новыми навыками и умениями у человека. Например, чтобы научить компьютер играть с вами в шахматы, необходимо установить в операционную систему соответствующую программу – игру «Шахматы». Чтобы работать с текстом, операционную систему необходимо дополнить текстовым процессором Word или какой-нибудь другой аналогичной программой.

Одни и те же задачи могут решаться при помощи разных программ. У пользователя практически всегда есть выбор. В Интернете существует достаточно много каталогов программного обеспечения.

Для лучшего понимания сообщу, что при создании компьютера порядок действий специалиста-компьютерщика следующий:

1. Физически сложить компьютер, соединив в единое целое материнскую плату, процессор, оперативную память и другие устройства (создать тело компьютера);

2. Установить на компьютер операционную систему (снабдить тело интеллектом);

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

Операционная система Windows

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

Компания Microsoft, разрабатывающая эту операционную систему, на продаже лицензий к ней заработала большие деньги.

Каждая из версий Windows (XP, Vista, 7, 8, 10, 11) является универсальной и кроме основных утилит для управления компьютером, уже содержат в своем составе базовое программное обеспечение. После установки любой из этих систем пользователь может решать основные задачи, не устанавливая дополнительные программы.

В частности, смотреть видео и слушать музыку можно при помощи проигрывателя Windows Media, для просмотра страниц Интернета предназначен встроенный браузер Internet Explorer или Microsoft Edge, работать с текстом позволит Блокнот и WordPad и т.д. Но, как уже было сказано выше, одни и те же задачи можно решать при помощи разных программ.

Поэтому если вам не нравится встроенный в операционную систему проигрыватель Windows Media, вы всегда можете установить другой проигрыватель (их существует очень много), вместо Internet Explorer можно установить Firefox, Opera или любой другой браузер, и т.д. Не нужно ограничивать себя использованием только штатных средств Windows. Альтернативных программных решений очень много. О том, как устанавливать программы в Windows, читайте здесь.

НАПИСАТЬ АВТОРУ

Основы работы на персональном компьютере

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

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

Как узнать дату установки Windows

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

Например, если Вы приобрели б/у компьютер или ноутбук, по дате установки на нем Windows можно примерно предположить, сколько времени он был в эксплуатации.

Посмотреть дату установки Windows иногда хочется просто ради интереса или по каким-то другим причинам. Сделать это можно несколькими способами.

Как научиться пользоваться мышкой

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

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

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

Активировать таймер выключения компьютера можно как штатными средствами Windows, так и при помощи специальных программ.

Как включить гибернацию в Windows 10

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

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

Таким образом, гибернация обеспечивает максимальную экономию электроэнергии и быстрое возвращение компьютера в состояние, в котором была прекращена его работа.

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

Как зайти в безопасный режим Windows

Безопасный режим (англ. Safe Mode) — специальный режим работы Windows, позволяющий устранять некоторые неполадки в работе операционной системы, а также изменять ее настройки, недоступные в обычном режиме.

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

Информатика — Операционная система (ОС) — Основные задачи ОС — Интерфейс пользователя — Хараткеристики, оболочки

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

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

Прикладные программы могут работать только в среде какой-либо операционной системы. Для каждой разновидности ОС разрабатывается свой набор прикладных программ (приложений).

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

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

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

Основные задачи ОС

1. поддержка работы программ; обеспечение их взаимодействия с аппаратной частью и друг с другом;

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

3. обработка ошибочных ситуаций; защита информации;

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

5. поддержка сети.

Интерфейс пользователя

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

Простейшая разновидность ИП — интерфейс командной строки. Он предполагает управление компьютером посредством ввода команд с клавиатуры.

Ярким примером служит коммандная строка в MS-DOS:

C:USERSDIPLOM> copy head.htm C:USERSBAKALAVR

1 файл скопирован

Более удобный вид ИП — текстовый оконный интерфейс. Он не требует набора команд на клавиатуре, а сводит управление к нажатию отдельных клавиш или кнопок мыши при выборе управляющих действий в меню и диалоговых окнах.

text_win_int

Примером может служить инструментальная оболочка Borland Pascal:

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

Примером может служить окно папки «Мой компьютер»:

Gr_win_int

—-

Характеристики ОС

1. разрядность ( для ПЭВМ 8-разрядные, 16-разрядные, 32-разрядные, 64-разрядные ОС);

2. число программ, одновременно выполняемых под управлением ОС (одно — и многозадачные ОС).
Многозадачные ОС поддерживают параллельное выполнение нескольких программ, работающих в рамках одной вычислительной системы, в один момент времени. Многозадачность бывает корпоративная и вытесняющая.
При наличии корпоративной многозадачности приложения совместно используют процессор, периодически передавая его друг другу. Если какое-то приложение откажется освободить процессор, система ничего не сможет с этим поделать.
Если используется вытесняющая многозадачность, то операционная система полностью контролирует все приложения и распределяет между ними процессорное время, тем самым сильно понижая вероятность «зависания» системы при ошибках в работе программ.
Однозадачные ОС поддерживают режим выполнения только одной программы в отдельный момент времени;

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

4. тип пользовательского интерфейса: интерфейс командной строки, текстовый оконный интерфейс, графический оконный интерфейс пользователя (ИКС, ТИП, ГИП);

5. требование к аппаратным ресурсам;

7. надежность (устойчивость в работе, защищенность данных от несанкционированного доступа );

8. обеспеченность прикладными программами;

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

10. количество поддерживаемых процессоров: однопроцессорные, многопроцессорные;
Многопроцессорные ОС, в отличие от однопроцессорных, поддерживают использование нескольких процессоров для решения одной задачи;

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

12. способ использования оперативной памяти;
Различают два способа работы с памятью: линейный адресный — ОС работает со всей системной памятью, как с единым непрерывным пространством; сегментарный — ОС работает с небольшим объёмом доступной без специальных средств оперативной памяти.

Наиболее распространенные ОС для ЭВМ

Основными характеристиками операционных систем являются:

Первый представитель этого семейства — система MS- DOS (Microsoft Disk Operating System-дисковая операционная система фирмы Microsoft)была выпущена в 1981 году в связи с появлением IBM PC.
Операционные системы семейства DOS являются однозадачными 16 разрядными и обладают следующими особенностями:

Интерфейс командной строки
Модульность структуры, упрощающая перенос системы на другие типы ЭВМ
Небольшой объём доступной без специальных средств оперативной памяти(640 Кбайт)
Низкие аппаратные требования, большой объём прикладных программ.

Существенным недостатком операционных систем семейства DOS является отсутствие средств защиты от несанкционированного доступа к ресурсам ПК и ОС, а также низкая надёжность, отсутствие сетевых возможностей. В настоящее время MS DOS входит в состав OC Windows 95.

НАЧАЛЬНЫЕ СВЕДЕНИЯ ОБ MS-DOS

Сама операционная система MS-DOS (да и любая другая операционная систем тоже) состоит из нескольких частей:

Загрузчик операционной системы — это небольшая программа, хранящаяся в первом секторе любой системной дискеты (дискеты с записанной на ней операционной системой) или винчестера, которая загружает в память два системных файла io.sys и msdos.sys. Именно загрузчику операционной системы передает управление BIOS при начальном старте машины.

Файлы io.sys и msdos.sys при работе постоянно находятся в памяти компьютера: io.sys осуществляет дополнение базовой системы ввода-вывода в зависимости от потребностей данной версии операционной системы, a msdos.sys реализует все стандартные функции данной версии. Помимо этого, msdos.sys загружает в память командный процессор.

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

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

Рассмотрим теперь принципы организации хранения информации в компьютере.

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

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

Оболочки операционных систем обеспечивают:

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

Наибольшую популярность среди пользователей получила оболочка Norton Commander (NC). Этот программный продукт позволяет видеть файлы и каталоги на двух постоянно отображаемых панелях нескольких типов и удобно манипулировать файлами с помощью функциональных клавиш и мыши.

Оболочка DOS Navigator полностью копирует исходную идею NC, но имеет дополнительные функции. Она поддерживает работу с большим количеством архиваторов, позволяет выделять файлы различных типов цветом, имеет более удобные средства для межкомпьютерной связи через модем.

Графические оболочки для Windows — Dash Board for Windows, Dash Board for Windows 95, DeskBar 95 for Windows 95 — позволяют пользователю быстро создавать меню запуска программ и вызова документов, а также контролировать использование системных ресурсов.

Оболочки Shez и RAR предназначены для управления сжатием (архивированием) и распаковкой файлов в среде MS-DOS. Оболочки WinRAR и WinZiр предназначены для управления сжатием (архивированием) и распаковкой файлов в графической среде. Оболочки NDOS, Norton Desktop for Windows предназначены для управления файлами.

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

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

Лабораторные работы по данному предмету можно найти вот тут:

  • оригинал: pages.cs.wisc.edu/~remzi/OSTEP/Homework/homework.html
  • оригинал: github.com/remzi-arpacidusseau/ostep-code
  • моя личная адаптация: github.com/bykvaadm/OS/tree/master/ostep

Работа программы

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

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

Фон-Неймановская модель вычисления

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

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

Операционная система

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

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

Для того чтобы позволять пользователям давать команды операционной системе и таким образом использовать возможности виртуальной машины (такие как: запуск программы, выделение памяти, доступ к файлу и так далее), операционная система предоставляет некоторый интерфейс, называемый API (application programming interface) и к которому можно делать вызовы (call). Типичная операционная система дает возможность сделать сотни системных вызовов.

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

Виртуализация CPU

Рассмотрим следующую программу:
(https://www.youtube.com/watch?v=zDwT5fUcki4)

image

Она не выполняет каких-то особых действий, по сути всё что она делает — вызывает функцию spin(), задача которой циклическая проверка времени и возврат, после того как прошла одна секунда. Таким образом, она повторяет бесконечно строку, которую пользователь передал в качестве аргумента.

Запустим эту программу, и передадим ей аргументом символ “А”. Результат получается не особо интересный — система просто выполняет программу, которая периодически выводит на экран символ “А”.

Теперь попробуем вариант, когда запущено множество экземпляров одной и той же программы, но выводящие разные буквы, чтобы было понятнее. В этом случае, результат получится несколько иной. Не смотря на то, что у нас один процессор, программа выполняется одновременно. Как же так получается? А получается что операционная система, не без помощи возможностей оборудования, создает иллюзию. Иллюзию того, что в системе есть несколько виртуальных процессоров, превращая один физический процессор в теоретически бесконечное количество и тем самым позволяя, программам на вид выполняться одновременно. Такую иллюзию и называют Виртуализацией CPU.

Подобная картина порождает много вопросов, например, если несколько программ желают запуститься одновременно, то какая именно будет запущена? За этот вопрос отвечают “политики” ОС. Политики используются во многих местах ОС и отвечают на подобные вопросы, а так же являются базовыми механизмами, которые ОС воплощает. Отсюда и роль ОС как ресурсного менеджера.

Виртуализация памяти

Теперь давайте рассмотрим память. Физическая модель памяти в современных системах представляется как массив байт. Для чтения из памяти нужно указать адрес ячейки, чтобы получить к ней доступ. Чтобы записать или обновить данные нужно также указать данные и адрес ячейки, куда их записать.

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

Вызов malloc()

Рассмотрим следующую программу, которая выделяет область памяти, используя вызов malloc() (https://youtu.be/jnlKRnoT1m0):

image

Программа делает несколько вещей. Во-первых, выделяет некоторый объем памяти (строка 7), затем выводит адрес выделенной ячейки (строка 9), записывает ноль в первый слот выделенной памяти. Далее программа входит в цикл, в котором инкрементирует значение, записанное в памяти по адресу в переменной “p”. Также она выводит идентификатор процесса самого себя. Идентификатор процесса уникален для каждого запущенного процесса. Запустив же несколько копий, мы наткнемся на интересный результат: В первом случае, если не сделать ничего и просто запустить несколько копий, то адреса будут разными. Но это же не попадает под нашу теорию! Верно, поскольку в современных дистрибутивах включена по умолчанию функция рандомизации памяти. Если ее отключить, получим ожидаемый результат — адреса памяти у двух одновременно работающих программ будут совпадать.

image

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

Согласованность

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

Рассмотрим следующую программу:

image

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

Запустим эту программу с аргументом 1000. Как вы уже могли догадаться, результатом должно стать 2000, поскольку каждый поток инкрементировал переменную 1000 раз. Однако все не так просто. Попробуем запустить программу с числом повторений на порядок больше.

image

Подавая на вход число, например, 100000 мы ожидаем увидеть на выходе число 200000. Однако, запустив число 100000 несколько раз, мы не только не увидим правильный ответ, но и получим разные неправильные ответы. Разгадка кроется в том, что для увеличения числа требуется три операции — извлечение числа из памяти, инкрементация и затем запись числа обратно. Поскольку все эти инструкции не осуществляются атомарно (все одновременно), такие странные вещи могут происходить. Эта проблема называется в программировании race condition — состояние гонки. Когда неизвестные силы в неизвестный момент могут повлиять на выполнение каких-либо ваших операций.

Что такое задача операционной системы

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

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

Операционная система

Операционная система — это комплекс взаимосвязанных программ, который взаимодействует как интерфейс между приложениями и пользователями.

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

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

Операционная система управляет процессами. Одна из задач операционной системы — распределение ресурсов между процессами, конкурирующими за эти ресурсы.

На пальцах. Допустим есть у нас компьютер с 2 ГБ оперативной памяти. На компьютере установлен антивирус Касперского и MS офис. Например мы работаем только в экселе. Итого что происходит:
1. Запускается ОС, запускаются процессы необходимые для стабильной работы ОС.
2. Запускается процесс Касперского (у меня он называется AVP21.2 Kaspersky Anti-Virus Service).
3. Вы запускаете эксель, он запускает свой процесс.
4. Вся оперативная память начинает забиваться так как антивирусу и экселю нужны ресурсы, а часть ресурсов уже занята процессами ОС.
5. Возникает конкуренция за ресурсы.

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

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

Контекст процесса — информация о текущем состоянии процесса, которая включает описание:

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

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

  • Планирование ресурса.
  • Раздача ресурсов.
  • Отслеживание состояния и учет ресурсов.
  • Решение конфликтов между ресурсами.

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

Пользователь взаимодействует с операционной системой через пользовательский интерфейс (UI — user interface).

Пользовательские интерфейсы бывают:
1. CLI — интерфейс командной строки.
2. GUI — графический пользовательский интерфейс.

Пример интерфейса командной строки.

Маршрутизация в Windows

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

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

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

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

  1. Ведет учет занятой и свободной оперативной памяти.
  2. Выделяет память процессам и освобождает память при завершении процесса.
  3. Настраивает адресно-зависимые части кодов процесса на физические адреса выделенной памяти.
  4. Защищает память выделенную определенному процессу.
  5. Работает с виртуальной памятью.

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

Использование виртуальной памяти позволяет работать с процессорами адресное пространство которых больше, чем оперативная память и увеличивать количество выполняемых одновременно процессов.

Из-за этого довольно сильно тормозит Windows 10 без SSD, так как операционная система часто использует виртуальную память, а скорости обычного HDD диска не хватает для быстрой реакции, поэтому начинаются тормоза.

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

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

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

Файл, по сути, это некоторая последовательность байт которая имеет определенное имя. Тесть виртуальный объект.

Задачи файловой системы:

  1. Предоставление наборов данных в виде иерархической структуры файлов и каталогов.
  2. Преобразование символьных имен файлов в физические адреса данных на диске.
  3. Организация совместного доступа к файлам.
  4. Защита файлов от несанкционированного доступа.

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

Позволяет работать процессам с ресурсами.

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

Управление памятью

Рассмотрим управление памятью в операционных системах подробнее.

Виртуальное адресное пространство процесса

  • Символьные имена — идентификаторы переменных и команд в программе, присваиваемые программистом.
  • Виртуальные адреса — условные адреса, присваиваемые транслятором.
  • Физические адреса — номера ячеек оперативной памяти, в которых находятся переменные и команды.
  1. Метки операторов заменяют для программиста адреса, по которым команды находятся в памяти.
  2. Имена переменных заменяют адреса, по которым данные находятся в памяти.
  3. Имя программы заменяет адрес, по которому первая команда программы находится в памяти.
Физическая память

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

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

Виртуальное адресное пространство

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

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

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

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

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

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

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

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

Память бывает разделяемая и неразделяемая.

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

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

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

Для каждого процесса виртуальное адресное пространство делиться на две части:

  1. Системная часть – одинакова для всех процессов и содержит ядро операционной системы и разделяемые различными объектами процессы.
  2. Пользовательская часть – индивидуальна для каждого процесса и содержит коды и данные прикладной программы.

Системная часть разделяется на вытесняемую и не вытесняемую.

По сути: если памяти не хватает, то вытесняемая память переходит из оперативной памяти на жесткий диск. Как я писал ранее это очень любимая тема Windows 10.

Подведем итог. В операционной система подсистема управления памятью решает следующие задачи:

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

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

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

Управление устройствами в операционных системах

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

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

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

Операционная система взаимодействует с подсистемой ввода-вывода с помощью:

  • Контроллеров.
  • Драйверов.

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

Драйвер это программный модуль, который управляет устройством.

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

То есть у нас есть некоторое устройство. Управляет этим устройством контроллер. После того как мы устанавливаем на компьютер необходимый драйвер контроллер устройства может «общаться» с компьютером через контроллер с помощью драйвера.

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

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

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

Подсистема ввода-вывода согласовывает скорость обмена и кеширования данных с контроллером устройства.

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

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

Структура подсистемы ввода-вывода

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

Анатолий Бузов

Обучаю HTML, CSS, PHP. Создаю и продвигаю сайты, скрипты и программы. Занимаюсь информационной безопасностью. Рассмотрю различные виды сотрудничества.

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

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

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

Понятие операционной системы

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

Понятие операционной системы

Понятие операционной системы

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

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

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

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

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

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

  • Управляет всеми ресурсами системы. Операционная система обеспечивает функционирование и правильную координацию процессов устройства;
  • Упрощает для пользователя работу с устройством.

Для вас подарок! В свободном доступе до 28 августа

Гарантированно найдете выгодную работу за 1-2 дня

Гарантированно найдете выгодную работу за 1-2 дня

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

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

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

Некоторые типы OС имеют и другие функции.

Классификация операционных систем

Существует несколько классификаций ОС.

В зависимости от способа организации вычислений:

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

В зависимости от типа ядра:

  • OС с монолитным ядром;
  • OС с микроядром;
  • OС с гибридным ядром.

Команда GeekBrains совместно с международными специалистами по развитию карьеры подготовили материалы, которые помогут вам начать путь к профессии мечты.

Подборка содержит только самые востребованные и высокооплачиваемые специальности и направления в IT-сфере. 86% наших учеников с помощью данных материалов определились с карьерной целью на ближайшее будущее!

Скачивайте и используйте уже сегодня:

Александр Сагун

Топ-30 самых востребованных и высокооплачиваемых профессий 2022

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

doc иконка

Подборка 50+ ресурсов об IT-сфере

Только лучшие телеграм-каналы, каналы Youtube, подкасты, форумы и многое другое для того, чтобы узнавать новое про IT

ТОП 50+ сервисов и приложений от Geekbrains

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

В зависимости от количества единовременно решаемых задач:

  • однозадачные;
  • многозадачные;

В зависимости от количества пользователей:

  • однопользовательские;
  • многопользовательские.

Как правильно выбрать электронную почту

В зависимости от количества поддерживаемых процессоров:

  • однопроцессорные
  • многопроцессорные

В зависимости от возможности работы в компьютерной сети:

  • локальные – автономные ОС, которые не позволяют работать с компьютерными сетями;
  • сетевые – ОС с поддержкой компьютерных сетей.

В зависимости от роли в сетевом взаимодействии:

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

В зависимости от типа лицензии:

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

В зависимости от сферы использования:

  • ОС мэйнфреймов – больших компьютеров;
  • ОС серверов;
  • ОС персональных компьютеров;
  • OC мобильных устройств;
  • встроенные OC;
  • OC маршрутизаторов.

Наиболее популярные операционные системы

Рассмотрим основные виды и примеры операционных систем, которые наиболее актуальны на данный момент.

Windows

Является лидером среди операционных систем для компьютеров, ноутбуков и планшетов. Среди всех пользователей 90 % используют именно Windows. Дата выхода первой версии OС приходится на 1985 год.

На сегодняшний день последняя номерная версия — Windows 11 является заключительной. И какие-либо изменения относительно ОС со стороны разработчиков направлены лишь на функционал и внешний вид выпущенной версии.

  • Платная и закрытая ОС.
  • Возможность установки большого количества аппаратного обеспечения.
  • Высокое качество интерфейса.
  • Простота управления.
  • Управление различными устройствами ввода.
  • Высокая скорость работы.
  • Удобная установка ПО.
  • Отличный уровень безопасности (но не в старых версиях).
  • Разнообразие программ и игр.

Приглашаем вас на бесплатный онлайн-интенсив «Путь в IT»! За несколько часов эксперты GeekBrains разберутся, как устроена сфера информационных технологий, как в нее попасть и развиваться.

Александр Волчек CEO GeekBrains

Интенсив «Путь в IT» поможет:

  • За 3 часа разбираться в IT лучше, чем 90% новичков.
  • Понять, что действительно ждет IT-индустрию в ближайшие 10 лет.
  • Узнать как по шагам c нуля выйти на доход в 200 000 ₽ в IT.

При регистрации вы получите в подарок:

Тест, в котором вы оцениваете свои качества и узнаете, какая профессия в IT подходит именно вам

doc иконка

«Критические ошибки, которые могут разрушить карьеру»

Собрали 7 типичных ошибок, четвертую должен знать каждый!

Тест «Есть ли у вас синдром самозванца?»

Мини-тест из 11 вопросов поможет вам увидеть своего внутреннего критика

Гайд по профессиям в IT

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

Хотите сделать первый шаг и погрузиться в мир информационных технологий? Регистрируйтесь и смотрите интенсив:

Mac OS

Данная ОС встраивается в компьютеры и ноутбуки фирмы Apple. По типу лицензии является закрытой операционной системой, установка которой осуществляется только на устройства бренда.

Благодаря удобству и эстетике эта ОС завоевала 10 % пользователей домашних персональных компьютеров и ноутбуков.

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

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

Linux

Бесплатная и открытая ОС, предназначенная для компьютеров и ноутбуков. Данная операционная система популярна в кругу небольшого количества пользователей. Трудно настраиваемый, не пригодный для игр вариант. Кроме того, игры в принципе редко разрабатываются для данной системы.

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

Наиболее популярные операционные системы

Наиболее популярные операционные системы

Операционная система

Операцио́нная систе́ма, сокр. ОС (англ. operating system, OS ) — комплекс управляющих и обрабатывающих программ, которые, с одной стороны, выступают как интерфейс между устройствами вычислительной системы и прикладными программами, а с другой стороны — предназначены для управления устройствами, управления вычислительными процессами, эффективного распределения вычислительных ресурсов между вычислительными процессами и организации надёжных вычислений. Это определение применимо к большинству современных операционных систем общего назначения.

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

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

В большинстве вычислительных систем операционная система является основной, наиболее важной (а иногда и единственной) частью системного программного обеспечения. С 1990-х годов наиболее распространёнными операционными системами являются системы семейства Windows и системы класса UNIX (особенно Linux и Mac OS).

Содержание

Функции

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

Компоненты операционной системы:

Понятие

Существуют две группы определений операционной системы: «набор программ, управляющих оборудованием» и «набор программ, управляющих другими программами». Обе они имеют свой точный технический смысл, который связан с вопросом, в каких случаях требуется операционная система.

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

Операционные системы нужны, если:

  • вычислительная система используется для различных задач, причём программы, решающие эти задачи, нуждаются в сохранении данных и обмене ими. Из этого следует необходимость универсального механизма сохранения данных; в подавляющем большинстве случаев операционная система отвечает на неё реализацией файловой системы. Современные системы, кроме того, предоставляют возможность непосредственно «связать» вывод одной программы со вводом другой, минуя относительно медленные дисковые операции;
  • различные программы нуждаются в выполнении одних и тех же рутинных действий. Например, простой ввод символа с клавиатуры и отображение его на экране может потребовать исполнения сотен машинных команд, а дисковая операция — тысяч. Чтобы не программировать их каждый раз заново, операционные системы предоставляют системные библиотеки часто используемых подпрограмм (функций);
  • между программами и пользователями системы необходимо распределять полномочия, чтобы пользователи могли защищать свои данные от несанкционированного доступа, а возможная ошибка в программе не вызывала тотальных неприятностей;
  • необходима возможность имитации «одновременного» исполнения нескольких программ на одном компьютере (даже содержащем лишь один процессор), осуществляемой с помощью приёма, известного как «разделение времени». При этом специальный компонент, называемый планировщиком, делит процессорное время на короткие отрезки и предоставляет их поочерёдно различным исполняющимся программам (процессам);
  • оператор должен иметь возможность так или иначе управлять процессами выполнения отдельных программ. Для этого служат операционные среды — оболочка и наборы утилит — они могут являться частью операционной системы.

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

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

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

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

Большинство программ, как системных (входящих в операционную систему), так и прикладных, исполняются в непривилегированном («пользовательском») режиме работы процессора и получают доступ к оборудованию (и, при необходимости, к другим ресурсам ядра, а также ресурсам иных программ) только посредством системных вызовов. Ядро исполняется в привилегированном режиме: именно в этом смысле говорят, что система (точнее, её ядро) управляет оборудованием.

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

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

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

Описанная задача может различаться в зависимости от типа архитектуры ядра и способа её реализации.

Объекты ядра ОС:

Эволюция и основные идеи

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

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

Пакетный режим

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

Разделение времени и многозадачность

Уже пакетный режим в своём развитом варианте требует разделения процессорного времени между выполнением нескольких программ.

Необходимость в разделении времени (многозадачности, мультипрограммировании) проявилась ещё сильнее при распространении в качестве устройств ввода-вывода телетайпов (а позднее, терминалов с электронно-лучевыми дисплеями) (1960-е годы). Поскольку скорость клавиатурного ввода (и даже чтения с экрана) данных оператором много ниже, чем скорость обработки этих данных компьютером, использование компьютера в «монопольном» режиме (с одним оператором) могло привести к простою дорогостоящих вычислительных ресурсов.

Разделение времени позволило создать «многопользовательские» системы, в которых один (как правило) центральный процессор и блок оперативной памяти соединялся с многочисленными терминалами. При этом часть задач (таких как ввод или редактирование данных оператором) могла исполняться в режиме диалога, а другие задачи (такие как массивные вычисления) — в пакетном режиме.

Разделение полномочий

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

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

Реальный масштаб времени

Применение универсальных компьютеров для управления производственными процессами потребовало реализации «реального масштаба времени» («реального времени») — синхронизации исполнения программ с внешними физическими процессами.

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

Файловые системы и структуры

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

Файловая система — способ хранения данных на внешних запоминающих устройствах.

Существующие операционные системы

UNIX, стандартизация операционных систем и POSIX

К концу 1960-х годов отраслью и научно-образовательным сообществом был создан целый ряд операционных систем, реализующих все или часть очерченных выше функций. К ним относятся Atlas (Манчестерский университет), CTTS и ITSS (Массачусетский технологический институт, MIT), THE (Эйндховенский технологический университет), RS4000 (Университет Орхуса) и др. (всего эксплуатировалось более сотни различных ОС).

Наиболее развитые операционные системы, такие как OS/360 (IBM), SCOPE (CDC (англ.)) и завершённый уже в 1970-х годах Multics (MIT и Bell Labs), предусматривали возможность исполнения на многопроцессорных компьютерах.

Эклектичный характер разработки операционных систем привёл к нарастанию кризисных явлений, прежде всего, связанных с чрезмерными сложностью и размерами создаваемых систем. Системы были плохо масштабируемыми (более простые не могли использовать все возможности крупных вычислительных систем; более развитые неоптимально исполнялись на малых или не могли исполняться на них вовсе) и полностью несовместимыми между собой, их разработка и совершенствование затягивались.

Задуманная и реализованная в 1969 году Кеном Томпсоном при участии нескольких коллег (включая Денниса Ритчи и Брайана Кернигана), операционная система UNIX (первоначально UNICS, что обыгрывало название Multics) вобрала в себя многие черты более ранних систем, но обладала целым рядом свойств, отличающих её от большинства предшественниц:

  • простая метафорика (два ключевых понятия: вычислительный процесс и файл);
  • компонентная архитектура: принцип «одна программа — одна функция» плюс мощные средства связывания различных программ для решения возникающих задач («оболочка»);
  • минимизация ядра (кода, выполняющегося в «реальном» (привилегированном) режиме процессора) и количества системных вызовов;
  • независимость от аппаратной архитектуры и реализация на машиннонезависимом языке программирования (язык программирования Си стал побочным продуктом разработки UNIX);
  • унификация файлов.

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

В конце 1970-х годов сотрудники Калифорнийского университета в Беркли внесли ряд усовершенствований в исходные коды UNIX, включая работу с протоколами TCP/IP. Их разработка стала известна под именем BSD (Berkeley Software Distribution).

Задачу разработать независимую (от авторских прав Bell Labs) реализацию той же архитектуры поставил и Ричард Столлман, основатель проекта GNU.

Благодаря конкурентности реализаций архитектура UNIX стала вначале фактическим отраслевым стандартом, а затем обрела статус и стандарта юридического — ISO/IEC 9945 [1] (POSIX).

Только системы, отвечающие спецификации Single UNIX Specification, имеют право носить имя UNIX. К таким системам относятся AIX, HP-UX, IRIX, Mac OS X, SCO OpenServer, Solaris, Tru64 и z/OS.

Операционные системы, следующие стандарту POSIX или опирающиеся на него, называют «POSIX-совместимыми» (чаще встречается словоупотребление «UNIX-подобные» или «семейство UNIX», но оно противоречит статусу торгового знака «UNIX», принадлежащего консорциуму The Open Group и зарезервированному для обозначения только операционных систем, строго следующих стандарту). Сертификация на совместимость со стандартом платная, из-за чего некоторые системы не проходили этот процесс, однако считаются POSIX-совместимыми по существу.

К UNIX-подобным относятся операционные системы, основанные на последней версии UNIX, выпущенной Bell Labs (System V), на разработках университета Беркли (FreeBSD, OpenBSD, NetBSD), на основе Solaris (OpenSolaris, BeleniX, Nexenta), а также Linux, разработанная в части утилит и библиотек проектом GNU и в части ядра — сообществом, возглавляемым Линусом Торвальдсом.

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

Самым заметным эффектом существования этого стандарта стало эффективное разворачивание Интернета в 1990-х годах.

Пост-UNIX-архитектуры

Коллектив, создавший UNIX, развил концепцию унификации объектов операционной системы, включив в исходную концепцию UNIX «устройство — это тоже файл» также и процессы, и любые другие системные, сетевые и прикладные сервисы, создав новую концепцию: «что угодно — это файл». Эта концепция стала одним из основных принципов системы Plan 9 (название было позаимствовано из фантастического триллера «План 9 из открытого космоса» Эдварда Вуда-младшего), призванной преодолеть принципиальные недостатки дизайна UNIX и сменившей «рабочую лошадку» UNIX System V на компьютерах сети Bell Labs в 1992 году.

Кроме реализации всех объектов системы в виде файлов и размещения их на едином и персональном для каждого терминала вычислительной сети пространстве (namespace), были пересмотрены другие архитектурные решения UNIX. Например, в Plan 9 отсутствует понятие «суперпользователь», и, соответственно, исключаются любые нарушения режима безопасности, связанные с нелегальным получением прав суперпользователя в системе. Для представления (хранения, обмена) информации Роб Пайк и Кен Томпсон разработали универсальную кодировку UTF-8, на сегодняшний день ставшую стандартом де-факто. Для доступа к файлам используется единый универсальный протокол 9P, по сети работающий поверх сетевого протокола (TCP или UDP). Таким образом, для прикладного ПО сети не существует — доступ к локальным и к удалённым файлам единообразен. 9P — байт-ориентированный протокол, в отличие от других подобных протоколов, являющихся блок-ориентированными. Это также результат работы концепции: доступ побайтно — к унифицированным файлам, а не поблочно — к разнообразным и сильно изменяющимися с развитием технологий устройствам. Для контроля доступа к объектам не требуется иных решений, кроме уже существующего в операционной системе контроля доступа к файлам. Новая концепция системы хранения избавила администратора системы от изнурительного труда по сопровождению архивов и предвосхитила современные системы управления версиями файлов.

Операционные системы, созданные на базе или идеях UNIX, такие как всё семейство BSD и системы GNU/Linux, постепенно перенимают новые идеи из Bell Labs. Возможно, эти новые идеи ждёт большое будущее и признание ИТ-разработчиков.

Новые концепции были использованы Робом Пайком в Inferno.

На основе Plan 9 в Испании разрабатываются системы Off++ и Plan B, носящие экспериментальный характер.

К попыткам создать пост-UNIX-архитектуру можно также отнести разработку системы программирования и операционной среды Оберон в Швейцарской высшей технической школе (ETH Zurich) под руководством профессора Никлауса Вирта.

Горин Павел/ автор статьи

Павел Горин — психолог и автор популярных статей о внутреннем мире человека. Он работает с темами самооценки, отношений и личного роста. Его экспертность основана на практическом консультировании и современных психологических подходах.

Понравилась статья? Поделиться с друзьями:
psihologiya-otnosheniy.ru
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: