Вопросы: Эволюция операционных систем icon

Вопросы: Эволюция операционных систем


1 чел. помогло.
Смотрите также:
Программа вступительного междисциплинарного экзамена в магистратуру тки по направлению 230100...
Программаное обеспечение вычислительных систем Классификация, назначение...
Операционные системы, среды и оболочки...
Лекция: Защитные механизмы операционных систем...
Экзаменационные билеты по дисциплине «Операционные системы, среды и оболочки»...
Семейство операционных систем Windows Server 2003...
Рабочей программы учебной дисциплины б...
Лекция вычислительные процессы...
Ответы на экзаменационные вопросы интернет-курсов интуит (intuit): 176...
Конспект лекций по учебной дисциплине «Операционные системы...
Учебное пособие теория и практикум анализа и решения операционных задач Оптимизация производства...
Учебная программа Дисциплины р6 «Операционные системы» по специальности 090302 «Информационная...





Лекция № 1

ИСТОРИЯ РАЗВИТИЯ ОПЕРАЦИОННЫХ СИСТЕМ И СИСТЕМНОГО ПРОГРАММИРОВАНИЯ


Вопросы:

  1. Эволюция операционных систем.

  2. Назначение и функции операционной системы.

  1. ЭВОЛЮЦИЯ ОПЕРАЦИОННЫХ СИСТЕМ

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

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

Интересный исторический факт: Бэббидж понимал, что для аналитической машины ему необходимо программное обеспечение, поэтому он нанял молодую женщину по имени Ада Лавлейс (Ada Lovelace), дочь знаменитого британского поэта Лорда Байрона. Она и стала первым в мире программистом, а язык програм­мирования Ada назван в ее честь.

^ ПЕРВОЕ ПОКОЛЕНИЕ (1945-55).

Электронные лампы и коммутационные панели

После неудачных попыток Бэббиджа вплоть до Второй мировой войны в конст­руировании цифровых компьютеров не было практически никакого прогресса. Примерно в середине 1940-х ученные:

  • Говард Айкен (Howard Aiken) в Гарварде,

  • Джон фон Нейман (John von Neumann) в Институте углубленного изучения в Принстоне,

  • Дж. Преспер Эккерт (J. Presper Eckert), Вильям Мочли (William Mauchley) в Пенсильванском университете,

  • Конрад Цузе (Konrad Zuse) в Германии и др.

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

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

Обыч­ный режим работы программиста был таков:

  • записаться на определенное время на специальном стенде,

  • затем спуститься в машинную комнату,

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

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

К началу 50-х, с выпуском перфокарт, установившееся положение несколько улучшилось. Стало возможно вместо использования коммутационных панелей записывать и считывать программы с карт, но во всем остальном процедура вы­числений оставалась прежней.

^ ВТОРОЕ ПОКОЛЕНИЕ (1955-65).

Транзисторы и системы пакетной обработки

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

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

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

Выполнение каждой программы стало включать большое количество вспомога­тельных работ:

  • загрузка нужного транслятора (АЛГОЛ, ФОРТРАН, КОБОЛ и т. п.);

  • запуск транслятора;

  • получение результирующей программы в машин­ных кодах;

  • связывание программы с библиотечными подпрограммами;

  • загрузка программы в оперативную память;

  • запуск программы;

  • вывод результатов на пе­риферийное устройство.

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

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

Если учитывать высокую стоимость оборудования, не удивительно, что люди довольно скоро занялись поиском способа повышения эффективности использо­вания машинного времени. Общепринятым решением стала система пакетной обработки. Первоначально замысел состоял в том, чтобы собрать пакет заданий (колод перфокарт) в комнате входных данных и затем переписать их на магнитную ленту, используя небольшой и (относительно) недорогой компьютер, например, IBM 1401, который был очень хорош для считывания карт, копирова­ния лент и печати выходных данных, но не подходил для числовых вычислений.

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

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

Структура типичного входного задания начиналась с карты $JOB, на которой указывалось максимальное время выполнения задания в минутах, загружаемый учетный номер и имя программиста. Затем поступала карта $FORTRAN, дающая операционной системе указание загрузить компилятор языка Фортран с системной магнитной ленты. Эта карта следовала за программой, ко­торую нужно было компилировать, а после нее шла карта $LOAD, указывающая операционной системе загрузить только что скомпилированную объектную про­грамму.

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

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

Большие компьютеры второго поколения использовались главным образом для научных и технических вычислений, таких как решение дифференциальных урав­нений в частных производных, часто встречающихся в физике и инженерных зада­чах. В основном на них программировали на языке Фортран и ассемблере, а типич­ными операционными системами были FMS (Fortran Monitor System) и IBSYS (операционная система, созданная корпорацией IBM для компьютера IBM 7094).

^ ТРЕТЬЕ ПОКОЛЕНИЕ (1965-1980).

Интегральные схемы и многозадачность

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

Фирма IBM первой использовала интегральные микросхемы, выпустив серию машин IBM/360 (аналоги этих семейств советского производства — машины серии ЕС), дававших преимущество в цене и качестве по сравнению с машинами второго поколения, созданными из отдельных транзисто­ров. Корпорация IBM добилась мгновенного успеха, а идею семейства совместимых компьютеров скоро приняли и все остальные основные производители.

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

В этот период были реализованы практически все основные механизмы, присущие современным ОС:

  • мультипрограммирование;

  • поддержка многотерминального многопользовательского режима;

  • виртуальная память;

  • файловые системы;

  • разграничение доступа;

  • сетевая работа.

В эти годы начинается расцвет системного программирования.

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

Эти усовершенствования значительно улучшили эффективность вычислительной системы: компьютер теперь мог использоваться почти постоянно, а не менее половины времени работы компьютера, как это было раньше.

Мультипрограммирование было реализовано в 2 вариантах:

1. В системах пакетной обработки;

2. В системах разделения времени.


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

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

Недостаток. Пользователь был лишен возможности интерактивно взаимодействовать со своими программами.

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

Первая серьезная операционная система с режимом разделения времени CTSS (Compatible Time Sharing System — Совместимая система разделения вре­мени) была разработана в Массачусетсском технологическом институте (M.I.T.) на специально переделанном компьютере IBM 7094.

После успеха системы CTSS ^ Массачусетсский технологический институт, сис­тема исследовательских лабораторий Bell Labs и корпорация General Electric решили начать разработку "компьютерного предприятия общественного пользования" — машины, которая должна была под­держивать сотни одновременных пользователей в режиме разделения времени. Так была разработана операционная система MULTICS (MULTiplexed Information and Computing Service — муль­типлексная информационная и вычислительная служба). Вариант мультипрограммирования, применяемый в системах разделения времени, был нацелен на создание для каждого отдельного пользователя иллюзии единоличного владения вычислительной машиной за счет периодического выделения каждой программе своей доли процессорного времени.

Недостаток. Система была написана на языке PL/1, а компилятор языка PL/1 появился лишь через несколько лет.

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


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

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

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

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

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


Еще одним важным моментом развития во времена третьего поколения был феноменальный рост числа мини-компьютеров, начиная с выпуска машины PDP-1 кор­порацией DEC. За этой машиной последовала целая серия других PDP (в отличие от семейства IBM, полностью несовместимых), завершенная — PDP-11.

Кен Томпсон (Ken Thompson), один из специалистов по компьютерам в Bell Libs, работавший над проектом MULTICS, впоследствии нашел мини-компьютер РDР-7, которым никто не пользовался, и решил написать усеченную однопользо­вательскую версию системы MULTICS. Эта работа позже развилась в операционную систему UNIX, ставшую популярной в академическом мире, в правительственных управлениях и во многих компаниях. Программный код для UNIX был на 90 % написан на языке высокого уровня С.

По причине широкой доступности исходного кода различные организа­ции создали свои собственные (несовместимые) версии, что привело к хаосу. Были разработаны две главные версии:

  • System V корпорации AT&T;

  • BSD (Berkeley Software Distribution) Калифорнийского университета Беркли.

Эти системы, в свою очередь, распадаются на отдельные разновидности. Чтобы стало возможным писать программы, работающие в любой UNIX-системе, Институт инженеров по электро­технике и электронике (IEEE) разработал стандарт системы UNIX, называемый POSIX, который теперь поддерживают большинство версий UNIX.

^ Стандарт POSIX переделяет минимальный интерфейс системного вызова, который должны поддер­живать совместимые системы UNIX. Некоторые другие операционные системы теперь тоже поддерживают интерфейс POSIX.


^ ЧЕТВЕРТОЕ ПОКОЛЕНИЕ (с 1980 года по наши дни).

Персональные компьютеры

Следующий период в эволюции операционных систем связан с появлением Боль­ших Интегральных Схем (LSI, Large Scale Integration) — кремниевых микросхем, содержащих тысячи транзисторов на одном квадратном сантиметре. С точки зре­ния архитектуры персональные компьютеры (первоначально называемые микро­компьютерами) были во многом похожи на мини-компьютеры класса PDP-11, но, конечно, отличались по цене.

В 1974 году, когда компания Intel выпустила Intel 8080 — первый универсаль­ный 8-разрядный центральный процессор, — для него потребовалась операцион­ная система, с помощью которой можно было бы протестировать новинку. Компа­ния Intel привлекла к разработкам и написанию нужной операционной системы одного из своих консультантов Гэри Килдэлла (Gary Kildall). Сначала Килдэлл с другом сконструировали контроллер для 8-дюймового гибкого диска, недавно выпущенного компанией Shugart Associates, и подключили этот диск к процессо­ру Intel 8080.

Таким образом, появился первый микрокомпьютер с диском. Затем ^ Килдэлл создал дисковую операционную систему, названную СР/М (Control Program for Microcomputers — программа управления для микрокомпьютеров). Когда Килдэлл заявил о своих правах на СР/М, корпорация Intel удовлетворила его просьбу, поскольку не думала, что у микрокомпьютеров с диском есть буду­щее. Позже Килдэлл создал свою компанию Digital Research для дальнейшего раз­вития и продажи СР/М.

В 1977 году компания Digital Research переработала СР/М, чтобы сделать эту систему пригодной для работы на микрокомпьютерах с процессорами Intel 8080 или Zilog Z80, а также с другими процессорами.

В начале ^ 80-х корпорация IBM разработала IBM PC (Personal Computer — персональный компьютер) и начала искать для него программное обеспечение. Сотрудники IBM связались с Биллом Гейтсом (Bill Gates), чтобы получить ли­цензию на право использования его интерпретатора языка Бейсик (BASIC). Они также поинтересовались, не знает ли он операционную систему, которая работала бы на PC. Гейтс посоветовал обратиться к Digital Research, тогда главенствующей компании по операционным системам. Но Килдэлл отказался встречаться с IBM, послав вместо себя подчиненного. Что еще хуже, его адвокат даже отказался под­писывать соглашение о неразглашении, касающееся еще не выпущенного PC, чем полностью испортил дело. Корпорация IBM снова обратилась к Гейтсу с просьбой обеспечить ее операционной системой.

После повторного запроса IBM Гейтс выяснил, что у местного изготовителя компьютеров, ^ Seattle Computer Products, есть подходящая операционная система DOS (Disk Operating System — дисковая операционная система). Он направился в эту компанию с предложением выкупить DOS (предположительно за $50 000), которое компания Seattle Computer Products с готовностью приняла. Затем Гейтс создал пакет программ DOS/BASIC, и пакет был куплен IBM.

Когда корпорация IBM захотела некоторых усовершенствований в программе, Билл Гейтс пригласил для этой работы Тима Патерсона (Tim Paterson), человека, написавшего DOS, ставшего первым служащим еще не оперившейся компании Гейтса Microsoft. Ви­доизмененная система была переименована в MS-DOS (MicroSoft Disk Operating System) и быстро заняла доминирующее положение на рынке IBM PC.

^ Самым важным оказалось решение Гейтса продать MS-DOS компьютерным компаниям для установки вместе с их оборудованием, в отличии от попыток Килдэлла продавать СР/М конечным пользователям.

Когда в 1983 году появился компьютер IBM PC/AT с центральным процессо­ром Intel 80286, система MS-DOS уже прочно стояла на ногах, а СР/М доживала свои последние дни. Позже система MS-DOS широко использовалась на компью­терах с процессорами 80386 и 80486.

Хотя первоначальная версия MS-DOS была довольно примитивна, последующие версии системы выходили с все лучше разработанными свойствами, включая многое, позаимствованное от UNIX.

^ СР/М, MS-DOS и другие операционные системы для первых микрокомпьюте­ров полностью основывались на вводе команд с клавиатуры. Затем, благодаря исследованиям, проведенным в 60-е годы Дагом Энгельбартом (Doug Engelbart) в научно-исследовательском институте Стэнфорда (Stanford Research Institute), это свойство операционных систем изменилось. Энгельбарт изобрел графический интерфейс пользователя (GUI, Graphical User Interface), состоящий из окон, значков, различных меню и мыши. Эту идею переня­ли разработчики из Xerox PARC и встроили в сконструированные ими машины.

Однажды Стив Джобc (Steve Jobs), тот самый, который изобрел компьютер Apple, посетил PARC, где увидел GUI и тотчас осознал его потенциальную ценность, практически не осознаваемую руководством Xerox. Тогда Джобc приступил к созданию Apple с графическим интерфейсом. Это привело к проекту Lisa, который был слишком дорог и потерпел коммер­ческую неудачу.

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

Когда корпорация Microsoft решила создать преемника MS-DOS, она находилась полностью под влиянием успехов компании Macintosh. Была разработана система, получившая название Windows, базой для которой послужил GUI.


История Windows.

С
истема Windows первоначально работала поверх MS-DOS (т.е. это была скорее оболочка, чем настоящая операционная система). На протяжении 10 лет, с 1985 по 1995 год, система Windows исполняла роль графической среды поверх MS-DOS. Клоны Windows изображены на рис.1.


Рис. 1. История выпусков версий Windows


Однако в 1995 году вышла в свет автономная версия Windows 95. Она включила в себя множество особенностей операционной системы MS-DOS, но только для загрузки и выполнения старых программ. В 1998 году была выпущена слегка из­мененная версия этой системы, получившая название Windows 98. Тем не менее и Windows 95, и Windows 98 все еще содержат большое количество программ 16-разрядного ассемблера Intel.

Другой операционной системой Microsoft стала Windows NT (NT означает New Technology — новая технология), которая на определенном уровне совместима с Windows 95, но ее ядро написано полностью заново. Начиная с Windows NT 4.0 – это целиком 32-разрядная система. Дэвид Катлер (David Cutler), главный разработчик Windows NT, был также одним из создателей операционной системы VMS для компьютеров VAX, поэтому некоторые идеи системы VMS присутствуют и в NT.

Корпорация Micro­soft ожидала, что первая же версия NT вытеснит MS-DOS и все другие версии Windows, так как это была система, намного превосходящая предыдущие, но надеж­да не оправдалась. И только системе Windows NT 4.0 наконец-то удалось получить относительно широкое распространение, особенно в корпоративных сетях. Версия Windows NT 5.0 была переименована в Windows 2000 в начале 2000 года.

О
на должна была стать преемником и Windows 98, и Windows NT 4.0. Но этому также не было суждено случиться, поэтому корпорация Microsoft выпустила еще одну версию Windows 98, названную Windows Me (Millennium edition — выпуск тысячелетия).

Сегодня мы говорим о новейшей разработке Microsoft – операционной системе Windows Longhorn. Изменения при переходе на Windows Longhorn будут внесены сразу в нескольких областях:

  • пользовательский интерфейс;

  • надежность системы;

  • структур хранения и организация данных (файловая система – WinFS);

  • технология развертывания приложений;

  • работа с графикой.

Windows Longhorn – это также первая ОС, построенная на управляемом коде, т.е. коде, который работает в среде CLR платформы .Net. Кроме того, она изначально рассчитана на обеспечение максимальной безопасности и поддержке концепции доверительных отношений. Новая технология пользовательского интерфейса основывается на DirectX, а не на морально устаревающем GDI. Каждое окно в новой системе будет 32-битовым трехмерным объектом.

Таким образом, пользователь получит настоящий трехмерный интерфейс, с мощным оптимизированным для этого графическим интерфейсом. Для этого разработана новая графическая подсистема Avalon – основа Longhorn.

На смену Win32 в новом наборе программных интерфейсов пришла WinFX – модель программных интерфейсов Longhorn, обеспечивающая более высокую эффективность при разработке приложений для Windows.


Главным соперником Windows в мире персональных компьютеров становится система UNIX (и ее различные производные). UNIX является самой сильной системой для рабочих станций и других компьютеров старших моделей, таких как сетевые серверы. Она стала особенно популярна на машинах с высокопроизводи­тельными RISC-процессорами.

На компьютерах с процессорами Pentium популярной альтернативой Windows для студентов и других разнообразных пользователей становится операционная система Linux.

Отдельно стоит упомянуть, что в 1987 году автор UNIX создал маленький клон системы UNIX для образовательных целей, так называемую операционную систему MINIX. Функ­ционально система MINIX очень похожа на UNIX, включая поддержку стандарта POSIX. Система MINIX свободно распростра­няется (включая весь исходный код) через Интернет.

Желание иметь свободно распространяемую рабочую версию MINIX (в противоположность образовательной), подвергло финского студента Линуса Торвальдса (Linus Torvalds) к написанию системы Linux. Эта система была разработана на основе MINIX и первоначально обладала ее характерными особенностями (напри­мер, поддерживала ту же файловую систему). С тех пор система Linux была зна­чительно расширена, но она все еще сохраняет большую часть структуры, общей как для системы MINIX, так и для системы UNIX.

Хотя многие пользователи UNIX, особенно опытные программисты, предпо­читают командный интерфейс графическому, почти все UNIX-системы поддержи­вают оконную систему, созданную в Массачусетсском технологическом институте. Она называется X Windows. Эта система оперирует основными функциями окна, позволяя пользователю создавать, удалять, перемещать окна и изменять их разме­ры с помощью мыши. Часто поверх системы X Windows может быть установлен полный графический интерфейс, например Motif, придающий системе UNIX вне­шний вид системы типа Microsoft Windows или как у компьютера Macintosh.


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

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

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



  1. ^ НАЗНАЧЕНИЕ И ФУНКЦИИ ОПЕРАЦИОННОЙ СИСТЕМЫ


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

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

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


ОС как виртуальная машина


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

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

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


ОС как система управления ресурсами

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

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

  • процессоры,

  • основная память,

  • таймеры,

  • наборы дан­ных,

  • диски,

  • накопители на магнитных лентах,

  • принтеры,

  • сетевые устройства и др.

Ресурсы распределяются между процессами.

Программа — это ста­тический объект, представляющий собой файл с кодами и данными.

^ Процесс (задача) представляет собой базовое понятие большинства современных ОС и часто кратко определяется как программа в стадии выполнения. Процесс — это динамический объект, который возникает в операционной системе после того, как пользователь или сама операционная система решает "запустить программу на выполнение", то есть создать новую единицу вычислительной работы. На­пример, ОС может создать процесс в ответ на команду пользователя run prgl.exe, где prgl.exe — это имя файла, в котором хранится код программы.

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

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

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

  • планирование ресурса — то есть определение, какому процессу, когда и в ка­ком количестве (если ресурс может выделяться частями) следует выделить данный ресурс;

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

  • отслеживание состояния и учет использования ресурса — то есть поддержа­ние оперативной информации о том, занят или свободен ресурс и какая доля ресурса уже распределена;

  • разрешение конфликтов между процессами.

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

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

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

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

Функциональные компоненты операционной системы автономного компьютера

Функции операционной системы автономного компьютера обычно группируют­ся либо в соответствии с типами локальных ресурсов, которыми управляет ОС, либо в соответствии со специфическими задачами, применимыми ко всем ресур­сам. Такие группы функций называют подсистемами. Наиболее важными подсистемами управления ресурсами являются (рис.3):

  • Подсистемы управления процес­сами,

  • Подсистемы управления памятью,

  • Подсистемы управления файлами и внешними устройствами,

  • Подсистемы защиты данных и администрирования,

  • Интерфейс прикладного программирования,

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

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


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

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

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

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

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

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

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

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

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

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





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

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

Существует большое разнообразие алгоритмов распределения памяти. Они мо­гут отличаться:

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

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

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

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

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

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

Управление файлами и внешними устройствами

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

Интерфейс прикладного программирования


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

Возможности операционной системы доступны прикладному программисту в виде набора функций, называющегося интерфейсом прикладного программирова­ния (Application Programming Interface, API). От конечного пользователя эти функции скрыты за оболочкой алфавитно-цифрового или графического пользо­вательского интерфейса.

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

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

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

Пользовательский интерфейс


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

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

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

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


2007 г.




Скачать 353.46 Kb.
оставить комментарий
Дата23.01.2012
Размер353.46 Kb.
ТипЛекция, Образовательные материалы
Добавить документ в свой блог или на сайт

средне
  1
хорошо
  1
Ваша оценка:
Разместите кнопку на своём сайте или блоге:
rudocs.exdat.com

База данных защищена авторским правом ©exdat 2000-2017
При копировании материала укажите ссылку
обратиться к администрации
Анализ
Справочники
Сценарии
Рефераты
Курсовые работы
Авторефераты
Программы
Методички
Документы
Понятия

опубликовать
Документы

Рейтинг@Mail.ru
наверх