- •Министерство образования и науки Республики Казахстан
- •1.1 Данные о преподавателях:
- •Выписка из учебного плана
- •1.6 Перечень и виды заданий и график их выполнения: Виды заданий и сроки их выполнения
- •1.7 Список литературы
- •2.2 Конспект лекционных занятий
- •Тема 1.Основы операционных систем .( 2 часа)
- •1.1 Назначение и функции операционных систем
- •1.2 Эволюция развития операционных систем
- •1.3 Основные понятия, концепции ос
- •1.4 Классификация ос
- •Тема 2. Архитектура операционных систем. ( 2 часа)
- •2.1 Монолитные системы
- •2.2 Многоуровневые системы
- •Тема 3. Микроядерная архитектура ос(2 часа)
- •3.1 Основные положения архитектуры ос с микроядром
- •3.2 Преимущества и недостатки архитектуры ос с микроядром
- •Тема 4. Совместимость операционных систем( 2 часа)
- •4.1 Виды совместимости
- •4.2 Способы реализации совместимости
- •Тема 5. Представления процесса в операционной системе ( 2 часа)
- •5.1 Понятие процесса
- •5.2 Состояния процесса
- •Тема 6. Операции над процессами и связанные с ними понятия (2 часа)
- •6.1 Process Control Block и контекст процесса
- •6.2 Одноразовые операции
- •6.3 Многоразовые операции
- •Тема 7. Планирование процессов ( 2 часа)
- •7.1 Уровни планирования
- •7.2 Критерии планирования
- •7.3 Параметры планирования
- •7.4 Вытесняющее и невытесняющее планирование
- •Алгоритмы планирования
- •Тема 8. Алгоритмы синхронизации
- •8.1 Программные алгоритмы организации взаимодействия процессов
- •8.2 Алгоритм Петерсона
- •8.3 Алгоритм булочной (Bakery algorithm)
- •8.4 Команда Test-and-Set (проверить и присвоить 1)
- •8.5 Команда Swap (обменять значения)
- •Тема 9. Механизмы синхронизации (2 часа) 9. 1 Семафоры
- •9.2 Мониторы
- •9.3 Сообщения
- •Тема 10. Организация памяти компьютера. Простейшие схемы управления памятью. ( 2 часа)
- •10.1 Физическая организация памяти компьютера
- •10.2 Логическая память
- •10.3 Простейшие схемы управления памятью
- •10.4 Динамическое распределение. Свопинг
- •Тема 11. Управление файлами (2 часа)
- •11.1 Основные понятия файловой системы
- •11.2 Операции над файлами
- •11.3 Директории. Логическая структура файлового архива
- •11.4 Разделы диска. Организация доступа к архиву файлов.
- •Тема 12. Реализация файловой системы
- •12.1 Система хранения
- •12.2 Управление внешней памятью
- •12.3 Управление свободным и занятым дисковым пространством
- •12.4 Монтирование файловых систем
- •12.5 Управление "плохими" блоками
- •12.6 Производительность файловой системы
- •Тема 13. Сети и сетевые операционные системы. ( 2 часа)
- •13.1 Сетевые и распределенные операционные системы
- •13.2 Понятие протокола. Многоуровневая модель построения сетевых вычислительных систем.
- •13.3 Проблемы адресации в сети.
- •Тема 14 . Основные понятия информационной безопасности ( 2 часа)
- •14.1 Угрозы безопасности
- •14.2 Криптография как одна из базовых технологий безопасности ос
- •Тема 15. Защитные механизмы операционных систем
- •2.3 Планы лабораторных занятий
- •Практические задания
- •Практические задания.
- •2.4 Планы занятий в рамках самостоятельной работы студентов под руководством преподавателя (срсп)
- •Рекомендуемая литература: 11 доп. [324-401], 12 доп. [123-143], 13 доп.[76-92]
- •2.5 Планы занятий в рамках самостоятельной работы студентов (срс)
- •2.7 Тестовые задания для самоконтроля с указанием ключей правильных ответов
- •Ключи правильных ответов
- •2.6 Перечень экзаменационных вопросов по пройденному курсу
- •Глоссарий
- •12. Канал- специализированный процессор ввода-вывода в компьютерах класса мэйнфреймов.
- •27. Пропускная способность – количество задач, выполняемых вычислительной системой в единицу времени.
- •Выходные сведения
2.2 Конспект лекционных занятий
Тема 1.Основы операционных систем .( 2 часа)
1.1 Назначение и функции операционных систем
Операционная система(ОС) – это программа, которая обеспечивает возможность рационального использования оборудования компьютера удобным для пользователя образом.
Операционная система является фундаментальным компонентом системного программного обеспечения. При разработке ОС широко применяется абстрагирование, которое является важным методом упрощения и позволяет сконцентрироваться на взаимодействии высокоуровневых компонентов системы, игнорируя детали их реализации. В этом смысле ОС представляет собой интерфейс между пользователем и компьютером.
Архитектура большинства компьютеров на уровне машинных команд очень неудобна для использования прикладными программами. Например, работа с диском предполагает знание внутреннего устройства его электронного компонента – контроллера для ввода команд вращения диска, поиска и форматирования дорожек, чтения и записи секторов и т. д. Ясно, что средний программист не в состоянии учитывать все особенности работы оборудования (в современной терминологии – заниматься разработкой драйверов устройств), а должен иметь простую высокоуровневую абстракцию, скажем представляя информационное пространство диска как набор файлов. Файл можно открывать для чтения или записи, использовать для получения или сброса информации, а потом закрывать. Это концептуально проще, чем заботиться о деталях перемещения головок дисков или организации работы мотора. Таким образом, операционная система представляется пользователю виртуальной машиной, с которой проще иметь дело, чем непосредственно с оборудованием компьютера.
Операционная система предназначена для управления всеми частями весьма сложной архитектуры компьютера. Следовательно, операционная система, как менеджер ресурсов, осуществляет упорядоченное и контролируемое распределение процессоров, памяти и других ресурсов между различными программами.
Если вычислительная система допускает совместную работу нескольких пользователей, то возникает проблема организации их безопасной деятельности. Необходимо обеспечить сохранность информации на диске, чтобы никто не мог удалить или повредить чужие файлы. Всю эту деятельность осуществляет операционная система как организатор безопасной работы пользователей и их программ. С такой точки зрения операционная система представляется системой безопасностигосударства, на которую возложены полицейские и контрразведывательные функции.
Наконец, ОС постоянно функционирующее ядро. Это программа, постоянно работающая на компьютере и взаимодействующая со всеми прикладными программами.
1.2 Эволюция развития операционных систем
Начиная с 1949 г., когда заработала первая цифровая вычислительная машина с запоминаемой программой, и до 1956 г. устройство и способ действия вычислительных машин оставался относительно постоянным. Их классическая фон неймановская архитектура была основана на строго последовательном выполнении команд, включая операции ввода-вывода. Программы писались на абсолютном машинном языке (десятичная и восьмеричная нотация) и при вводе им предшествовал абсолютный загрузчик). Средства автоматизации программирования либо отсутствовали, либо были минимальными — лишь на наиболее сложных установках имелись простые ассемблеры и интерпретаторы с незначительным использованием библиотечных стандартных программ.
“Первое поколение” операционных систем было вызвано к жизни упомянутой выше неэффективностью, а также другими соображениями.Первые пакетные системы автоматизировали стандартнуюп оследовательность загрузка/трансляция/загрузка/ выполнение” с помощью центральной управляющей программы, которая отыскивает и загружает требуемые системные программы (ассемблер, компилятор, загрузчик или библиотечные подпрограммы), а также управляет переходами от задания к заданию. Языковые трансляторы были переписаны для создания программ в перемещаемой, а не в абсолютной форме.
В период с 1959 до 1963 гг. несколько значительных аппаратных разработок получили широкое распространение и стимулировали развитие ОС. Важным аппаратурным новшеством был канал данных — простейшая ЭВМ со своей собственной системой команд, регистрами и устройством управления, которое управляет связью и передачей данных между основной ЭВМ и устройствами ввода-вывода. Были написаны более сложные системы программирования ввода-вывода с целью использования преимуществ потенциальной эффективности этой новой архитектуры. Для этого периода характерно последовательная пакетная обработка с попыткой эффективно использовать каналы данных, прерывания и вспомогательную память. Однако обработка заданий по одному в каждый момент времени по-прежнему приводила к низкой активности канала для заданий с интенсивными вычислениями и к низкой активности ЦОУ для заданий с интенсивным вводом-выводом, даже если было достигнуто максимальное совмещение операций ЦОУ и канала.
С 1962 по 1969 г. в больших ОС стал почти повсеместно использоваться новый метод обработки заданий —мультипрограммирование, был также разработан новый способ выполнения вычислений, разделение времени, как альтернатива пакетной обработке. В это время начинают предлагать услуги большие сети ЭВМ, построенные на основе линий связи. Сети предъявляют еще большие требования к системному программному обеспечению. Другие изменения в аппаратуре, такие, как появление управляющей памяти с возможностью перезаписи микропрограмм, иерархий устройств основной памяти с автоматической передачей информации между уровнями, экономичных ассоциативных запоминающих устройств, а также углубление параллелизма в обрабатывающих устройствах, в том числе программируемого, приведут к новым требованиям в отношении программного обеспечения и заставят глубже понимать принципы ОС. К современным направлениям в области разработки программного обеспечения можно отнести:
- выявление примитивов ОС для планирования ресурсов и процессов, которые могли бы быть реализованы с помощью аппаратуры, микропрограмм или стандартного программного обеспечения;
- человеко-ориентированные языки. управления заданиями;
- языки и системы, обеспечивающие параллелизм;
- подсистемы для измерения действия ОС;
- более универсальные схемы защиты.
Важный период развития вычислительных машин относится к началу 60-х – 1980 г. Для повышения эффективности использования процессорного времени вводится прием подкачки-откачки данных или spooling (сокращение от Simultaneous Peripheral Operation On Line) . Введение техники подкачки-откачки в пакетные системы позволило совместить реальные операции ввода-вывода одного задания с выполнением другого задания, но потребовало разработки аппарата прерываний для извещения процессора об окончании этих операций.
Дальнейшее повышение эффективности использования процессора было достигнуто с помощью мультипрограммирования. Идея мультипрограммирования заключается в следующем: пока одна программа выполняет операцию ввода-вывода, процессор не простаивает, как это происходило при однопрограммном режиме, а выполняет другую программу. Когда операция ввода-вывода заканчивается, процессор возвращается к выполнению первой программы.
Роль операционной системы в организации мультипрограммирования такова:
Организация интерфейса между прикладной программой и ОС.
Организация очереди из заданий в памяти .
Переключение с одного задания на другое.
Упорядочивание процессов размещения, замещения и выборки информации из памяти.
Организация хранения информации на внешних носителях в виде файлов и обеспечение доступа к конкретному файлу только определенным категориям пользователей.
Обеспечение средствами коммуникации.
Для корректного обмена данными необходимо разрешать конфликтные ситуации, возникающие при работе с различными ресурсами и предусмотреть координацию программами своих действий, т.е. снабдить систему средствами синхронизации.
Следующий период (с 1980 г. по настоящее время) характер ростом сложности и разнообразия задач, решаемых на персональных компьютерах, необходимость повышения надежности их работы привели к возрождению практически всех черт, характерных для архитектуры больших вычислительных систем.
В середине 80-х стали бурно развиваться сети компьютеров, в том числе персональных, работающих под управлением сетевых или распределенных операционных систем.
В сетевых операционных системах пользователи могут получить доступ к ресурсам другого сетевого компьютера, только они должны знать об их наличии и уметь это сделать. Каждая машина в сети работает под управлением своей локальной операционной системы, отличающейся от операционной системы автономного компьютера наличием дополнительных средств (программной поддержкой для сетевых интерфейсных устройств и доступа к удаленным ресурсам), но эти дополнения не меняют структуру операционной системы.
Распределенная система, напротив, внешне выглядит как обычная автономная система. Пользователь не знает и не должен знать, где его файлы хранятся – на локальной или удаленной машине – и где его программы выполняются. Он может вообще не знать, подключен ли его компьютер к сети. Внутреннее строение распределенной операционной системы имеет существенные отличия от автономных систем.
Можем выделить шесть основных функций, которые выполняли классические операционные системы в процессе эволюции:
планирование заданий и использования процессора;
обеспечение программ средствами коммуникации и синхронизации;
управление памятью;
управление файловой системой;
управление вводом-выводом;
обеспечение безопасности