Операционная система, сокр. ОС — комплекс взаимосвязанных программ, предназначенных для управления источниками компьютера и организации взаимодействия с пользователем.
В логической структуре нормальной вычислительной системы операционная система занимает расположение между устройствами с их микроархитектурой, машинным языком и, допустимо, собственными (встроенными) микропрограммами (драйверами) — с одной стороны — и прикладными программами с иной.
Разработчикам программного обеспечения операционная система разрешает отвлекаться от деталей реализации и функционирования устройств, предоставляя минимально нужный комплект функций (см.: интерфейс программирования приложений).
В большинстве вычислительных систем операционная система является стержневой, особенно значимой (а изредка и исключительной) частью системного программного обеспечения. С 1990-х годов особенно распространёнными операционными системами являются системы семейства Windows, UNIX и UNIX-сходственные системы.
Необходимость оптимального применения дорогостоящих вычислительных источников привела к происхождению доктрины «пакетного режима» исполнения программ. Пакетный режим полагает присутствие очереди программ на исполнение, причём система может обеспечивать загрузку программы с внешних носителей данных в оперативную память, не дожидаясь заключения исполнения предыдущей программы, что разрешает избежать простоя процессора.
Уже пакетный режим в своём развитом варианте требует распределения процессорного времени между выполнением нескольких программ.
Необходимость в распределении времени (многозадачности, мультипрограммировании) проявилась ещё крепче при распространении в качестве устройств ввода-итога телетайпов (а позже, терминалов с электронно-лучевыми дисплеями) (1960-е годы). От того что скорость клавиатурного ввода (и даже чтения с экрана) данных оператором много ниже, чем скорость обработки этих данных компьютером, применение компьютера в «монопольном» режиме (с одним оператором) могло привести к примитивною дорогостоящих вычислительных источников.
Разделение времени дозволило сделать «многопользовательские» системы, в которых один (как правило) центральный процессор и блок оперативной памяти соединялся с многочисленными терминалами. При этом часть задач (таких как ввод либо редактирование данных оператором) могла исполняться в режиме диалога, а другие задачи (такие как громоздкие вычисления) — в пакетном режиме.
Распространение многопользовательских систем затребовало решения задачи распределения полномочий, разрешающей избежать вероятности метаморфозы исполняемой программы либо данных одной программы в памяти компьютера иной программой (специально либо по ошибке), а также метаморфозы самой системы прикладной программой.
Реализация распределения полномочий в операционных системах была поддержана разработчиками процессоров, предложивших архитектуры с двумя режимами работы процессора — «реальным» (в котором исполняемой программе доступно всё адресное пространство компьютера) и «защищённым» (в котором доступность адресного пространства ограничена диапазоном, выделенным при запуске программы на исполнение).