Главная страница
Навигация по странице:

  • Лекция 5 Обработка прерываний

  • Лекция 6 Планирование и диспетчеризация процессов

  • Планирование процессов и диспетчеризация задач

  • Лекция 7 Типы загрузки процессов

  • Создание процесса

  • Алгоритмы планирования процессов

  • Алгоритмы, основанные на квантовании времени

  • Выбор новых процессов может быть построен по принципам

  • 7.-Конспект-лекций.-ОП.01-ОСиСреды.-09.02.07_compressed. Конспекты лекций по дисциплине оп. 01 Операционные системы и среды


    Скачать 1 Mb.
    НазваниеКонспекты лекций по дисциплине оп. 01 Операционные системы и среды
    Дата04.10.2022
    Размер1 Mb.
    Формат файлаpdf
    Имя файла7.-Конспект-лекций.-ОП.01-ОСиСреды.-09.02.07_compressed.pdf
    ТипКонспект
    #713942
    страница2 из 6
    1   2   3   4   5   6
    Лекция 4
    Интерфейс пользователя
    План
    1. Определение интерфейса;
    2. Интерфейс командной строки
    3. Текстовый интерфейс пользователя;
    4. Графический пользовательский интерфейс.
    Пользовательский интерфейс
    Интерфейс пользователя (user interface или сокращенно UI) – это интерфейс, с помощью которого человек может управлять программным обеспечением или аппаратным оснащением. UI должны быть удобными в использовании, чтобы взаимодействие с ними происходило на максимально интуитивном уровне. Интерфейсы
    программного обеспечения также называют графическими пользовательскими интерфейсами (graphical user interface или GUI).
    Интерфейс командной строки (Command Line Interface или CLI)
    Среди областей применения интерфейса командной строки можно выделить DOS- компьютеры. Взаимодействие происходит с помощью ввода команд. Компьютер обрабатывает эти команды и выводит на экран очередную строку. Данный тип UI давно устарел. Большинство CLI заменены графическими интерфейсами.
    Текстовый интерфейс пользователя (Text User Interface или TUI)
    Этот тип интерфейса пользователя предназначен для работы с символами.
    Исполнение происходит в режиме аппаратного текста, однако часто используется и дисплей. В данном случае на каждый источник у программиста имеется 256 символов.
    Навигация производится клавиатурой, а не мышью. В качестве примера можно привести Norton Commander или Turbo Pascal. Этот интерфейс также используется в загрузчиках ОС и BIOS-программах. Данный тип интерфейса также используется для установки операционных систем.
    Графический пользовательский интерфейс (Graphical User Interface или GUI)

    Графический пользовательский интерфейс является наиболее популярным UI. Он представляет собой окно, в котором содержатся различные элементы управления.
    Взаимодействие пользователя с программой при помощи мыши и при помощи клавиатуры.
    Также есть возможность использовать кнопки и разделы меню, расположенные внутри самого приложения. Это окно представляет собой нечто вроде шлюза между пользователем и программным обеспечением. В графическом интерфейсе пользователя распространены типичные элементы управления. Они позволяют стандартизировать процесс взаимодействия с различными программами в разных операционных системах.
    Реальный мир как модель
    При разработке первого графического пользовательского интерфейса за основу были взяты элементы реального мира: мусорная корзина, папка, изображение дискеты в качестве кнопки сохранения. Сегодня многие иконки считаются устаревшими, но все равно используются.
    Даже при использовании современных изображений и иконок дизайнеры стараются хотя бы минимально отразить их предназначение. Это позволяет облегчить интуитивное взаимодействие с интерфейсом. Цель GUI заключается в том, что люди могли легко определить предназначение каждой кнопки. Благодаря этому нам не приходится запоминать все команды, как это было в случае с командной строкой.
    Контрольные вопросы
    1. Что такое пользовательский интерфейс?
    2. Опишите особенности интерфейса командной строки
    3. Опишите особенности текстового интерфейс пользователя;
    4. Опишите особенности графического пользовательский интерфейс.
    Лекция 5
    Обработка прерываний
    План
    1. Типы прерываний
    2. Принцип действия «регистра прерываний»
    4. Принцип действия «вектора прерываний»
    4. Принцип действия регистра «слово состояние процессора».
    Прерывание - событие в компьютере, при возникновении которого в процессоре происходит предопределенная последовательность действий. Прерывания возникают в нестандартных ситуациях (например, в регистре команд декодируется операция с неизвестным кодом).мы заранее оговариваем какого рода нестандартные ситуации могут произойти. Прерывание – программно-аппаратное средство.
    Прерывания бывают: внутренние - инициируются схемами контроля работы процессора внешние - события, возникающие в компьютере в результате взаимодействия центрального процессора с внешними устройствами.
    Обработка прерываний проходит в два этапа. Первый этап – аппаратный, он выполняется ЦП. Второй этап – программный, он выполняется ОС.
    Аппаратный этап обработки прерываний

    На аппаратном этапе обработки прерываний процессором производятся следующие действия:
    Включение режима блокировки прерываний. В этом режиме все поступающие прерывания либо игнорируются, либо становятся в очередь (это зависит от конкретной архитектуры).
    Завершение выполнения текущей команды.
    Сохранение актуального состояния (некоторого подмножества регистров) процессора в аппаратный буфер ("малое упрятывание").
    Присвоение регистру адреса некоторого заранее определенного значения (адреса обработчика), соответствующего программному этапу обработки прерываний. В зависимости от модели организации прерываний это может быть один и тот же адрес для всех прерываний или свой адрес для каждого типа прерываний.
    Программный этап обработки прерываний
    На программном этапе сначала определяется тип прерывания.
    Прерывание может быть «коротким», т.е не требующим больших ресурсов и значительного времени обработки. Пример: прерывание, связанное с таймером. В этом случае происходит обработка и осуществляется выход из прерывания (т.е. восстановление состояние процессора в точке прерывания (за счет аппаратного буфера), возврат в точку прерывания и одновременное снятие блокировки прерывания).
    Если прерывание не «короткое», то возможны две ситуации:
    Прерывание «фатальное», т.е. такое, после которого продолжение выполнения прерванной программы невозможно. В этом случае происходит снятие блокировки прерываний и ОС завершает выполнение программы, т.е. выполняет те действия, которые освобождают ресурсы.
    Прерывание не «фатальное», т.е. прерванная программа еще будет выполняться после его обработки. В этом случае ОС сохраняет все регистры, соответствующие контексту процесса (“полное упрятывание”) в программный буфер, затем снимает блокировку прерываний (с этого места обработка прерывания уже может быть прервана другим прерыванием) и завершает обработку прерывания.
    Схема программного этапа обработки прерываний:

    Модели организации прерываний
    Рассмотрим три модели организации прерываний:
    Использование «регистра прерываний»
    Каждый разряд этого регистра отвечает за появление того или иного прерывания или группы прерываний (т.е. каким-то регистрам может соответствовать прерывание определенного типа, а в каком-то регистре возможна индикация о том, что есть еще один периферийный регистр прерываний, в котором появилось прерывание). Когда ОС получает управление, то специальными командами, которые доступны только ОС, она может прочесть регистр прерываний и определить причину прерывания, а после этого, в зависимости от причины, передать управление на ту или иную программу обработки прерывания.
    Использование вектора прерываний
    Здесь процессор предполагает, что в определенном фрагменте ОП размещается вектор прерываний. Это таблица, каждая строка которой соответствует определенному прерыванию, соответственно содержимое строки есть адрес программы-обработчика соответствующего прерывания, также в этой строке может находиться дополнительная информация, например, о том, в какой режим нужно перевести процессор при переходе, приоритет операций и т.д. и т.п. Соответственно, при возникновении прерывания аппаратно управление передается не на одну точку, а уже на точку, которая соответствует конкретному прерыванию, т.е. уже сразу идет попадание на обработчик прерываний.

    Использование регистра «слово состояние процессора»
    Код прерывания аппаратно помещается в регистр «слово состояние процессора», после этого программа-обработчик прерывания, выбрав этот код, принимает решение о дальнейшей последовательности действий, которые необходимо осуществить для обработки прерывания, стоящего под этим кодом.
    Контрольные вопросы
    1. Какие бывают прерывания и зачем они используются?
    2. Объясните принцип действия «регистра прерываний»
    3. Объясните принцип действия «вектора прерываний»
    4. Объясните принцип действия «регистра прерываний»
    5. Объясните принцип действия регистра «слово состояние процессора».

    Лекция 6
    Планирование и диспетчеризация процессов
    План
    1. Диспетчеризация процессов в ОС;
    2. Дисциплина обслуживания FCFS;
    3. Дисциплина обслуживания SJR;
    4. Дисциплина обслуживания RR:
    5. Критерии алгоритмов диспетчеризации.
    Планирование процессов и диспетчеризация задач
    Стратегия планирования определяет, какие процессы планируются на выполнение, чтобы достичь поставленной цели. Существует много стратегий, можно назвать некоторые из них: a) по возможности заканчивать вычислительные процессы в том же самом порядке, в котором они были начаты; b) отдавать предпочтение более коротким процессам; c) предоставлять всем процессам пользователей одинаковые услуги, в том числе и одинаковое время ожидания.
    Когда говорят о стратегии обслуживания, всегда имеют в виду понятие процесса, поскольку процесс может состоять из нескольких задач.
    Известно большое количество правил (дисциплин) диспетчеризации, в соответствии с которыми формируется список (очередь) готовых к выполнению задач.
    Различают два больших класса таких дисциплин – бесприоритетные и приоритетные.
    При реализации приоритетных дисциплин отдельным задачам предоставляется преимущественное право попасть в состояние исполнения.
    Рассмотрим кратко некоторые наиболее часто используемые дисциплины диспетчеризации.
    Самой простой в реализации является дисциплина FCFS (first come – first served), согласно которой задачи обслуживаются в порядке очереди, т.е. в порядке их появления.
    Те задачи, которые были заблокированы в процессе работы, после перехода в состояние готовности ставятся в эту очередь перед теми задачами, которые еще не выполнялись, т.е. образуется две очереди – одна из новых задач, а вторая очередь – из ранее выполнявшихся, но попавших в состояние ожидания. Такой подход позволяет реализовать стратегию обслуживания «по возможности заканчивать вычислительные процессы в порядке их появления».
    Рис.1. Дисциплина FCFS

    К достоинствам этой дисциплины можно отнести простоту реализации и малые расходы системных ресурсов на формирование очереди задач.
    Но она приводит к тому, что при увеличении загрузки вычислительной системы растет и среднее время ожидания обслуживания, причем короткие задания вынуждены ожидать столько же, сколько и трудоемкие задания. Избежать этого недостатка позволяют дисциплины SJN и SRT.
    Дисциплина обслуживания SJN (shortest job next – следующим будет выполняться кратчайшее задание) требует, чтобы для каждого задания была известна оценка в потребностях машинного времени. Для этого были разработаны специальные языковые средства, например, язык JCL (job control language – язык управления заданиями).
    Пользователи должны были указывать предполагаемое время выполнения, а чтобы они не ловчили, ввели подсчет реальных потребностей. Если обнаруживался обман, то задание ставилось в конец очереди или оплата шла по более высоким тарифам.
    Дисциплина обслуживания SJN предполагает, что имеется только одна очередь заданий, готовых к выполнению. И задания, которые в процессе своего выполнения были временно заблокированы, вновь попадают в конец очереди. Это приводит к тому, что задания, которым требуется очень немного времени для завершения, ожидают процессор наравне с длительными работами.
    Для устранения этого недостатка была предложена дисциплина SRT (shortest remaining time) – следующее задание требует меньше всего времени для своего завершения.
    Все эти три дисциплины могут использоваться для пакетных режимов обработки, когда пользователь сдает свое задание, не ожидает реакции системы, а ему нужен только результат вычислений. Для интерактивных вычислений желательно обеспечить приемлемое время реакции системы и равенство в обслуживании, если система является мультитерминальной.
    Для однопользовательских систем с возможностью мультипрограммной обработки желательно, чтобы программы, с которыми работают непосредственно, имели лучшее время реакции, чем фоновые задания. Для решения подобных проблем используется дисциплина обслуживания RR(round robin – круговая, карусельная) и приоритетные методы обслуживания.
    Дисциплина RR предполагает, что каждая задача получает процессорное время порциями (квантами времени q). После окончания кванта времени q задача снимается с процессора, и он передается следующей задаче. Снятая задача ставится в конец очереди задач, готовых к исполнению. Для оптимальной работы системы необходимо правильно выбрать закон, по которому кванты времени выделяются задачам.
    Величина кванта времени q выбирается как компромисс между приемлемым временем реакции системы на запросы пользователей и накладными расходами на частую смену контекста задачи (надо запоминать много информации для прерываний).
    Дисциплина RR – это одна из самых распространенных дисциплин диспетчеризации. В своей простейшей реализации на предполагает, что все задачи имеют одинаковый приоритет. Для введения приоритетного обслуживания вводят несколько очередей. Процессорное время будет предоставляться в первую очередь тем задачам, которые стоят в самой привилегированной очереди. Если она пустая, то диспетчер задач начнет просматривать остальные очереди. По такому алгоритму действует диспетчер задач в Windows NT.

    Рис.2. Дисциплина RR
    Диспетчеризация без перераспределения процессорного времени, т.е. не
    вытесняющая многозадачность – это такой способ диспетчеризации процессов, при котором активный процесс выполняется до тех пор, пока он сам не отдаст управление диспетчеру задач. Дисциплины FCFS, SJN, SRT относятся к не вытесняющим.
    Диспетчеризация с перераспределением процессорного времени между задачами, т.е. вытесняющая многозадачность – это такой способ, при котором решение о переключении с одного процесса на другой принимается диспетчером задач, а не самой активной задачей. Дисциплина RR относится к вытесняющим.
    Для сравнения алгоритмов диспетчеризации обычно используют следующие критерии: a) использование (загрузка) CPU – центрального процессора; b) пропускная способность CPU – количество процессов, выполняющихся в единицу времени; c) время оборота – интервал от момента появления процесса во входной очереди до момента его завершения; d) время ожидания – суммарное время нахождения в очереди готовых процессов; e) время отклика – время, прошедшее от момента попадания во входнуюъ очередь до момента первого обращения к терминалу. Является важным для интерактивных программ.
    Правильное планирование сильно влияет на производительность всей системы.
    Контрольные вопросы
    1. Что такое диспетчеризация процессов в ОС?
    2. Опишите дисциплину обслуживания FCFS;
    3. Опишите дисциплину обслуживания SJR;
    4. Опишите дисциплину обслуживания RR:
    5. Какие критерии алгоритмов диспетчеризации существуют.

    Лекция 7
    Типы загрузки процессов
    План
    1. Алгоритмы планирования процессов;
    2. Принцип FIFO и LIFO;
    3. Алгоритмы, основанные на квантовании времени
    4. Алгоритмы, основанные на приоритетах.
    Создание процесса:

    ОС создает контекст и дескриптор процесса.

    Загрузка кодового сегмента в оперативную память.

    Дескриптор помещается в очередь процессов, находящихся в готовности.
    С этого момента можно считать, что процесс стартовал.
    Разберём подробно вопрос создания процесса. Когда запускается приложение,
    Операционная Система создаёт две информационные структуры: контекст и дескриптор
    (идентификатор и т.д.). Кодовый элемент грузится в оперативную память (информацию о нём заносится в контекст). Затем дескриптор процесса включается в очередь процессов; далее планировщик решает, что процесс должен быть выполнен, а дескриптор процесса находится в очереди готовых процессов. Прежде прервать выполнение процесса, ОС вначале сохраняет его контекст, чтобы в последствие использовать эту инструкцию для последовательного возобновления. Затем контекст обновляется (переключение контекста) и активный контекст получает информацию о новом процессе. Далее процессу выделяются ресурсы, процессорное время и т.д. При удалении процесса: уничтожается дескриптор и удаляется контекст. Новый процесс может получить дескриптор с тем же номером.
    Алгоритмы планирования процессов
    В зависимости от того, какие критерии накладываются, алгоритмы планирования могут основываться на:

    Квантовании времени.

    Приоритетах.
    Алгоритмы, основанные на квантовании времени
    Алгоритмы, основанные на квантовании времени – любому процессу на выполнение отводится определенный квант времени (несколько милисекунд).
    Переключение активного процесса происходит если:

    Истек срок времени, выделенного на выполнение процесса.

    Процесс завершился.

    Процесс перешел в состояние ожидания.
    По истечении выделенного времени планировщик ставит другой процесс. Если до истечения времени процесс находится в режиме ожидания, запускается другой процесс.
    Кванты времени выделенные процессами, могут быть для разных процессов одинаковыми или различными. Кванты, выделяемые одному процессу могут быть фиксированной величины, а могут и изменяться в разные периоды жизни процесса. Некоторые из процессов используют полученные кванты времени не полностью из-за необходимости выполнить операции ввода-вывода. Тогда возникает ситуация, когда процессы с интенсивными обращениями к вводу-выводу используют только небольшую часть выделенного им процессорного времени. В качестве компенсации за не полностью
    использованные кванты, процессы получают привилегии при последующем обслуживании (создают две очереди готовых процессов, прежде всего просматривается вторая очередь; если она пуста, квант выделяется процессу из первой очереди)
    Выбор новых процессов может быть построен по принципам:

    FIFO (очередь).

    LIFO (стек).
    1   2   3   4   5   6


    написать администратору сайта