
- •Содержание
- •Лекция №7. Планирование процессов. Алгоритмы планирования процессов. 35
- •Лекция №8. Вытесняющие и невытесняющие алгоритмы планирования. Взаимодействие процессов. 40
- •Лекция №13. Файлы. Типы файлов. 83
- •Предисловие
- •Лекция №1. Этапы развития операционных систем.
- •Лекция №2. Общие сведения об ос.
- •По способу организации вычислений:
- •По назначению (областям использования):
- •По режиму обработки (Поддержка многозадачности):
- •По количеству одновременно работающих пользователей:
- •По концепции организации:
- •По особенностям аппаратных платформ:
- •Лекция №3. Интерфейс. Операционное окружение.
- •Вспомогательные модули ос (модули-приложения)
- •2. Микроядерная архитектура ос
- •3. Монолитное ядро.
- •Лекция №5. Обработка прерываний.
- •Лекция №6. Процессы.
- •Лекция №7. Планирование процессов. Алгоритмы синхронизации процессов.
- •Лекция №8. Вытесняющие и невытесняющие алгоритмы планирования. Взаимодействие процессов.
- •Взаимодействие процессов
- •Лекция №9. Ввод-вывод. Управление вводом-выводом.
- •Организация программного обеспечения ввода-вывода
- •3. Независимое от устройств программное обеспечение ввода-вывода
- •4. Пользовательский слой программного обеспечения.
- •Лекция №10. Память. Управление реальной памятью.
- •Лекция №11. Методы распределения без использования внешней памяти.
- •1. Распределение памяти фиксированными разделами (схема с фиксированными разделами).
- •2. Распределение памяти разделами переменной величины
- •3. Перемещаемые разделы
- •Лекция №12. Виртуальная память. Методы виртуализации памяти. Понятие виртуальной памяти
- •Рассмотрим подробнее каждый из методов виртуальной памяти. Страничное распределение
- •Свопинг.
- •Лекция №13. Файлы. Типы файлов.
- •Лекция №14. Логическая и физическая организация файлов. Логическая организация файла.
- •Физическая организация файла.
- •4. Перечень номеров блоков.
- •Лекция № 15. Доступ к файлам.
- •Лекция № 16. Файловая система. Надежность файловой системы.
- •1. Резервное копирование
- •2. Непротиворечивость файловой системы
- •1. Кэширование.
- •2. Опережающее чтение блока.
- •3. Снижение времени перемещения блока головок.
- •Лекция № 17. Общая модель файловой системы
- •Современные архитектуры файловых систем.
- •Лекция № 18. Обзор файловых систем.
Лекция №2. Общие сведения об ос.
Назначение, задачи, функции операционной системы.
Из чего состоит любая вычислительная система? В первую очередь, это то, что в англоязычных странах принято называть словом hardware, или техническое обеспечение: процессор, память, монитор, дисковые устройства и т.д., обычно объединенные магистральным соединением, которое называется шиной
Во вторую очередь это программное обеспечение. Все программное обеспечение принято делить на две части: прикладное и системное. К прикладному программному обеспечению, как правило, относятся разнообразные банковские и прочие business программы, игры, текстовые процессоры, и т.п.
Прикладное программное обеспечение представляет собой совокупность программ решения конкретных задач из различных сфер применения ЭВМ.
Прикладное программное обеспечение можно в свою очередь разделить на две группы программ: средства разработки и приложения.
Средства разработки — это инструменты программиста. Традиционными средствами разработки являются системы (среды) программирования (СП), использующие алгоритмические языки программирования (ЯП). Основой систем программирования являются трансляторы, т. е. программы, обеспечивающие перевод исходного текста программы (на ЯП) на машинный язык (объектный код), которые бывают двух типов интерпретаторы и компиляторы.
Приложения — это программные продукты, предназначенные для решения задач в какой-либо конкретной предметной области.
Системное программное обеспечение представляет собой комплекс управляющих и обрабатывающих программ, описаний и инструкций, обеспечивающих функционирование вычислительной системы, а также разработку и исполнение программ пользователей. Состав системного программного обеспечения почти не зависит от характера решаемых задач пользователей.
Программы системного программного обеспечения различаются по функциональному назначению и характеру исполнения. Они делятся на испытательные программы, системы программирования (СП) и операционные системы (ОС).
Надо сказать, что деление на прикладное и системное программное обеспечение является отчасти условным и зависит от того, кто осуществляет такое деление. Так, обычный пользователь, неискушённый в программировании, может считать Microsoft Word системной программой, а с точки зрения программиста это приложение. Компилятор языка Си для обычного программиста это системная программа, а для системного прикладная. Несмотря на эту нечеткую грань, эту ситуацию можно отобразить в виде последовательности слоев:
Рис. 1. Слои программного обеспечения компьютерной системы.
Операционная система (ОС), являясь основой общесистемного ПО, обеспечивает функционирование и взаимосвязь всех компонентов компьютера и предоставляет пользователю доступ к его аппаратным возможностям.
Операционная система (ОС) - комплекс системных и управляющих программ (набор программ), предназначенных для наиболее эффективного использования всех ресурсов вычислительной системы (ВС) и удобства работы с ней. Под вычислительной средой будем понимать образованную операционной системой программную среду, в которой выполняются прикладные программы пользователей.
Назначение ОС:
- организация вычислительного процесса в вычислительной системе;
- рациональное распределение вычислительных ресурсов между отдельными решаемыми задачами;
- предоставление пользователям многочисленных сервисных средств, облегчающих процесс программирования и отладки задач.
Операционная система исполняет роль своеобразного интерфейса между пользователем и ВС, т.е., что ОС в значительной степени формирует у пользователя представление о возможностях ВС, удобстве работы с ней, ее пропускной способности. Различные ОС на одних и тех же технических средствах могут предоставить пользователю различные возможности для организации вычислительного процесса или автоматизированной обработки данных. В программном обеспечении ВС операционная система занимает основное положение, поскольку осуществляет планирование и контроль всего вычислительного процесса. Любая из компонент программного обеспечения обязательно работает под управлением ОС.
Основные задачи ОС:
1) увеличение пропускной способности ЭВМ (за счет организации непрерывной обработки потока задач с автоматическим переходом от одной задачи к другой и эффективного распределения ресурсов ЭВМ по нескольким задачам);
2) уменьшение времени реакции системы на запросы пользователей пользователями ответов от ЭВМ;
3) упрощение работы разработчиков программных средств и сотрудников обслуживающего персонала ЭВМ (за счет предоставления им значительного количества языков программирования и разнообразных сервисных программ).
Операционная система (ОС) связывает аппаратное обеспечение и прикладные программы. Операционная система может взаимодействовать с аппаратными средствами и пользователем или прикладными программами. Она также может переносить информацию между аппаратурой и прикладным программным обеспечением. Многие свойства различных программ похожи, и операционная система обычно предоставляет этот общий сервис. Например, практически все программы считывают и записывают информацию на диск или отображают ее на дисплее. И хотя каждая программа в принципе может содержать инструкции, выполняющие эти повторяющиеся задачи, использование в этих целях операционной системы более практично. Прикладной программист не должен беспокоиться о написании специального программного кода для записи данных на все множество дисков, которое может быть на ПК. Программист просто просит операционную систему записать данные на диск, а ОС занимается зависящей от аппаратуры информацией. Операционная система получает предоставляемые прикладными программами данные и записывает их на физический диск. Использование операционной системы делает программное обеспечение более общим: программы могут работать на любом компьютере, на котором можно запустить эту операционную систему, поскольку взаимодействуют с операционной системой, а не с аппаратурой.
В вычислительной системе ОС выполняет ряд специфических функций, отличающих ее от других программных продуктов.
Все эти специфические признаки делятся на 4 класса, которые можно определить как основные или фундаментальные функции ОС:
Тестирование аппаратуры и начальная загрузка самой себя в вычислительную систему.
Контроль за вычислениями (управление процессами и их взаимодействием).
Контроль за распределением ресурсов.
Поддержка различного уровня интерфейсов, в том числе и пользовательского.
Можно определить и более мелкие задачи, решаемые операционной системой. Они относятся к той или иной фундаментальной задаче ОС и могут в разной степени реализоваться в различных системах:
Загрузка в оперативную память и обработка пользовательских программ, их исполнение (инициализация; идентификация задач и данных; планирование и диспетчеризация задач, организация их взаимодействия; связь с устройствами и т.д.)
Управление памятью (распределение памяти; работа с долговременной памятью; файловая система; встроенные функции для работы с СУБД – в некоторых ОС). В простейшем случае это указание единственной загруженной программе адреса, на котором кончается память, доступная для использования, и начинается память, занятая системой. В многопроцессорных системах это сложная задача управления системными ресурсами.
Поддержка операций ввода-вывода и работы с устройствами ввода-вывода.
Предоставление более или менее стандартизованного доступа к различным периферийным устройствам, таким как терминалы, модемы, печатающие устройства или двигатели, поворачивающие рулевые плоскости истребителя.
Предоставление некоторого пользовательского интерфейса и поддержка внутрисистемных функций для разработки межпрограммных интерфейсов. Слово «некоторый» здесь сказано не случайно — часть систем ограничивается командной строкой, в то время как другие на 90% состоят из интерфейсной подсистемы. Встраиваемые системы часто не имеют никакого пользовательского интерфейса.
Более развитые ОС предоставляют также следующие возможности:
параллельное исполнение нескольких задач;
организация взаимодействия задач друг с другом;
организация межмашинного взаимодействия и разделения ресурсов;
защита системных ресурсов, данных и программ пользователя, исполняющихся процессов и самой себя от ошибочных и зловредных действий пользователей и их программ;
аутентификация (проверку того, что пользователь является тем, за кого он себя выдает), авторизация (проверка, что тот, за кого себя выдает пользователь, имеет право выполнять ту или иную операцию) и другие средства обеспечения безопасности.
Характеристики операционных систем.
К числу основных характеристик ОС относятся:
разрядность
поддержка многопроцессорности
многозадачность
многопоточность
поддержка многопользовательского режима
переносимость.
1) Разрядность показывает, какую разрядность внутренней шины данных центрального процессора способна поддержать ОС. Разрядность ОС говорит о том, с какими программами она будет работать. Например, MS DOS – это 16-разрядная, однопользовательская однопроцессорная ОС, позволяющая работать только в реальном режиме работы в адресном пространстве до 640; Windows 2000 – это 32-разрядная многопользовательская многозадачная многопроцессорная ОС, работающая в защищенном режиме; UNIX–32-разрядная многопользовательская многозадачная переносимая ОС, обладающая встроенными сетевыми средствами. ОС UNIX реализована для различных аппаратных платформ.
2) Многопроцессорность – это способность ОС центрального процессора (ЦП) и системных контролеров компьютера поддерживать одновременную работу нескольких процессоров. Многопроцессорность ОС обеспечивает контроль одновременной параллельной работы нескольких процессоров над выполнением одной и той же задачи.
ОС может поддерживать 2 режима работы центрального процессора: реальный и защищенный. В реальном режиме работы, характерном для MSDOS, все программы и данные располагаются в одной области оперативной памяти, т.е. любой пользователь может войти в любую системную программу и случайно испортить ее. Защищенный режим работы поддерживается 32-разрядными ОС. Он позволяет хранить программы и данные отдельно в соответствии с их важностью в системе.
3) Многозадачность (мультипрограммирование) – это свойство ОС, когда они могут быть ориентированы на одновременное обслуживание нескольких процессов (задач). Мультипрограммирование (multitasking), — это способ организации вычислительного процесса, при котором на одном процессоре попеременно выполняются сразу несколько программ. Эти программы совместно используют не только процессор, но и другие ресурсы компьютера: оперативную и внешнюю память, устройства ввода-вывода, данные. Мультипрограммирование призвано повысить эффективность использования вычислительной системы, однако эффективность может пониматься по-разному.
Понятие многозадачности означает поддержку параллельного выполнения нескольких программ, существующих в рамках одной вычислительной системы, в один момент времени.
В зависимости от вида компьютера, применяется несколько видов реализации этого механизма.
Рассмотрим тот, который применяется в операционных системах микрокомпьютеров.
Рис. 2. Многозадачность.
В системах с поддержкой многозадачности компьютер используется более эффективно, благодаря возможности одновременной загрузки в память не одной, а нескольких программ.
Как показано на рис 2., система без поддержки многозадачности (слева) может выполнять только одно приложение в данный момент времени. Такой режим работы компьютера зачастую не позволяет полностью задействовать все его ресурсы – процессор может быть недогружен, большая часть оперативной памяти будет оставаться свободной, периферийные устройства будут ожидать команд ввода или вывода информации. В случае же применения механизма многозадачности (справа), можно запустить несколько приложений.
Самое важное при реализации этого механизма – не позволять каким-либо двум приложениям одновременно задействовать одни и те же ресурсы компьютера – будь то ЦПУ, память или периферийные устройства. В случае с оперативной памятью применяется разделение ее адресного пространства на отдельные непересекающиеся области и выделение таких областей каждому запущенному приложению. Таким образом, получается, что каждая отдельная программа работает в отведенном ей кусочке памяти и не конфликтует с другими программами. С разделением ресурсов процессора дело обстоит иначе. Как уже упоминалось, процессор может выполнять только одну инструкцию за цикл. Чтобы программы, находящиеся в ОЗУ могли выполняться вместе, каждой из них выделяется определенный интервал времени работы процессора (около двух миллисекунд); при этом процессор переключается с одной программы на другую. Конечно, вам может показаться, что интервал времени ничтожно мал, но ведь процессор работает на уровне наносекунд и за две миллисекунды успевает выполнить немало работы. Пользователь не замечает, что компьютер обрабатывает все программы по очереди – ему кажется, что все запущенные приложения выполняются одновременно. Кроме того, каждой программе, как вы помните, назначается приоритет. В первую очередь обрабатываются команды программ с более высоким приоритетом; в случае равного приоритета инструкции приложений выполняются в порядке очередности; наивысший приоритет всегда имеет ядро операционной системы.
ЦП в отдельные отрезки времени выполняет работу над отдельными фрагментами различных задач. У пользователя складывается впечатление одновременности их выполнения. ОС обеспечивает переключение ЦП и др. устройств с выполнения одной задачи на другую, распределяя между задачами системные ресурсы, обеспечивая их взаимосвязь и синхронизацию.
Благодаря многозадачности, вы можете запустить web-браузер, а пока ваш модем выполняет операцию соединения с провайдером услуг Интернет, отредактировать сообщение электронной почты или распечатать отчет, выданный сервером баз данных вашей организации. При этом, скорее всего, операции выполнения соединения и программе, обрабатывающей вывод данных на печать, будет присвоен низкий приоритет, а редактору электронной почты – обычный.
4) Многопоточность. Механизм многопоточности чем-то напоминает многозадачность. Чтобы еще более эффективно использовать ресурсы компьютера, некоторые задачи делятся на отдельные потоки, каждому из которых также назначается приоритет и выделяется интервал процессорного времени. В некоторых операционных системах такие процессы получили название нитей (threads). Благодаря многопоточности, вы можете в одном приложении, например в мультимедийном графическом редакторе, одновременно обрабатывать один объект, производить расчет траектории движения другого объекта и распечатывать третий. Кстати, многопоточность широко используется именно для печати. Чтобы не ждать, пока приложение обработает задание на печать, этот процесс выполняется в так называемом фоновом режиме (background printing).
Многозадачность могут поддерживать все ЦП и чипсеты ПК.
5) Многопользовательский режим – это способность ОС одновременно поддерживать работу нескольких пользователей. Многопользовательские операционные системы, в отличие от однопользовательских, поддерживают одновременную работу на ЭВМ нескольких пользователей за различными терминалами.
6) Переносимость ОС – это возможность ОС работать на компьютерах, базирующихся на ЦП с различной архитектурой. Если СПО можно ставить на ЭВМ различной архитектуры, то оно считается переносимой.
Классификация операционных систем.
ОС делятся на классы по различным параметрам:
по способу организации вычислений (количеству процессоров в системе); количеству поддерживаемых процессоров
по назначению (областям использования);
по режиму обработки (количеству решаемых задач);
по количеству одновременно работающих пользователей в системе;
по архитектурному принципу (концепции организации);
по особенностям аппаратных платформ.