1625914891-62d0978a4faa71912bcf30efde0ff3e3 (843827), страница 2
Текст из файла (страница 2)
Наиболее важными являются: программныйсчетчик, регистр команд и регистр содержащий информацию осостоянии программы.Программы хранятся в виде последовательности машинныхкоманд, которые должен выполнять центральный процессор.Каждая команда состоит из поля операции и полей операндов, тоесть тех данных, над которыми выполняется данная операция.Весь набор машинных команд называется машинным языком.Выполнение программы осуществляется следующим образом.Машинная команда, на которую указывает программный счетчик,считывается из памяти и копируется в регистр команд.
Здесь онадекодируется, после чего исполняется. После выполнениякоманды программный счетчик указывает на следующуюкоманду. Эти действия, называемые машинным циклом, затемповторяются.Инструкции ЦПТипичными командами языка ассемблера являются: Команды пересылания данных (mov, lea и т.
д.) Арифметичекие команды (add, sub, imul и т. д.) Логические и побитовые операции (or, and, xor, shr и т. д.) Команды управления ходом выполнения программы (jmp, loop,ret и т. д.) Команды вызова программных прерываний (иногда относят ккомандам управления): int, into Команды ввода/вывода в порт (in, out)Команды процессора иязык Ассемблер; Программа «Hello, World!» для процессора архитектуры x86:BB 11 01 B9 0D 00 B4 0E 8A 07 43 CD 10 E2 F9CD 20 48 65 6C 6C 6F 2C 20 57 6F 72 6C 64 21; Программа «Hello, World!» для Intel Assembler (MS DOS):mov ax,csmov ds,axmov ah,9mov dx,offset Helloint 21hxor ax,axint 21hHello:db "Hello World!",13,10,"$"Определение ОСОперационная система - программа или совокупностьпрограмм, управляющая основными действиями ЭВМ,ее периферийными устройствами и обеспечивающаязапуск всех остальных программ, а такжевзаимодействие с оператором.В частности, ОС выполняет: управление памятью,вводом-выводом, файловой системой,взаимодействием процессов; диспетчеризациюпроцессов; защиту и учет использования ресурсов идр.
Часто она включает в себя значительную частьспециализированных сервисных или вспомогательныхпрограмм.ОС: основные функцииПросмотрев этапы развития вычислительных систем, мыможем выделить шесть основных функций, которыевыполняли классические операционные системы впроцессе эволюции:Планирование заданий и использования процессора.Управление памятью.Управление файловой системой.Управление вводом-выводом.Обеспечение безопасностиОбеспечение программ средствами коммуникации исинхронизации.9Концепции ОС: системныевызовыВ любой операционной системе поддерживается механизм,который позволяет пользовательским программамобращаться к услугам ядра ОС.Системные вызовы (system calls) – это интерфейс междуоперационной системой и пользовательскойпрограммой.
Они создают, удаляют и используютразличные объекты, главные из которых – процессы ифайлы. Пользовательская программа запрашиваетсервис у операционной системы, осуществляясистемный вызов.Основное отличие состоит в том, что при системномвызове задача переходит в привилегированный режимили режим ядра (kernel mode). Поэтому системныевызовы иногда еще называют программнымипрерываниями, в отличие от аппаратных прерываний,которые чаще называют просто прерываниями.Концепции ОС: прерыванияПрерывание (hardware interrupt) – это событие, генерируемоевнешним (по отношению к процессору) устройством. Посредствомаппаратных прерываний аппаратура либо информируетцентральный процессор о том, что произошло какое-либо событие,требующее немедленной реакции (например, пользователь нажалклавишу), либо сообщает о завершении асинхронной операцииввода-вывода (например, закончено чтение данных с диска восновную память).Важный тип аппаратных прерываний – прерывания таймера, которыегенерируются периодически через фиксированный промежутоквремени.
Прерывания таймера используются операционнойсистемой при планировании процессов.Аппаратное прерывание – это асинхронное событие, то есть оновозникает вне зависимости от того, какой код исполняетсяпроцессором в данный момент. Обработка аппаратного прерыванияне должна учитывать, какой процесс является текущим.Концепции ОС: исключительныеситуацииИсключительная ситуация (exception) – событие, возникающее врезультате попытки выполнения программой команды, которая покаким-то причинам не может быть выполнена до конца.Примерами таких команд могут быть попытки доступа к ресурсу приотсутствии достаточных привилегий или обращения к отсутствующейстранице памяти. Исключительные ситуации, как и системныевызовы, являются синхронными событиями, возникающими вконтексте текущей задачи.
Исключительные ситуации можноразделить на исправимые и неисправимые.После устранения причины исправимой исключительной ситуациипрограмма может выполняться дальше. Возникновение в процессеработы операционной системы исправимых исключительныхситуаций считается нормальным явлением.Неисправимые исключительные ситуации чаще всего возникают врезультате ошибок в программах (например, деление на ноль).Обычно в таких случаях операционная система реагируетзавершением программы, вызвавшей исключительную ситуацию.Процессы: определениеПроцесс (от лат. processus — продвижение), —последовательная смена состояний объекта вовремени.Процесс — абстрактное понятие, относящееся кпрограмме.
Часто процессом называютпрограмму и все её элементы: адресноепространство, глобальные переменные ,регистры, стек, счетчик команд, состояние,открытые файлы, дочерние процессы и т. д.Стандарт ISO 9000:2000 Definitions определяетпроцесс как совокупность взаимосвязанных ивзаимодействующих действий, преобразующихвходы в выходы.Процессы: простейшая диаграммасостоянийПроцессы: диаграммасостоянийПроцессы: диаграммасостоянийПроцессы: Process Control BlockДля того чтобы операционная система могла выполнятьоперации над процессами, каждый процесс представляется вней некоторой структурой данных. Эта структура содержитинформацию, специфическую для данного процесса:• состояние, в котором находится процесс;• программный счетчик процесса;• данные, необходимые для планирования использованияпроцессора и управления памятью (приоритет процесса,размер и расположение адресного пространства и т.
д.);• учетные данные (идентификационный номер процесса,какой пользователь инициировал его работу, общее времяиспользования процессора данным процессом и т. д.);• сведения об устройствах ввода-вывода, связанных спроцессом (например, какие устройства закреплены запроцессом, таблицу открытых файлов).Процессы: Process Control BlockДля любого процесса, находящегося в вычислительнойсистеме, вся информация, необходимая для совершенияопераций над ним, хранится в PCB (блоком управленияпроцессом) и доступна операционной системе.Блок управления процессом является моделью процессадля операционной системы.
Любая операция, производимаяоперационной системой над процессом, вызываетопределенные изменения в PCB. В рамках принятой моделисостояний процессов содержимое PCB между операциямиостается постоянным.Процессы: операции надпроцессамиПроцесс не может перейти из одного состояния в другоесамостоятельно. Изменением состояния процессов занимаетсяоперационная система, совершая операции над ними.Количество таких операций в нашей модели пока совпадает сколичеством стрелок на диаграмме состояний. Удобнообъединить их в три пары:• создание процесса – завершение процесса;• приостановка процесса – запуск процесса;• блокирование процесса – разблокирование процесса.В дальнейшем, когда мы будем говорить об алгоритмахпланирования, в нашей модели появится еще одна операция,не имеющая парной: изменение приоритета процесса.Процессы: переключениеконтекстаПланирование процессовПланирование использования процессора впервые возникаетв мультипрограммных вычислительных системах, где всостоянии готовность могут одновременно находитьсянесколько процессов.Планирование процессов - процедура выбора одногопроцесса, который получит процессор в свое распоряжение,т.
е. будет переведен в состояние исполнение.Для планирования процессов можно предложить многоразличных алгоритмов. Выбор конкретного алгоритмаопределяется классом задач, решаемых вычислительнойсистемой, и целями, которых мы хотим достичь, используяпланирование.Цели планированияСправедливость – гарантировать каждому заданию или процессуопределенную часть времени использования процессора вкомпьютерной системе.Эффективность – постараться занять процессор на все 100% рабочеговремени, не позволяя ему простаивать в ожидании процессов, готовыхк исполнению. В реальных вычислительных системах загрузкапроцессора колеблется от 40 до 90%.Сокращение полного времени выполнения (turnaround time) –обеспечить минимальное время между стартом процесса илипостановкой задания в очередь для загрузки и его завершением.Сокращение времени ожидания (waiting time) – сократить время,которое проводят процессы в состоянии готовность и задания вочереди для загрузки.Сокращение времени отклика (response time) – минимизироватьвремя, которое требуется процессу в интерактивных системах дляответа на запрос пользователя.Свойства алгоритмовпланированияПредсказуемостьМинимальные накладные расходыРавномерная загрузка ресурсовМасштабируемостьПараметры планированияДля осуществления поставленных целей разумныеалгоритмы планирования должны опираться на какиелибо характеристики процессов в системе, заданий вочереди на загрузку, состояния самой вычислительнойсистемы, иными словами, на параметры планирования.Все параметры планирования можно разбить на двебольшие группы: статические параметры и динамическиепараметры.К статическим параметрам вычислительной системы можноотнести предельные значения ее ресурсов (размероперативной памяти, максимальное количество памяти надиске для осуществления свопинга, количествоподключенных устройств ввода-вывода и т.
п.).Динамические параметры системы описывают количествосвободных ресурсов на данный момент.Параметры планированияДля краткосрочного планирования нампонадобится ввести еще двадинамических параметра. Деятельностьлюбого процесса можно представитькак последовательность цикловиспользования процессора и ожиданиязавершения операций ввода-вывода.CPU burst - промежуток временинепрерывного использованияпроцессора.I/O burst - промежуток временинепрерывного ожидания ввода-вывода.Планирование: прогноз CPUburstT(n+1)=a*τ(n)+(1-a)*T(n),где 0≤a≤1 – коэффициент,τ(n) – реальное времяCPU burst на предыдущемшаге.Вытесняющее и невытесняющеепланированиеЕсли в операционной системе планированиеосуществляется только в вынужденныхситуациях, говорят, что имеет местоневытесняющее (nonpreemptive)планирование.Если планировщик принимает и вынужденные, иневынужденные решения, говорят овытесняющем (preemptive) планировании.Термин "вытесняющее планирование" возникпотому, что исполняющийся процесс помимосвоей воли может быть вытеснен из состоянияисполнение другим процессом.Алгоритмы планирования:First-Come, First-Served (FCFS)Простейшим алгоритмом планирования являетсяалгоритм, который принято обозначатьаббревиатурой FCFS по первым буквам егоанглийского названия – First-Come, First-Served(первым пришел, первым обслужен).Такой алгоритм выбора процесса осуществляетневытесняющее планирование.