Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Краткая история эволюции вычислительных систем





СОДЕРЖАНИЕ

Введение 4

1. Методические указания по изучению дисциплины 5

2. Методические указания по выполнению контрольной работы 68

3. Варианты контрольных заданий 69

Перечень литературы 72

ВВЕДЕНИЕ

 

Настоящее пособие предназначено для студентов заочного отделения Нижегородского радиотехнического колледжа специальностей 230401Информационные системы (по отраслям).

Цель руководства: оказание помощи студентам при выполнении контрольной работы по дисциплине «Операционные системы.».

В данном пособии приводятся краткие теоретические сведения, варианты контрольной работы и требования к ее оформлению. Контрольная работа проводится с целью проверки знаний, полученных студентом при изучении дисциплины.

1. Методические указания по изучению дисциплины

Краткая история эволюции вычислительных систем

Первый период (1945-1955) - ламповые машины. Операционные систем отсутствовали. Все задачи организации вычислительного процесса решались вручную каждым программистом с пульта управления. Программа загружалась в память машины в лучшем случае с колоды перфокарт, а обычно с помощью панели переключателей. Отладка программ велась с пульта управления с помощью изучения состояния памяти и регистров машины. В конце этого периода появляется первое системное программное обеспечение: в 1951-52 гг. возникают прообразы первых компиляторов с символических языков.

Второй период (1955-Начало 60-х). Компьютеры на основе транзисторов. Появились пакетные операционные системы.

Появляются алгоритмических языков (ALGOL-58, LISP, COBOL, ALGOL-60, PL-1 и т.д.), компиляторы, редакторы связей, библиотеки математических и служебных подпрограмм. Для повышения эффективности использования компьютера задания с похожими требуемыми ресурсами начинают собирать вместе, создавая пакет заданий.

Системы пакетной обработки явились прообразом современных операционных систем, они стали первыми системными программами, предназначенными для управления вычислительным процессом.

Третий период (Начало 60-х - 1980). Компьютеры на основе интегральных микросхем. Первые многозадачные ОС.

Повышение эффективности использования процессора было достигнуто с помощью мультипрограммирования. Идея мультипрограммирования заключается в следующем: пока одна программа выполняет операцию ввода-вывода, процессор не простаивает, как это происходило при однопрограммном режиме, а выполняет другую программу.

Реализация мультипрограммирования потребовала внесения изменений в аппаратуру компьютера:

1. в процессорах появился привилегированный и пользовательский режимы работы;

2. специальные регистры для быстрого переключения с одной задачи на другую;

3. средства защиты областей памяти;

4. наличие прерываний;

В конце 60-х начата работа по созданию глобальной сети ARPANET (прообраз INTERNET).

В конце 70-х началось массовое использование ОС UNIX, которая легко переносилась на различные типы компьютеров, разработан вариант стека протоколов TCP/IP. Появились ОС разделения времени.

Четвертый период (1980-настоящее время). Персональные компьютеры. Классические, сетевые и распределенные системы.

Следующий период в эволюции вычислительных систем связан с появлением больших интегральных схем (БИС). В середине 80-х стали бурно развиваться сети компьютеров, в том числе персональных, работающих под управлением сетевых или распределенных операционных систем.

Общие сведения об операционных системах

Операционная система представляет собой комплекс взаимосвязанных программ, действует как интерфейс между приложениями и пользователями с одной стороны, и аппаратурой компьютера с другой стороны.

Задачи ОС:

1. Увеличение пропускной способности ЭВМ (за счет организации непрерывной обработки потока задач с автоматическим переходом с одной задач и на другую и эффективным распределением ресурсов ЭВМ по нескольким задачам.)

2. уменьшение времени реакции системы на запросы пользователей

3. упрощение работы разработчиков программного обеспечения и сотрудников обслуживающего персонала ЭВМ (за счет представления им языков программирования и разнообразных сервисных программ).

Функции ОС:

1. Прием от пользователя команд

2. Управление процессами

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

4. Распределение памяти и организация виртуальной памяти.

5. Обслуживание всех операций ввода-вывода

6. Управление файлами

7. Обеспечение режима мультипрограммирования,

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

9. Организация механизмов обмена сообщениями и данными между выполняю­щимися программами.

10. Защита данных и администрирование

11. Аутентификация и авторизация пользователей

 

Архитектурные особенности ОС

Монолитное ядро

Монолитное ядро это такая схема операционной системы, при которой все ее компоненты являются составными частями одной программы, используют общие структуры данных и взаимодействуют друг с другом путем непосредственного вызова процедур. Для монолитной операционной системы ядро совпадает со всей системой (Unix-системы).

Многослойные системы

Можно разбить всю вычислительную систему на ряд более мелких уровней с хорошо определенными связями между ними, так чтобы объекты уровня N могли вызывать только объекты из уровня N-1. Нижним уровнем в таких системах обычно является hardware, верхним уровнем интерфейс пользователя.

Микроядерная архитектура

Операционной системы, когда большинство ее составляющих являются самостоятельными программами, называется микроядерной. В этом случае взаимодействие между ними обеспечивает специальный модуль ядра, называемый микроядром. Микроядро работает в привилегированном режиме и обеспечивает взаимодействие между программами, планирование использования процессора, первичную обработку прерываний, операции ввода-вывода и базовое управление памятью. Остальные компоненты системы взаимодействуют друг с другом путем передачи сообщений через микроядро.

Смешанные системы

Примером смешанного подхода может служить возможность запуска операционной системы с монолитным ядром под управлением микроядра. Так устроены 4.4BSD и MkLinux, основанные на микроядре Mach.

Классификация ОС

1. По числу одновременно выполняемых задач операционные системы могут быть разделены на два класса:

§ многозадачные (мультипрограммные) (ОС Unix, ОС OS/2, ОС MS Windows)

§ однозадачные (например, MS-DOS)

2. По числу одновременно работающих пользователей ОС можно разделить на:

· однопользовательские

· многопользовательские поддерживают одновременно работу нескольких пользователей

По типу доступа к компьютеру

· системы с пакетной обработкой – формирует пакет, который предъявляется ЭВМ. Пользователь не взаимодействует с компьютером.

· Системы с разделением времени (интерактивные), обеспечивают одновременный доступ нескольких пользователей через терминалы. Ресурсы выделяются по очереди. (Windows, Unix)

· Системы реального времени, которые должны обеспечить гарантированное время ответа на внешнее событие (QNX, RSX, Neutrino)

Интерфейс пользователя

Интерфейс – это способ общения пользователя с ПК, пользователя с прикладными программами и программ между собой.

Назначение: служит для удобства управления программным обеспечением компьютера.

Разновидности интерфейсов.

Современные ОС поддерживают функции пользовательского интерфейса для интерактивной работы за терминалами двух типов: алфавитно-цифровой и графический.

Командный язык (алфавитно-цифровой режим) – это язык, на котором пользователь взаимодействует с системой в интерактивном режиме. Командный язык ОС позволяет запускать и останавливать приложения, выполнять различные операции над файлами и каталогами, получать информацию о состоянии ОС, администрировать систему. Команды могут вводиться и с командног о файла, содержащего последовательность команд.

Графический пользовательский интерфейс (GUI- Graphics User Interface) - включает следующие понятия – рабочий стол, окна, пиктограммы, элементы графического интерфейса (виджеты), управление мышью, многооконный режим.

Используется принцип Drag-and-Drop –перетащить и положить, принцип WYSIWYG –what You See What You Get -что видим, тол и получаем. Большое внимание уделяется шрифтам.

Планирование процессов. Состояния существования процессов.

Процесс — минимальный программный объект, обладающий собственными системными ресурсами (запущенная программа, программа в стадии выполнения).

Не следует смешивать понятия процесс и программа. Програм­ма — это план действий, а процесс это само действие, поэтому понятие процесса включает:

• программный код;

• данные;

• содержимое стека; (стек – это среда для размещения данных для возврата из подпрограммы)

• содержимое адресного и других регистров процессора.

 

Понятие очереди

Входная очередь располагается во внешней памяти, во входной очереди процессы ожидают освобождения ресурса — адресного про­странства основной памяти.

Готовые к выполнению процессы располагаются в основной па­мяти и связаны очередью готовых процессов. Процессы в этой очере­ди ожидают освобождения ресурса процессорное время.

Процесс в состоянии ожидания завершения операции ввода-вы­вода находится в одной из очередей к оборудованию ввода-вывода.

При прохождении через компьютер процесс мигрирует между различными очередями под управлением программы, которая назы­вается планировщик (scheduler).

Операционная система, обеспечивающая режим мультипрог­раммирования, обычно включает два планировщика — долгосрочный и краткосрочный. Например, в OS/360 долговременный планировщик назывался планировщиком заданий, а краткосрочный — суперви­зором задач.

Взаимодействие процессов.

Любое взаимодействие процессов связано с их синхронизацией, которая заключается в согласовании их скоростей путем приостановки процесса (потока) до наступления некоторого события и последующей его активизации при наступлении этого события. Совместно выполняемые про­цессы могут быть либо независимыми, либо взаимодействующими. Илипараллельные процессы бывают синхронные (процессы работают параллельно и независимо друг от друга) и асинхронные (параллельные процессы, которые взаимодействуют друг с другом).

Взаимодействие процессов часто понимается в смысле взаимного обмена данными через общий буфер данных.

Важным понятием синхронизации потоков является понятие «критической сек­ции» программы.

Взаимодействие заключается в передаче данных между процес­сами или совместном использовании некоторых ресурсов и обычно реализуется с помощью таких механизмов, как транспортеры, оче­реди, сигналы, семафоры.

Ситуация, когда два или более процесса обрабатывают разделяемые данные и конечный результат зависит от скорости процессов, называется гонками.

Семафор – это механизм, который регулирует работу двух и более асинхронных процесса.

В операционных системах OS/2 и Microsoft Windows существует специальный механизм для взаимодействия процессов в реальном масштабе времени. Этот механизм называется DDE (Dynamic Data Exchange — динамический обмен данными).

Другим интерфейсом для обмена данными является OLE (Object Linking and Embedding — связывание и встраивание объектов). Этот интерфейс позволяет хранить объекты, созданные одной програм­мой, в объектах, созданных другой программой, а также редактиро­вать (печатать) их без нарушения целостности информации и свя­зей.

Одним из наиболее простых, удобных и интуитивных интерфей­сов межпрограммного взаимодействия является буфер обмена — Clipboard.

Планирование работы процессора

Когда требуется планирование

1. При завершении процесса.

2. При блокировании процесса семафором или вводом-выводом.

Стратегии планирования процессора

Планирование в системах пакетной обработки

1. Первый пришел — первый обслуживается FIFO — first come — first served (FCFS).

2. Стратегия «наиболее короткая работа выполняется первой»
SJF — Shortest Job First.

Планирование в интерактивных системах

1. Приоритетное планирование.

Эта стратегия предполагает, что каждому процессу приписывается приоритет, определяющий очередность предоставле­ния ему CPU.

2. «Карусельная» (циклическая) стратегия планирования RR-Round Robin применяется в системах разделения времени. Определяется неболь­шой отрезок времени tk, названный квантом времени (10...100 мс).

Планирование с использованием многоуровневой очереди.

Взаимодействие очередей осуществляется по следующим прави­лам: ни один процесс с более низким приоритетом не может быть запущен, пока не выполнятся процессы во всех очередях с более высоким приоритетом.

4. Использование многоуровневой очереди с обратными связя­ми.

Данная стратегия является универсальной и сочетает в себе свойства всех рассмотренных раньше стратегий — FCFS, SJF, прио­ритетная, Round Robin, многоуровневая очередь.

5. Приоритетная многоочередная дисциплина обслуживания. Вновь поступающие в систему запросы устанавливаются не обязательно в 1-ю очередь, а в очередь в соответствии с имею­щимися приоритетами, которые определяются параметрами обслу­живания процессов.

Планирование в системах реального времени

В системах реального времени, как и следовало ожидать, существенную роль играет время.

Системы реального времени делятся на жесткие системы реального времени, что означает наличие жестких сроков для каждого задания (в них обязательно надо укладываться), и гибкие системы реального времени, в которых нарушения временного графика нежелательны, но допустимы.

Алгоритмы планирования для систем реального времени бывают как статическими, так и динамическими. В первом случае все решения по планированию принимаются заранее, еще до запуска системы. Во втором случае решения выносятся по ходу дела. Статическое планирование применимо лишь при наличии априори точной информации о работе, которую необходимо выполнить, и ограничениях, которые должны быть соблюдены. Алгоритмы динамического планирования не выдвигают подобных требований.

Обслуживание ввода-вывода

Типы устройств

Устройства ввода-вывода делятся на следующие типы:

§ Байт-ориентированные устройства (символьные) (клавиатура, модем, терминал и т.п.);

§ блок-ориентированные устройства (блочные) (магнитные и оптические диски и ленты, сетевые адаптеры (сетевые карты);

§ все остальные (таймеры, графические дисплеи, телевизионные устройства, видеокамеры и т.п.);

Устройства бывают выделенные и разделяемые.

Буферизация и кэширование.

Под буфером обычно понимается некоторая область памяти для запоминания информации при обмене данных между двумя устройствами, двумя процессами или процессом и устройством.

Причины буферизации

Первая причина – это разные скорости приема и передачи информации, которыми обладают участники обмена.

Вторая причина – это разные объемы данных, которые могут быть приняты или получены участниками обмена единовременно

Третья причина связана с необходимостью копирования информации из приложений, осуществляющих ввод-вывод, в буфера ядра операционной системы и обратно.

Под словом кэш (cache – “наличные”), обычно понимают область быстрой памяти, содержащую копию данных, расположенных где-либо в более медленной памяти, предназначенную для ускорения работы вычислительной системы.

Spooling и захват устройств

Под словом spool мы будем понимать буфер, который содержит входные или выходные данные для устройства, на котором следует избегать чередования его использования различными процессами. Правда, в современных вычислительных системах spool практически не используется для ввода данных, а в основном предназначен для накопления выходной информации.

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

Обеспечение spooling’а и механизма захвата устройств является прерогативой базовой подсистемы ввода-вывода.

Управления реальной памятью

Память ПК представляет собой иерархию запоминающих устройств: разновидности памяти могут быть объединены в иерархию по убыванию времени доступа, возрастанию цены и увеличению емкости.

 
 
Регистры процессора ~ 2-3нс (~10б)


Цена одного бита время доступа

 
 


Быстродейтсвующая память (SRAM) ~5-8нс (~10 –100кб)
Емкость запоминающих устройств

 

 
 

 


Рис. 3. Иерархию запоминающих устройств.

Под памятью (memory) здесь подразумевается оперативная память компьютера. В отличие от памяти жесткого диска, которую называют внешней памятью (storage), оперативной памяти для сохранения информации требуется постоянное электропитание.

Типы адресов

Для идентификации переменных и команд используются символьные имена (метки), виртуальные адреса и физические адреса.

· Символьные имена присваивает пользователь при написании программы на алгоритмическом языке или ассемблере.

· Виртуальные адреса вырабатывает транслятор, переводящий программу на машинный язык. Так как во время трансляции в общем случае не известно, в какое место оперативной памяти будет загружена программа, то транслятор присваивает переменным и командам виртуальные (условные) адреса, обычно считая по умолчанию, что программа будет размещена, начиная с нулевого адреса. Совокупность виртуальных адресов процесса называется виртуальным адресным пространством. Каждый процесс имеет собственное виртуальное адресное пространство. Максимальный размер виртуального адресного пространства ограничивается разрядностью адреса, присущей данной архитектуре компьютера, и, как правило, не совпадает с объемом физической памяти, имеющимся в компьютере.

Физические адреса соответствуют номерам ячеек оперативной памяти, где в действительности расположены или будут расположены переменные и команды.

Рис. 5. Регистр границы при мультипрограммировании.

Доступ к файлам

Последовательный - в этих системах процесс мог читать байты или записи файла только по порядку от начала к концу.

Файлы, байты которых могут быть прочитаны в произвольном порядке, называются файлами произвольного доступа.

Имена файлов

Файлы идентифицируются именами.

Простое (короткое с имвольное) имя идентифицирует файл в пределах одного каталога, присваивает пользователь или программист и при этом учитываются ограничения ОС как на используемые символы, так и на длину имени.

Полное имя состоит из списка имен вложенных каталогов, через которые проходит путь от корня к файлу, плюс имя файла в каталоге, непосредственно содержащем данный файл.

Относительное имя - определяется через понятие текущий каталог. Для каждого пользователя в данный момент один каталог текущий и он фиксируется файловой системой, чтобы использовать его как дополнение к относительным именам для образования полного имени.

Операции над файлами:

Create. Создание файла, не содержащего данных.

Open. Перед использованием файла процесс должен его открыть

Close. Если работа с файлом завершена, его атрибуты и адреса блоков на диске больше не нужны.

Read. Чтение данных из файла.

Write. Запись данных в файл с текущей позиции

Get attributes. Предоставляет процессам нужные им сведения об атрибутах файла.

Set attributes.

Rename. Возможность переименования файла.

Существует два способа выполнить последовательность действий над файлами. В первом случае для каждой операции выполняются как универсальные, так и уникальные действия (схема stateless). Например, последовательность операций может быть такой: open, read1, close, … open, read2, close, … open, read3, close.

Альтернативный способ, это когда универсальные действия выполняются в начале и в конце последовательности операций, а для каждой промежуточной операции выполняются только уникальные действия. В этом случае последовательность вышеприведенных операций будет выглядеть так: open, read1, … read2, … read3, close.
Большинство ОС использует второй способ, как более экономичный и быстрый.

Каталоги

Иерархия каталогов может быть деревом или сетью. Каталоги образуют дерево, если файлу разрешено входить только в один каталог, и сеть – если файл может входить сразу в несколько каталогов. В MS-DOS каталоги образуют древовидную структуру, а в UNIX'е – сетевую. Как и любой другой файл, каталог имеет символьное имя и однозначно идентифицируется составным именем, содержащим цепочку символьных имен всех каталогов, через которые проходит путь от корня до данного каталога

Действия, выполняемые ОС над файлами:

1. По символьному имени найти его характеристики;

2. Скопировать эти характеристики в оперативную память, т.к. только так можно использовать программный код;

3. На основании характеристик проверить права пользователя;

4. Очистить область памяти, отведенную под временное хранение характеристик файла;

5. Провести уникальные действия над файлами;

Файловая система

Для большинства пользователей файловая система - наиболее видимая часть ОС.

Файловая система – это часть операционной системы, назначение которой состоит в том, чтобы обеспечить пользователю удобный интерфейс при работе с данными, хранящимися на диске, и обеспечить совместное использование файлов несколькими пользователями и процессами.

В широком смысле понятие «файловая система» включает:

· совокупность всех файлов на диске,

· наборы структур данных, используемых для управления файлами, такие, например, как каталоги файлов, дескрипторы файлов, таблицы распределения свободного и занятого пространства на диске,

· комплекс системных программных средств, которые выполняют различные операции над файлами: создание, уничтожение, чтение, запись, именование, поиск и другие операции над файлами.

Основные функции файловой системы:

1. Идентификация файлов. Связывание имени файла с выделенным ему пространством внешней памяти.

2. Распределение внешней памяти между файлами. Для работы с конкретным файлом не требуется иметь информацию о местоположении этого файла на внешнем носителе информации. Например, для того, чтобы загрузить документ в редактор с жесткого диска нам не требуется знать на какой стороне какого магнитного диска и на каком цилиндре и в каком секторе находится требуемый документ. Обеспечение надежности и отказоустойчивости. Стоимость информации может во много раз превышать стоимость компьютера.

3. Обеспечение защиты от несанкционированного доступа.

4. Обеспечение совместного доступа к файлам.

5. Обеспечение высокой производительности

Структура файловой системы

Как правило, файловые системы хранятся на дисках. Большинство дисков можно разбить на разделы, каждый из которых имеет независимую файловую систему. Сектор 0 диска называется главной загрузочной записью (Master Boot Record, MBR) и используется для загрузки компьютера. В конце главной загрузочной записи находится таблица разделов, содержащая начальные и конечные адреса всех разделов. Один из разделов таблицы может быть помечен как активный. При загрузке компьютера BIOS считывает и исполняет код, содержащийся в MBR. Первое, что делает программа MBR, — определяет активный раздел, считывает его первый блок, называемый загрузочным, и исполняет его. Программа загрузочного блока загружает операционную систему раздела.

Для единообразия все разделы начинаются с загрузочного блока, в том числе и те, которые не содержат загружаемую операционную систему. Независимо от используемой операционной системы, приведенное описание справедливо для любой аппаратной платформы, система BIOS которой способна загружать более одной операционной системы.

Системы, совместимые с персональными компьютерами, могут иметь не более четырех главных разделов, поскольку между главной загрузочной записью и границей первого 512-байтового сектора есть место под массив, включающий лишь 4 элемента. Некоторые операционные системы позволяют выделять в таблице разделов один расширенный раздел, указывающий на связанный список логических разделов. Такая структура позволяет иметь неограниченное количество дополнительных разделов. BIOS не может запустить операционную систему с логического раздела, поэтому начальную загрузку требуется проводить с главного раздела, чтобы загрузить код, управляющий логическими разделами.

Физическая организация FAT

Файлу выделяется память в виде связанного списка кластеров. Номер первого кластера запоминается в записи каталога, где хранятся характеристики этого файла. Остальная адресная информация отделена от кластеров файла. С каждым кластером диска связыва­ется некоторый элемент — индекс. Индексы располагаются в отдельной области диска — в MS-DOS это таблица FAT (Fife Allocation Table), занимающая один кластер. Когда память свободна, все индексы имеют нулевое значение.

Логический раздел, отформатированный под файловую систему FAT, состоит из следующих областей.

§ Загрузочный сектор содержит программу начальной загрузки операционной системы. Вид этой программы зависит от типа операционной системы, кото­рая будет загружаться из этого раздела.

§ Основная копия FA T содержит информацию о размещении файлов и катало­гов на диске.

§ Резервная копия FAT.

§ Корневой каталог занимает фиксированную область размером в 32 сектора (16 Кбайт), что позволяет хранить 512 записей о файлах и каталогах, так как каждая запись каталога состоит из 32 байт.

§ Область данных предназначена для размещения всех файлов и всех катало­гов, кроме корневого каталога.

 

Загрузочный сектор FAT Копия FAT Корневой каталог Область данных

Системная область

Рис. 6. Структура FAT.

Файловая система FAT поддерживает всего два типа файлов: обычный файл и каталог. Файловая система распределяет память только из области данных, при­чем использует в качестве минимальной единицы дискового пространства клас­тер.

Таблица FAT (как основная копия, так и резервная) состоит из массива индекс­ных указателей, количество которых равно количеству кластеров области дан­ных. Между кластерами и индексными указателями имеется взаимно однознач­ное соответствие — нулевой указатель соответствует нулевому кластеру и т. д.

Индексный указатель может принимать следующие значения, характеризующие состояние связанного с ним кластера:

§ кластер свободен (не используется);

§ кластер используется файлом и не является последним кластером файла; в этом случае индексный указатель содержит номер следующего кластера файла;

§ последний кластер файла;

§ дефектный кластер;

резервный кластер.

В начальный период после форматирования файлы будут размещаться в после­довательных кластерах области данных, однако после определенного количества удалений файлов кластеры одного файла окажутся в произвольных местах об­ласти данных, чередуясь с кластерами других файлов. Файл становится фрагментированным.

Существует несколько разновидностей FAT, отличающихся разрядностью индексных указателей, которая и используется в качестве условного обозначе­ния: FAT12, FAT16 и FAT32.

В файловой системе FAT12 используются 12-раз­рядные указатели, что позволяет поддерживать до 4096 кластеров в области дан­ных диска;

в FAT16 — 16-разрядные указатели для 65 536 кластеров;

в FAT32 — 32-разрядные для более чем 4 миллиардов кластеров

 

 

Имя файла 8байт Расширение 3байта Атрибуты Резервные
R A S H
Резервные Время 2байта Дата 2байта № первого кластера 2байта Размер 4байта
                   

Рис. 7.Структура записи в каталоге MS DOS (32 байта).

Планирование заданий

В настоящее время в большинстве операционных систем определены два типа единиц работы. Более крупная единица, носящая название процесса, или задачи, требует для своего выполнения несколько более мелких работ, для обозначения которых используют термины «поток», или «нить».

Задача – одна или несколько программ, связанных общим назначением, ресурсами.

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

Поток – это последовательность команд процесса, которые выполняются независимо одна от другой и используют общие ресурсы одного процесса.

Все потоки в рамках одного процесса имеют одно и то же адресное пространство.

Все потоки одного процесса всегда решают общую задачу одного пользователя.

Вытесняющие и невытесняющие алгоритмы планирования

С самых общих позиций все множество алгоритмов планирования можно разделить на два класса: вытесняющие и невытесняющие алгоритмы планирования.

§ Невытесняющие (non-preemptive) алгоритмы основаны на том, что активному потоку позволяется выполняться, пока он сам, по собственной инициативе, не отдаст управление операционной системе для того, чтобы она выбрала из очереди другой, готовый к выполнению поток. (Невытесняющее планирование используется, например, в MS Windows 3.1 и ОС Apple Macintosh.)

§ Вытесняющие (preemptive) алгоритмы – это такие способы планирования потоков, при которых решение о переключении процессора с выполнения одного потока на выполнение другого потока принимается операционной системой, а не активной задачей.

Отличие: Основным различием между preemptive и non-preemptive алгоритмами является степень централизации механизма планированияпотоков. Привытесняющей многозадачности механизм планирования потоков целиком сосредоточен в операционной системе.

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

Алгоритмы планирования

1.Алгоритмы планирования, основанные на квантовании

В основе многих вытесняющих алгоритмов планирования лежит концепция квантования. В соответствии с этой концепцией каждому потоку поочередно для выполнения предоставляется ограниченный непрерывный период процессорного времени – квант. Смена активного потока происходит, если:

· поток завершился и покинул систему,

· произошла ошибка,

· поток перешел в состояние ожидания,

· исчерпан квант процессорного времени, отведенный данному потоку.

Поток, который исчерпал свой квант, переводится в состояние готовности и ожидает, когда ему будет предоставлен новый квант процессорного времени, а на выполнение в соответствии с определенным правилом выбирается новый поток из очереди готовых. Таким образом, ни один поток не занимает процессор надолго, поэтому квантование широко используется в системах разделения времени.

 

 

     
   
 
 

 

 


Рис.8. Алгоритмы планирования, основанные на квантовании.

Кванты, выделяемые потокам, могут быть одинаковыми для всех потоков или различными.

Потоки, которые не полностью использовали выделенный им квант и им требуется операции ввода-вывода, могут получить компенсацию в виде привилегий при последующем обслуживании. Планировщик создает две очереди готовых потоков: 1-ая пришла в состояние готовности в результате исчерпания кванта, а 2-ая – потоки завершили ввод/вывод. Сначала будет просматриваться вторая очередь и, если она пуста, то квант будет выделяться из первой очереди.

                   
   
   
 
     
 
 
 
   
 


               
   
 
   
   
 
 
 

 

 


Рис. 9. Квантование с предпочтением потоков, интенсивно обращающихся к вводу - выводу

2. Алгоритмы планирования, основанные на приоритетах

Другой важной концепцией, лежащей в основе многих вытесняющих алгоритмов планирования, является приоритетное обслуживание. Приоритетное обслуживание предполагает наличие у потоков некоторой изначально известной характеристики – приоритета, на основании которой определяется порядок их выполнения. Приоритет – это число, характеризующее ст







ЧТО И КАК ПИСАЛИ О МОДЕ В ЖУРНАЛАХ НАЧАЛА XX ВЕКА Первый номер журнала «Аполлон» за 1909 г. начинался, по сути, с программного заявления редакции журнала...

Что делает отдел по эксплуатации и сопровождению ИС? Отвечает за сохранность данных (расписания копирования, копирование и пр.)...

Что вызывает тренды на фондовых и товарных рынках Объяснение теории грузового поезда Первые 17 лет моих рыночных исследований сводились к попыткам вычис­лить, когда этот...

Что будет с Землей, если ось ее сместится на 6666 км? Что будет с Землей? - задался я вопросом...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.