АРХИТЕКТУРА ОПЕРАЦИОННЫХ СИСТЕМ




УДК

ББК

Авторский знак

 

 

Операционные системы, среды и оболочки: учебно-методический комплекс (для студентов, обучающихся по специальности 080801 «Прикладная информатика в экономике») / Горно-Алтайск: РИО ГАГУ, 2009. - 73 с.

 

Составитель:

Соловьев С.П., к.ф.-м.н., доцент

 

Рецензенты:

Внешний рецензент: Ф.Я. Ветухновский, к.ф.-м.н.

Внутренний рецензент: Фотиев Н.В., к.т.н., доцент

 

 

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

 

ОГЛАВЛЕНИЕ

  Стр.
1. Цель и задачи курса  
1.1. Цель и задачи дисциплины  
1.1. Требования к уровню освоения содержания дисциплины  
2. Технологическая карта курса  
3. Курс лекций  
4. Глоссарий по курсу лекций  
5. Содержание курса  
6. Перечень вопросов к коллоквиуму  
7. Лабораторные работы  
8. Литература  
9. Задания для самостоятельной работы  
10.Примерная тематика рефератов  
11.Примерный перечень вопросов к зачету  
12.Вопросы для тестов  

 

 

 

Цель и задачи курса

Цель и задачи дисциплины

Курс «Операционные системы, среды и оболочки» является одним из базовых для профилирующих дисциплин для студентов, обучающихся по специальности 080801 «Прикладная информатика в экономике».

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

 

Требования к уровню освоения содержания дисциплины

 

В результате изучения дисциплины студенты должны:

- знать назначение, функции, состав и основные принципы работы операционных систем;

- уметь работать в современных операционных системах, локальных и глобальных вычислительных сетях;

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

 

Технологическая карта курса

№ п/п Название темы Лекции (час) Лабораторные (час) Практические (час) Самостоятельная работа студента Итого по теме (час)
3 семестр
  Введение в операционные системы          
  Определение, назначение, состав и функции операционных систем          
  Классификация операционных систем.          
  Инсталляция и конфигурирование операционной системы          
  Операционные оболочки.          
  Локальные и глобальные сети. Сетевые операционные системы. Компоненты сети          
  Средства защиты информации в сети. Архивация файлов.          
  Элементы системной интеграции. Тенденции и перспективы развития распределенных операционных сред.          
  Программные средства человеко-машинного интерфейса: мультимедиа и гипермедиа; аудио и сенсорное сопровождение.          
Форма итогового контроля Зачет  
  Итого:          

КУРС ЛЕКЦИЙ

1. ОБЩИЕ ОСНОВЫОПЕРАЦИОННЫХ СИСТЕМ

 

1. Назначение и функции ОС

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

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

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

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

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

В 1965–1975 гг. произошел переход от отдельных полупроводниковых элементов к интегральным микросхемам, что открыло путь к появлению следующего типа компьютеров. Большие функциональные возможности интегральных схем сделали возможным осуществление на практике сложных компьютерных архитектур, таких, например, как IBM/360. В этот период были реализованы практически все основные механизмы, присущие современным ОС: мультипрограммирование, мультипроцессирование, поддержка многотерминального многопользовательского режима, виртуальная память, файловые системы, разграничение доступа и сетевая работа. В эти годы огромное значение приобретает системное программирование, которое из направления прикладной математики превращается в отрасль индустрии, оказывающую практическое влияние на деятельность миллионов людей.

Революционным событием данного этапа явилась промышленная реализация мультипрограммирования – способа организации вычислительного процесса, при котором в памяти компьютера находилось одновременно несколько попеременно выполняющихся программ. Такое усовершенствование значительно улучшило эффективность вычислительной системы – компьютер использовался теперь постоянно. К этому времени произошло серьезное изменение в распределении функций между аппаратными и программными средствами компьютера. ОС становились неотъемлемыми элементами компьютеров, играя роль “продолжения” аппаратуры. В первых вычислительных машинах программист, напрямую взаимодействуя с аппаратурой, мог осуществить загрузку программных кодов, а затем вручную запустить программу на выполнение. В компьютерах 60-х годов большую часть действий по организации вычислительного процесса взяла на себя операционная система. В большинстве же современных компьютеров вообще не предусмотрено даже теоретической возможности выполнения какой-либо вычислительной работы без участия ОС. После включения питания автоматически проводится поиск, загрузка и запуск ОС, а в случае ее отсутствия компьютер просто прекращает свою работу. Реализация мультипрограммирования потребовала внесения очень важных изменений в аппаратуру компьютера, направленных непосредственно на поддержку нового способа организации вычислительного процесса. При разделении ресурсов компьютера между программами выполнялись задачи по обеспечению быстрого переключения процессора с одной программы на другую, а также надежной защиты кодов и данных одной программы от непреднамеренной или преднамеренной порчи другой программой. В процессорах появился привилегированный и пользовательский режимы работы, специальные регистры для быстрого переключения с одной программы на другую, средства защиты областей памяти, а также развитая система прерываний. Аппаратная поддержка ОС стала с тех пор неотъемлемым свойством практически любых компьютерных систем, включая персональные компьютеры.

Еще одной важной тенденцией этого периода является создание семейств программно-совместимых машин и ОС для них. Примерами таких семейств, построенных на интегральных микросхемах, являются серии машин IBM/360 и IBM/370, их советские аналоги – машины серии ЕС, PDP-11 и компьютеры отечественного производства СМ-3, СМ-4 и СМ-1420. Вскоре идея программно-совместимых машин стала общепризнанной. Программная совместимость требовала и совместимости ОС, подразумевающей возможность работы на больших и на малых вычислительных системах с разнообразной периферией в коммерческих и научно-исследователь­ских областях. ОС, построенные с намерением удовлетворить всем этим крайне противоречивым требованиям, оказались чрезвычайно сложными. Они состояли из миллионов ассемблерных строк, написанных тысячами программистов, и содержали сотни тысяч ошибок, вызывавших нескончаемый поток исправлений. ОС этого поколения были очень дорогими – например, разработка OS/360, объем кода которой составлял всего (по современным меркам) 8 Мбайт, стоила компании IBM 80 миллионов долларов. Следует заметить, что, несмотря на множество проблем и замечаний, OS/360 и другие, подобные ей, ОС удовлетворяли большинству требований потребителей. За это десятилетие был сделан огромный шаг вперед и заложен прочный фундамент для создания современных ОС.

В начале 70-х годов появились первые сетевые ОС, которые в отличие от многотерминальных ОС позволяли не только рассредоточить пользователей, но и организовать распределенное хранение и обработку данных между несколькими компьютерами, связанными электрическими сетями. Программные модули, реализующие сетевые функции, появлялись в ОС постепенно, по мере развития сетевых технологий, аппаратной базы компьютеров и возникновения новых задач, требующих сетевой обработки данных. И хотя теоретические работы по созданию концепций сетевого межкомпьютерного взаимодействия велись почти с самого появления вычислительных машин, значимые практические результаты по объединению компьютеров в сеть были получены в конце 60-х, когда с помощью глобальных связей и техники коммутации пакетов удалось реализовать взаимодействие машин класса мэйнфрэймов1 и суперкомпьютеров. Эти дорогостоящие компьютеры часто хранили уникальные данные и программы, доступ к которым необходимо было обеспечить широкому кругу пользователей, находившихся в различных городах на значительном удалении от вычислительных центров. В 1969 году Министерство обороны США инициировало работы по объединению суперкомпьютеров оборонных и научно-исследовательских центров в единую сеть ARPANET, в которую вошли компьютеры разных типов, работавшие под управлением различных ОС с добавленными модулями, реализующими коммуникационные протоколы, общие для всех компьютеров в сети. Эта сеть явилась отправной точкой для создания самой известной теперь глобальной сети – Интернет (Internet).

К середине 70-х годов, наряду с мэйнфрэймами, широкое распространение получили такие мини-компьютеры, как PDP-11, NOVA, HP. Мини-компьютеры первыми использовали преимущества больших интегральных схем, позволившие реализовать достаточно мощные функциональные возможности при сравнительно невысокой стоимости. Архитектура мини-компьютеров была значительно упрощена по сравнению с мэйнфрэймами, что, несомненно, нашло свое отражение и в их ОС. Многие функции мультипрограммных многопользовательских ОС мэйнфрэймов были усечены, учитывая ограниченность ресурсов мини-компьютеров. ОС мини-компьютеров часто стали делать специализированными, например только для управления в реальном времени (ОС RT-11 для мини-компьютеров PDP-11) или только для поддержки режима разделения времени (RSX-11M для тех же компьютеров). Эти ОС не всегда были многопользовательскими, что во многих случаях оправдывалось достаточно низкой стоимостью мини-компьютеров по сравнению с мэйнфрэймами.

Важным событием в истории мини-компьютеров и вообще в истории ОС явилось создание ОС UNIX. Первоначальна она предназначалась для поддержания режима разделения времени в мини-компьютере PDP-11. С середины 70-х годов началось массовое использование ОС UNIX. К этому времени программный код для UNIX был на 90% написан на языке высокого уровня C, а широкое распространение эффективных C-компиляторов со временем сделало UNIX уникальной в своем роде ОС, обладающей возможностью сравнительно легкого переноса на разные типы компьютеров. Поскольку эта ОС поставлялась вместе с исходными текстами, она стала первой открытой ОС, которую могли совершенствовать или изменять по своему усмотрению обычные пользователи-программисты. Хотя UNIX была первоначально разработана для мини-компьютеров, гибкость, элегантность, мощные функциональные возможности и открытость позволили ей занять достойные позиции во всех классах компьютеров: суперкомпьютерах, мэйнфрэймах, мини-компьютерах, серверах и рабочих станциях, персональных компьютерах.

В 80-е годы был разработан протокол2 TCP/IP, признанный в 1983г. Министерством обороны США военным стандартом и реализованный для ОС BSD UNIX. Все это десятилетие отмечалось постоянным появлением новых, все более совершенных версий ОС UNIX. Среди них были и фирменные версии UNIX: SunOS, HP-UX, Irix, AIX, и многие другие, к которым производители компьютеров адаптировали код ядра и системных утилит для своей аппаратуры. Разнообразие версий породило проблему их совместимости, периодически решаемую различными организациями. В результате этой работы появились стандарты POSIX и XPG, определяющие интерфейсы ОС для приложений, а специальное подразделение компании AT&T выпустило несколько версий UNIX System III и UNIX System V, предназначенных для консолидации разработчиков на уровне кода ядра.

Начало 80-х годов также ознаменовалось важным событием в истории ОС – появились персональные компьютеры. Они стали широко использоваться неспециалистами, что потребовало разработки так называемого дружественного программного обеспечения. Предоставление этих дружественных функций стало, естественно, прямой обязанностью ОС. Персональные компьютеры вследствие низкой стоимости получили широкое распространение и послужили причиной бурного развития локальных вычислительных сетей. В результате поддержка сетевых функций стала для ОС персональных компьютеров необходимым условием. Однако, несмотря на это, и дружественный интерфейс, и сетевые функции появились у персональных компьютеров далеко не сразу. Первая версия наиболее популярной ОС раннего этапа развития персональных компьютеров – MS-DOS компании Microsoft – была лишена этих функциональных возможностей. Она разрабатывалась как однопрограммная однопользовательская ОС с интерфейсом командной строки, способная стартовать с дискеты. Основными задачами для нее были управление файлами, расположенными на гибких и жестких дисках, а также поочередный запуск программ. Однако разработчики первых персональных компьютеров считали, что при индивидуальном пользовании нет смысла в мультипрограммировании, поэтому не были предусмотрены механизмы поддержки мультипрограммных систем, и процессор Intel 8088 не поддерживал привилегированного режима. Сетевые функции также реализовывались в основном сетевыми оболочками, работавшими поверх ОС.

В 1987 году в результате совместных усилий Microsoft и IBM появилась на свет первая многозадачная ОС для персональных компьютеров OS/2 с процессором Intel 80286, в полной мере использующая возможности защищенного режима. Эта система была хорошо продумана и поддерживала вытесняющую многозадачность, виртуальную память, графический пользовательский интерфейс (правда, не с первой версии), а также виртуальную машину для выполнения DOS-приложений. В персональных компьютерах применялись не только специально разработанные ОС, подобные MS-DOS, NetWare и OS/2, но к ним адаптировались и уже существующие ОС. Появление процессоров Intel 80286 и 80386 с поддержкой мультипрограммирования позволило перенести на платформу персональных компьютеров ОС UNIX. Наиболее известной системой этого типа стала версия UNIX компании Santa Cruz Operation (SCO UNIX).

В 90-е годы практически все ОС, занимающие заметное место на рынке, стали сетевыми. Сетевые функции сегодня являются неотъемлемой частью ОС и встраиваются в ее ядро. ОС получили средства для работы со всеми основными технологиями локальных (Ethernet, Fast Ethernet, Gigabit Ethernet, Token Ring, FDDI, ATM) и глобальных (X.25, frame relay, ISDN, ATM) сетей, а также средства для создания составных сетей (IP, IPX, AppleTalk, RIP, OSPF, NLSP). В ОС используется мультиплексирование нескольких стеков протоколов, за счет которого компьютеры могут поддерживать одновременную сетевую работу с различными серверами и клиентами. Появились специализированные ОС, предназначенные исключительно для выполнения коммуникационных задач. Например, сетевая ОС IOS компании Cisco Systems, работающая в маршрутизаторах, организует в мультипрограммном режиме выполнение набора программ, каждая из которых реализует один из коммуникационных протоколов.

Во второй половине 90-х годов все компании-производители ОС резко усилили поддержку своими системами средств работы с Интернетом. Кроме самого стека протоколов TCP/IP, в комплект поставки начали включать утилиты, реализующие такие популярные сервисы, как telnet, ftp, DNS и Web. Влияние Интернета проявилось и в том, что компьютер превратился из чисто вычислительного устройства в средство коммуникации с развитыми вычислительными возможностями.

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

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

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

В последние годы получила дальнейшее развитие тенденция увеличения удобства взаимодействия человека с компьютером. Эффективность работы пользователя становится основным фактором, определяющим результативность вычислительной системы в целом. Человек должен делать как можно меньше усилий на настройку параметров вычислительного процесса. Например, в системах пакетной обработки для мэйнфреймов каждый пользователь с помощью языка управления заданиями определял большое количество параметров, относящихся к организации вычислительных процессов в компьютере. Так, для системы OS/360 таких параметров насчитывалось более 40, среди которых были следующие: приоритет задания, требования к основной памяти, предельное время выполнения задания, перечень используемых устройств ввода-вывода и режимы их работы.

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

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

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

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

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

ОС выполняет две группы функций:

1) предоставление пользователю вместо реальной аппаратуры компьютера некой расширенной машины, с которой удобнее работать и которую легче программировать;

2) повышение эффективности использования компьютера путем рационального управления его ресурсами в соответствии с некоторым критерием.

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

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

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

Ресурсы вычислительной системы можно разбить на первичные – аппаратные ресурсы и вторичные – логические, программные и информационные ресурсы.

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

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

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

Управление ресурсами включает решение следующих общих, не зависящих от типа ресурса задач:

1) планирование ресурса – определение, какому процессу, когда и в каком количестве (если ресурс может быть разбит на части) следует выделить данный ресурс;

2) удовлетворение запросов на ресурсы;

3) отслеживание состояния и учет использования ресурса – поддержание оперативной информации о занятости ресурса и распределенной его доли;

4) разрешение конфликтов между процессами, использующими один ресурс.

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

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

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

Подсистема управления процессами генерирует системные информационные структуры, содержащие данные о потребностях в ресурсах вычислительной системы, а также о фактически выделенных ресурсах для каждой задачи. Процесс (задача) – представляет собой базовое понятие современных ОС и часто кратко определяется как программа в стадии выполнения. Программа – это статический объект, представляющий собой файл с кодами и данными, процесс является динамическим объектом, который возникает в операционной системе после того, как пользователь или ОС решает запустить программу на выполнение. Во многих современных ОС для обозначения минимальной единицы работы ОС используют термин “нить”, или “поток”, при этом изменяется суть термина “процесс”. Подробнее об этом будет рассказано в юните 2 “Управление процессами”. Чтобы процесс выполнялся, ОС должна назначить ему область оперативной памяти, в которой будут размещены коды и данные процесса, а также предоставить необходимое количество процессорного времени и доступ к требуемым ресурсам других типов. В информационные структуры процесса часто включается дополнительная информация, характеризующая историю пребывания процесса в системе, его текущее состояние, степень привилегированности процесса.

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

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

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

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

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

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

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



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-02-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: