
- •1.Лекция 1.Операционная система. Введение
- •1.1.Структура вычислительной системы
- •1.2.Что такое операционная система
- •1.2.1. Операционная система как виртуальная машина.
- •1.2.2.Операционная система как менеджер ресурсов
- •1.2.3.Операционная система как защитник пользователей и программ
- •1.2.4.Операционная система как постоянно функционирующее ядро
- •1.3.История эволюции вычислительных систем
- •1.3.1.Первый период (1945–1955 гг.). Ламповые машины. Операционных систем нет
- •1.3.2.Второй период (1955 г.–начало 60-х). Компьютеры на основе транзисторов. Пакетные операционные системы
- •1.3.3.Третий период (начало 60-х – 1980 г.). Компьютеры на основе интегральных микросхем. Первые многозадачные ос
- •1.3.4.Четвертый период (с 1980 г. По настоящее время). Персональные компьютеры. Классические, сетевые и распределенные системы
- •1.4. Функции операционной системы.
- •1.5.Основные понятия, концепции ос
- •1.5.1.Системные вызовы
- •1.5.2.Прерывания
- •1.5.3.Исключительные ситуации
- •1.5.4.Файлы
- •1.6.Архитектурные особенности ос
- •1.6.1.Монолитное ядро
- •1.6.2.Многоуровневые или слоеные системы (Layered systems)
- •1.6.3.Виртуальные машины
- •1.6.4.Микроядерная архитектура
- •1.6.5.Смешанные системы
- •1.7.Классификация операционных систем
- •1.7.1.Реализация многозадачности
- •1.7.2.Поддержка многопользовательского режима
- •1.7.3.Многопроцессорная обработка
- •1.7.4.Системы реального времени
- •2 Процессы
- •2.1.Понятие процесса
- •2.2.Состояния процесса
- •2.3.Операции над процессами и связанные с ними понятия
- •2.3.1.Набор операций
- •2.3.2.Блок управления процессом (рсв Process Control Block) и контекст процесса
- •2.3.3.Одноразовые операции
- •2.3.4.Многоразовые операции
- •2.3.5.Переключение контекста
- •2.3.7.Нити исполнения
- •2.4.Заключение
- •3. Планирование процессов
- •3.1.Уровни планирования
- •3.2.Цели планирования
- •3.4. Критерии планирования
- •3.5.Вытесняющее и не вытесняющее планирование
- •3.5.Алгоритмы планирования
- •3.5.1.Планирование по принципу fifo
- •3.5.2.Циклическое планирование)
- •3.5.3. Планирование по принципу кратчайшее задание - первым
- •3.5.4.Гарантированное планирование
- •3.5.5.Приоритетное планирование
- •3.5.6.Многоуровневые очереди (Multilevel Queue)
- •3.5.7.Многоуровневые очереди с обратной связью (Multilevel Feedback Queue)
- •3.6.Заключение
- •4. Лекция: Кооперация процессов и основные аспекты ее логической организации
- •4.1.Взаимодействующие процессы
- •4.2.Средства обмена информацией
- •4.3.Логическая организация механизма передачи информации
- •4.4.Информационная валентность процессов и средств связи
- •4.5.Особенности передачи информации с помощью линий связи
- •4.5.1.Буферизация
- •4.5.2.Поток ввода/вывода и сообщения
- •4.5.3.Надежность средств связи
- •4.5.4.Завершение связи
- •4.6.Нити исполнения
- •4.7.Заключение
1.3.1.Первый период (1945–1955 гг.). Ламповые машины. Операционных систем нет
Первые шаги в области разработки электронных вычислительных машин были предприняты в конце второй мировой войны. В середине 40-х созданы появились первые ламповые вычислительные устройства и принцип программы, хранящейся в памяти машины (John Von Neumann, июнь 1945 г.). На данном этапе одна и та же группа людей участвовала и в проектировании, и в эксплуатации, и в программировании вычислительной машины. Это была научно-исследовательская работа в области вычислительной техники. Программирование осуществлялось на машинном языке. Об операционных системах не было и речи. Программа загружалась в память машины в лучшем случае с колоды перфокарт, а обычно с помощью панели переключателей с пульта управления. За пультом управления мог находиться только один программист.
Вычислительная система одновременно могла выполнить только одну операцию (ввод-вывод или собственно вычисления). Отладка программ велась с пульта управления с помощью изучения состояния памяти и регистров машины. В конце этого периода появилось первое системное программное обеспечение: в 1951–1952 гг. возникли прообразы первых компиляторов с символических языков (Fortran и др.), а в 1954 г. Nat Rochester разработал Ассемблер для IBM-701.
Существенная часть времени уходила на подготовку запуска программы. Программы выполнялись в строгой последовательности. Данный режим работы называется последовательной обработкой данных. Первый период характерен высокой стоимостью вычислительных систем, их малым количеством и низкой эффективностью использования.
1.3.2.Второй период (1955 г.–начало 60-х). Компьютеры на основе транзисторов. Пакетные операционные системы
Появление в середине 50-х годов полупроводниковых элементов явилось причиной качественного скачка в развитии вычислительных систем. Замена электронных ламп на транзисторы привело к повышению надежности компьютеров. Снизилось потребление вычислительными машинами электроэнергии, совершеннее стали системы охлаждения, уменьшились размеры компьютеров, снизилась стоимость эксплуатации и обслуживания вычислительной техники. ЭВМ начали использоваться для практических задач. Достижениями данного периода явились:
Развитие алгоритмических языков (LISP, COBOL, ALGOL-60, PL-1 и т.д.),
Появление компиляторов, редакторов связей, математических библиотек и служебных подпрограмм,
Упрощение процесса программирования,
Разделение персонала на программистов и операторов, специалистов по эксплуатации и разработчиков вычислительных машин.
Создание формализованного языка управления заданиями для систем пакетной обработки, который стал прообразом современных операционных систем. Это были первые системные программы для управления вычислительным процессом. (Перфокарты)
1.3.3.Третий период (начало 60-х – 1980 г.). Компьютеры на основе интегральных микросхем. Первые многозадачные ос
В данный период произошел переход от полупроводниковых элементов к интегральным микросхемам. Вычислительная техника стала надежнее и дешевле, выросла сложность и количество задач, решаемых компьютером, повысилась производительность процессоров. Скорость процессора возросла настолько, что главным препятствием его эффективного использования стала низкая скорость работы механических устройств ввода-вывода. Для согласования скоростей работы процессора и механических устройств, использовали предварительную запись пакета заданий с перфокарт на магнитную ленту или на диск вместо непосредственного чтения пакета заданий с перфокарт в память. Данные, вводимые в процессе выполнения задания, начали читаться с диска. Выходная информация предварительно копировалась в буфер, записывалась на ленту или диск, а печаталась только после завершения задания. Вначале операции ввода-вывода осуществлялись с использованием других, отдельно стоящих компьютеров. Далее, по мере развития вычислительной техники, операции ввода-вывода стали выполняться на том же компьютере, который производил вычисления, но без потери скорости. Это стало возможным благодаря организации подкачки-откачки данных. Данный прием получил название спулинг. Это позволило совместить операции ввода-вывода одного задания с выполнением другого задания, но потребовало разработки аппарата прерываний для извещения процессора об окончании этих операций.
Используемые магнитные ленты были устройствами последовательного доступа. Создание магнитного диска стало следующим шагом развития вычислительных систем. Появилось устройство прямого доступа, для которого не важен порядок записи информации. При обработке пакета заданий на магнитной ленте очередность запуска заданий определялась порядком их ввода. При обработке пакета заданий на магнитном диске выбор очередного задания для выполнения мог выбираться с любого места. Пакетные системы начали заниматься планированием заданий в зависимости от наличия запрошенных ресурсов, срочности вычислений и т.д.
Ниже перечислены наиболее существенные моменты данного этапа:
Появление защитных механизмов (Разделение команд на привилегированные и непривилегированные. Простая программа не имеет самостоятельного доступа к распределению ресурсов, этим занимается операционная система, работающая в привилегированном режиме. Переход управления от прикладной программы к ОС сопровождается контролируемой сменой режима. Пользовательские программы должны быть изолированы друг от друга, а операционная система – от программ пользователей.)
Наличие прерываний. Внешние прерывания оповещают ОС о том, что произошло асинхронное событие, например, завершилась операция ввода-вывода. Внутренние прерывания (или исключительные ситуации) возникают, при возникновении ситуации, требующей вмешательства ОС, например деление на ноль или попытка нарушения защиты.
Развитие параллелизма в архитектуре. Прямой доступ к памяти и организация каналов ввода-вывода освободили центральный процессор от рутинных операций.
Мультипрограммирование один из путей повышения эффективности использования процессора. При мультипрограммировании в памяти находится одновременно несколько программ, каждая из которых загружается в свой участок оперативной памяти, при этом любая программа не должны влиять на выполнение другой программы. Пока одна программа выполняет операцию ввода-вывода, процессор не простаивает, как при однопрограммном режиме, а выполняет другую программу. Когда операция ввода-вывода заканчивается, процессор возвращается к выполнению первой программы.
Мультипрограммирование произвело настоящую революцию в развитии вычислительных систем и определило основные операции операционных систем.
Организация интерфейса между прикладной программой и ОС при помощи системных вызовов.
Планирование использования процессора для организации очереди заданий на обслуживание процессором
Сохранение содержимого регистров и данных при переключении с одного задания на другое
Управление размещением, замещением и выборкой информации из памяти
Организация файловой структуры для хранения информации
Организация доступа к информации
Обеспечение обмена информации между программами.
Координация действий программ
Разрешение конфликтных ситуаций
Синхронизация работы.
На данном этапе мультипрограммные системы эффективнее использовали системные ресурсы (процессор, память, периферийные устройства), но оставались пакетными. Не было интерактивного режима отладки программ. Взаимодействие осуществлялось с помощью управляющих карт. Отладка программ по-прежнему занимала много времени и требовала изучения многостраничных распечаток содержимого памяти и регистров.
Появление систем разделения времени позволили переключать процессор между задачами не только во время операций ввода – вывода, но и через определенные промежутки времени. Это позволило нескольким пользователя одновременно работать на одной компьютерной системе.
Созданный на данном этапе механизм виртуальной памяти создал иллюзию неограниченности оперативной памяти ЭВМ. При данном механизме в оперативной памяти находятся фрагменты исполняемых программ, а не программа целиком, как было ранее. Остальные фрагменты располагаются на диске. По мере надобности фрагменты для исполнения загружаются в оперативную память, ненужные выкачиваются из оперативной памяти обратно на диск.
Достигнутые достижения привели к разработке файловых систем.
Достигнутые успехи в развитии вычислительных систем потребовали совместимости программного обеспечения систем друг с другом. До начала этого периода вычислительные комплексы были несовместимы. Каждый тип машин имел собственную операционную систему, свою систему команд и т. д. Программа, успешно работающая на одном типе машин, не могла работать на других машинах. Для работы на других машинах программу надо было заново переписывать и отлаживать. В начале третьего периода появилась идея создания семейств программно совместимых машин, работающих под управлением одной и той же операционной системы (стандартизация операционных систем). Первым семейством программно совместимых компьютеров, построенных на интегральных микросхемах, стала серия машин IBM/360.