3 - Эволюция, классификация и области применения ОС (определения типов ОС и компонентов) Операционная система (ОС) – ПО, которое выполняет роль интерфейса между пользователем и аппаратурой ЭВМ. Оно управляет выполнением программ и предоставляет различные сервисы: распределение, регистрация, планирование, управление вводом/выводом данных. Сетевые ОС – обеспечивают поддержку использования обычных серверных систем в сети компьютеров. Распределенная ОС - общая ОС совместно используемая сетью компьютеров. Обеспечивает поддержку для межпроцессного взаимодействия, перемещения процессов, взаимоисключения, а также предотвращения взаимоблокировки. ОС реального времени (ОСРВ) – ОС, которая может планировать задачи реального времени и управлять ими. Эволюция: 1) Последовательная обработка данных – первые системы не имели ОС, программы напрямую работали с железом (недостатки: расписание работы машины и время подготовки к работе). 2) Простые пакетные системы – использование программы монитора, которая управляет обработкой пакетных данных. Задания в пакетах выстраиваются в очередь и выполняются быстро, без простоев. 3) Многозадачные пакетные системы – в памяти размещается ОС и программы: когда одно из заданий ждет завершения операций ввода-вывода, процессор может переключиться на другое задание, для которого в данный момент ввод/вывод, скорее всего, не требуется. 4) Системы, работающие в режиме разделения времени- многозадачность не только позволяет процессору одновременно обрабатывать несколько заданий в пакетном режиме, но может быть использована и для обработки нескольких интерактивных заданий. Такую организацию называют разделением времени, потому что процессорное время распределяется между различными пользователями. В системе разделения времени несколько пользователей одновременно получают доступ к системе с помощью терминалов, а операционная система чередует исполнение программ каждого пользователя через малые промежутки времени. Таким образом, если нужно одновременно обслужить n пользователей, каждому из них предоставляется лишь 1/n часть полной скорости компьютера, не считая затрат на работу операционной системы. Однако принимая во внимание относительно медленную реакцию человека, время отклика на компьютере с хорошо настроенной системой будет сравнимо со временем реакции пользователя. ОС делятся : По назначению: Общего типа Специального (коммун., спец расчеты. Ex: Ctos) Реального времени По типу ядра: Стандартное монолитное ядро Микроядро Гибридное ядро Экзоядро По типу системной архитектуры: С модульной архитектурой С объектно-ориентированной архитектурой По количеству пользователей: Однопользовательские Многопользовательские По уровню межпроцессного взаимодействия: Однозадачные (Dos) Многозадачные (Unix, OS/2, Windows) Сетевые Распределенные По типу многозадачности: С вытесняющей С невытесняющей (Win 3.11) С точки зрения поддержки потоков: Поддерживающие потоки Не поддерживающие потоки По уровню интеграции: Монолитные Встраиваемые Компоненты Ядро (Kernel) – часть ОС, включающая наиболее интенсивно используемые функции. Обычно ядро постоянно располагается в основной памяти и работает в привилегированном режиме, отвечая на вызовы процессов и прерывания от устройств. Монолитное ядро (Monolithic kernel) - большое ядро, виртуально содержащее всю операционную систему, включая планировщик, файловую систему, драйверы устройств и управление памятью. Все функциональные компоненты ядра имеют доступ ко всем eгo внутренним структурам данных и подпрограммам. Обычно монолитное ядро реализуется как единый процесс, в котором все элементы разделяют одно и то же адресное пространство. Микроядро (Microkernel) - малое привилегированное ядро операционной системы, обеспечивающее планирование процессов, управление памятью и коммуникации; для выполнения прочих функций, традиционно связываемых с ядром операционной системы, использует отдельные процессы. Задание (Job) - последовательность вычислительных этапов, собранных для запуска как единое целое. Задача (Task) - то же, что и процесс. Единица выделения ресурсов в системе. Процесс (Process) - выполняемая программа. Процесс управляется и планируется операционной системой. Поток (Thread) - независимо планируемый контекст выполнения, разделяющий единое адресное пространство с другими потоками. Единица планирования. Задача реального времени (Real-time task) - задача, которая выполняется в связи с некоторыми процессами, функциями или событиями, внешними по отношению к компьютерной системе, и которая должна реагировать на внешние события за приемлемое для них время. Драйвер устройства (Device driver) - модуль операционной системы (обычно находящийся в ядре), который работает непосредственно с устройством или контроллером ввода/вывода. Командная оболочка (Shell) - часть операционной системы, интерпретирующая интерактивные пользовательские команды и команды языка управления заданиями. (По сути, представляет собой интерфейс между пользователем и операционной системой.) Обработчик прерывания (Interrupt handler) - подпрограмма, обычно являющаяся частью операционной системы. В случае прерывания управление передается соответствующему обработчику, который предпринимает определенные действия в ответ на вызвавшие прерывание условия. Прерывание (Interrupt) - приостановка нормального выполнения процесса (компьютерной программы), вызванная внешним по отношению к процессу событием и осуществляемая таким образом, что по ее завершении выполнение процесса может быть продолжено. Время отклика (Response time) - время, прошедшее между концом передачи сообщения с запросом и началом получения ответного сообщения, измеряемое на запрашивающем терминале. Квантование времени (Time slicing) - режим работы, при котором два или несколько процессов получают кванты времени на одном и том же процессоре. Многозадачность (Multitasking) - режим работы, при котором обеспечивается параллельное или чередующееся выполнение двух или большего количества программ. Синоним термина multiprogramming. Разделение времени (Time sharing) - параллельное использование устройства несколькими пользователями. Диспетчеризация (Dispatch) - распределение времени процессора между заданиями, готовыми к выполнению. Планирование (Schedule) - выбор задания для выполнения. В некоторых ОС планироваться могут и другие единицы, например операции ввода/вывода. Пакетная обработка (Batch processing) - метод выполнения потока компьютерных программ, при котором запущенная программа полностью завершается до запуска следующей программы из множества. Повторно используемый ресурс (Reusable resource) - ресурс, который может безопасно использоваться в определенный момент времени только одним процессом и не расходуется им. Процесс получает единицы повторно используемого ресурса, которые позже освобождает для их повторного использования другими процессами. Примерами повторно используемых ресурсов могут служить процессоры, каналы ввода/вывода, основная и вторичная память, устройства и структуры данных, такие, как файлы, базы данных и семафоры. Расходуемые ресурсы (Consumable resources) - ресурсы, которые могут быть созданы (произведены) и уничтожены (потреблены). При получении процессом ресурса последний прекращает существование. Примерами расходуемых ресурсов могут служить прерывания, сигналы, сообщения, информация в буферах ввода/вывода. При получении процессом ресурса, последний прекращает своё существование. Основная память (Main memory) - память, внутренняя по отношению к вычислительной системе, адресуемая программами. Ее ячейки могут быть загружены в регистры для последующего выполнения или обработки. Вторичная память (Secondary memory) - память, расположенная вне вычислительной системы, например диски или магнитные ленты. Интерфейс прикладного программирования (Application programming interface, API) - стандартизованная библиотека программных средств, используемая разработчиками программного обеспечения для создания приложений, совместимых с определенной операционной системой и принятым графическим пользовательским интерфейсом. Пользовательский режим работы (User mode) – режим работы процессора, который не позволяет выполнять привилегированные команды, таких как остановка процессора или команды ввода/вывода. Режим супервизора (Supervisor mode) – режим работы процессора, который позволяет выполнять любые команды.