- •Первый период (1945–1955 гг.). Ламповые машины. Операционных систем нет
- •Третий период (начало 60-х – 1980 г.). Компьютеры на основе интегральных микросхем. Первые многозадачные ос
- •Четвертый период (с 1980 г. По настоящее время). Персональные компьютеры. Классические, сетевые и распределенные системы
- •Архитектурные особенности ос
- •Классификация ос
- •Критерии планирования и требования к алгоритмам [pda версия]
- •Вытесняющее и невытесняющее планирование
- •Алгоритмы планирования
- •Организация файлов и доступ к ним
- •Последовательный файл
- •Файл прямого доступа
- •Другие формы организации файлов
- •Операции над файлами
- •Директории. Логическая структура файлового архива
- •Операции над директориями
- •Защита файлов
- •Система управления вводом-выводом
- •Физические принципы организации ввода-вывода
- •Файловая система fat16
- •Файловая система fat32
Четвертый период (с 1980 г. По настоящее время). Персональные компьютеры. Классические, сетевые и распределенные системы
Следующий период в эволюции вычислительных систем связан с появлением больших интегральных схем (БИС). В эти годы произошло резкое возрастание степени интеграции и снижение стоимости микросхем. Компьютер, не отличающийся по архитектуре от PDP-11, по цене и простоте эксплуатации стал доступен отдельному человеку, а не отделу предприятия или университета.
Наступила эра персональных компьютеров. Первоначально персональные компьютеры предназначались для использования одним пользователем в однопрограммном режиме, что повлекло за собой деградацию архитектуры этих ЭВМ и их операционных систем (в частности, пропала необходимость защиты файлов и памяти, планирования заданий и т. п.).
Компьютеры стали использоваться не только специалистами, что потребовало разработки "дружественного" программного обеспечения.
Однако рост сложности и разнообразия задач, решаемых на персональных компьютерах, необходимость повышения надежности их работы привели к возрождению практически всех черт, характерных для архитектуры больших вычислительных систем.
В середине 80-х стали бурно развиваться сети компьютеров, в том числе персональных, работающих под управлением сетевых или распределенных операционных систем.
В сетевых операционных системах пользователи могут получить доступ к ресурсам другого сетевого компьютера, только они должны знать об их наличии и уметь это сделать. Каждая машина в сети работает под управлением своей локальной операционной системы, отличающейся от операционной системы автономного компьютера наличием дополнительных средств (программной поддержкой для сетевых интерфейсных устройств и доступа к удаленным ресурсам), но эти дополнения не меняют структуру операционной системы.
Распределенная система, напротив, внешне выглядит как обычная автономная система. Пользователь не знает и не должен знать, где его файлы хранятся – на локальной или удаленной машине – и где его программы выполняются. Он может вообще не знать, подключен ли его компьютер к сети. Внутреннее строение распределенной операционной системы имеет существенные отличия от автономных систем.
В дальнейшем автономные операционные системы мы будем называть классическими операционными системами.
Шесть основных функций, которые выполняли классические операционные системы в процессе эволюции:
· Планирование заданий и использования процессора.
· Обеспечение программ средствами коммуникации и синхронизации.
· Управление памятью.
· Управление файловой системой.
· Управление вводом-выводом.
· Обеспечение безопасности
Таблица 1.1. Эволюция компьютерных информационных технологий |
|||||
Параметр |
50-е годы |
60-е годы |
70-е годы |
80-е годы |
Настоящее время |
Цель использования компьютера (преимущественно) |
Научно-технические расчеты |
Технические и экономические расчеты |
Управление и экономические расчеты |
Управление, предоставление информации |
Телекоммуникации, информационное обслуживание и управление |
Режим работы компьютера |
Однопрограммный |
Пакетная обработка |
Разделение времени |
Персональная работа |
Сетевая обработка |
Интеграция данных |
Низкая |
Средняя |
Высокая |
Очень высокая |
Сверхвысокая |
Расположение пользователя |
Машинный зал |
Отдельное помещение |
Терминальный зал |
Рабочий стол |
Произвольное мобильное |
Тип пользователя |
Инженеры-программисты |
Профессиональные программисты |
Программисты |
Пользователи с общей компьютерной подготовкой |
Мало обученные пользователи |
Тип диалога |
Работа за пультом компьютера |
Обмен перфоносителями и машинограммами |
Интерактивный (через клавиатуру и экран) |
Интерактивный с жестким меню |
Интерактивный экранный типа “вопрос— ответ” |
Операционная система: определение и классификация. Основные функции операционных систем.
операционная система (ОС) представляет собой комплекс системных управляющих и обрабатывающих программ, которые, с одной стороны, выступают как интерфейс между аппаратурой компьютера и пользователем с его задачами, а с другой стороны, предназначены для наиболее эффективного расходования ресурсов вычислительной системы и организации надежных вычислений. Классификация ОС:
1)по назначению (общего назначения, специального назначения (мини ЭВМ, микро ЭВМ, ЭВМ реального времени));
2)по режиму обработки задач (однопрограммные, многопрограммные); 3)по архитектурным особенностям (микроядерные, монолитные);
4)по организации работы (однотерминальные, многотерминальные).
основные функции операционных систем.
1)Прием от пользователя (или от оператора системы) заданий, или команд, сформулированных на соответствующем языке, и их обработка. Задания могут передаваться в виде текстовых директив (команд) оператора или в форме указаний, выполняемых с помощью манипулятора (например, с помощью мыши). Эти команды связаны, прежде всего, с запуском (приостановкой, остановкой) программ, с операциями над файлами (получить перечень файлов в текущем каталоге, создать, переименовать, скопировать, переместить тот или иной файл и др.), хотя имеются и иные команды.
2)Загрузка в оперативную память подлежащих исполнению программ.
3)Распределение памяти, а в большинстве современных систем и организация виртуальной памяти.
4)Запуск программы (передача ей управления, в результате чего процессор исполняет программу).
5)Идентификация всех программ и данных.
6)Прием и исполнение различных запросов от выполняющихся приложений. Операционная система умеет выполнять очень большое количество системных функций (сервисов), которые могут быть запрошены из выполняющейся программы. Обращение к этим сервисам осуществляется по соответствующим правилам, которые и определяют интерфейс прикладного программирования (Application Program Interface, API) этой операционной системы.
7)Обслуживание всех операций ввода-вывода.
8)Обеспечение работы систем управлений файлами (СУФ) и/или систем управления базами данных (СУБД), что позволяет резко увеличить эффективность всего программного обеспечения.
9)Обеспечение режима мультипрограммирования, то есть организация параллельного выполнения двух или более программ на одном процессоре, создающая видимость их одновременного исполнения.
10)Планирование и диспетчеризация задач в соответствии с заданными стратегией и дисциплинами обслуживания.
11)Организация механизмов обмена сообщениями и данными между выполняющимися программами.
12)Для сетевых операционных систем характерной является функция обеспечения взаимодействия связанных между собой компьютеров.
13)Защита одной программы от влияния другой, обеспечение сохранности данных, защита самой операционной системы от исполняющихся на компьютере приложений.
14)Аутентификация и авторизация пользователей (для большинства диалоговых операционных систем). Под аутентификацией понимается процедура проверки имени пользователя и его пароля на соответствие тем значениям, которые хранятся в его учетной записи. Термин авторизация означает, что в соответствии с учетной записью пользователя, который прошел аутентификацию, ему (и всем запросам, которые будут идти к операционной системе от его имени) назначаются определенные права(привилегии), определяющие, что он может, а что не может делать на компьютере.
15) Удовлетворение жестким ограничениям на время ответа в режиме реального времени (характерно для операционных систем реального времени).
16)Обеспечение работы систем программирования, с помощью которых пользователи готовят свои программы.
17)Предоставление услуг на случай частичного сбоя системы.
Архитектура операционной системы.
Простейшая структуризация ОС состоит в разделении всех компонентов ОС на модули, выполняющие основные функции ОС (ядро), и модули, выполняющие вспомогательные функции ОС. Вспомогательные модули ОС оформляются либо в виде приложений (утилиты и системные обрабатывающие программы), либо в виде библиотек процедур. Вспомогательные модули загружаются в оперативную память только на время выполнения своих функций, то есть являются транзитными. Модули ядра постоянно находятся в оперативной памяти, то есть являются резидентными. При наличии аппаратной поддержки режимов с разными уровнями полномочий устойчивость ОС может быть повышена путем выполнения функций ядра в привилегированном режиме, а вспомогательных модулей ОС и приложений — в пользовательском. Это дает возможность защитить коды и данные ОС и приложений от несанкционированного доступа. ОС может выступать в роли арбитра в спорах приложений за ресурсы. Ядро, являясь структурным элементом ОС, в свою очередь, может быть логически разложено на следующие слои (начиная с самого нижнего): 1)машинно-зависимые компоненты ОС; 2)базовые механизмы ядра; 3)менеджеры ресурсов; 4)интерфейс системных вызовов. В многослойной системе каждый слой обслуживает вышележащий слой, выполняя для него некоторый набор функций, которые образуют межслойный интерфейс. На основе функций нижележащего слоя следующий вверх по иерархии слой строит свои функции — более сложные и более мощные, которые, в свою очередь, оказываются примитивами для создания еще более мощных функций вышележащего слоя. Многослойная организация ОС существенно упрощает разработку и модернизацию системы. Любая ОС для решения своих задач взаимодействует с аппаратными средствами компьютера, а именно: средствами поддержки привилегированного режима и трансляции адресов, средствами переключения процессов и защиты областей памяти, системой прерываний и системным таймером. Это делает ОС машинно-зависимой, привязанной к определенной аппаратной платформе. Переносимость ОС может быть достигнута при соблюдении следующих правил. Во-первых, большая часть кода должна быть написана на языке, трансляторы которого имеются на всех компьютерах, куда предполагается переносить систему. Во-вторых, объем машинно-зависимых частей кода, которые непосредственно взаимодействуют с аппаратными средствами, должен быть по возможности минимизирован. В-третьих, аппаратно-зависимый код должен быть надежно локализован в нескольких модулях. Микроядерная архитектура является альтернативой классическому способу построения операционной системы, в соответствии с которым все основные функции операционной системы, составляющие многослойное ядро, выполняются в привилегированном режиме. В микроядерных ОС в привилегированном режиме остается работать только очень небольшая часть ОС, называемая микроядром. Все остальные высокоуровневые функции ядра оформляются в виде приложений, работающих в пользовательском режиме. Микроядерные ОС удовлетворяют большинству требований, предъявляемых к современным ОС, обладая переносимостью, расширяемостью, надежностью и создавая хорошие предпосылки для поддержки распределенных приложений. За эти достоинства приходится платить снижением производительности, что является основным недостатком микроядерной архитектуры. Прикладная программная среда — совокупность средств ОС, предназначенная для организации выполнения приложений, использующих определенную систему машинных команд, определенный тип API и определенный формат исполняемой программы. Каждая ОС создает как минимум одну прикладную программную среду. Проблема состоит в обеспечении совместимости нескольких программных сред в рамках одной ОС. При построении множественных прикладных сред используются различные архитектурные решения, концепции эмуляции двоичного кода, трансляции API.