1. Определение ОС. Классификация ОС. Требования, предъявляемые к ОС
ОС – обеспечивает уровень абстракции между ПО и аппаратным обеспеч. Избавляет программиста от необходимости непосредственного взаимодействия в аппаратурой. ОС обеспечивает управление всеми ресурсами компьютера, их выделение различным процессам (очередь печати). Часть ОС постоянно запущенная на компьют и реализующая основный функции в том числе о взаимодействии с аппаратным обеспечением называется ядро ОС. ОС обеспечивает управление доступом к данным различных пользователей, управления памятью и другими ресурсами с разграничением доступа к ним различными процессами.
Классификация ОС:
1. однопользовательский, многопользовательский – обеспечивает защиту данных пользователя друг от друга.
2. однозадачное и многозадачное – обеспечивают разграничение доступа между задачами.
3. по целям использования:
1 .система пакетной обработки – это ОС направленная на решение вычислительных задач, не требует интерактивности в процессе работы могут не иметь многозадачности и многопользовательского режима. Критерий эффективности таких систем является пропускная способность те количество задач в единицу времени.
2. система разделения времени (интерактивные системы) – обеспечивает работу одной системы и множества задач пользователя одновременно. Каждый из них имеет иллюзию монопольного владения системой. Время отклика – промежуток времени между действием пользователя и результатом этого действия.
3. система реального времени – системы управляющие технологическими ресурсами. Критерий эффективности является необходимость выполнения задач к конкретному моменту времени. Системы делятся на 2 типа: жесткие и гибкие.
В жестких системах превышение времени категорически недопустимо (управление поездом)
В гибких превышение допустимо, не нежелательно.
4. смешанные системы.
Требования к ОС.
I. реализация возложенных функций.
1. расширяемость. Система должна иметь возможность легкого дополнения новыми функциями и это не должна нарушать целостность системы.
2. переносимость. Система должна легко переноситься с одной аппаратной платформы на другую.
3. надежность и отказоустойчивость. Система должна быть защищена от внутренних и внешних ошибок, ее действия должны быть предсказуемы. Приложения не должны наносить вред системе.
4. совместимость. ОС должна иметь средства для выполнения приложений написанных для других ОС. Совместимость бывает 2 типов.
- совместимость двоичных кодов – откомпилированное приложения должны запускаться на различных системах.
- совместимость исходных кодов – программы должны компилироваться и запускаться на различных системах. Для этого программы пишутся на стандартизованных языках.
5. безопасность. Система должна содержать средства защиты данных.
6. производительность. Система должна макс эффективно использовать аппаратное обеспечение компьют.
2. Основные принципы построения ОС.
1) Частотный – основан на выделении данных по частоте и создания условий для их быстрого выполнения путем хранения в ОЗУ.
2) Принцип модульности. Понимаетcя модульность ОС, прикладных программ и аппаратных средств. Под модулем понимают функциональный элемент системы, законченный и выполняемый в ее рамках и средства сопряжения с подобными элементами этой или другой системы.
3) Принцип функциональной избирательности. В ОС выбираются модули, которые хранятся в памяти и составляют ядро ОС.
4) Принцип генерации – настраивание ОС на конфигурацию выч. системы и запросы пользователя. 5) Принцип функциональной избыточности – возможность выполнения одних и тех же операций различными способами
6) Принцип по умолчанию – хранение в системе некоторые базовые значения, если они не устанавливаются
7) Принцип перемещаемости – разные модули в разных ситуациях могут загружаться по разным адресам
8) Принцип защиты – ограждение программ и данных от нежелательных взаимных влияний
9) Прницип независимости программ от внешних устройств.
10) Принцип открытости – позволяет вводить в ОС новые модули.
3. Понятие процесса и ресурса. Иерархия процессов.
Процесс(или по-другому, задача) - абстракция, описывающая выполняющуюся программу. Для операционной системы процесс представляет собой единицу работы, заявку на потребление системных ресурсов.
Большинство ресурсов распределяются в режиме разделения времени. Ресурс выделяется задаче на заранее известный интервал времени, если программа не успеет за этот интервал закончить работу, то он изымается и отдается следующей задаче, а текущая задача – в конец очереди к этому ресурсу.
В современных ОС: тенденция развития: многозадачность, графический интерфейс, распределенные сетевые ресурсы.
Классификация процессов.
1.По принадлежности к центральному процессору: внутренние и внешние. По внешним признакам. Трасса процесса – последовательность и длительность пребывания процесса в каждом из своих состояний интервал существования процесса, время между порождением и завершением процесса. Процессы реального времени, интерактивные и пакетные.
2.По генеалогическому признаку – пораждающие и поражденные.
3. По динамическим признакам: последовательные интервалы сущ процессов не пересекаются.
Если на рассматриваемом интервале времени сущ-ют одновременно 2 процесса, они параллельн. Если хотя бы одна точка, когда один проц сущ, а второй нет, то такие проц комбинированные.
4.по принадлежности к ОС: системные и пользовательские(прикладные)
5. по результативности: эквивалентные процессы – которые на одинаковых входных данных выдают одинаковые выходные данные. Причем работают АО одной или разным программам. Трассы эквивалентных процессов в общем случае не совпадают.
Тождественные – эквивалентные процессы работающие по одной и той же программе, но с различными трассами.
Равные – тождественные процессы с одинаковыми трассами. Все остальные процессы различны.
6.по связности.
Два процесса являются взаимосвязанными, если между ними поддерживаются, с помощью системы управления процессами, функциональные пространственно-временные управляющие информационные или другие связи, иначе процессы изолированные. Изолированные со слабой связью могут влиять друг на друга. Если два взаимосвяз процесса используют вместе некоторые ресурсы, но информационно не связаны, те не обмениваются инф, то эти процессы информационно независимы. При наличии информацион связей, процессы взаимодействуют.
4. Диаграмма состояния процесса.
При использовании такой абстракции все, что выполняется в вычислительных системах (не только программы пользователей, но и, возможно, определенные части операционных систем), организовано как набор процессов. Понятно, что реально на однопроцессорной компьютерной системе в каждый момент времени может исполняться только один процесс. Для мультипрограммных вычислительных систем псевдопараллельная обработка нескольких процессов достигается с помощью переключения процессора с одного процесса на другой. Пока один процесс выполняется, остальные ждут своей очереди. каждый процесс может находиться как минимум в двух состояниях: процесс исполняется и процесс не исполняется.
Процесс, находящийся в состоянии процесс исполняется, через некоторое время может быть завершен операционной системой или приостановлен и снова переведен в состояние процесс не исполняется. Приостановка процесса происходит по двум причинам: для его дальнейшей работы потребовалось какое-либо событие (например, завершение операции ввода-вывода) или истек временной интервал, отведенный операционной системой для работы данного процесса. После этого операционная система по определенному алгоритму выбирает для исполнения один из процессов, находящихся в состоянии процесс не исполняется, и переводит его в состояние процесс исполняется. Новый процесс, появляющийся в системе, первоначально помещается в состояние процесс не исполняется.
Это очень грубая модель, она не учитывает, в частности, то, что процесс, выбранный для исполнения, может все еще ждать события, из-за которого он был приостановлен, и реально к выполнению не готов. Для того чтобы избежать такой ситуации, разобьем состояние процесс не исполняется на два новых состояния: готовность и ожидание
Всякий новый процесс, появляющийся в системе, попадает в состояние готовность. Операционная система, пользуясь каким-либо алгоритмом планирования, выбирает один из готовых процессов и переводит его в состояние исполнение. В состоянии исполнение происходит непосредственное выполнение программного кода процесса. Выйти из этого состояния процесс может по трем причинам:
· операционная система прекращает его деятельность;
· он не может продолжать свою работу, пока не произойдет некоторое событие, и операционная система переводит его в состояние ожидание;
· в результате возникновения прерывания в вычислительной системе (например, прерывания от таймера по истечении предусмотренного времени выполнения) его возвращают в состояние готовность.
Из состояния ожидание процесс попадает в состояние готовность после того, как ожидаемое событие произошло, и он снова может быть выбран для исполнения.
Наша новая модель хорошо описывает поведение процессов во время их существования, но она не акцентирует внимания на появлении процесса в системе и его исчезновении. Для полноты картины нам необходимо ввести еще два состояния процессов: рождение и закончил исполнение
Теперь для появления в вычислительной системе процесс должен пройти через состояние рождение. При рождении процесс получает в свое распоряжение адресное пространство, в которое загружается программный код процесса; ему выделяются стек и системные ресурсы; устанавливается начальное значение программного счетчика этого процесса и т. д. Родившийся процесс переводится в состояние готовность. При завершении своей деятельности процесс из состояния исполнение попадает в состояние закончил исполнение