В основные функции операционной системы не входит управление ресурсами компьютера
Операционная система (operating system ) – комплекс программ, предоставляющий пользователю удобную среду для работы с компьютерным оборудованием.
Операционная система позволяет запускать пользовательские программы; управляет всеми ресурсами компьютерной системы – процессором (процессорами), оперативной памятью, устройствами ввода вывода; обеспечивает долговременное хранение данных в виде файлов на устройствах внешней памяти; предоставляет доступ к компьютерным сетям.
Для более полного понимания роли операционной системы рассмотрим составные компоненты любой вычислительной системы (рис.1.1).
Все компоненты можно разделить на два больших класса – программы или программное обеспечение ( ПО , software ) и оборудование или аппаратное обеспечение ( hardware ). Программное обеспечение делится на прикладное, инструментальное и системное. Рассмотрим кратко каждый вид ПО .
Цель создания вычислительной системы – решение задач пользователя. Для решения определенного круга задач создается прикладная программа ( приложение , application ). Примерами прикладных программ являются текстовые редакторы и процессоры (Блокнот, Microsoft Word ), графические редакторы ( Paint , Microsoft Visio), электронные таблицы (Microsoft Excel ), системы управления базами данных (Microsoft Access, Microsoft SQL Server ), браузеры ( Internet Explorer) и т. п. Все множество прикладных программ называется прикладным программным обеспечением ( application software ).
Создается программное обеспечение при помощи разнообразных средств программирования (среды разработки, компиляторы, отладчики и т. д.), совокупность которых называется инструментальным программным обеспечением. Представителем инструментального ПО является среда разработки Microsoft Visual Studio .
Основным видом системного программного обеспечения являются операционные системы. Их основная задача – обеспечить интерфейс (способ взаимодействия) между пользователем и приложениями с одной стороны, и аппаратным обеспечением с другой. К системному ПО относятся также системные утилиты – программы, которые выполняют строго определенную функцию по обслуживанию вычислительной системы, например, диагностируют состояние системы , выполняют дефрагментацию файлов на диске, осуществляют сжатие ( архивирование ) данных. Утилиты могут входить в состав операционной системы.
Взаимодействие всех программ с операционной системой осуществляется при помощи системных вызовов ( system calls) – запросов программ на выполнение операционной системой необходимых действий. Набор системных вызовов образует API – Application Programming Interface ( интерфейс прикладного программирования).
Далее рассмотрим, какие функции должны выполнять современные операционные системы.
Функции операционной системы
К основным функциям, выполняемым операционными системами, можно отнести:
- обеспечение выполнения программ – загрузка программ в память, предоставление программам процессорного времени, обработка системных вызовов;
- управление оперативной памятью – эффективное выделение памяти программам, учет свободной и занятой памяти;
- управление внешней памятью – поддержка различных файловых систем;
- управление вводом-выводом – обеспечение работы с различными периферийными устройствами;
- предоставление пользовательского интерфейса;
- обеспечение безопасности – защита информации и других ресурсов системы от несанкционированного использования;
- организация сетевого взаимодействия.
Структура операционной системы
Перед изучением структуры операционных систем следует рассмотреть режимы работы процессоров.
Современные процессоры имеют минимум два режима работы – привилегированный (supervisor mode) и пользовательский (user mode).
Отличие между ними заключается в том, что в пользовательском режиме недоступны команды процессора, связанные с управлением аппаратным обеспечением, защитой оперативной памяти, переключением режимов работы процессора. В привилегированном режиме процессор может выполнять все возможные команды.
Приложения, выполняемые в пользовательском режиме, не могут напрямую обращаться к адресным пространствам друг друга – только посредством системных вызовов.
Все компоненты операционной системы можно разделить на две группы – работающие в привилегированном режиме и работающие в пользовательском режиме, причем состав этих групп меняется от системы к системе.
Основным компонентом операционной системы является ядро (kernel). Функции ядра могут существенно отличаться в разных системах; но во всех системах ядро работает в привилегированном режиме (который часто называется режим ядра, kernel mode).
Термин "ядро" также используется в разных смыслах. Например, в Windows термин "ядро" (NTOS kernel) обозначает совокупность двух компонентов – исполнительной системы (executive layer) и собственно ядра (kernel layer) [12].
Существует два основных вида ядер – монолитные ядра (monolithic kernel) и микроядра (microkernel). В монолитном ядре реализуются все основные функции операционной системы, и оно является, по сути, единой программой, представляющей собой совокупность процедур [6]. В микроядре остается лишь минимум функций, который должен быть реализован в привилегированном режиме: планирование потоков, обработка прерываний, межпроцессное взаимодействие. Остальные функции операционной системы по управлению приложениями, памятью, безопасностью и пр. реализуются в виде отдельных модулей в пользовательском режиме.
Ядра, которые занимают промежуточные положение между монолитными и микроядрами, называют гибридными (hybrid kernel).
Примеры различных типов ядер:
- монолитное ядро – MS-DOS, Linux, FreeBSD;
- микроядро – Mach, Symbian, MINIX 3;
- гибридное ядро – NetWare, BeOS, Syllable.
Кроме ядра в привилегированном режиме (в большинстве операционных систем) работают драйверы (driver) – программные модули, управляющие устройствами.
В состав операционной системы также входят:
- системные библиотеки (system DLL – Dynamic Link Library, динамически подключаемая библиотека), преобразующие системные вызовы приложений в системные вызовы ядра;
- пользовательские оболочки (shell), предоставляющие пользователю интерфейс – удобный способ работы с операционной системой.
Пользовательские оболочки реализуют один из двух основных видов пользовательского интерфейса:
- текстовый интерфейс (Text User Interface, TUI), другие названия – консольный интерфейс (Console User Interface, CUI), интерфейс командной строки (Command Line Interface, CLI);
- графический интерфейс (Graphic User Interface, GUI).
Пример реализации текстового интерфейса в Windows – интерпретатор командной строки cmd.exe; пример графического интерфейса – Проводник Windows (explorer.exe).
Классификация операционных систем
Классификацию операционных систем можно осуществлять несколькими способами.
- По способу организации вычислений:
- системы пакетной обработки (batch processing operating systems) – целью является выполнение максимального количества вычислительных задач за единицу времени; при этом из нескольких задач формируется пакет, который обрабатывается системой;
- системы разделения времени (time-sharing operating systems) – целью является возможность одновременного использования одного компьютера несколькими пользователями; реализуется посредством поочередного предоставления каждому пользователю интервала процессорного времени;
- системы реального времени (real-time operating systems) – целью является выполнение каждой задачи за строго определённый для данной задачи интервал времени.
- системы с монолитным ядром (monolithic operating systems);
- системы с микроядром (microkernel operating systems);
- системы с гибридным ядром (hybrid operating systems).
- однозадачные (single-tasking operating systems);
- многозадачные (multitasking operating systems).
- однопользовательские (single-user operating systems);
- многопользовательские (multi-user operating systems).
- однопроцессорные (uniprocessor operating systems);
- многопроцессорные (multiprocessor operating systems).
- локальные (local operating systems) – автономные системы, не предназначенные для работы в компьютерной сети;
- сетевые (network operating systems) – системы, имеющие компоненты, позволяющие работать с компьютерными сетями.
- серверные (server operating systems) – операционные системы, предоставляющие доступ к ресурсам сети и управляющие сетевой инфраструктурой;
- клиентские (client operating systems) – операционные системы, которые могут получать доступ к ресурсам сети.
- открытые (open-source operating systems) – операционные системы с открытым исходным кодом, доступным для изучения и изменения;
- проприетарные (proprietary operating systems) – операционные системы, которые имеют конкретного правообладателя; обычно поставляются с закрытым исходным кодом.
- операционные системы мэйнфреймов – больших компьютеров (mainframe operating systems);
- операционные системы серверов (server operating systems);
- операционные системы персональных компьютеров (personal computer operating systems);
- операционные системы мобильных устройств (mobile operating systems);
- встроенные операционные системы (embedded operating systems);
- операционные системы маршрутизаторов (router operating systems).
Требования к операционным системам
Основное требование, предъявляемое к современным операционным системам – выполнение функций, перечисленных выше в параграфе "Функции операционных систем". Кроме этого очевидного требования существуют другие, часто не менее важные [3]:
- расширяемость – возможность приобретения системой новых функций в процессе эволюции; часто реализуется за счет добавления новых модулей;
- переносимость – возможность переноса операционной системы на другую аппаратную платформу с минимальными изменениями;
- совместимость – способность совместной работы; может иметь место совместимость новой версии операционной системы с приложениями, написанными для старой версии, или совместимость разных операционных систем в том смысле, что приложения для одной из этих систем можно запускать на другой и наоборот;
- надежность – вероятность безотказной работы системы;
- производительность – способность обеспечивать приемлемые время решения задач и время реакции системы.
Резюме
В этой лекции приведено определение операционной системы, представлены виды программного обеспечения, рассмотрены функции и структура операционной системы. Особое внимание уделено понятию "ядра". Также приведены различные способы классификации операционных систем и требования, предъявляемые к современным операционным системам.
В следующей лекции будет представлен обзор операционных систем Microsoft Windows.
Читайте также: