Изменения
мСтрока 1:
Строка 1:
− '''Операцио́нная систе́ма''', '''ОС''' ({{lang-en|operating system}}) — базовый комплекс [[компьютерная программа|компьютерных программ]], обеспечивающий управление аппаратными средствами [[компьютер]]а, работу с [[файл]]ами, ввод и вывод данных, а также выполнение [[прикладное программное обеспечение|прикладных программ]] и [[Утилиты|утилит]].+
−
− При включении компьютера операционная система загружается в память раньше остальных программ и затем служит платформой и средой для их работы. Помимо вышеуказанных функций ОС может осуществлять и другие, например, предоставление пользовательского [[интерфейс]]а, сетевое взаимодействие и т. п.
−
− С [[1990-е|1990-х]] наиболее распространёнными операционными системами для [[персональный компьютер|персональных компьютеров]] и [[сервер]]ов являются ОС семейства [[Microsoft]] [[Microsoft Windows|Windows]] и [[Windows NT]], [[Mac OS]] и [[Mac OS X]], системы класса [[UNIX]], и Unix‐подобные (особенно [[GNU/Linux]]).
−
− == Функции ==
−
− Основные функции (простейшие ОС):
− * Загрузка приложений в оперативную память и их выполнение;
− * Стандартизованный доступ к периферийным устройствам ([[устройства ввода-вывода]]);
− * Управление оперативной памятью (распределение между процессами, [[виртуальная память]]);
− * Управление доступом к данным на энергонезависимых носителях (таких как [[Жёсткий диск]], [[Компакт-диск]] и т. д.), как правило с помощью [[Файловая система|файловой системы]];
− * Пользовательский интерфейс;
− * Сетевые операции, поддержка стека протоколов
−
− Дополнительные функции:
− * Параллельное или [[псевдопараллельное выполнение задач]] ([[многозадачность]]);
− * Взаимодействие между процессами;
− * Защита самой системы, а также пользовательских данных и программ от злонамеренных действий пользователей или приложений;
− * Разграничение прав доступа и многопользовательский режим работы ([[аутентификация]], [[авторизация]]).
−
− == Понятие операционной системы ==
−
− Существуют две группы определений ОС: «совокупность программ, управляющих оборудованием» и «совокупность программ, управляющих другими программами». Обе они имеют свой точный технический смысл, который, однако, становится ясен только при более детальном рассмотрении вопроса о том, зачем вообще нужны операционные системы.
−
− Есть приложения вычислительной техники, для которых ОС излишни. Напр., встроенные [[микрокомпьютер]]ы содержатся сегодня во многих бытовых приборах, автомобилях (иногда по десятку в каждом), сотовых телефонах и т. п. Зачастую такой компьютер постоянно исполняет лишь одну программу, запускающуюся по включении. И простые игровые приставки — также представляющие собой специализированные микрокомпьютеры — могут обходиться без ОС, запуская при включении программу, записанную на вставленном в устройство «картридже» или [[компакт-диск]]е. (Многие встроенные компьютеры и даже некоторые игровые приставки на самом деле работают под управлением своих ОС).
−
− Операционные системы, в свою очередь, нужны, если:
−
− * вычислительная система используется для различных задач, причём программы, исполняющие эти задачи, нуждаются в сохранении данных и обмене ими. Из этого следует необходимость универсального механизма сохранения данных; в подавляющем большинстве случаев ОС отвечает на неё реализацией файловой системы. Современные ОС, кроме того, предоставляют возможность непосредственно «связать» вывод одной программы с вводом другой, минуя относительно медленные дисковые операции;
− * различные программы нуждаются в выполнении одних и тех же рутинных действий. Напр., простой ввод символа с клавиатуры и отображение его на экране может потребовать исполнения сотен машинных команд, а дисковая операция — тысяч. Чтобы не программировать их каждый раз заново, ОС предоставляют [[системные библиотеки]] часто используемых подпрограмм (функций);
− * между программами и пользователями системы необходимо распределять полномочия, чтобы пользователи могли защищать свои данные от чужого взора, а возможная ошибка в программе не вызывала тотальных неприятностей;
− * необходима возможность имитации «одновременного» исполнения нескольких программ на одном компьютере (даже содержащем лишь один процессор), осуществляемой с помощью приёма, известного как «[[разделение времени]]». При этом специальный компонент, называемый планировщиком, «нарезает» процессорное время на короткие отрезки и предоставляет их поочередно различным исполняющимся программам (процессам);
− * наконец, оператор должен иметь возможность, так или иначе, управлять процессами выполнения отдельных программ. Для этого служат [[операционная среда|операционные среды]], одна из которых — оболочка и набор стандартных утилит — является частью ОС (прочие, такие, как графическая операционная среда, образуют независимые от ОС прикладные платформы). Таким образом, современные универсальные ОС можно охарактеризовать прежде всего как
− *# использующие файловые системы (с универсальным механизмом доступа к данным),
− *# многопользовательские (с разделением полномочий),
− *# многозадачные (с разделением времени).
−
− Многозадачность и распределение полномочий требуют определённой иерархии привилегий компонентов самой ОС. В составе ОС различают три группы компонентов:
−
− * [[ядро операционной системы|ядро]], содержащее планировщик; драйверы устройств, непосредственно управляющие оборудованием; сетевую подсистему, файловую систему;
− * [[системная библиотека|системные библиотеки]] и
− * [[оболочка операционной системы|оболочку]] с [[утилита]]ми.
−
− Большинство программ, как системных (входящих в ОС), так и прикладных, исполняются в непривилегированном («пользовательском») режиме работы [[Центральный процессор|процессора]] и получают доступ к оборудованию (и, при необходимости, к другим ядерным ресурсам, а также ресурсам иных программ) только посредством [[системный вызов|системных вызовов]]. Ядро исполняется в привилегированном режиме: именно в этом смысле говорят, что ОС (точнее, её ядро) управляет оборудованием.
−
− Текущая редакция стандарта на ОС содержит определения около тысячи системных вызовов и других библиотечных [[подпрограмма|подпрограмм]] (часть из которых должна реализоваться только в определённых классах систем; напр., в системах «реального времени») и около 200 команд оболочки и утилит ОС. Стандарт определяет лишь функции вызовов и команд, и не содержит указаний относительно способов их реализации.
−
− Стандарт, кроме этого, определяет способ адресации файлов в системе, локализацию (установки, касающиеся национально-специфических моментов, таких, как язык сообщений или формат даты и времени), совместимый набор символов, синтаксис регулярных выражений, структуру каталогов в файловой системе, формат командной строки и некоторые другие аспекты поведения ОС.
−
− В определении состава ОС значение имеет критерий операциональной целостности (замкнутости): система должна позволять полноценно использовать (включая модификацию) свои компоненты. Поэтому в полный состав ОС включается и набор инструментальных средств (от текстовых редакторов до компиляторов, отладчиков и компоновщиков). Операциональной замкнутостью обладают системы, удовлетворяющие «разработческому» профилю в терминах стандарта.
−
− == Эволюция операционных систем и основные идеи ==
−
− Предшественником ОС следует считать служебные программы ([[загрузчик]]и и мониторы), а также библиотеки часто используемых [[подпрограмма|подпрограмм]], начавшие разрабатываться с появлением универсальных [[поколения ЭВМ|компьютеров 1-го поколения]] (конец [[1940-е|1940-х годов]]). Служебные программы минимизировали физические манипуляции оператора с оборудованием, а библиотеки позволяли избежать многократного программирования одних и тех же действий (осуществления операций [[ввод-вывод|ввода-вывода]], вычисления математических функций и т. п.).
−
− В [[1950-е|1950]]-[[1960-е|60-х годах]] сформировались и были реализованы основные идеи, определяющие функциональность ОС: '''пакетный режим''', '''разделение времени''' и '''многозадачность''', '''разделение полномочий''', '''реальный масштаб времени''', файловые структуры и '''[[файловая система|файловые системы]]'''.
−
− === Пакетный режим ===
−
− Необходимость оптимального использования дорогостоящих вычислительных ресурсов привела к появлению концепции «пакетного режима» исполнения программ. Пакетный режим предполагает наличие очереди программ на исполнение, причём ОС может обеспечивать загрузку программы с внешних носителей данных в оперативную память, не дожидаясь завершения исполнения предыдущей программы, что позволяет избежать простоя процессора.
−
− === Разделение времени и многозадачность ===
−
− Уже пакетный режим в своём развитом варианте требует разделения процессорного времени между выполнением нескольких программ.
−
− Необходимость в разделении времени (многозадачности, мультипрограммировании) проявилась ещё сильнее при распространении в качестве устройств ввода-вывода телетайпов (а позднее, терминалов с электронно-лучевыми дисплеями) (1960-е годы). Поскольку скорость клавиатурного ввода (и даже чтения с экрана) данных оператором много ниже, чем скорость обработки этих данных компьютером, использование компьютера в «монопольном» режиме (с одним оператором) могло привести к простою дорогостоящих вычислительных ресурсов.
−
− Разделение времени позволило создать «многопользовательские» системы, в которых один (как правило) [[центральный процессор]] и блок оперативной памяти соединялся с многочисленными терминалами. При этом часть задач (таких, как ввод или редактирование данных оператором) могла исполняться в режиме диалога, а другие задачи (такие, как массивные вычисления) — в пакетном режиме.
−
− === Разделение полномочий ===
−
− Распространение многопользовательских систем потребовало решения задачи разделения полномочий, позволяющей избежать возможности модификации исполняемой программы или данных одной программы в памяти компьютера другой (содержащей ошибку или злонамеренно подготовленной) программы, а также модификации самой ОС прикладной программой.
−
− Реализация разделения полномочий в ОС была поддержана разработчиками процессоров, предложивших архитектуры с двумя режимами работы процессора — «реальным» (в котором исполняемой программе доступно всё [[адресное пространство]] компьютера) и «защищённым» (в котором доступность адресного пространства ограничена диапазоном, выделенном при запуске программы на исполнение).
−
− === Реальный масштаб времени ===
−
− Применение универсальных компьютеров для управления производственными процессами потребовало реализации «реального масштаба времени» («реального времени») — синхронизации исполнения программ с внешними физическими процессами.
−
− Включение функции реального масштаба времени в ОС позволило создавать системы, одновременно обслуживающие производственные процессы и решающие другие задачи (в пакетном режиме и (или) в режиме разделения времени).
−
− === Файловые системы и структуры ===
−
− Постепенная замена носителей с последовательным доступом ([[перфолента|перфолент]], [[перфокарта|перфокарт]] и [[стример|магнитных лент]]) накопителями произвольного доступа (на [[магнитный диск|магнитных диск]])
−
− == Примечания ==
− <references />
−
− == См. также ==
− * [[Список операционных систем]]
− * [[Многозадачность]]
− * [[Хронология операционных систем]]
− * [[Операционное окружение]]
−
− == Литература ==
− * Отставнов Максим «[http://www.otstavnov.com/fsft Свободные программы и системы в школе]». — М., 2003.
− * [[Эрик Рэймонд|Raymond Eric S]]. [http://www.catb.org/~esr/writings/taoup/ The Art of Unix Programming]. — 2003.
−
− == Ссылки ==
−
− {{википедия|Операционная система}}
−
− [[Категория:Операционные системы]]
Содержимое страницы заменено на «Хуй»
Хуй