Операционные системы. А. Ю. Кручинин
с между приложениями и пользователями с одной стороны, и аппаратурой компьютера с другой стороны [11]. Операционная система выполняет две группы функций:
• предоставляет пользователю или программисту вместо реальной аппаратуры компьютера расширенной виртуальной машины;
• повышает эффективность использования компьютера путем рационального управления его ресурсами в соответствии с некоторым критерием.
Пользователь, как правило, не интересуется деталями устройства аппаратного обеспечения компьютера, он видится ему как набор приложений, которые можно написать на одном из языков программирования. Операционная система предоставляет программисту ряд возможностей, которые могут использовать программы с помощью специальных команд, называемых системными вызовами. Поэтому программное приложение включает в себя множества системных вызовов, необходимых, например, для работы с файлами. Операционная система скрывает от программиста детали аппаратного обеспечения и предоставляет удобный интерфейс для исполнения системы операционной среды.
В тоже время операционная система выступает в качестве менеджера ресурсов. В соответствии с этим подходом работа операционной системы заключается в обеспечении организованного и контролируемого распределения процессоров, памяти и устройств ввода-вывода между различными программами. Работа операционной системы имеет следующие особенности:
• функции операционной системы работают так же, как и остальное программное обеспечение – реализуются в виде отдельных программ или набора программ, исполняющихся процессов;
• операционная система должна передавать управление другими процессами и ожидать, когда процессор снова выделит ей время для выполнения своих обязанностей.
Управление ресурсами включает решение следующих общих, не зависящих от типа ресурса задач:
• планирование ресурса – то есть определение, какому процессу, когда и в каком количестве (если ресурс может выделяться частями) следует выделить данный ресурс;
• удовлетворение запросов на ресурсы;
• отслеживание состояния и учет использования ресурса – то есть поддержание оперативной информации о том, занят или свободен ресурс и какая доля ресурса уже распределена;
• разрешение конфликтов между процессами [11].
Управление ресурсами включает в себя их мультиплексирование (распределение) двумя способами: во времени и в пространстве. Когда ресурс распределяется во времени, различные пользователи и программы используют его по очереди. Сначала один из них получает доступ к использованию ресурса, потом другой и т. д. Например, несколько программ хотят обратиться к центральному процессору. В этой ситуации операционная система сначала разрешает доступ к процессору одной программе, затем, после того как она поработала достаточное время, другой программе, затем следующей и, в конце концов, опять первой. Определение того, как долго ресурс будет использоваться во времени, кто будет следующим и на какое время ему предоставляется ресурс – это задача операционной системы. Другой вид распределения – это пространственное мультиплексирование. Вместо поочередной работы каждый клиент получает часть ресурса. Обычно оперативная память разделяется между несколькими работающими программами, так что все они одновременно могут постоянно находиться в памяти (например, используя центральный процессор по очереди). Если предположить, что памяти достаточно для того, чтобы хранить несколько программ, эффективнее разместить в памяти сразу несколько программ, чем выделить всю память одной программе, особенно если ей нужна лишь небольшая часть имеющейся памяти. Конечно, при этом возникают проблемы справедливого распределения, защиты памяти и т. д., и для разрешения подобных вопросов существует операционная система [14].
1.2 История развития операционных систем
Обычно историю развития операционных систем связывают с историей развития компьютеров. Первая идея компьютера была предложена английским математиком Чарльзом Бэббиджем (Charles Babbage) в середине девятнадцатого века. Им была разработана так называемая механическая «аналитическая машина», которая правда так и не заработала должным образом. Далее представлены поколения компьютеров и их связь с операционными системами.
Первое поколение 1945-1955
Компьютеры состояли из электронных ламп и коммутационных панелей. Наивысшее достижение – выпуск перфокарт. Сделанная из тонкого картона, перфокарта представляет информацию наличием или отсутствием отверстий в определённых позициях карты. Операционная система отсутствует.
Второе поколение 1955-1965
Основа компьютеров транзисторы и системы пакетной обработки. Характеризовались колодами перфокарт и устройствами для записывания магнитных лент. В основном программировали на языках Фортран и Ассемблер для операционной системы Fortran Monitor System (FMS) и IBSYS.
Третье поколение 1965-1980
Период характеризуется появлением интегральных микросхем, а также многозадачностью или, как её называют по другому, мультипрограммированием.