Эволюция ОС.
Первый период (1945 -1955)
компьютер был изобретен английским математиком Чарльзом Бебиджем в конце восемнадцатого века. Его "аналитическая машина" так и не смогла по-настоящему заработать, потому что технологии того времени не удовлетворяли требованиям по изготовлению деталей точной механики, которые были необходимы для вычислительной техники, этот компьютер не имел операционной системы.
В середине 40-х были созданы первые ламповые вычислительные устройства. Программирование осуществлялось исключительно на машинном языке,все задачи организации вычислительного процесса решались вручную каждым программистом с пульта управления. Не было никакого другого системного программного обеспечения, кроме библиотек математических и служебных подпрограмм.
Второй период (1955 - 1965)
С середины 50-х годов начался новый период в развитии вычислительной техники, связанный с появлением новой технической базы - полупроводниковых элементов. Компьютеры второго поколения могли непрерывно работать настолько долго, чтобы на них можно было возложить выполнение действительно практически важных задач. В этот период произошло разделение персонала на программистов и операторов, эксплуатационщиков и разработчиков вычислительных машин.
появились первые алгоритмические языки и первые системные программы - компиляторы. Появились первые системы пакетной обработки, которые явились прообразом современных операционных систем, они стали первыми системными программами, предназначенными для управления вычислительным процессом. был разработан формализованный язык управления заданиями, с помощью которого программист сообщал системе и оператору, какую работу он хочет выполнить на вычислительной машине. Совокупность нескольких заданий, как правило, в виде колоды перфокарт, получила название пакета заданий.
|
Третий период (1965 - 1980)
В технической базе произошел переход от отдельных полупроводниковых элементов типа транзисторов к интегральным микросхемам, что дало большие возможности новому, третьему поколению компьютеров.
Для этого периода характерно также создание семейств программно-совместимых машин.Программная совместимость требовала и совместимости операционных систем. Операционные системы, построенные с намерением удовлетворить всем этим противоречивым требованиям, оказались чрезвычайно сложными «монстрами».
Однако, несмотря на необозримые размеры и множество проблем, OS/360 и другие ей подобные операционные системы машин третьего поколения действительно удовлетворяли большинству требований потребителей. Важнейшим достижением ОС данного поколения явились:
Мультипрограммирование - это способ организации вычислительного процесса, при котором на одном процессоре попеременно выполняются несколько программ.
спулинг (spooling)-способ организации вычислительного процесса, в соответствии с которым задания считывались с перфокарт на диск в том темпе, в котором они появлялись в помещении вычислительного центра, а затем, когда очередное задание завершалось, новое задание с диска загружалось в освободившийся раздел.
Появился новый тип ОС - системы разделения времени.
Четвертый период (1980 - настоящее время)
|
Появление больших интегральных схем (БИСКомпьютер стал доступен отдельному человеку, и наступила эра персональных компьютеров.
Компьютеры стали широко использоваться неспециалистами, что потребовало разработки «дружественного» программного обеспечения, это положило конец кастовости программистов.
На рынке операционных систем доминировали две системы: MS-DOS и UNIX.
Назначение и функции ОС.
В процессе работы вычислительной машины выполняются множество различных действий:
- ввод программы написанной на некотором исходном языке;
- запись введенной программы на некотором накопителе (жесткий или гибкий диск, магнитныеленты);
- трансляция программы в объектное представление;
- редактирование оттранслированной программы, при котором происходит "сборка программы", то есть устанавливаются все необходимые связи между отдельными подпрограммами; полученный после редактирования загрузочный модуль,
-либо исполняется, либо записывается на внешний носитель данных;
-в процессе исполнения программы может потребоваться ввод или вывод данных.
.
Для организации выполнения всего набора задач, в соответствии с требуемой для каждой из них технологией, и выделения необходимых для этого ресурсов, требуется соответствующая система управления или иначе говоря - операционная система (аналогия с АСУ)
Таким образом: ОПЕРАЦИОННАЯ СИСТЕМА (ОС) - это упорядоченная последовательность управляющих и служебных программ, совместно с необходимыми информационными массивами, осуществляющая управление всеми ресурсами вычислительного комплекса с целью обеспечения эффективной работы вычислительной системы (общепризнанного определения операционной системы не существует).
|
Рассмотрим основные режимы обслуживания.
Режим индивидуального пользования. Вычислительная система полностью предоставляется в распоряжение пользователя, по крайней мере, на время решения его задачи. Пользователь имеет непосредственный доступ к ВС, используя пульт управления или устройства ввода-вывода для ввода команд и данных, необходимых для решения его задачи.
После получения результатов или истечения отведенного для пользователя времени он регистрировал свой уход с машины и его сменяет другой пользователь со своей программой.
В каждый момент рабочего времени машина используется для решения только одной прикладной программы. Поэтому такой режим работы называется - однопрограммным
Такой Режим удобен пользователю, но плохо использует оборудование ВС, из-за простоев вызванных чередованием фаз:
фаза 1 - работа ВС и выдача результата;
фаза 2 - обдумывание пользователем и ввод нового задания.
При этом во второй фазе ВС ничего не делает и процент использования ВС едва превышает 50%.
Этот режим применялся в ЭВМ первого поколения (ламповые) и в настоящее время используется в персональных ЭВМ
Режим однопрограммной пакетной обработки. В этом режиме пользователь не имеет непосредственного доступа к ВС. Пользователь подготовленные им программы передает обслуживающему персоналу ВС. Собранные от нескольких пользователей программы (задания) накапливаются в пакет на магнитных дисках или лентах.
Совокупность отдельных программ и данных, разделенных специальными метками, на магнитном носителе (чаще всего Магнитной ленте) называется пакетом.
Затем, в соответствии с расписанием, оператор устанавливает носитель с пакетом на соответствующий накопитель (НМД или НМЛ) и специальная программа из состава операционной системы, последовательно считывает программы и данные из пакета и запускает их на выполнение.
Результаты счета программ при этом выводятся на другой накопитель НМЛ или НМД и составляют пакет результатов.
Управляющая программа выполняла внутрисистемные операции управления, которые ранее (в режиме индивидуального пользования) выполнял пользователь. Дополнительно эта программа автоматически переключала машину на исполнение программ из пакета по последовательной схеме.
При этом каждая программа, получившая доступ к процессору, обслуживается до конца.
Рассмотренная управляющая программа автоматизирует операции оператора по организации работы ЭВМ при обработке на ней некоторой последовательности программ, и может быть названа простейшей операционной системой.
пакетный режим обладает двумя существенными недостатками:
1.Значительное увеличение интервала времени между моментом передачи пользователем программы оператору на счет и моментом когда он получит результаты счета. Чем больше пакет тем больше этот интервал времени. (обычно 2-4часа)
2.Во время выполнения некоторой программы может потребоваться передача данных из оперативной памяти в накопитель на МЛ или МД или наоборот. Процессор во время выполнения таких обменов простаивает и продолжит обработку только после завершения обмена.
Режим мультипрограммной пакетной обработки. Основой функционирования таких систем является размещение в оперативной памяти не одной а нескольких пользовательских программ.
б) многопрограммный режим.
Рассмотрим пример: пусть в оперативной памяти загружены три программы А,Б и В. Временные диаграммы выполнения их в однопрограммном и многопрограммном режиме имеют вид: (рисунок диаграммы)
На диаграммах интервалы времени необходимые для выполнения операций ввода-вывода обозначены tвв(А), tвв(Б), tвв(В) для программ А,Б и В соответственно.
Время выполнения всех трех программ А,Б и В в пакетном однопрограммном режиме составит Т(А)+Т(Б)+Т(В), так как программы выполняются строго последовательно друг за другом.
Т(А) Т(Б) Т(В).
+---------------+-----------+--------+-------->t
В многопрограммном режиме:
Допустим, что процессор начинает обслуживание с программы А. В момент времени t1, программе А требуются данные, находящиеся на одном из внешних устройств. В этот момент выполнение программы А прерывается и начинает выполняться операция ввода-вывода, которая будет завершена через время tвв(А) в момент времени t4.
Одновременно, параллельно с операцией ввода-вывода процессор переключается на выполнение программы Б. В момент времени t2, программе Б потребовалось выдать промежуточные данные на одно из внешних устройств (дисплей, печать, НМД или НМЛ и т.п.).
Происходит прерывание выполнения процессором программы Б и начинает выполняться операция ввода-вывода, которая будет завершена через время tвв(Б) в момент времени t7.
Одновременно, параллельно с этой операцией ввода-вывода процессор переключается на выполнение программы В. В момент времени t3 происходит прерывание выполнения процессором программы В и начинает выполняться операция ввода-вывода, которая будет завершена через время tвв(Б).
После завершения операции ввода-вывода для программы А в момент t4 свободный к этому моменту процессор вновь начинает выполнять программу А до ее завершения в момент времени t6.
Поскольку операция ввода -вывода для программы В завершилась ранее в момент t5, то процессор переключается на продолжение программы В. Закончив ее выполнение в момент времени t8, процессор переходит к выполнению программы Б, операция ввода-вывода для которой уже завершилась в момент t7.
Таким образом, выполнение всех трех программ закончилось в момент t9, при этом величина t9 - t0 значительно меньше чем Т(А)+Т(Б)+Т(В).
Однако, время выполнения программ В и Б увеличилось по сравнению с однопрограммным режимом на величину t6 - t5 и t8 - t7 соответственно.
Эти временные задержки возникли из-за занятости процессора обслуживанием другой программы, при готовности программ В и Б к продолжению выполнения. При выполнении в пакетном режиме наличие этих задержек не имеет существенного значения, поскольку они практически не влияют на время получения пользователем результатов счета.
Основным достоинством многопрограммного пакетного режима обработки является значительное уменьшение времени простоя процессора.
Реализация рассмотренной идеи многопрограммной обработки (мультипрограммирование) потребовала изменения, как аппаратных, так и программных средств:
1. Реализован механизм "прерывания"
2.. В состав ЭВМ включены новые устройства - каналы ввода-вывода. Канал осуществляет все операции ввода вывода, не используя средства процессора. По существу канал это специализированный процессор ввода- вывода.
3. Организация функционирования ЭВМ реализуется с помощью комплекса сложных взаимоувязанных управляющих программ - операционной системы, ставшей неотъемлемой частью мультипрограммных ЭВМ.
Появление относительно дешевых персональных микро ЭВМ,сняло на некоторое время задачу эффективного использования оборудования ВС.
Дальнейшая эволюция операционных систем была направлена уменьшение времени ожидания пользователем результатов выполнения своей программы.
Режим коллективного пользования (или мультидоступ) - это такая форма обслуживания, при которой возможен одновременный доступ нескольких независимых пользователей к вычислительным ресурсам мощной вычислительной системы. Каждому пользователю предоставляется терминал, с помощью которого он устанавливает связь с системой коллективного пользования.
Системы коллективного пользования, с однородными запросами, обработка которых занимает приблизительно одинаковое время, реализуют режим "запрос-ответ
При этом режиме операционная система работает в рассмотренном ранее мультипрограммном режиме, но формируется динамически. По каждому запросу от терминала, соответствующая программа обработки этого запроса, попадает в очередь, а после своего выполнения - покидает очередь.
Процессор обрабатывает программы по очереди в соответствии с их приоритетом (важностью).
Такой режим обслуживания позволил сократить время ожидания пользователя, однако если некоторый пользователь вводил запрос, требующий длительного времени обработки, то время ожидания для других пользователей могло возрасти до недопустимой величины. С целью устранения этого недостатка появился режим квантования времени.
Этот режим основывается на уже рассмотренном режиме многозадачной обработки, в котором каждой программе готовой к выполнению, выделяется для исполнения на процессоре фиксированный заранее определенный интервал времени (квант).
Программа, получившая квант времени может завершить свою работу в течении этого интервала времени, и тогда она покидает очередь программ.
Либо по истечению выделенного кванта времени программа не выполнена до конца, тогда она прерывается и помещается в конец очереди других готовых выполнению программ. Из начала этой очереди извлекается другая программа, которой опять выделяется очередной квант времени.
Такое циклическое обслуживание, основанное на детерминированной схеме прерывания программ, гарантирует, что всем программам будут выделятся, процессорное время "справедливо".
при
Дальнейшее развитие операционные системы получили при создании многомашинных и многопроцессорных (мультипроцессорных) вычислительных систем, а также локальных и глобальных вычислительных сетей
3. Требования, предъявляемые к ОС.
главным требованием, предъявляемым к операционной системе, является способность выполнения основных функций: эффективного управления ресурсами и обеспечения удобного интерфейса для пользователя и прикладных программ. Современная ОС, как правило, должна реализовывать мультипрограммную обработку, виртуальную память, свопинг, поддерживать многооконный интерфейс, а также выполнять многие другие, совершенно необходимые функции. Кроме этих функциональных требований к операционным системам предъявляются не менее важные рыночные требования. К этим требованиям относятся:
Расширяемость. Код должен быть написан таким образом, чтобы можно было легко внести дополнения и изменения, если это потребуется, и не нарушить целостность системы.
Переносимость. Код должен легко переноситься с процессора одного типа на процессор другого типа и с аппаратной платформы одного типа на аппаратную платформу другого типа.
(Обычно это означает, что код должен быть написан на языке высокого уровня, предпочтительно стандартизованном, например, на языке С
Надежность и отказоустойчивость. Система должна быть защищена как от внутренних, так и от внешних ошибок, сбоев и отказов. Ее действия должны быть всегда предсказуемыми, а приложения не должны быть в состоянии наносить вред ОС.
Совместимость. ОС должна иметь средства для выполнения прикладных программ, написанных для других операционных систем. Кроме того, пользовательский интерфейс должен быть совместим с существующими системами и стандартами. (Необходимо разделять вопросы двоичной совместимости и совместимости на уровне исходных текстов приложений. Двоичная совместимость достигается в том случае, когда можно взять исполняемую программу и запустить ее на выполнение на другой ОС)
Безопасность. ОС должна обладать средствами защиты ресурсов одних пользователей от других.
(уровни безопвсности от а до D:А-высокий уровень,D-низкий)
Производительность. Система должна обладать настолько хорошим быстродействием и временем реакции, насколько это позволяет аппаратная платформа.
4. Архитектура ОС.
Принцип модульности
Модуль – функционально законченный элемент системы, отвечающий требованиям межмодульного интерфейса. Из определения следует, что один модуль можно заменить на другой. Способы обособления отдельных частей ОС могут различаться, но чаще всего разделение происходит по функциональному принципу.
Особенно важное значение при построении ОС имеют модули, позволяющие более эффективно использовать ресурсы вычислительной системы:
- привилегированные;
- повторно входимые;
- реентерабельные.
Принцип модульности отражает технологические и эксплуатационные свойства ОС
Принцип функциональной избирательности
В ОС выделяет наиболее важные модули, которые объединяются в ядро ОС. Эти программы всегда находятся в ОП и являются резедентными. А другие транзитными. При формировании состава ядра следует учитывать два противоречивых требования:
- в состав ядра должны войти наиболее часто используемые системные модули;
- количество модулей должно быть таковым, чтобы объем памяти, занимаемый ядром, не был слишком большим.
Принцип генерируемости ОС
Этот принцип определяет такой способ представления ОС, который позволяет ее настраивать на конкретную конфигурацию ЭВМ.
Принцип функциональной избыточности
Этот принцип обеспечивает возможность выполнения одной и той же операции различными способами.
Принцип по умолчанию
Для упрощения генерации в ОС в системе вводятся некоторые константы, параметры, характеристики значения которых заданы заранее. И если оператор забыл настроить, то они возьмутся по умолчанию.
Принцип перемещаемости
Представляет построение модуля ОС исполнение которых не зависит от места расположения ОП, а настройка адресов ОП осуществ-ся автоматич при загрузке модуля.
Принцип защиты
Определяет необходимое создание средств ограждающих программы и данные от искожения другими программными пользователями. Защита программ должна гарантировать как при их использовании так и врежиме хранения.
5. Интерфейс прикладного программирования. Системные вызовы.
Все приложения "общаются" с операционной системой через интерфейс, базирующийся на вызовах. это весьма обширный набор системных функций, которые предоставляют доступ к функциональным возможностям операционной системы. В совокупности эти функции обозначаются термином Application Programming Interface (интерфейс прикладного программирования) или сокращенно — API. API содержит несколько сотен функций, которые могут использовать ваши прикладные программы, чтобы выполнять все необходимые операции для успешного взаимодействия с операционной системой.
Существует две основных разновидности API, получивших широкое распространение: Win16 и Win32. Win16 — более старая 16-разрядная версия API, которая используется операционной системой Windows 3.1. Win32 — современная 32-разрядная версия
В Win32 API существует более 1000 вызовов. Такое количество связано и с тем, что графический интерфейс пользователя UNIX запускается в пользовательском режиме, а в Windows встроен в ядро. Поэтому Win32 API имеет много вызовов для управления окнами, текстом, шрифтами т.д.
Рассмотрим вызовы Win32 API
CreatProcess - создание нового процесса
ExitProcess - завершение процесса
CreatFile - открывает файл
CloseHandle - закрывает файл
ReadFile - читает данные из файла в буфер
WriteFile - пишет данные из буфера в файл
CreatDirectory - создает новый каталог
RemoveDirectory - удаляет каталог
SetCurrentDirectory - изменяет рабочий каталог
6. Режимы функционирования операционных систем.
Однопрограммный режим.
Режим работы компьютера определяется порядком прохождения задач через компьютер, и в первую очередь количеством задач, параллельно обрабатываемых на компьютере. Режим работы компьютера самым непосредственным образом влияет на производительность вычислительных машин и систем, их эффективности и надежности. В современных ЭВМ, обладающих развитой аппаратно-программной системой управления, возможно использование нескольких режимов работы, основными из которых являются однопрограммный и мультипрограммный режимы.
В однопрограммном режиме единственная программа загружается в основную память компьютера, после чего она выполняется до конца или до получения команды на прекращение счета. В однопрограммном режиме в любой момент времени работает только одно устройство компьютера – процессор или периферийное оборудование, а остальные простаивают в ожидании окончания предшествующего этапа обработки.Таким образом, однопрограммный режим характеризуется низким коэффициентом загрузки оборудования. В результате этого производительность компьютера оказывается невысокой и медленно растет с увеличение быстродействия процесса. Поэтому однопрограммный режим работы приводит к большим потерям эффективности из-за недоиспользования устройств, входящих в вычислительный комплекс.
7. Режимы функционирования операционных систем.
Мультипрограммный режим.
Мультипрограммный режим - это режим программного обеспечения и аппаратуры, обеспечивающий одновременную работу нескольких программ. Необходимое условие для организации мультипрограммного режима: схема мультипрограммного режима не реализуется, если обмен информацией идет синхронно. Цель применения мультипрограммного режима – повысить эффективность использования компьютера за счет параллельной работы его основных устройств.При мультипрограммной обработке любая программа последовательно находится в четырех состояниях: ожидание счета, счет, ожидание ввода-вывода, ввод-вывод.
8. Основные принципы построения ОС.
Каждая ОС является сложной уникальной программной системой. При этом в основу разработки каждой из них положены некоторые общие принципы:
1.Частотный принцип. Основан на выделении в алгоритмах программ действий, и в обрабатываемых массивах - данных, приблизительно равных по частоте использования.
2.Принцип модульности. Под модулем в общем случае понимают функциональный элемент системы, который: оформлен по определенным правилам системы; имеет средства сопряжения с подобными элементами данной или другой системы. По определению модуль предполагает легкий способ его замены на другой.
Если модуль С нереентерабельный, то такая ситуация недопустима, так как состояние внутренних "рабочих" переменных в модуле С соответствуют выполнению обращения от программы А на момент прерывания t1. По этому при повторном вхождении в незавершенный модуль С в момент t2
текущее состояние рабочих ячеек будет потеряно.
При переходе в исходное состояние модуля С в начале своей программы, модуль С нормально завершит в момент t3 отработку запроса от программы В.
После завершения самой программы В в момент t4 и восстановления модуля С, прерванного ранее в момент t1, результаты полученные модулем С будут искажены или неверны.
б)-При переходе модуля С в исходное состояние в конце своей программы, отработка им запроса от программы В также будет искажена или невозможна, так как модуль С в момент t2 незавершен и не переведен в исходное состояние.
Реентерабельность, то есть обеспечение повторной входимости в модули достигается различными способами, в основе которых лежит отделение кода (команд программы) от данных (внутренних переменных).При каждом обращении к модулю ему предоставляется отдельная область под внутренние переменные. Разработка реентерабельных программ требует в общем случае применения специальных приемов программирования.
3.Принцип функциональной избирательности - является логическим продолжением двух предыдущих принципов. В ОС выделяется часть наиболее важных модулей, которые наиболее часто используются и является основой системы. Эту часть системы называют ядром ОС.
Программы, входящие в состав ядра, постоянно находятся в оперативной памяти и доступны для использования в любой момент. Такие программы называют ОЗУ - резидентными.
Остальные системные программы, постоянно хранящиеся в памяти на магнитных дисках, называют транзитными. Они загружаются в оперативную память только при необходимости их выполнения и при нехватке оперативной памяти могут перекрывать друг друга.
4.Принцип генерируемости. Определяет такой способ исходного представления ОС, который позволял бы настраивать ее под конкретную конфигурацию ЭВМ и под конкретный набор прикладных программ, управлением выполнения которых она (ОС) должна заниматься.
5. Принцип функциональной избыточности. - обеспечивает возможность выполнения одной и той же функциональной операции различными средствами.
ОС.
6. Принцип по умолчанию. Применяется для облегчения как генерации ОС,так и работы с готовой системой. Принцип основан на хранении в системе некоторых констант, определяющих параметры и характеристики ОС
7.Принцип перемещаемости. - предусматривает построение модулей ОС, исполнение которых не зависит от места расположения в ОЗУ. Настройка программы модуля на конкретное место в оперативной памяти заключается в определении фактических адресов, используемых в адресной частях команд модуля.
8.Принцип защиты. - определяет необходимость создания средств, ограждающих программы и данные пользователей от искажения, которые могут возникнуть из-за нежелательного влияния их друг на друга, а также пользователей на ОС и наоборот. Защита программ должна гарантироваться как при их исполнении, так и в режиме хранения.
9. Основные концепции ОС.
ПРОЦЕСС - это некоторая абстракция под которой понимается определенная деятельность, связанная с выполнением программы на процессоре.
Таким образом, процесс не эквивалентен программе, а также не тоже самое, что процессор, - то пара (процессор, программа).
Для процесса (центральный процессор, программа) чаще всего различают следующие состояния:
порождение - подготовка условий для первого исполнения на на процессоре;
активное состояние или состояние СЧЕТ - исполнение программы на процессоре;
ожидание - программа не исполняется на процессоре по причине занятости какого-либо требуемого ресурса;
готовность - программа не исполняется, но для исполнения предоставлены все необходимые на данный момент времени ресурсы, кроме центрального процессора;
окончание - нормальное или аварийное завершение исполнения программы, после которого процессор и другие ресурсы ей не предоставляются.
Процесс находится в каждом из своих допустимых состояний в течение некоторого времени, после чего переходит в какое-либо другое допустимое состояние. Состав допустимых состояний, а также допустимые переходы из состояния в состояние могут быть заданы в форме графа существования процесса.
ПРИМЕР.
10. Контекст и дескриптор процесса.
Контекст и дескриптор процесса
На протяжении существования процесса его выполнение может быть многократно прервано и продолжено. Для того, чтобы возобновить выполнение процесса, необходимо восстановить состояние его операционной среды. Состояние операционной среды отображается состоянием регистров и программного счетчика, режимом работы процессора, указателями на открытые файлы, информацией о незавершенных операциях ввода-вывода, кодами ошибок выполняемых данным процессом системных вызовов и т.д. Эта информация называется контекстом процесса.
Кроме этого, операционной системе для реализации планирования процессов требуется дополнительная информация: идентификатор процесса, состояние процесса, данные о степени привилегированности процесса, место нахождения кодового сегмента и другая информация. В некоторых ОС (например, в ОС UNIX) информацию такого рода, используемую ОС для планирования процессов, называют дескриптором процесса.
Дескриптор процесса по сравнению с контекстом содержит более оперативную информацию, которая должна быть легко доступна подсистеме планирования процессов. Контекст процесса содержит менее актуальную информацию и используется операционной системой только после того, как принято решение о возобновлении прерванного процесса.
Очереди процессов представляют собой дескрипторы отдельных процессов, объединенные в списки. Таким образом, каждый дескриптор, кроме всего прочего, содержит по крайней мере один указатель на другой дескриптор, соседствующий с ним в очереди. Такая организация очередей позволяет легко их переупорядочивать, включать и исключать процессы, переводить процессы из одного состояния в другое.
Программный код только тогда начнет выполняться, когда для него операционной системой будет создан процесс. Создать процесс - это значит: создать информационные структуры, описывающие данный процесс, то есть его дескриптор и контекст;
включить дескриптор нового процесса в очередь готовых процессов;
загрузить кодовый сегмент процесса в оперативную память или в область свопинга.
11. Потоки (нити).
Каждому процессу соответствует адресное пространство и одиночный поток исполняемых команд.
Сравнение многопоточной системы с однопоточной
Модель потока
С каждым потоком связывается:
· Счетчик выполнения команд
· Регистры для текущих переменных
· Стек
· Состояние
Потоки делят между собой элементы своего процесса:
· Адресное пространство
· Глобальные переменные
· Открытые файлы
· Таймеры
· Семафоры
· Статистическую информацию.
Преимущества использования потоков
1. Упрощение программы в некоторых случаях, за счет использования общего адресного пространства.
2. Быстрота создания потока, по сравнению с процессом, примерно в 100 раз.
3. Повышение производительности самой программы, т.к. есть возможность одновременно выполнять вычисления на процессоре и операцию ввода/вывода. Пример: текстовый редактор с тремя потоками может одновременно взаимодействовать с пользователем, форматировать текст и записывать на диск резервную копию.
12. Алгоритмы планирования процессов.
Важнейшей частью операционной системы, непосредственно влияющей на функционирование вычислительной машины, является подсистема управления процессами. Процесс (или по-другому, задача) - абстракция, описывающая выполняющуюся программу. Для операционной системы процесс представляет собой единицу работы, заявку на потребление системных ресурсов. Подсистема управления процессами планирует выполнение процессов, то есть распределяет процессорное время между несколькими одновременно существующими в системе процессами, а также занимается созданием и уничтожением процессов, обеспечивает процессы необходимыми системными ресурсами, поддерживает взаимодействие между процессами.
Состояние процессов
В многозадачной (многопроцессной) системе процесс может находиться в одном из трех основных состояний:
ВЫПОЛНЕНИЕ - активное состояние процесса, во время которого процесс обладает всеми необходимыми ресурсами и непосредственно выполняется процессором;
ОЖИДАНИЕ - пассивное состояние процесса, процесс заблокирован, он не может выполняться по своим внутренним причинам, он ждет осуществления некоторого события, например, завершения операции ввода-вывода, получения сообщения от другого процесса, освобождения какого-либо необходимого ему ресурса;
ГОТОВНОСТЬ - также пассивное состояние процесса, но в этом случае процесс заблокирован в связи с внешними по отношению к нему обстоятельствами: процесс имеет все требуемые для него ресурсы, он готов выполняться, однако процессор занят выполнением другого процесса.
В ходе жизненного цикла каждый процесс переходит из одного состояния в другое в соответствии с алгоритмом планирования процессов, реализуемым в данной операционной системе. Типичный граф состояний процесса показан на рисунке 2.1.
В состоянии ВЫПОЛНЕНИЕ в однопроцессорной системе может находиться только один процесс, а в каждом из состояний ОЖИДАНИЕ и ГОТОВНОСТЬ - несколько процессов, эти процессы образуют очереди соответственно ожидающих и готовых процессов. Жизненный цикл процесса начинается с состояния ГОТОВНОСТЬ, когда процесс готов к выполнению и ждет своей очереди. При активизации процесс переходит в состояние ВЫПОЛНЕНИЕ и находится в нем до тех пор, пока либо он сам освободит процессор, перейдя в состояние ОЖИДАНИЯ какого-нибудь события, либо будет насильно "вытеснен" из процессора, например, вследствие исчерпания отведенного данному процессу кванта процессорного времени. В последнем случае процесс возвращается в состояние ГОТОВНОСТЬ. В это же состояние процесс переходит из состояния ОЖИДАНИЕ, после того, как ожидаемое событие произойдет.
13. Ресурсы. Их свойства и классификация.
Таким образом РЕСУРСОМ - является средство вычислительной системы, которое может быть выделено процессу на определенный интервал времени.
Свойства и классификация ресурсов.
Под физическим понимают ресурс, который реально существует и при распределении его среди пользователей обладает всеми присущими ему физическими характеристиками.
Под виртуальным ресурсом понимают некоторую программно-аппаратную модель физического ресурса. Используя один физический ресурс можно построить на его основе несколько виртуальных.
Физический ресурс, который допускает "виртуализацию", то есть моделирование своих свойств, называется эластичным. Неэластичным или жестким ресурсом называют физический ресурс, который по своим внутренним свойствам не допускает "виртуализацию"
Активный ресурс способен выполнять действия по отношению к другим ресурсам (или даже в отношении самого себя),которые в результате выполнения этих действий, в общем случае, изменяются.(пример: центральный процессор) Пассивный ресурс такими свойствами не обладает. Над таким ресурсом можно производить допустимые для него действия, приводящие к изменению его состояния или характеристик, но сам он не способен выполнять подобных действий с другими ресурсами.(пример: оперативная память)
Если ресурс существует до момента порождения процесса и доступен для использования на всем протяжении интервала существования процесса, то такой ресурс называют постоянным для данного процесса.(например: файл со справочными данными, изменение содержимого которого для нашего процесса запрещено).