Какими функциями владеет операционная система? Какое назначение ОС

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

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

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

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

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

ОС создает эту иллюзию посредством виртуализации CPU. Запуская один процесс, затем останавливая его, запуская другой процесс и так далее, ОС может поддерживать иллюзию того, что существует множество виртуальных CPU, хотя фактически это будет один или несколько физических процессоров. Такая техника называется разделение ресурсов CPU по времени. Эта техника позволяет пользователям запускать столько одновременных процессов, сколько они пожелают. Ценою такого решения является производительность – поскольку если CPU делят несколько процессов, каждый процесс будет обрабатываться медленнее.
Для воплощения виртуализации CPU, а особенно для того чтобы делать это хорошо, ОС нуждается и в низкоуровневой и в высокоуровневой поддержке. Низкоуровневая поддержка называется механизмами — это низкоуровневые методы или протоколы, которые реализуют нужную часть функционала. Пример такого функционала — контекстное переключение, которое дает ОС возможность останавливать одну программу и запускать на процессоре другую программу. Такое разделение по времени реализовано во всех современных ОС.
На вершине этих механизмов располагается некоторая логика, заложенная в ОС, в форме “политик”. Политика — это некоторый алгоритм принятия решения операционной системой. Такие политики, например, решают, какую программу надо запускать (из списка команд) в первую очередь. Так, например, данную задачу решит политика, называющаяся планировщик (scheduling policy) и при выборе решения будет руководствоваться такими данными как: история запуска (какая программа была запущена дольше всех за последнюю минут), какую нагрузку осуществляет данный процесс (какие типы программ были запущены), метрики производительности (оптимизирована ли система для интерактивного взаимодействия или для пропускной способности) и так далее.

Определение, назначение операционной системы

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

Для понимания, в чем состоит основное назначение операционной системы, стоит разобраться с её функциями.

  1. Согласование работы и оптимальное распределение аппаратных ресурсов компьютера.
  2. Организация взаимодействия пользователя с периферийными устройствами.
  3. Запуск и управление активными процессами, сервисами, программами и драйверами.
  4. Предоставление доступа к информации на энергонезависимых носителях: твердотельные и жёсткие накопители.
  5. Предоставление удобного и понятного пользовательского интерфейса для взаимодействия человека с компьютером, подключаемыми устройствами (принтер).
  6. Ведение лога ошибок, их выявление и исправление по возможности.
  7. Выполнение запросов пользователя, по сути, программ.
  8. Организация стабильности вычислений, когда ошибка в одном процессе не ведёт к проблемам в иных.
  9. Распараллеливание ресурсоёмких задач.
  10. Эффективное распределение нагрузки на процессорные ядра.
  11. Ограничение доступа приложений к аппаратным ресурсам.
  12. Взаимодействие между активными сервисами.
  13. Защита самой себя, программ и файлов от ошибок, действий пользователя (злонамеренных, по незнанию).
  14. Предоставление приложениям нужных для их функционирования системных библиотек.
  15. Организация многопользовательского режима работы с разграничением прав.

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

Как итог: операционная система — это комплекс программ, назначение которого – организация взаимодействия пользователя с компьютером и периферией.

Какое назначение ОС?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Какую операционную систему выбрать

На основе нашей статьи вы сможете определить, какая операционная система подойдет для вашей деятельности. Цените удобство и простоту — выбирайте Windows, интересно изучать компьютерные процессы — Linux. Если же вам необходимо только работать, то лучше всего установить MacOS. Изучайте новые системы и выбирайте наиболее подходящий вариант.

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

Эволюция операционных систем и основные идеи

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

И так друзья что же такое операционная система в компьютере?

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

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

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

  • Проверка BIOS и оборудования
  • Проверяются и загружаются драйверы устройств
  • На последнем этапе запускается сама ОС

ОС выполняет следующие основные функции

  1. Прием и выполнение команд пользователей
  2. Запуск, остановка и работа программ
  3. Управление оперативной памятью
  4. Доступ к подключаемым к компьютеру устройствам (мышь, клавиатура, принтер…)
  5. Сбор и сохранение данных об ошибках в работе системы

Электронное приложение к уроку

liniya

Вернуться к материалам урока
Презентации, плакаты, текстовые файлы Ресурсы ЕК ЦОР
Видео к уроку

liniya

Cкачать материалы урока

Системы программирования компьютера

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

Для записи программ используются специальные языки — языки программирования. Это формальные языки. Они состоят из некоторого фиксированного множества слов; существуют чёткие правила написания программ на языке программирования. К настоящему времени насчитывается несколько тысяч языков программирования. Некоторыми языками умеет пользоваться только ограниченный круг их разработчиков, другие становятся известными миллионам людей. Профессиональные программисты иногда применяют в своей работе более десятка разнообразных языков программирования. В 8 классе вы познакомитесь с языком программирования Паскаль. Возможно, кто-то из вас знаком с языком программирования Лого, специально созданным для обучения программированию детей.

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

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

Мобильные операционные системы

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

  • Windows Mobile
  • iOS
  • Android
  • Palms OS
  • BlackBerry OS
  • Symbian OS
  • Аврора.

Оцените статью
Fobosworld.ru
Добавить комментарий

Adblock
detector