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

  1. Главная

  2. Туториалы

  3. Учебные

  4. Компьютер для начинающих

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

  • Операционная система реального времени
  • Однопользовательская/однозадачная операционная система
  • Однопользовательская/многозадачная операционная система
  • Многопользовательская/многозадачная операционная система

Операционная система реального времени

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

Преимущества

  • Это работает очень быстро.
  • Это экономит время, так как его не нужно загружать из памяти.
  • Поскольку он очень маленький, он занимает меньше места в памяти.

Однопользовательская/однозадачная ОС

Операционная система, которая позволяет одному пользователю выполнять только одну задачу за раз, называется однопользовательской однозадачной операционной системой. Такие функции, как печать документа, загрузка изображений и т. д., могут выполняться только по одной за раз. Примеры включают MS-DOS, Palm OS и т. д.

Преимущества

  • Эта операционная система занимает меньше места в памяти.

Недостатки

  • Он может выполнять только одну задачу за раз.

Однопользовательская/многозадачная ОС

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

Преимущества

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

Недостатки

  • Эта операционная система очень сложна и занимает больше места.

Многопользовательская/многозадачная ОС

Это операционная система, которая позволяет нескольким пользователям использовать программы, одновременно работающие на одном сетевом сервере. Единственный сетевой сервер называется «терминальным сервером». «Терминальный клиент» — это программное обеспечение, поддерживающее пользовательские сеансы. Примеры включают UNIX, MVS и т. д.

Преимущества

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

Недостатки

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

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

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

Операционная система Windows разработана корпорацией Microsoft. Он предоставляет пользователям графический интерфейс пользователя (GUI) и возможность многозадачности. Он также обеспечивает управление виртуальной памятью и несколькими периферийными устройствами. По статистике около 90% компьютеров перешли на операционную систему Windows.

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

Linux — это многозадачная операционная система, поддерживающая различных пользователей и множество задач. Это открытый исходный код, т. е. код для Linux доступен бесплатно. Linux может работать на любом компьютере и поддерживает практически любой тип приложений. Linux использует интерфейс командной строки. Он также поддерживает среду графического интерфейса пользователя на базе Windows, называемую «оболочкой». Наиболее популярными поставщиками Linux являются Red Hat и Novell. Некоторые из версий Linux включают Ubuntu, Fedora, Linux Mint и т. д.

Многозадачность в операционной системе позволяет пользователю одновременно выполнять несколько компьютерных задач (например, работу прикладной программы). … Microsoft Windows 2000, IBM OS / 390 и Linux являются примерами операционных систем, которые могут выполнять многозадачность (почти все современные операционные системы могут).

Какая многозадачная операционная система приведёт пример?

Многозадачность в операционной системе (ОС)

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

Какая операционная система является многозадачной?

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

Что такое многозадачность, объясните типы многозадачности?

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

В чем преимущества многозадачной операционной системы?

Преимущества многозадачной операционной системы:

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

Почему Windows 10 называется многозадачной ОС?

Как многозадачная система MS Windows позволяет нескольким программам находиться в памяти и работать в любой момент времени.. Каждая программа имеет собственное окно на экране дисплея. … Это позволило выполнять многозадачность и упростить обмен данными. Windows 3.1 также может запускать несколько приложений DOS в отдельных окнах.

Какие два типа многозадачности?

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

Что такое короткий ответ на многозадачность?

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

Каков процесс многозадачности?

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

Что такое класс многозадачности 11?

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

Что вы имеете в виду под многозадачностью ОС?

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

Почему в Linux многозадачность?

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

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

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

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

Основные понятия

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

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

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

  • расширение функциональности ОС;
  • конфигурирование режимов работы ОС;
  • разработка прикладных программ;
  • решение прикладных задач при помощи готовых программ

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

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

 Если более подробно классифицировать пользователей по используемому ими языку и решаемым задачам, то каждая пара «входной язык — решаемая задача» будет определять роль пользователя при его работе с ОС:  Роль пользователя Решаемая Системный программист задача Входной Расширение функций ОС Системный администра- тор язык Конфигури-рование ОС и регистрация пользователей Низкоуровневые языки разработки,  в  том  числе Ассемблер Форматы конфигура-ционных  файлов  и  языки управления средствами администрирования

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

Роль пользователя

Решаемая

Системный программист

задача

Входной

Расширение функций ОС

Системный администра- тор

язык

Конфигури-рование ОС и регистрация пользователей

Низкоуровневые языки разработки, в том числе Ассемблер

Форматы конфигура-ционных файлов и языки управления средствами администрирования

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

Роль пользователя

Решаемая

Оператор

задача

Текущее администрирова-ние системы, установка/

Специалист по аппарат- ному обеспе- чению

Входной

удаление программного обеспечения, его настройка

Обслуживание аппаратуры, ввод ее в эксплуатацию, вывод из эксплуатации

язык

Форматы конфигурационных файлов инсталляторов и устанавливаемого программного обеспечения

Языки средств настройки оборудования для использования в конкретной ОС

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

Роль пользователя

Решаемая

Прикладной программист

задача

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

Администра- тор данных

Входной

Архивирование данных системы, управление информацион-ными ресурсами (базы данных, справочники)

язык

Языки высокого уровня, интерфейс системных вызовов ядра ОС

Языки управления и конфигурирования используемых программных средств

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

Роль пользователя

Решаемая

Прикладной пользователь

задача

Решение конкретных прикладных задач при помощи готового программного обеспечения

Входной

язык

Языки управления задани ями ОС, языки управления используемыми программными средствами

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

Время, в течение которого пользователь решает последовательно одну или несколько задач, пользуясь при этом средствами, предоставляемыми ОС, называется сеансом .

Последовательность использования инструмен-тов, записанная на некотором формальном языке, называется заданием , сам язык — языком управления заданиями .

Выполнение заданий в большинстве ОС производится командным интерпретатором .

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

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

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

Программа — набор инструкций процессора, хранящийся на накопителе информации.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Типовая структура операционной системы  В составе ОС выделяют два уровня: ядро системы и вспомогательные системные программные средства , иногда называемые системными утилитами . Ядро выполняет все функции по управлению ресурсами системы — как физическими, так и логическими — и разделяет доступ пользователей к этим ресурсам.  В ядро ОС входят компоненты: система управления сеансами пользователей , система управления задачами (процессами) , файловая система , система ввода/вывода .

Типовая структура операционной системы

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

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

Структура ядра типичной ОС

Структура ядра типичной ОС

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

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

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

 Файловая система выполняет преобразование данных, хранимых на внешних запоминающих устройствах (например, на дисковых накопителях или на flash-накопителях), в логические объекты — файлы и каталоги.

Файловая система выполняет преобразование данных, хранимых на внешних запоминающих устройствах (например, на дисковых накопителях или на flash-накопителях), в логические объекты — файлы и каталоги.

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

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

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

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

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

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

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

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

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

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

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

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

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

Однопользовательские ОС

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

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

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

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

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

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

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

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

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

Многопользовательские ОС

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

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

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

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

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

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

Однозадачные ОС

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

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

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

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

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

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

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

Многозадачные ОС

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

  • создание и уничтожение процессов — загрузка программы в память, создание информационного окружения и передача управления процессу при его создании, удаление информационного окружения и выгрузка процесса из памяти при его уничтожении;

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

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

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

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

Контрольные вопросы Какие основные функции выполняет ОС? В чем основное различие между разделяемыми ресурсами одновременного и разделяемого доступа? Какие основные функции выполняет планировщик процессов? Для чего в состав ядра ОС включается система ввода/вывода? В чем состоят основные различия однопользовательских и многопользовательских ОС? Может ли существовать ОС, в ядро которой не входит файловая подсистема? Чем может быть ограничено число одновременно работающих в системе процессов? В чем состоит основное усложнение ядра многополь-зовательской ОС по сравнению с однопользовательской?

Контрольные вопросы

  • Какие основные функции выполняет ОС?
  • В чем основное различие между разделяемыми ресурсами одновременного и разделяемого доступа?
  • Какие основные функции выполняет планировщик процессов?
  • Для чего в состав ядра ОС включается система ввода/вывода?
  • В чем состоят основные различия однопользовательских и многопользовательских ОС?
  • Может ли существовать ОС, в ядро которой не входит файловая подсистема?
  • Чем может быть ограничено число одновременно работающих в системе процессов?
  • В чем состоит основное усложнение ядра многополь-зовательской ОС по сравнению с однопользовательской?

Организация хранения данных на диске  Для продолжительного хранения данных пользователя используются накопители данных  — дисковые (винчестеры, CD- и DVD-диски), ленточные (стримеры) или твердотельные (флеш-накопители, SSD-диски  ( solid-state drive ). Взаимодействие с накопителем осуществляет ОС (при помощи файловой системы и драйверов устройств), а единицей пользовательских данных в этом случае является файл.

Организация хранения данных на диске

Для продолжительного хранения данных пользователя используются накопители данныхдисковые (винчестеры, CD- и DVD-диски), ленточные (стримеры) или твердотельные (флеш-накопители, SSD-диски ( solid-state drive ). Взаимодействие с накопителем осуществляет ОС (при помощи файловой системы и драйверов устройств), а единицей пользовательских данных в этом случае является файл.

 Файл  можно рассматривать как хранимые на диске данные, имеющие уникальное имя, видимое пользователю. Данные файла имеют формат, предназначенный для их использования прикладными программами пользователя. Так, книга может храниться на диске в виде файла с именем book.txt в текстовом формате txt.  Имена файлов  представляют собой символьные строки ограниченной длины (как правило, до 8 или до 255 символов), которые кратко описывают данные, хранимые в файле. Обычно существует ряд символов, запрещенных к использованию в именах файлов. В UNIX-системах это символы *, ?, /, , , &, $, |

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

Имена файлов представляют собой символьные строки ограниченной длины (как правило, до 8 или до 255 символов), которые кратко описывают данные, хранимые в файле. Обычно существует ряд символов, запрещенных к использованию в именах файлов. В UNIX-системах это символы *, ?, /, , , &, $, |

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

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

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

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

 Набор данных — более низкоуровневое представление данных, чем файл. Набор данных имеет уникальное имя, так же, как и файл, содержит все данные, которые содержит файл, но структура этих данных определяется ядром ОС. Кроме того, в набор данных может входить служебная информация, недоступная обычным программам.  Всё дисковое пространство, используемое файловой системой, разбивается на отдельные блоки — кластеры  (размером 1, 2, 4, 8 или 16 Кбайт). Каждый кластер имеет свой номер и хранит либо данные пользователя, либо служебную информацию. Эта служебная информация используется в том числе и для сборки блоков в наборы данных. Размер кластера устанавливается при создании файловой системы.

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

Всё дисковое пространство, используемое файловой системой, разбивается на отдельные блоки — кластеры (размером 1, 2, 4, 8 или 16 Кбайт). Каждый кластер имеет свой номер и хранит либо данные пользователя, либо служебную информацию. Эта служебная информация используется в том числе и для сборки блоков в наборы данных. Размер кластера устанавливается при создании файловой системы.

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

Служебный блок может хранить последовательность номеров блоков (кластеров), входящих в набор данных:

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

— служебный блок;

— блок данных;

— кластер

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

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

Такой подход положен в основу организации данных на CD-ROM-носителях

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

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

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

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

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

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

В качестве идентификатора набора данных для ОС обычно служит номер кластера служебного блока.

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

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

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

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

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

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

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

— жесткая ссылка;

— символическая ссылка

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

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

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

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

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

Файловая система определяет основные функции:

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

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

Каталоги

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

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

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

 Элементы, имена которых начинаются с dir , являются каталогами ; элементы, имена которых начинаются с file , — файлами . Если каталог содержится внутри другого каталога, то внешний каталог называется родительским  для первого каталога, или надкаталогом . Содержащийся внутри каталог называется подкаталогом . Например, каталог dir3 является родительским для dir5 , а каталог dir2 — подкаталогом dir1 . Каталог, находящийся на верхнем уровне иерархии и не имеющий родительского каталога, называется корневым  каталогом .

Элементы, имена которых начинаются с dir , являются каталогами ; элементы, имена которых начинаются с file , — файлами . Если каталог содержится внутри другого каталога, то внешний каталог называется родительским для первого каталога, или надкаталогом . Содержащийся внутри каталог называется подкаталогом . Например, каталог dir3 является родительским для dir5 , а каталог dir2 — подкаталогом dir1 . Каталог, находящийся на верхнем уровне иерархии и не имеющий родительского каталога, называется корневым каталогом .

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

Использование каталогов в современных ОС обусловлено тремя факторами:

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

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

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

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

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

 Полное имя файла — текстовая строка, в которой через специальные символы-разделители указаны имена всех каталогов, задающие путь от корневого каталога до самого файла. В качестве разделителя в UNIX-системах используется символ прямой косой черты «/».   Например, для файла file6 полным именем будет /dir1/dir3/dir5/file6 . Здесь первая косая черта обозначает корневой каталог, т. е. полным именем файла file1 , находящегося в корневом каталоге, будет /file1 .

Полное имя файла — текстовая строка, в которой через специальные символы-разделители указаны имена всех каталогов, задающие путь от корневого каталога до самого файла. В качестве разделителя в UNIX-системах используется символ прямой косой черты «/».

Например, для файла file6 полным именем будет /dir1/dir3/dir5/file6 . Здесь первая косая черта обозначает корневой каталог, т. е. полным именем файла file1 , находящегося в корневом каталоге, будет /file1 .

 Путь, задаваемый полным именем, называется абсолютным  путем файла или каталога . Такое название обусловлено тем, что путь задается относительно абсолютной точки отсчета — корневого каталога.  Имена файлов и каталогов, находящихся в текущем каталоге, могут быть указаны напрямую, без задания полного имени. Например, если текущим каталогом является dir4 , то к файлам file4 и file5 можно обращаться, используя только их собственные имена file4 и file5 вместо указания полного имени.

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

Имена файлов и каталогов, находящихся в текущем каталоге, могут быть указаны напрямую, без задания полного имени. Например, если текущим каталогом является dir4 , то к файлам file4 и file5 можно обращаться, используя только их собственные имена file4 и file5 вместо указания полного имени.

 Относительный путь определяется по отношению к текущему каталогу, при этом имя самого каталога обычно не указывается. Тем не менее в UNIX-системах для указания того, что путь считается от текущего каталога, часто используют мнемоническое обозначение «.» .  Если текущим каталогом является dir3 , то относительно него относительный путь к файлу file6 будет задаваться именем ./dir5/file6 .  Для задания пути родительского каталога используется мнемоника «..» . Например, если текущим каталогом является каталог dir7 , то относительное имя файла file1 будет выглядеть как ../../file1 . Первые две точки указывают на каталог, родительский для dir7 — каталог dir4 , а вторые две точки — на каталог, родительский для dir4 — каталог dir1 .

Относительный путь определяется по отношению к текущему каталогу, при этом имя самого каталога обычно не указывается. Тем не менее в UNIX-системах для указания того, что путь считается от текущего каталога, часто используют мнемоническое обозначение «.» . Если текущим каталогом является dir3 , то относительно него относительный путь к файлу file6 будет задаваться именем ./dir5/file6 .

Для задания пути родительского каталога используется мнемоника «..» . Например, если текущим каталогом является каталог dir7 , то относительное имя файла file1 будет выглядеть как ../../file1 . Первые две точки указывают на каталог, родительский для dir7 — каталог dir4 , а вторые две точки — на каталог, родительский для dir4 — каталог dir1 .

 Системные файлы в ОС семейства UNIX распределены по отдельным каталогам. Это позволяет структурировать различные файлы по их назначению. Большинство UNIX-систем имеет стандартную структуру системных каталогов. Так, в UNIX-системах обычно выделяются отдельные каталоги для хранения ядра (/boot) , системных библиотек (/lib) , системных утилит (/bin) , системных настроек (/etc) , пользовательских программ (/usr) , пользовательских данных (/home) .

Системные файлы в ОС семейства UNIX распределены по отдельным каталогам. Это позволяет структурировать различные файлы по их назначению. Большинство UNIX-систем имеет стандартную структуру системных каталогов. Так, в UNIX-системах обычно выделяются отдельные каталоги для хранения ядра (/boot) , системных библиотек (/lib) , системных утилит (/bin) , системных настроек (/etc) , пользовательских программ (/usr) , пользовательских данных (/home) .

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

Операции над файлами и каталогами

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

Системные вызовы для работы с файлами

Системные вызовы для работы с файлами

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

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

Системные вызовы для работы с каталогами

Контрольные вопросы Какие основные функции выполняет файловая система? Каким образом организованы логическая и физическая структуры данных на носителе? Какова структура файловой системы NTFS? Что такое родительский и текущий каталоги? В чем различия абсолютного и относительного имен файла? В чем различия системных вызовов для работы с файлами и ката- логами? Может ли относительное имя файла быть длиннее абсолютного? Какой объем дискового пространства будет занимать файл, содержащий строку «Книга»?

Контрольные вопросы

  • Какие основные функции выполняет файловая система?
  • Каким образом организованы логическая и физическая структуры данных на носителе?
  • Какова структура файловой системы NTFS?
  • Что такое родительский и текущий каталоги?
  • В чем различия абсолютного и относительного имен файла?
  • В чем различия системных вызовов для работы с файлами и ката- логами?
  • Может ли относительное имя файла быть длиннее абсолютного?
  • Какой объем дискового пространства будет занимать файл, содержащий строку «Книга»?

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

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

Об этом изображении

Общие черты
  • Управление процессом
  • Прерывания
  • Управление памятью
  • Файловая система
  • Драйверы устройств
  • Сети
  • Безопасность
  • Ввод / вывод

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

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

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

Доминирующей операционной системой для настольных ПК является Майкрософт Виндоус с долей рынка около 76,45%. macOS к Apple Inc. на втором месте (17,72%), а сорта Linux вместе занимают третье место (1,73%).[3] в мобильный сектор (включая смартфоны и таблетки ), Android доля до 72% в 2020 году.[4] Согласно данным за третий квартал 2016 года, доля Android на смартфонах преобладает — 87,5 процента с также темпом роста 10,3 процента в год, за которым следует Apple. iOS с 12,1 процента при ежегодном снижении доли рынка на 5,2 процента, в то время как другие операционные системы составляют всего 0,3 процента.[5] Дистрибутивы Linux доминируют в серверном и суперкомпьютерном секторах. Другие специализированные классы операционных систем, такие как встроенный и системы реального времени существуют для многих приложений.

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

Однозадачность и многозадачность

Однозадачная система может запускать только одну программу за раз, в то время как многозадачность операционная система позволяет запускать более одной программы в параллелизм. Это достигается совместное времяпровождение, где доступное процессорное время делится между несколькими процессами. Каждый из этих процессов многократно прерывается в временные отрезки подсистемой планирования задач операционной системы. Многозадачность можно охарактеризовать как упреждающую и кооперативную. В упреждающий многозадачность, операционная система разделяет ЦПУ времени и выделяет слот для каждой из программ. Unix-подобный операционные системы, такие как Солярис и Linux — а также не-Unix-подобные, например AmigaOS —Поддержка вытесняющей многозадачности. Совместная многозадачность достигается за счет того, что каждый процесс определенным образом предоставляет время другим процессам. 16 бит версии Microsoft Windows использовали совместную многозадачность; 32-битный версии Windows NT и Win9x использовали вытесняющую многозадачность.

Одно- и многопользовательские

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

Распространено

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

Шаблонный

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

Встроенный

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

В реальном времени

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

Библиотека

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

История

Ранние компьютеры были созданы для выполнения ряда отдельных задач, например, калькулятор. Основные функции операционной системы были разработаны в 1950-х годах, например: резидентный монитор функции, которые могут автоматически запускать разные программы подряд для ускорения обработки. Операционные системы в их современных и более сложных формах не существовали до начала 1960-х годов.[9] Добавлены аппаратные функции, позволяющие использовать библиотеки времени выполнения, прерывает, и параллельная обработка. Когда персональные компьютеры стали популярными в 1980-х, для них были созданы операционные системы, аналогичные по концепции тем, которые используются на больших компьютерах.

В 1940-х годах самые первые электронные цифровые системы не имели операционных систем. Электронные системы того времени были запрограммированы на рядах механических переключателей или перемычками на коммутационные панели. Это были системы специального назначения, которые, например, составляли таблицы баллистики для военных или контролировали печать расчетных чеков на основе данных на перфокартах. После того, как были изобретены программируемые компьютеры общего назначения, машинные языки (состоящие из цепочек двоичных цифр 0 и 1 на перфоленте), что ускорило процесс программирования (Stern, 1981).[требуется полная цитата ]

OS / 360 использовался на большинстве мэйнфреймов IBM начиная с 1966 года, включая компьютеры, используемые Программа Аполлон.

В начале 1950-х годов компьютер мог одновременно выполнять только одну программу. Каждый пользователь имел право единолично использовать компьютер в течение ограниченного периода времени и приходил в назначенное время со своей программой и данными на перфокартах или картах. перфолента. Программа будет загружена в машину, и машина будет настроена на работу, пока программа не будет завершена или разбился. Программы обычно можно отлаживать через переднюю панель с помощью тумблеров и подсветки панели. Он сказал, что Алан Тьюринг был мастером этого в начале Манчестер Марк 1 машины, и он уже выводил примитивную концепцию операционной системы из принципов универсальная машина Тьюринга.[9]

Более поздние машины поставлялись с библиотеками программ, которые были связаны с программой пользователя для помощи в таких операциях, как ввод и вывод и составление (создание машинного кода из удобочитаемого символический код ). Так зародилась современная операционная система. Однако машины по-прежнему выполняли одну работу за раз. В Кембриджском университете в Англии очередь заданий была когда-то стиральной (бельевой) веревкой, к которой вешали ленты с разноцветными прищепками для обозначения приоритета работы.[нужна цитата ]

Улучшение было Атлас Супервайзер. Представлен Манчестером Атлас в 1962 году многие считают ее первой узнаваемой современной операционной системой.[10] Бринч Хансен назвал это «самым значительным прорывом в истории операционных систем».[11]

Мэйнфреймы

В 1950-х годах многие важные функции были впервые реализованы в операционных системах на мэйнфреймы, включая пакетная обработка, ввод, вывод прерывание, буферизация, многозадачность, намотка, библиотеки времени выполнения, загрузка ссылки, и программы для сортировка записи в файлах. Эти функции были включены или не включены в прикладное программное обеспечение по усмотрению разработчиков приложений, а не в отдельной операционной системе, используемой всеми приложениями. В 1959 г. SHARE Операционная система была выпущена как интегрированная утилита для IBM 704, а позже в 709 и 7090 мэйнфреймы, хотя его быстро вытеснили IBSYS / IBJOB на 709, 7090 и 7094.

В 1960-х годах IBM OS / 360 представила концепцию единой ОС, охватывающей всю линейку продуктов, что было решающим для успеха машин System / 360. Текущие операционные системы мэйнфреймов IBM: далекие потомки этой оригинальной системы и современных машин обратно совместимый с приложениями, написанными для OS / 360.[нужна цитата ]

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

Альтернатива CP-67 система для С / 360-67 запустила целую линейку операционных систем IBM, ориентированных на концепцию виртуальные машины. Другие операционные системы, используемые на мэйнфреймах серии IBM S / 360, включали системы, разработанные IBM: COS / 360 (операционная система совместимости), DOS / 360 (Диск операционной системы), TSS / 360 (Система разделения времени), TOS / 360 (Ленточная операционная система), BOS / 360 (Базовая операционная система) и ACP (Программа управления авиакомпаниями), а также несколько систем сторонних производителей: МТС (Терминальная система Мичигана), МУЗЫКА (Многопользовательская система для интерактивных вычислений) и ОРВИЛ (Стэнфордская система разделения времени).

Корпорация Control Data разработал ОБЪЕМ операционная система в 1960-х, для пакетная обработка. В сотрудничестве с Университетом Миннесоты Кронос а позже NOS Операционные системы были разработаны в 1970-х годах, которые поддерживали одновременное пакетное использование и разделение времени. Как и многие коммерческие системы с разделением времени, его интерфейс был продолжением Дартмутского БАЗОВЫЙ операционные системы, одно из первых достижений в области языков программирования и разделения времени. В конце 1970-х Control Data и Иллинойсский университет разработали ПЛАТОН операционная система, в которой использовались плазменные панели и сети междугородного времени. Платон был удивительно новаторским для своего времени, предлагая чат в реальном времени и многопользовательские графические игры.

В 1961 г. Корпорация Берроуз представил B5000 с MCP (Master Control Program) операционная система. B5000 был штабелеукладчик разработан для поддержки исключительно языков высокого уровня без машинного языка или ассемблера; действительно, MCP была первой ОС, написанной исключительно на языке высокого уровня (ESPOL, диалект АЛГОЛ ). MCP также представила множество других революционных инноваций, таких как первая коммерческая реализация виртуальная память. Во время разработки AS / 400, IBM обратилась к Берроузу с просьбой лицензировать MCP для работы на оборудовании AS / 400. Это предложение было отклонено руководством Burroughs в целях защиты существующего производства оборудования. MCP все еще используется сегодня в Unisys компания ClearPath / MCP линейка компьютеров.

UNIVAC, первый производитель коммерческих компьютеров, выпустил серию операционных систем EXEC.[нужна цитата ]. Как и все ранние мейнфреймовые системы, эта пакетно-ориентированная система управляла магнитными барабанами, дисками, кардридерами и линейными принтерами. В 1970-х годах UNIVAC разработал базовую систему реального времени (RTB) для поддержки крупномасштабного разделения времени, также созданную по образцу системы Дартмутской Британской Колумбии.

General Electric и Массачусетский технологический институт разработала комплексный операционный супервизор General Electric (GECOS), который ввел концепцию кольцевых уровней привилегий безопасности. После приобретения Honeywell он был переименован Общая комплексная операционная система (ГСНК).

Digital Equipment Corporation разработала множество операционных систем для различных компьютерных линий, в том числе ТОП-10 и ТОП-20 системы разделения времени для 36-битных систем класса PDP-10. До широкого распространения UNIX система TOPS-10 была особенно популярной в университетах, а в начале ARPANET сообщество. РТ-11 была однопользовательской ОС реального времени для PDP-11 класс миникомпьютер, и RSX-11 была соответствующая многопользовательская ОС.

С конца 1960-х до конца 1970-х годов появилось несколько аппаратных возможностей, которые позволили аналогичному или перенесенному программному обеспечению работать более чем в одной системе. Ранние системы использовали микропрограммирование реализовать функции в своих системах, чтобы разрешить различные базовые компьютерные архитектуры казаться такими же, как другие в серии. Фактически, большинство моделей 360 после 360/40 (кроме 360/165 и 360/168) были микропрограммированными реализациями.

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

  • Берроуз MCP  – B5000, 1961 в Unisys Clearpath / MCP, присутствует
  • IBM OS / 360  – IBM System / 360, 1966 в IBM z / OS, настоящее время
  • IBM CP-67  – IBM System / 360, 1967 в IBM z / VM
  • UNIVAC EXEC 8  – UNIVAC 1108, 1967, в ОС 2200 Unisys Clearpath Dorado, настоящее время

Микрокомпьютеры

PC DOS была ранней ОС для персональных компьютеров с интерфейсом командной строки.

Первый микрокомпьютеры не имел возможности или потребности в сложных операционных системах, которые были разработаны для мэйнфреймов и мини-компьютеров; были разработаны минималистичные операционные системы, часто загружаемые из ПЗУ и известный как мониторы. Одно примечательное начало диск операционной системы был CP / M, который поддерживался на многих ранних микрокомпьютерах и сильно имитировался Microsoft с MS-DOS, которая стала широко популярной как операционная система, выбранная для IBM PC (Его версия IBM называлась IBM DOS или ПК DOS ). В 1980-х годах Apple Computer Inc. (ныне Apple Inc. ) отказался от своего популярного Яблоко II серии микрокомпьютеров, чтобы представить Apple Macintosh компьютер с инновационным графический интерфейс пользователя (GUI) в Mac OS.

Введение Intel 80386 Чип процессора в октябре 1985 г.,[12] с 32-битный архитектура и пейджинг возможности, предоставленные персональным компьютерам с возможностью запуска многозадачность операционные системы, подобные более ранним миникомпьютеры и мэйнфреймы. Microsoft отреагировала на этот прогресс, наняв Дэйв Катлер, который разработал VMS операционная система для Корпорация цифрового оборудования. Он возглавит разработку Windows NT операционная система, которая продолжает служить основой линейки операционных систем Microsoft. Стив Джобс, соучредитель Apple Inc., началось Следующий Computer Inc., которая разработала СЛЕДУЮЩИЙ ШАГ Операционная система. NEXTSTEP позже будет приобретена Apple Inc. и используется вместе с кодом из FreeBSD как ядро Mac OS X (macOS после последнего изменения имени).

В Проект GNU начал активист и программист Ричард Столмен с целью создания полноценного бесплатно программное обеспечение замена на фирменный UNIX Операционная система. В то время как проект был очень успешным в дублировании функциональности различных частей UNIX, разработка GNU Hurd ядро оказалось непродуктивным. В 1991 году финский студент, изучающий информатику. Линус Торвальдс в сотрудничестве с волонтерами, работающими через Интернет, выпустила первую версию Ядро Linux. Вскоре он был объединен с GNU. пространство пользователя компоненты и программное обеспечение чтобы сформировать законченную операционную систему. С тех пор индустрия программного обеспечения обычно называет комбинацию двух основных компонентов просто «Linux» — соглашение об именах, которое Столлман и Фонд свободного программного обеспечения остаются против, предпочитая название GNU / Linux. Распространение программного обеспечения Беркли, известное как BSD, является производным UNIX, распространяемым Калифорнийским университетом в Беркли, начиная с 1970-х годов. Свободно распространяется и портирован для многих миникомпьютеров, в конечном итоге он также приобрел популярность для использования на ПК, в основном как FreeBSD, NetBSD и OpenBSD.

Примеры

Unix и Unix-подобные операционные системы

Основная статья: Unix

Эволюция Unix системы

Первоначально Unix был написан на язык ассемблера.[13] Кен Томпсон написал B, в основном на основе BCPL, основываясь на своем опыте работы в МУЛЬТИКА проект. B был заменен на C, и Unix, переписанный на C, превратился в большое и сложное семейство взаимосвязанных операционных систем, которые оказали влияние на все современные операционные системы (см. История ).

В Unix-подобный семейство — это разнообразная группа операционных систем, включающая несколько основных подкатегорий, включая Система V, BSD, и Linux. Название «UNIX «является товарным знаком Открытая группа который лицензирует его для использования с любой операционной системой, которая соответствует их определениям. «UNIX-подобный» обычно используется для обозначения большого набора операционных систем, которые напоминают исходный UNIX.

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

Четыре операционные системы сертифицированы Открытая группа (владелец торговой марки Unix) как Unix. HP HP-UX и IBM AIX оба являются потомками исходной System V Unix и предназначены для работы только на оборудовании соответствующих поставщиков. В отличие, Sun Microsystems с Солярис может работать на нескольких типах оборудования, включая x86 и Sparc серверы и ПК. Apple macOS, замена более ранней (не Unix) Mac OS от Apple, является гибридное ядро вариант BSD, производный от Следующий шаг, Мах, и FreeBSD.

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

BSD и ее потомки

Подгруппа семейства Unix — это Распространение программного обеспечения Беркли семья, в которую входят FreeBSD, NetBSD, и OpenBSD. Эти операционные системы чаще всего встречаются на веб-серверы, хотя они также могут функционировать как ОС персонального компьютера. Интернет во многом обязан своим существованием BSD, поскольку многие протоколы, которые сейчас широко используются компьютерами для подключения, отправки и получения данных по сети, были широко реализованы и усовершенствованы в BSD. В Всемирная паутина также была впервые продемонстрирована на ряде компьютеров под управлением ОС на основе BSD, называемой Следующий шаг.

В 1974 г. Калифорнийский университет в Беркли установил свою первую систему Unix. Со временем студенты и сотрудники факультета информатики начали добавлять новые программы, упрощающие работу, например, текстовые редакторы. Когда Беркли получил новый VAX В 1978 году на компьютерах с установленной Unix студенты школы еще больше модифицировали Unix, чтобы воспользоваться преимуществами аппаратных возможностей компьютера. В Агентство перспективных оборонных исследовательских проектов США Министерство обороны проявил интерес и решил профинансировать проект. Многие школы, корпорации и правительственные организации обратили внимание и начали использовать версию Unix Беркли вместо официальной, распространяемой AT&T.

Стив Джобс после ухода из Apple Inc. в 1985 г. NeXT Inc., компания, которая производила высокопроизводительные компьютеры, работающие на разновидности BSD, называлась Следующий шаг. Один из этих компьютеров использовался Тим Бернерс-Ли как первый веб-сервер для создания всемирной паутины.

Разработчикам нравится Кейт Бостик призвал проект заменить любой несвободный код, созданный Bell Labs. Однако, как только это было сделано, AT&T подала в суд. После двух лет судебных споров проект BSD породил ряд бесплатных производных, таких как NetBSD и FreeBSD (как в 1993 г.), так и OpenBSD (из NetBSD в 1995 году).

macOS

Основная статья: macOS

macOS (ранее «Mac OS X», а затем «OS X») — это линейка открытое ядро графические операционные системы, разработанные, продаваемые и продаваемые Apple Inc., последний из которых предварительно загружен во все отправляемые в настоящее время Macintosh компьютеры. macOS является преемником оригинального классическая Mac OS, которая была основной операционной системой Apple с 1984 года. В отличие от своего предшественника, macOS является UNIX операционная система, построенная на технологии, разработанной в Следующий во второй половине 1980-х и до тех пор, пока Apple не купила компанию в начале 1997 года. Операционная система была впервые выпущена в 1999 году как Mac OS X Server 1.0, за которым в марте 2001 года последовала клиентская версия (Mac OS X v10.0 «Гепард» ). С тех пор появилось еще шесть различных «клиентов» и «сервер «выпуски macOS были выпущены, пока они не были объединены в OS X 10.7 «Лев».

До слияния с macOS серверная версия — сервер macOS — был архитектурно идентичен своему настольному аналогу и обычно работает на линейке Macintosh от Apple сервер аппаратное обеспечение. macOS Server включает программные средства управления и администрирования рабочих групп, которые обеспечивают упрощенный доступ к ключевым сетевые услуги, включая агент по пересылке почты, а Samba сервер, LDAP сервер, а сервер доменного имени, и другие. С Mac OS X v10.7 Lion, все серверные аспекты Mac OS X Server были интегрированы в клиентскую версию, а продукт был переименован в «OS X» (в названии было исключено «Mac»). Серверные инструменты теперь предлагаются в виде приложения.[14]

Linux

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

Linux является Unix-подобный, но был разработан без какого-либо кода Unix, в отличие от BSD и ее вариантов. Благодаря модели открытой лицензии Ядро Linux код доступен для изучения и модификации, что привело к его использованию на широком спектре вычислительной техники от суперкомпьютеров до смарт-часов. Хотя оценки показывают, что Linux используется на только 1,82% всех настольных (или портативных) ПК,[19] он получил широкое распространение на серверах[20] и встроенные системы[21] например, сотовые телефоны. Linux вытеснил Unix на многих платформах и используется на большинстве суперкомпьютеров, включая 385 лучших.[22] Многие из этих компьютеров также включены Зеленый500 (но в другом порядке), а Linux работает на первой десятке. Linux также широко используется на других небольших энергоэффективных компьютерах, таких как смартфоны и умные часы. Ядро Linux используется в некоторых популярных дистрибутивах, таких как Красная шляпа, Debian, Ubuntu, Linux Mint и Google с Android, Chrome OS, и Chromium OS.

Майкрософт Виндоус

Microsoft Windows — это семейство проприетарный операционные системы, разработанные Корпорация Майкрософт и в первую очередь нацелена на компьютеры на базе архитектуры Intel, с примерно 88,9% общего использования компьютеров, подключенных к Интернету.[19][23][24][25] Последняя версия Windows 10.

В 2011 году Windows 7 обогнала Windows XP как наиболее распространенную версию.[26][27][28]

Microsoft Windows была впервые выпущена в 1985 году как рабочая среда работает поверх MS-DOS, которая была стандартной операционной системой на большинстве персональных компьютеров с архитектурой Intel в то время. В 1995 г. Windows 95 был выпущен, который использовал только MS-DOS в качестве начальной загрузки. Для обратной совместимости Win9x может запускать MS-DOS в реальном режиме.[29][30] и 16 бит Windows 3.x[31] драйверы. Windows ME, выпущенная в 2000 году, была последней версией в семействе Win9x. Все более поздние версии были основаны на Windows NT ядро. Текущие клиентские версии Windows работают на IA-32, x86-64 и 32-битный РУКА микропроцессоры.[32] Кроме того Itanium все еще поддерживается в более старой версии сервера Windows Server 2008 R2. В прошлом Windows NT поддерживала дополнительные архитектуры.

Широко используются серверные редакции Windows. В последние годы Microsoft потратила значительные средства на продвижение использования Windows в качестве операционная система сервера. Однако использование Windows на серверах не так широко распространено, как на персональных компьютерах, поскольку Windows конкурирует с Linux и BSD за долю на рынке серверов.[33][34]

ReactOS — это альтернативная Windows операционная система, которая разрабатывается на принципах Windows — без использования кода Microsoft.

Другой

Было много операционных систем, которые были важны в свое время, но уже не так важны, например AmigaOS; OS / 2 от IBM и Microsoft; классическая Mac OS, не-Unix-предшественник macOS от Apple; BeOS; XTS-300; ОС RISC; MorphOS; Хайку; Оголенный метал и FreeMint. Некоторые из них все еще используются на нишевых рынках и продолжают развиваться как платформы меньшинств для сообществ энтузиастов и специализированных приложений. OpenVMS, ранее из DEC, все еще находится в активной разработке VMS Software Inc. Однако другие операционные системы используются почти исключительно в академических кругах, для обучения операционным системам или для исследования концепций операционных систем. Типичным примером системы, выполняющей обе роли, является МИНИКС, а например Сингулярность используется исключительно для исследований. Другой пример — Система Оберон разработан в ETH Zürich к Никлаус Вирт, Юрг Гуткнехт и группа студентов бывшего Института компьютерных систем в 1980-х. Он использовался в основном для исследований, обучения и повседневной работы в группе Вирта.

Другим операционным системам не удалось завоевать значительную долю рынка, но они представили инновации, которые повлияли на основные операционные системы, в том числе Bell Labs. План 9.

Составные части

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

Ядро

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

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

Выполнение программы

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

Прерывания

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

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

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

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

Режимы

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

Современное микропроцессоры (CPU или MPU) поддерживают несколько режимов работы. ЦП с этой возможностью предлагают как минимум два режима: пользовательский режим и режим супервизора. В общих чертах, работа в режиме супервизора обеспечивает неограниченный доступ ко всем ресурсам машины, включая все инструкции MPU. Работа в пользовательском режиме устанавливает ограничения на использование команд и обычно запрещает прямой доступ к машинным ресурсам. У ЦП могут быть и другие режимы, аналогичные пользовательскому режиму, например, виртуальные режимы для эмуляции старых типов процессоров, таких как 16-битные процессоры на 32-битном или 32-битные процессоры на 64-битный один.

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

Режим супервизора используется ядром для задач низкого уровня, которые требуют неограниченного доступа к оборудованию, таких как контроль доступа к памяти и связь с такими устройствами, как дисководы и устройства отображения видео. Пользовательский режим, напротив, используется почти для всего остального. Прикладные программы, такие как текстовые процессоры и менеджеры баз данных, работают в пользовательском режиме и могут получить доступ к машинным ресурсам только путем передачи управления ядру, процесс, который вызывает переключение в режим супервизора. Обычно передача управления ядру достигается путем выполнения программное прерывание инструкция, типа Motorola 68000 ЛОВУШКА инструкция. Программное прерывание заставляет микропроцессор переключиться из пользовательского режима в режим супервизора и начать выполнение кода, который позволяет ядру взять на себя управление.

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

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

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

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

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

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

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

Версии Windows от 3.1 до ME имели некоторый уровень защиты памяти, но программы могли легко обойти необходимость ее использования. А общая ошибка защиты будет выдан, указывая на нарушение сегментации; однако в любом случае система часто вылетает из строя.

Виртуальная память

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

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

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

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

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

«Виртуальная память» дает программисту или пользователю представление о том, что в компьютере гораздо больший объем оперативной памяти, чем есть на самом деле.[35]

Многозадачность

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

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

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

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

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

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

Доступ к диску и файловые системы

Файловые системы позволяют пользователям и программам систематизировать и сортировать файлы на компьютере, часто с помощью каталогов (или «папок»).

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

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

Хотя многие более простые операционные системы поддерживают ограниченный набор вариантов доступа к системам хранения, такие операционные системы, как UNIX и Linux поддерживать технологию, известную как виртуальная файловая система или VFS. Операционная система, такая как UNIX, поддерживает широкий спектр устройств хранения, независимо от их конструкции или файловые системы, позволяя получить к ним доступ через общий интерфейс прикладного программирования (API). Это избавляет программы от каких-либо сведений об устройстве, к которому они обращаются. VFS позволяет операционной системе предоставлять программам доступ к неограниченному количеству устройств с бесконечным разнообразием установленных на них файловых систем с помощью специальных драйверы устройств и драйверы файловой системы.

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

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

Различные различия между файловыми системами затрудняют поддержку всех файловых систем. Допустимые символы в именах файлов, чувствительность к регистру, а также наличие различного рода атрибуты файла делает реализацию единого интерфейса для каждой файловой системы непростой задачей. Операционные системы, как правило, рекомендуют использовать (и поэтому поддерживают изначально) файловые системы, специально разработанные для них; Например, NTFS в Windows и ext3 и ReiserFS в Linux. Однако на практике драйверы сторонних производителей обычно доступны для поддержки наиболее широко используемых файловых систем в большинстве операционных систем общего назначения (например, NTFS доступна в Linux через NTFS-3g, а ext2 / 3 и ReiserFS доступны в Windows через стороннее программное обеспечение).

Поддержка файловых систем в современных операционных системах сильно различается, хотя есть несколько общих файловых систем, для которых почти все операционные системы включают поддержку и драйверы. Операционные системы различаются по поддержке файловой системы и форматов дисков, на которые они могут быть установлены. В Windows каждая файловая система обычно ограничена в применении определенным носителем; например, компакт-диски должны использовать ISO 9660 или же UDF, и с Виндоус виста, NTFS — единственная файловая система, на которую можно установить операционную систему. Linux можно установить на многие типы файловых систем. В отличие от других операционных систем, Linux и UNIX позволяют использовать любую файловую систему независимо от носителя, на котором она хранится, будь то жесткий диск, диск (CD, DVD …), флэш-накопитель USB или даже содержащийся в файле, расположенном в другой файловой системе.

Драйверы устройств

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

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

В версиях Windows до Vista и в версиях Linux до 2.6 все драйверы выполнялись совместно, что означает, что если драйвер войдет в бесконечный цикл, это приведет к зависанию системы. Более поздние версии этих операционных систем включают вытеснение ядра, когда ядро ​​прерывает работу драйвера, чтобы дать ему задачи, а затем отделяется от процесса до тех пор, пока не получит ответ от драйвера устройства или не предоставит ему дополнительные задачи.

Сети

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

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

Многие операционные системы также поддерживают один или несколько конкретных сетевых протоколов или открытых сетевых протоколов, например, СНС на IBM системы, DECnet на системах из Корпорация цифрового оборудования и специфические протоколы Microsoft (SMB ) в Windows. Также могут поддерживаться определенные протоколы для конкретных задач, например NFS для доступа к файлам. Протоколы вроде ESound, или esd можно легко расширить по сети для обеспечения звука из локальных приложений на звуковом оборудовании удаленной системы.

Безопасность

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

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

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

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

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

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

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

Пользовательский интерфейс

Скриншот Баш командная строка. Каждая команда вводится после «приглашения», а затем ее вывод появляется ниже, двигаясь вниз по экрану. Текущая командная строка находится внизу.

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

Графические пользовательские интерфейсы

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

Большинство современных компьютерных систем поддерживают графический пользовательский интерфейс (GUI) и часто включают их. В некоторых компьютерных системах, таких как оригинальная реализация классическая Mac OS, графический интерфейс интегрирован в ядро.

Хотя технически графический пользовательский интерфейс не является службой операционной системы, включение поддержки одного из них в ядро ​​операционной системы может позволить графическому интерфейсу более оперативно реагировать за счет сокращения количества переключатели контекста требуется, чтобы графический интерфейс выполнял свои функции вывода. Другие операционные системы модульный, отделяя графическую подсистему от ядра и операционной системы. В 1980-х годах в UNIX, VMS и многих других были операционные системы, построенные таким образом. Linux и macOS также построены таким же образом. Современные выпуски Microsoft Windows, такие как Виндоус виста реализовать графическую подсистему, которая в основном находится в пользовательском пространстве; однако процедуры рисования графики версий между Windows NT 4.0 и Windows Server 2003 существуют в основном в пространстве ядра. Windows 9x было очень мало различий между интерфейсом и ядром.

Многие компьютерные операционные системы позволяют пользователю устанавливать или создавать любой пользовательский интерфейс по своему желанию. В X Window System в сочетании с ГНОМ или же KDE Plasma 5 это часто встречающаяся установка в большинстве Unix и Unix-подобный (BSD, Linux, Solaris) системы. Номер Замена оболочки Windows были выпущены для Microsoft Windows, которые предлагают альтернативы включенным Оболочка Windows, но саму оболочку нельзя отделить от Windows.

С течением времени существовало множество графических интерфейсов на основе Unix, большинство из которых были заимствованы из X11. Конкуренция между различными поставщиками Unix (HP, IBM, Sun) привела к значительной фрагментации, хотя в 1990-х годах были предприняты попытки стандартизации COSE и CDE не удалось по разным причинам, и в конечном итоге их затмило повсеместное внедрение GNOME и K Desktop Environment. До бесплатно программное обеспечение Основанные на инструментах и ​​окружении рабочего стола, Motif был преобладающей комбинацией набор инструментов / рабочий стол (и был основой, на которой была разработана CDE).

Графические пользовательские интерфейсы со временем развиваются. Например, Windows меняла свой пользовательский интерфейс почти каждый раз, когда выпускалась новая основная версия Windows, а графический интерфейс Mac OS резко изменился с появлением Mac OS X в 1999 году.[36]

Операционные системы реального времени

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

Ранним примером крупномасштабной операционной системы реального времени был Средство обработки транзакций разработан американские авиалинии и IBM для Система бронирования авиакомпаний Sabre.

Встроенные системы с фиксированными сроками используют операционная система реального времени Такие как VxWorks, PikeOS, eCos, QNX, MontaVista Linux и RTLinux. Windows CE это операционная система реального времени который имеет аналогичные API-интерфейсы с настольной Windows, но не использует кодовую базу настольной Windows.[37] ОС Symbian также имеет ядро ​​RTOS (EKA2), начиная с версии 8.0b.

Некоторые встроенные системы используют такие операционные системы, как Palm OS, BSD, и Linux, хотя такие операционные системы не поддерживают вычисления в реальном времени.

Разработка операционной системы как хобби

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

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

Примеры операционной системы для хобби: Слог и TempleOS.

Разнообразие операционных систем и портативность

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

Unix была первой операционной системой, написанной не на ассемблере, что сделало ее очень портативный к системам, отличным от родных PDP-11.[39]

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

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

Смотрите также

  • Сравнение операционных систем
  • Сбой (вычисления)
  • Гипервизор
  • Операционная система с прерываниями
  • Список важных публикаций в операционных системах
  • Список операционных систем
  • Список пионеров информатики
  • Live CD
  • Глоссарий терминов операционных систем
  • Микроконтроллер
  • Мобильное устройство
  • Мобильная операционная система
  • Сетевая операционная система
  • Объектно-ориентированная операционная система
  • Проекты операционной системы
  • Системный командир
  • Системный образ
  • Хронология операционных систем

Рекомендации

  1. ^ Ловушки (2005). Операционные системы, внутреннее устройство и принципы проектирования. Пирсон: Прентис Холл. п. 6.
  2. ^ Дхотре, И. (2009). Операционные системы. Технические публикации. п. 1.
  3. ^ «Мировая доля рынка операционных систем для настольных ПК». StatCounter Global Stats. Получено 31 октября 2020.
  4. ^ «Мировая доля рынка операционных систем для мобильных устройств и планшетов». StatCounter Global Stats. Получено 31 октября 2020.
  5. ^ «Стратегическая аналитика: Android занял рекордную долю от мировых поставок смартфонов в третьем квартале 2016 года». 2 ноября 2016. В архиве из оригинала от 5 ноября 2016 г.
  6. ^ Лорч, Джейкоб Р. и Алан Джей Смит. «Снижение энергопотребления процессора за счет улучшения управления временем процессора в однопользовательской операционной системе». Труды 2-й ежегодной международной конференции по мобильным вычислениям и сетям. ACM, 1996.
  7. ^ Мишра, Б .; Singh, N .; Сингх Р. (2014). «Модель на основе группы ведущий-ведомый для выбора координатора, улучшение алгоритма хулиганов». Международная конференция по параллельным, распределенным и сетевым вычислениям (PDGC). С. 457–460. Дои:10.1109 / PDGC.2014.7030789. ISBN  978-1-4799-7682-9. S2CID  13887160.
  8. ^ Ганье, Зильбершатц Гальвин (2012). Концепции операционных систем. Нью-Йорк: Вили. п. 716. ISBN  978-1118063330.
  9. ^ а б Хансен, Пер Бринч, изд. (2001). Классические операционные системы. Springer. С. 4–7. ISBN  0-387-95113-X.
  10. ^ Лавингтон, Саймон (1998). История компьютеров Manchester (2-е изд.). Суиндон: Британское компьютерное общество. С. 50–52. ISBN  978-1-902505-01-5.
  11. ^ Бринч Хансен, Пер (2000). Классические операционные системы: от пакетной обработки к распределенным системам. Springer-Verlag.
  12. ^ «Краткое справочное руководство по микропроцессору Intel® — год». www.intel.com. В архиве из оригинала 25 апреля 2016 г.. Получено 24 апреля 2016.
  13. ^ Ричи, Деннис. «Руководство по Unix, первое издание». Lucent Technologies. Архивировано из оригинал 18 мая 2008 г.. Получено 22 ноября 2012.
  14. ^ «OS X Mountain Lion — продвиньте свой Mac еще дальше». Яблоко. В архиве из оригинала 23 мая 2011 г.. Получено 7 августа 2012.
  15. ^ «Двадцать лет Linux согласно Линусу Торвальдсу». ZDNet. 13 апреля 2011 г. В архиве с оригинала 19 сентября 2016 г.. Получено 19 сентября, 2016.
  16. ^ Линус Бенедикт Торвальдс (5 октября 1991 г.). «Бесплатные исходники ядра, подобные minix, для 386-AT». Группа новостей: comp.os.minix. Получено 30 сентября 2011.
  17. ^ «Что такое Linux: обзор операционной системы Linux». Середина. Получено 21 декабря, 2019.
  18. ^ Linux Online (2008). «Логотипы и талисманы Linux». Архивировано из оригинал 15 августа 2010 г.. Получено 11 августа 2009.
  19. ^ а б «5 лучших операционных систем с января по апрель 2011 г.». StatCounter. Октябрь 2009 г. В архиве из оригинала 26 мая 2012 г.. Получено 5 ноября 2009.
  20. ^ «Отчет IDC о доле рынка серверов». Idc.com. Архивировано из оригинал 27 сентября 2012 г.. Получено 7 августа 2012.
  21. ^ Персонал LinuxDevices (23 апреля 2008 г.). «Linux по-прежнему остается лучшей встраиваемой ОС». LinuxGizmos.com. Архивировано из оригинал 19 апреля 2016 г.. Получено 5 апреля 2016.
  22. ^ «Генератор подсписок». Top500.org. Получено 6 февраля 2017.
  23. ^ «Глобальная веб-статистика». Чистая доля рынка, чистые приложения. Май 2011 г. В архиве из оригинала 25 января 2010 г.. Получено 7 мая 2011.
  24. ^ «Глобальная веб-статистика». W3Counter, веб-службы Awio. Сентябрь 2009 г. В архиве из оригинала 28 июня 2012 г.. Получено 24 октября 2009.
  25. ^ «Доля рынка операционных систем». Сетевые приложения. Октябрь 2009 г. В архиве из оригинала 25 января 2010 г.. Получено 5 ноября 2009.
  26. ^ «Статистика платформы ОС w3schools.com». В архиве из оригинала 5 августа 2011 г.. Получено 30 октября 2011.
  27. ^ «Статистика подсчитывает глобальную статистику, пять ведущих операционных систем». В архиве из оригинала 26 мая 2012 г.. Получено 30 октября 2011.
  28. ^ «Глобальная статистика на w3counter.com». В архиве из оригинала 28 июня 2012 г.. Получено 23 января 2012.
  29. ^ «Устранение неполадок в режиме совместимости с MS-DOS на жестких дисках». Support.microsoft.com. В архиве из оригинала 10 августа 2012 г.. Получено 7 августа 2012.
  30. ^ «Использование драйверов сетевой карты NDIS 2 PCMCIA в Windows 95». Support.microsoft.com. В архиве из оригинала 17 февраля 2013 г.. Получено 7 августа 2012.
  31. ^ «ИНФОРМАЦИЯ: драйверы мультимедийных волновых устройств Windows 95 должны быть 16-разрядными». Support.microsoft.com. В архиве из оригинала 17 февраля 2013 г.. Получено 7 августа 2012.
  32. ^ Артур, Чарльз. «Windows 8 будет работать на чипах ARM, но сторонние приложения необходимо будет переписать». Хранитель. В архиве из оригинала 12 октября 2016 г.
  33. ^ «Совместное использование операционной системы по группам для сайтов во всех местах, январь 2009 г.». Архивировано из оригинал 6 июля 2009 г.. Получено 3 мая 2010.
  34. ^ «За данными IDC: Windows по-прежнему №1 в серверных операционных системах». ZDNet. 26 февраля 2010 г. В архиве из оригинала от 1 марта 2010 г.
  35. ^ Столлингс, Уильям (2008). Компьютерная организация и архитектура. Нью-Дели: Prentice-Hall of India Private Limited. п. 267. ISBN  978-81-203-2962-1.
  36. ^ Пуассон, Кен. «Хронология программного обеспечения для персональных компьютеров» В архиве 14 мая 2008 г. Wayback Machine. Проверено 7 мая 2008. Последняя проверка 30 марта 2009 г.
  37. ^ «Чтение: операционная система». Люмен. Получено 5 января 2019.
  38. ^ «Моя ОС — меньше хобби, чем твоя». Osnews. 21 декабря 2009 г. В архиве из оригинала 24 декабря 2009 г.. Получено 21 декабря 2009.
  39. ^ «История Unix». БАЙТ. Август 1983 г. с. 188. Получено 31 января 2015.

дальнейшее чтение

  • Auslander, Marc A .; Ларкин, Дэвид С .; Шерр, Аллан Л. (1981). «Эволюция операционной системы MVS» (PDF). IBM J. Исследования и разработки.
  • Deitel, Harvey M .; Дейтель, Пол; Шоффнес, Дэвид (25 декабря 2015 г.). Операционные системы. Пирсон / Прентис Холл. ISBN  978-0-13-092641-8.
  • Bic, Lubomur F .; Шоу, Алан С. (2003). Операционные системы. Пирсон: Prentice Hall.
  • Зильбершатц, Ави; Гэлвин, Питер; Ганье, Грег (2008). Концепции операционных систем. Джон Уайли и сыновья. ISBN  978-0-470-12872-5.
  • О’Брайен, Дж. А., и Маракас, Г. М. (2011). Информационные системы управления. 10e. МакГроу-Хилл Ирвин.
  • Лева, Альберто; Маджио, Мартина; Пападопулос, Алессандро Витторио; Терранео, Федерико (2013). Дизайн операционной системы на основе управления. ИЭПП. ISBN  978-1-84919-609-3.
  • Арпачи-Дюссо, Ремзи; Арпачи-Дюссо, Андреа (2015). Операционные системы: три простых элемента.

внешняя ссылка

  • Операционные системы в Керли
  • История Multics и история операционных систем

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

По функциональным
возможностям выделяют:

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

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

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

  • однонитевые и
    многонитевые операционные системы.

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

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

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

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

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

Для универсальных
операционных систем характерны следующие
четыре цели:

  • Определение
    абстракций – процессы, файлы, модели
    памяти, концепция ввода-вывода и многое
    другое;

  • Предоставление
    примитивных команд для работы с
    абстракциями;

  • Защита – как
    сеансов пользователей, так и вычислительных
    ресурсов;

  • Управление
    аппаратными компонентами.

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

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

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

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

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

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

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

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

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

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

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

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

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

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

В случае, если операционная система позволяет одновременно
использовать ресурсы нескольким процессам, ее ресурсы можно
подразделить на типы, указанные на рис. 1.1 .

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

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

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

Рис 1.1. Типы ресурсов, доступных в операционной системе

Рис 1.1. Типы ресурсов, доступных в операционной системе

В этом случае используется квантование моментов использования
ресурса по времени.

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

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

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

1.1.1. Типовая структура операционной системы

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

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

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

Рис 1.2. Структура ядра типичной операционной системы

Рис 1.2. Структура ядра типичной операционной системы

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

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

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

Примером чисто виртуального устройства может служить «черная дыра» /dev/null в UNIX-системах. Вся информация, записываемая в данное устройство, пропадает, т.е. оно может быть использовано для поглощения данных, несущественных для решаемой задачи,

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

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

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

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

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

Рассмотрим особенности этих типов ОС более подробно.

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

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

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

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

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

Вследствие неразличимости пользователей система управления
сеансами и файловая система в значительной мере упрощаются.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • создание и уничтожение процессов — загрузка программы в память, создание информационного окружения и передача управления процессу при его создании, удаление информационного окружения и выгрузка процесса из памяти при его уничтожении;

  • распределение системных ресурсов между процессами — планирование выполнения процессов, формирование очереди процессов и управление приоритетами процессов в очереди;

  • межпроцессное взаимодействие — распределение общих данных между процессами или пересылка управляющих воздействий между одновременно выполняемыми процессами;

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

Система ввода/вывода в таких ОС также усложняется, посколь-ку любой ресурс (файл или устройство} может использоваться совместно несколькими процессами. Аля предотвращения конфликтов доступа используется механизм блокировок, разрешающий
доступ к неразделяемому ресурсу только одному процессу в один
момент времени.

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

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

В учебнике рассматриваются только базовые средства ОС UNIX,
при этом не уделяется никакого внимания различным расширениям, например графическим средствам Х Windows System.

Lorem ipsum dolor sit amet consectetur adipisicing elit. Ut ducimus odit accusamus, illum quas magni provident odio praesentium commodi sint, porro harum, minus cupiditate architecto culpa aut ex dolore officia.

– однозадачные операционные системы – системы, которые поддерживают режим выполнения только одной программы в отдельный момент времени, например, MS-DOS;

– многозадачные операционные системы – системы, которые поддерживают параллельное выполнение нескольких программ в рамках одной вычислительной системы в один момент времени, например: UNIX, OS/2, Windows.

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

– пакетной обработки – из программ, подлежащих выполнению, формируется пакет (набор) заданий, вводимых в ЭВМ и выполняемых в порядке очередности с возможным учетом приоритетности;

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

– реального времени – системы, которые обеспечивают определенное гарантированное время ответа машины на запрос пользователя при управлении им внешними событиями, процессами или объектами по отношению к ЭВМ.

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

– однопользовательские операционные системы– системы, которые поддерживают работу только одного пользователя (MS-DOS, Windows 3.x);

– многопользовательские операционные системы – системы, которые поддерживают одновременную работу на ЭВМ нескольких пользователей за различными терминалами (Windows NT, Unix).

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

5. Классификация операционных систем по разрядности кода:

– 8-разрядные;

– 16-разрядные;

– 32-разрядные;

– 64-разрядные.

Разрядность показывает, какую разрядность внутренней шины данных центрального процессора способна поддержать операционная система, и определяет программы, с которыми она будет работать. Все современные операционные системы поддерживают 32-разрядный интерфейс прикладных программ. Разрядность кода интерфейса прикладных программ имеет непосредственное отношение к адресному пространству оперативного запоминающего устройства (ОЗУ). Адресное пространство памяти – это область адресов памяти, распределяющейся между операционной системой и данными; между видеопамятью, памятью BIOS, блоком информации запрещенного режима работы и т. д. Операционная система может поддерживать два режима работы центрального процессора: реальный и защищенный. В реальном режиме работы процессора, характерном для MS-DOS, все программы и данные располагаются в одной области оперативной памяти, т. е. пользователь может войти в системную программу и случайно испортить ее. Защищенный режим работы процессора поддерживается 32-разрядными операционными системами и позволяет хранить программы и данные отдельно в соответствии с их важностью в системе.

6. Классификация операционных систем по количеству поддерживаемых процессоров:

– однопроцессорные;

– многопроцессорные.

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

Поддержка мультипроцессирования является важным свойством операционных систем и приводит к усложнению всех алгоритмов управления ресурсами. Многопроцессорная обработка реализована в операционных системах: Linux, Solaris, Windows NT и др. Многопроцессорные операционные системы подразделяются:

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

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

7. Классификация операционных систем по типу доступа пользователя к ЭВМ:

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

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

–операционные системы реального времени – системы, которые обеспечивают определенное гарантированное время ответа машины на запрос пользователя с управлением им какими-либо внешними по отношению к ЭВМ событиями, процессами или объектами.

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

  • Классификация операционных систем по мощности аппаратных средств
  • Классификация по семействам операционных систем

Section 1: More Comfortable

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

  • Классификация операционных систем для компьютеров по выполняемым функциям

    2.1. Дисковые операционные системы (ДОС) – системы, берущие на себя выполнение только простых функций. Как правило, они представляют собой некий…

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

    Операционная система составляет основу программного обеспечения ПК. Операционная система представляет комплекс системных и служебных программных средств,…

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