#факты | Пять важнейших невидимых задач операционной системы

Олег Довбня

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

Задачи ОС

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

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

Многие люди становятся преданными приверженцами той или иной операционной системы. Другие же пользуются самыми разными ОС. А третьим и вовсе все равно, какая система помогает им управлять компьютером. Главное, чтобы работала. Фаворитами рынка считаются Apple OS X и Microsoft Windows. Различные дистрибутивы Линукса известны меньше, что не мешает их пользователям нахваливать преимущества той или иной сборки. Это компьютерные ОС. Если говорить о мобильных устройствах, то и для них сегодня существует несколько популярных операционных систем: Apple iOS, Google Android и Microsoft Windows Phone.

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

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

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

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

1. Обеспечивает аппаратно-программное «сцепление»

Задачи ОС

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

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

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

2. Заставляет одно и то же приложение работать на разном «железе»

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

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

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

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

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

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

3. Поиск необходимого приложению файла

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

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

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

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

4. Эффективное распределение доступной оперативной памяти

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

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

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

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

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

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

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

5. Акцентирует внимание процессора на той или иной задаче

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

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

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

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

Незаметная и незаменимая помощница

Задачи ОС

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

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

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

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

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

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

По материалам computer.howstuffworks.com