Transcript for:
Основы операционных систем - Вступление

Здравствуйте Уважаемые коллеги возможно кого-то из вас такое обращение коллеги удивит Но на самом деле это обращение очень долго мной продумывалось потому что было совершенно непонятно как вам обращаться дамы и господа это высокопарная архаично и к данному случаю не подходит обращение товарищи вышло из употребления слушатели Но вам предстоит не только слушать то что я буду рассказывать но и смотреть на слайды которые будут сопровождать рассказ и обдумывать то что будет говориться зрители Но это больше присутствует в театре в кинотеатре А я все-таки не актер хотя у каждого преподавателя какие-то актерские навыки обязаны присутствовать И потом я понял что мы с вами собрались сделать одно общее дело хотя и по разные стороны экран раз так то мы с вами в этом деле являемся коллегами поэтому еще раз Здравствуйте Уважаемые коллеги Разрешите представиться Меня зовут Владимир афимович Карпов Я работаю МФТИ на кафедре информатики вычислительной математики в должности Доцента я собираюсь прочитать вам курс из цикла курсов под общим названием компьютерные технологии он достаточно большой а наш частный курс будет называться основой операционных систем курс рассчитан на 28 академических часов то есть на 14 обычных лекций и понятно что рассказать в таких ограниченных условиях все что хотелось бы оно практически невозможно поэтому я порекомендую вам некоторую литературу которая будет чуть шире или совсем шире чем то что я буду рассказывать в первую очередь это высасы недавно учебник авторами которого является Ваш покорный слуга и Константин Алексеевич коньков под названием основы операционных систем это уже третье издание и здесь содержится только лекционная часть есть первое и второе издание того же курса которые довольно сильно отличаются потому что в них помимо лекционной части присутствуют еще и определенная часть практических занятий фактически семедарских или лабораторных работ и Кроме того если брать первое издание оно замечательно тем что после каждой лекции там присутствует набор тестов которые было бы полезен для вас дорогие коллеги чтобы Вы могли посмотреть все ли вы поняли из того что рассказывалось что касается другой литературы достаточно популярная книга эта книга которая на Баума и босса современные операционные системы 4 издание 2015 году но рекомендовать как учебник я не могу потому что эта книга скорее всего энциклопедия у нее очень большой объем в ней содержится много информации но к сожалению информация не очень хорошо структурирована и поэтому главные вещи часто они отделяются второстепенных поэтому как справочник или как энциклопедия ее можно использовать чтобы посмотреть более подробную информацию по тому материалу который Вас заинтересовал еще одна из книг эта книга столинса операционная система Правда издана она Достаточно давно в 2004 году и к сожалению на русском языке других изданий больше не выходило в то время как на западе уже вышло 8 издание Ну тоже достаточно недавно и поэтому у кого есть возможность посмотреть оригинал Я бы рекомендовал обратиться к оригиналу и наконец лучшая с моей точки зрения книга которая есть по курсу операционной системы концепт книга бросаться галвина и гагне которая на русский язык К сожалению ни разу не переводилось Но вот на западе уже вышла 10 издание этого учебника Ну вот собственно про литературу пожалуй наверное все сказано А теперь следующий важный момент Я сказал что Наш курс Это лишь небольшая часть цикла компьютерные технологии а мфт присутствует еще и другие циклы связанные с компьютера сайнс и нужно бы нам сначала определить где у нас будет находиться Наш курс среди всех остальных курсов по it-технологии и поэтому переходим с вами к первой теме которая называется обзор и введение здесь необходимо заметить следующее я уже сказал что курс рассчитан на 14 лекций на самом деле у нас будут не лекции а темы тема может быть больше чем лекция и тогда В некоторых случаях мы будем бить ее на несколько частей а темы могут быть и короче чем лекция просто говорить лекция номер у меня не очень удобно Мне проще говорить Тема такая-то потому что Тема это что-то что какой-то общей мысли ты идеи Итак первая тема обзор и введения и мы выясним Где наш курс находится в общей структуре курсов по it-технологии а Для этого нам сначала придется вспомнить Из чего состоит любая вычислительная система поговорим о структуре вычислительной системы Но всем понятно прекрасно что естественно в любой вычислительной системе есть то что принято называть словом техническое обеспечение или ходовое это процессор материнская плата клавиатура мышь жесткий диск и прочее прочее железо если можно так жаргонно выразиться без которого вычислительная система работать не будет с этим все безусловно согласны а вот вторая компонента которую я хотел бы выделить в структуре вычислительной системы может вызвать недоумение и даже пожалуй серьезные вопросы это пользователь Почему я включая пользователя структуру вычислительной системы Казалось бы это совершенно внешняя по отношению к вычислительной системе существо или объект потому что это может быть как человек так и любое другое компьютерное устройство но дело в том что если не будет пользователя то некому будет стоять перед вычислительной системой задачей некому будет смотреть интерпретировать полученные результаты и соответственно без пользователя вычислительная система останется некоторые вещью в себе нас даже будет интересовать Не столько пользователей как субъект или объект входящий в структуру вычислительной системы сколько нам важен сам факт наличия пользователя нас будет интересовать Ну если хотите интерфейс между пользователем и вычислительной системы ограничился только пользователем и техническим обеспечением тоже бессмысленно Потому что никакой пользователь не сможет заставить работать техническое обеспечение если у него не будет того что принято называть программным обеспечением вот эта Стрелка должна быть разорвана и только после разрыва когда мы встаем туда программное обеспечение у нас с вами сможет функционировать вычислительная система программное обеспечение бывает разным и сейчас принято делить программное обеспечение на две большие группы так называемая прикладные программы и программы системные прикладные программы Но это обычно какие-то программы скажем бизнес класса которые позволяют работать вам в бизнесе и вести определенные бухгалтерские расчеты Возможно это какие-то игровые программы может быть это программа которая обрабатывает информацию текстовые процессоры и прочее прочее прочее а системные программы это то что должно обеспечивать разработку и функционирование прикладных программ на самом деле такое деление на системные программы прикладные программы она весьма условно и очень часто зависит от точки зрения того кто такое деление осуществляет Давайте представим себе человека который в первый раз сталкивается с компьютером которому привезли подарили или купили компьютер и сказали на пользуйся и предположим что это компьютере установлен Microsoft Office тогда с точки зрения такого пользователя Microsoft Office будет считаться системной программой Но поскольку как же вот в систему это было поставлено А значит эта системная программа в то же время любой студент уже первого курса прекрасно понимает что Microsoft Office это никакая не системная программа не пакет системных программ А это обычные прикладные программы но в то же время тот же самый первокурсник можно считать что системные программы является допустим компилятор с языка C в то же время продвинутый программист или студент более старших курсов прекрасно понимает что компилятор с языка си Это тоже не что иное как прикладная программа если вам не понравился какой-то конкретной компилятор скажем компилятор жесси под линуксом Вы можете взять любой другой компилятор компилятор фирмы Intel и так далее использовать его для того чтобы компилировать ваши программы Вот это деление оно оказывается совершенно неустойчивым Но поскольку оно существует такие термины используются в литературе мы вынуждены им пользоваться среди системных программ можно выделить одну самую главную системную программу которая будет постоянно работать вычислительной системе и обеспечивать взаимодействие и функционирование всех остальных программ как прикладных так и системных и вот такую наиболее общую системную программу принято называть операционной системой понятно что это не строгое определение строгим определением Мы попытаемся заняться чуть позже хотя и выясним что на самом деле строгих определений здесь быть не может но нам важно что теперь вот наша структура вычислительной системы выглядит таким образом пользователь прикладные программы прочие системные программы операционная система и техническое обеспечение если говорить про место нашего курса в структуре всех курсов по it-технологиям то нужно обратить внимание Вот на что то что делает пользователь Как он ставит задачи вычислительной системе и на каких языках излагает алгоритмы для решения этих задач относятся обычных курсам которые входят в понятие алгоритмы и алгоритмические языки называться курсы могут по-разному но понятно что там рассматриваются именно эти вопросы то как функционирует техническое обеспечение Как работает Х2 это предмет курса который обычно называется архитектура ЭВМ и языки ассемблеры это тоже отдельная часть большая достаточно существенная часть курсов пойти технологии работу работу прикладных программ изучают как правило в различных курсах по использованию прикладных пакетов таких Как скажем пакет математика или пакет 1C бухгалтерия и прочее прочее прочее часть относящихся к прочим системным программам входят в серию курсов по системному программирования она с вами будет интересовать именно вот эта оставшаяся часть операционная система и наш курс основа операционных систем будет посвящен изучению вот этой Пусть и небольшой части вычислительной системы теперь осталось понять а что же такое операционная система и о чем собственно будет идти У нас с вами разговор и вот здесь возникает достаточно сложная ситуация Дело в том что в различных областях науки существует понятие которое тяжело описать словами то есть как бы мы пытались их описать но всегда остается некоторое недоговоренность Ну например если взять математику то в математике очень тяжело описать словами понятия множество это набор чего-то А чего это набор это тоже недостаточно сказать потому что мы должны определить Но ближе к аксиоматике Что такое множество мы должны дать какое-то определение описав не только понятие или объект но описав операции которые можно над ним совершать Вот такая же ситуация складывается из операционной системы и чтобы было понятно почему это происходит давайте мы с вами вспомним одну из старых восточных притч это притча о слоне и слепцах в этой притче всегда фигурирует обязательно мудрецы обязательно фигурируют слон и слепцы количество которых в разных вариантах колеблется от 4 до 12 но мы не будем опускаться Не на минимум не будем брать максимум Мы остановимся на шести слепцах а суть притчи заключается в следующем слепцам очень долго читали различную литературу и они поскольку были слепы не с рождения А после прошествия некоторого времени в общем-то представляли о чем в книгах идет речь но они ни разу в жизни не видели живого слона когда вообще у них было зрение и когда Однажды мудрец прочитал книгу про слона они взмолились и сказали у мудрец Ну дай нам хоть понять что такое слон мы можем только теперь конечно ощупывать слона но Приведи нас страну и мы его пощупаем и вот мудрец привел шестерых Слепцов к слону А поскольку время доступа к слону было крайне ограничено то каждому из Слепцов удалось дотронуться только до части его туловища один из Слепцов Потрогал хобот и сказал мне все понятно это напоминает большую змею второй взялся за ухо и понял что это большой большое мясной ковер третий прикоснулся к Библию и сказал Ясно это живое копье четвертое взялся за ногу и сказал что мне тоже понятно это большое дерево правда оно живое и такое мягкое одному из Слепцов удалось притронуться к Богу слона Он сказал что Ясно это стена а наконец последний шестой слепец взялся за хвост и понял что это большая большая веревка и счастливые слепцы вернулись домой в полную уверенность что теперь они точно знают что такое слон Можно ли сказать что у Слепцов сложилось неправильное представление о слоне так сказать было бы наверное грубой ошибкой потому что каждый из хлебцов какую-то часть общего представления о слоне получил Но в меру некоторые ограниченности то до чего ему удалось добраться тем не менее если бы эти слепцы могли без споров обменяться своими точками зрения тогда бы наверное они смогли составить некоторое общее представление о слоне и то наверно было бы его все-таки недостаточно так вот с операционной системой дело обстоит примерно точно так же как с этим слоном так или иначе различные пользователи сталкиваются в своей практике с операционными системами и имеют некоторые представления свое собственное о том что такое операционная система Но как правило такое представление касается только части функционирования операционная система вот той именно частиц которая пользователю довелось столкнуться пообщаться поработать давайте рассмотрим Какие основные точки зрения на операционную систему существуют первая точка зрения вполне распространенная и имеющая полное право на существование это точка зрения на операционную систему как на распорядителя ресурса конечно любая современная вычислительная система имеет достаточно большое количество ресурсов причем ресурсов разнообразных это оперативная память это память которая есть на жестких дисках это процессорное время это количество устройства вода вывода количество этих ресурсов может быть велико но тем не менее оно все равно ограничено у вас ограничен объем оперативной памяти у вас есть определенное количество процессоров или ядер вычислительной системе у вас ограничен объем жесткого диска и все равно Вам приходится пользоваться вот этими ограниченными количествами для работы допустим большого количества программ А тогда возникает классическая задача распределения ресурсов вам нужно как-то распорядиться ресурсами количество которых у вас в общем-то лимитировано и разделить эти ресурсы между различными пользователями Представьте себе что у вас есть системе всего лишь один принтер и работает много программ которые непосредственно начинают обращаться к принтеру что тогда получится тогда получится что у вас выдача этих программ будет по строчкам сосредоточена на одном листе бумаги и чтобы различные пользователи могли добраться до своей собственной выдачи им при ложится ножницами клеем и затем разрезать этот лист бумаги на отдельные строки и склеивать то что нужно им то что относится к работе их программы Это конечно страшно неудобно вот чтобы этого не возникало и у нас есть операционная система операционная система так организует работу допустим программ с принтером что выдача программ не идет напрямую на принтер а накапливается где-то вспомогательных файлах и только когда у вас программа завершает работу тогда вся информация выведенной программы будет отдельно распечатать на принтере в результате получается совершенно нормальная выдача и у вас нет необходимости заниматься манипуляциями с ножницами и клеем с этой точки зрения операционная система выглядит как распределитель ресурсов орган планирования Ну некоторые пожалуй подобие госплана в прежнем СССР некая подобие планирующего органа в тоталитарных государствах вторая точка зрения которая существует на операционную систему это точка зрения на операционную систему как защитника пользователей программ если у вас в системе работает несколько программ разных пользователей то очень Желательно чтобы эти программы не мешали работе друг друга нам требуется недопустить вмешательство работы программы одного пользователя вход выполнения программы другого пользователя одна программа не должна иметь возможности залезать в данные другой программы и менять их а тем более не должна менять код если у нас вычислительной системе хранятся файлы разных пользователей то необходимо защитить эти файлы информацию которая в них хранится от несанкционированного доступа так чтобы могли не волноваться что какие-то приватные данные утекут и попадут в ненадлежащие руки Кроме того поскольку сейчас очень развита сетевое подключение компьютеров необходимо думать и о том чтобы вы не могли получить какую-то вредоносную программу Извне какого-то вируса или трояна который смог бы порыться в вашей вычислительной системе перекодировать ваши файлы испортить лежащую там информацию вот всей этой заботой о безопасности пользователей и программ как друг от друга так от внешнего вмешательства и занимается операционная система с этой точки зрения То есть фактически здесь если глядеть на операционную систему как на защитника пользователей программ и рассматривать вычислительную систему как некоторые государства операционная система выполняет полицейские и контрразведывательные функции третья точка зрения на операционную систему вычислительной системе Что такое операционная система Давайте поговорим вот о чем я уже говорил что любая вычислительная система имеет довольно сложное устройство в ней содержатся достаточно много различных устройств ввода/вывода и работать с этими устройствами ввода-вывода на уровне близкому КДВ достаточно затруднительно но Представьте себе что у вас есть допустим считыватель с DVD диска тогда чтобы считать нужную информацию на уровне ходовая Вам необходимо заботиться следующее вам нужно включить двигатель дисковода затем переместить лазерную головку на необходимую дорожку на вашем диске проверить юстировку чтобы попали точно на нужную дорожку дальше дождаться поворота необходимого сектора содержащего информацию под считывающую головку после этого информацию считать затем не забыть выключить двигатель дисковода то есть приходится думать о информации которую вы должны считать какие-то не свойственных этой информации терминах в терминах двигателя дисковода в терминах дорожек перемещение лазерной головки то есть заниматься какой-то работой которая в общем-то достаточно далека должна быть от программиста в то же время Операционная система позволяет вам думать об информации лежащей на DVD диске как о некоторым наборе файлов и вы можете сказать что я хочу прочитать вот такой вот файл или записать какую-нибудь другой файл на этот самый DVD диск И тогда вам предоставляется абстракция более высокого уровня абстракция файла с которого можете работать и вы совершенно не должны думать не о двигателе ни а лазерной головки Ни о секторах не о дорожках такие же точно абстракции строятся и к другим устройствам которые имеются внутри вычислительной системы например к таймеру и прочему прочему прочему то есть с этой точки зрения у нас операционная система выступает как некоторая виртуальная машина которая предоставляет пользователю возможность работать с абстракциями более высокого уровня не заботясь О деталях технического устройства это некий услужливый официант Если хотите который по первому вашему требованию приносит вам то блюдо которое Вы заказывали и вы совершенно не заботитесь о том как именно оно готовилось к этой же точки зрения как на официанта привлекает и Другая точка зрения точка зрения на операционную систему как на фокусника это тоже виртуальная машина потому что в принципе операционная система может создать у вас иллюзию наличие гораздо большего количества оперативной памяти вычислительной машине чем имеется на самом деле то есть это некоторый фокусник или львионист теперь давайте рассмотрим еще одну точку зрения она конечно выглядит достаточно странно но тем не менее она существует и поэтому перечислить ее необходимо эта точка зрения на операционную систему как на некоторого кота в мешке она свойственна людям которые либо совсем не общались до этого с компьютером либо общение было крайне незначительным когда такой человек приходит в магазин и покупает новую вычислительную систему допустим это может быть ноутбук или стационарный компьютер Он говорит Я хочу чтобы мне поставили на неё операционную систему Windows 10 или допустим операционную систему Linux и все что в магазине после этого ему поставит он будет считать операционной системой потому что он попросил поставить операционную систему вот ему это и поставили Все что принесено из магазина для него это операционная система поэтому на самом деле для него операционная система это некоторые код в мешке что-то на самом деле содержится с операционной системы он не знает ну и наконец еще одна точка зрения пожалуй наиболее точно соответствующая тому что такое операционная система это точка зрения это взгляд на операционную систему как на некоторые постоянно функционирующее ядро то есть операционная система с этой точки зрения есть некоторая программа которая постоянно работает в вычислительной системе и обеспечивать взаимодействие и функционирование всех остальных программ почти правильная точка зрения но за одним небольшим исключением Дело в том что современные операционные системы стали настолько сложны и устройства их стало настолько разнообразным что не все что относится к операционной системе Постоянно работает в памяти вычислительной системы там функционирует обычно лишь небольшое постоянно действующее ядро а все остальные части операционной системы лежат где-то на внешних носителях информации и подкачиваются по мере необходимости когда к ним происходит обращение Как видим точек зрения существует много точки зрения так или иначе действительно описывают те или иные стороны функционирования операционной системы Но вот единого представления из этих точек зрения так и не создается точно так же как у Стрельцов были свои точки зрения на то что такое слон А единого представления они в общем-то создать так до конца и не могли поэтому Проще сказать не Что такое есть операционная система А для чего она нужна чем она занимается и как она функционирует вот собственно выяснению этого вопроса мы и посвятим оставшуюся часть на этой вот нашей первой темы Мы попытаемся выяснить Для чего действительно нужна операционная система чем она занимается какие функции она выполняет но чтобы это выяснить нам придется обратиться к эволюции вычислительных систем потому что операционная система в том виде в котором они сейчас существуют не появились в результате чьи-то теоретической работы на чистом листе бумаги когда человек или коллектив людей сели задумались придумали сказали что вот мы придумали такую замечательную вещь как операционная система она будет заниматься тем-то тем-то тем-то давайте мы сейчас ее реализуем нет такого не было дело в том что современная операционная система действительно появились в процессе эволюции вычислительных систем и функции которые они сейчас выполняют собственно Это продукт вот этой самой эволюции Почему я говорю про эволюцию вычислительных систем а не про историю развития вычислительных систем Почему я говорю про эволюцию именно вычислительных систем в целом они про эволюцию программного обеспечения Но во-первых действительно процесс развития вычислительных систем шел эволюционно как и в любой эволюции появляются те или иные мутации в нашем случае это некоторые идеи и соответственно есть некоторые критерии отбора если соответствующая идея не удовлетворяя этим критериям отбора то на данном этапе развития вычислительных систем она может быть отброшена хотя Отбросы на Не навсегда впоследствии к ней могут вернуться но уже на следующем витке спирали эволюции в качестве таких критериев естественного отбора обычно выступают удобство пользования вычислительной системой производительность вычислительной системы безопасности ее работы и ее стоимость Если вы придумаете очень дешевую вычислительную систему которая будет работать с очень высокой степенью производительности обеспечивать безопасность но обращаться с ней будет крайне неудобно Она не дает спроса на рынке и соответственно будет отброшена эволюцией на обочину Можно конечно придумать изумительную по простоте обращения вычислительную систему такой компьютер Может в общем-то достаточно производительно работать он будет эффективен Но может обладать стоимостью в несколько миллиардов долларов и понятно что На данном этапе развития такие системы большого спроса не найдут и такие системы тоже будут отброшены где-то на обочину эволюции Ну то же самое касается всех остальных критериев эволюции вычислительных систем вот этих самых факторов отбора Почему именно эволюция вычислительных систем Дело в том что хадовая isoftware они развиваются параллельно Когда появляются новые идеи в программном обеспечении обычно Они впоследствии реализуются так или иначе в железном виде на уровне хадовое а новые прорывы вход в приводит тому что появляются новые идеи собственно в программном обеспечении и вот развитие softway H2 идет в таком соревновании конкурентным дополняющим друг друга поэтому рассматривать По отдельности развитие только программного обеспечения не имеет ни малейшего смысла мы с вами будем именно про эволюцию вычислительных систем в целом и начнем мы рассмотрение этой эволюции с того момента когда появляются электронные вычислительные системы электронные вычислительные машины в М как их раньше называли теперь почему-то этот термин стал крайне редко использоваться всю эволюцию разбивают на определенные этапы надо сказать что границы этих этапов весьма условны и если вы будете читать разную литературу то эти границы будут плавать от одного источника к другому источнику собственно нас интересует не столько точное значение границ То есть когда начался тот или иной период и когда он закончился сколько содержание этого периода и первым этапом эволюции вычислительных систем принято считать период где-то с 1945 по 1955 год опять-таки говорю что вот эти самые рамки 45 или 55 год они весьма условны Почему считается что 45 год на самом деле первые идеи электронных вычислительных машин появляются ранее пожалуй где-то В 1943 году осознается необходимость появление именно электронной техники производящей вычисления 44 ведутся работы в сорок пятом такая техника наконец появляется Ну а 55 год это тоже условная граница Когда в общем-то начинают уже в подавляющем большинстве присутствовать вычислительные системы следующего поколения относящиеся ко второму периоду чем характеризуется вот этот самый первый период в первую очередь элементной базой элементная база это электронные лампы все машины относящиеся к первому периоду Ну или точнее сказать большинство из них это машины ламповые лампы Как вы сами себе прекрасно представляете они снабжены нитью накаливания без которой они работать не будут и соответственно обладают замечательным свойством греться они накаливания обладает свойством перегорать а если взять скажем первую вычислительную систему которая была построена в сорок пятом году это было устройство длиной 26 метров высотой 6 метров и содержала оно около 17,5 тысяч электронных ламп дополнительно к этому устройству требовалось содержать еще большую охлаждающую систему поскольку тепловыделение было очень большим и поначалу в среднем перегорала несколько лап в день что естественно приводило к остановке все вычислительной системы и поиску той самой лампочки которая оказалась перегоревшей в дальнейшем разработчики вот этой самой вычислительной системы среди которых нужно упомянуть экспорта и мощные пришли к выводу что можно снизить напряжение нити накаливания в результате лампы стали перегорать 1-2 раза в неделю что считалось просто по тем временам немыслимые надежности но тем не менее производительность была маленькая и естественно работать устойчиво такая машина чтобы решать какие-то более-менее сложные задачи не могла Кроме того необходимо отметить что в первых машинах программа не вводилась каким-либо хитрым способом а необходимо было просто перекоммутировать имеющиеся вычислительные устройства переткнуть кабеля из одних штекеров другие штекеры и только в такой ситуации У Вас программа начинала выполнять новую программу То есть фактически Если вы совершили определенную коммутацию то вы тем самым запрограммировали машину впоследствии вот программ стал производиться с помощью перфокард Когда появилась так называемая концепция фон Неймана а впоследствии вот программ стал производиться с помощью перфокард Когда появилась так называемая фонемановская концепция или фон неймановская архитектура которая предполагает Ну самое главное пожалуй то что программа и данные должны храниться в памяти машины в одинаковом виде вот здесь я позволю сделать небольшое отступление которое покажет Как важно человеку оказаться в нужное время в нужном месте а дело в том что концепция которая приписывается фон нейману на самом деле появилась задолго до фон Неймана Ну во всяком случае можно сказать что подобные идеи выдвигала еще Конрад французы в Германии в тридцатые годы до начала Второй Мировой войны а впоследствии эти идеи были высказаныкертом и мощные без участия фон Неймана еще в конце 44 года фон нейман был прикомандирован к ним как математик и просто Когда пришло время сдавать некоторые промежуточный отчет он оказался единственным человеком который мог поставить подпись все остальные были в разъездах Он поставил свою подпись под отчетам на нем должны были расписаться и все остальные люди но этого не произошло потому что отчет с одной подписью был немедленно военным ведомством разложен и разосом заинтересованным лицам после чего концепция стала называться концепцией фо Хотя фон нейман имеет к этой концепции крайне косвенное отношение это к вопросу о том как можно незаслуженно стать человеком вошедшим в историю главное оказаться в нужное время в нужном месте и вовремя подписать отчет к которому ты имеешь очень маленькое отношение никакого разделения персонала естественно в этот период не происходит работа ведется крайне ненадежна собственно программировать могут только те люди которые разрабатывали это вычислительную систему Да и устранять них палатки тоже могут только эти же самые люди поэтому никакого деления на разработчиков вычислительных систем на программистов на обслуживающий персонал и операторов естественно возникает одновременно может выполняться только одна операция Либо вы осуществляете вот программы в систему либо программа производит счет либо считав электронных табло на которых результаты выводятся с помощью обычных электрических лампочек информацию вы занимаетесь отладкой вашей программы только в конце этого периода примерно 54 году появляются прообразы первых компиляторов потому что разработчикам вычислительных систем естественно было удобно работать в машинных кодах их собственно не интересовали какие-то языки программирования Я не говорю про языки программирования высокого уровня Но даже хотя бы простые ассемблеры и понятно что в это время нет вообще никаких операционных систем и даже никаких идей не возникает о том что они будут нужны в целом этот период можно характеризовать как научно-исследовательскую работу в области вычислительной техники но и собственно никто не думал о том что вычислительных систем станет так много как мы наблюдаем сейчас с вами примерно где-то в конце этого периода один из вице-президента фирмы IBM сказал что с его точки зрения в мире существует потребность не более чем в пяти экземплярах вычислительных систем то есть с его точки зрения большее количество совершенно бессмысленно как с коммерческой так и С практической точки зрения первый период заканчивается тогда когда меняется элементная база на основе которой строится электронные вычислительные машины где-то примерно сначала 50-х годов начинаются активные разработки по использованию полупроводниковых элементов x55 года вычислительные системы преимущественно начинают строиться на полупроводниках элементная база меняется появляются транзисторные машины транзисторы в отличие от электронных ламп выделяют существенно меньше тепла менее капризны реже выходят из строя и естественно занимают меньше места и поэтому естественным образом у нас уменьшаются размеры компьютеров компьютеры становятся более надежными и соответственно у нас начинается поставка этих компьютеров в крупные научно-исследовательские центры в крупный университета и в крупные фирмы и здесь происходит разделение персонала теперь есть коллективы людей которые разрабатывают вычислительную технику есть коллективы людей которые занимаются ее эксплуатацией и появляется Каста программистов которая к настоящему времени стало весьма многочисленной Вот именно здесь происходит выделение программистов как отдельная профессионализация то есть до этого программисты как профессия они не существовали программисты народ ленивый я всегда придерживаюсь этого тезиса я буду еще неоднократно его вам напоминать Дело в том что любой программист старается минимизировать свои усилия связанные с написанием программ и программистом просто лень писать в машинных кодах большие программы и лень писать на языке Sender они начинают пытаться облегчить себе труд написания программ и начинается бубное развитие алгоритмических языков именно в этот период во второй период появляются такие языки программирования как капол алгол фортран и многие многие другие языки теперь у нас с вами уже нет необходимости вводить программу с помощью перекоммутации плат вычислительной системы или с помощью нажатия определенных тумблеров на пульте управления VM можно вводить задание с помощью колоды perfacard А что такое задание задание это не стояно как программа которая у нас с вами подложены в виде перфокарт некоторые исходные данные начиная с которых программа у вас должна будет решать поставленную задачу задание вводятся с помощью колод перфокард результаты выводов у нас теперь иллюстрируется не загоранием лампочек на табло а печатаются с помощью простейших принтеров но тем не менее процесс прогона остается все равно достаточно трудоемки программист пишет программу дальше самостоятельно или с помощью операторов переводят написанный текст в перфокарты перфокарты отдаются оператору через некоторое время оператор пропускает Вашу программу Или ваше задание через вычислительную систему а затем Вы по прошествии суток двух или трех получаете распечатку с результатами работы вашей программы особенно обидно бывает обнаружить что написали вы все правильно но при напивке перфокарт допустили опечатку и тогда Весь процесс приходится повторять снова здесь на самом деле отладка становится проще чем было в первом периоде но тем не менее все равно процесс отладки является затруднительным Почему Да потому что очень много времени проходит с момента когда вы колоду перфокард отдаете оператору до получения распечатки С чем связано такое большое время память о вычислительных систем в это время весьма ограничено поэтому держать в памяти одновременно Вашу программу Да еще какую-нибудь компилятор становится совершенно невозможным у нас памяти может находиться только одна программа компиляторы обычно загружаются с каких-то внешних носителей это как правило магнитные ленты поскольку языков программирования появилось большое количество и Кроме того к этому моменту существует достаточно большое количество уже служебных библиотек допустим библиотек по вычислению каких-то математических функций которые тоже записаны где-то на лентах то для того чтобы ваше задание было пропущено через систему оператору сначала требуется установить компилятор с вашего языка программирования на однолетное устройство потом установить не требующиеся вам библиотеки на другое Лента протяжное устройство и только после этого ваша программа будет работать когда идет дальше вслед за вашей программой другая программа часто требуется ленточки компиляторы и библиотек поменять другой компилятор и другие библиотеки это неудобно это занимает много времени и поэтому операторы стараются собирать вместе задание которое требует одних и тех же ресурсов То есть это задание программа которых написаны на одном и том же языке программирования или которое обращается к одним и тем же служебным библиотекам а для того чтобы можно было по колоде перфокард легко понять Какие же ресурсы вашему заданию требуются вводится упрощенный язык управления заданиями специальный язык на котором вы должны написать несколько строк и соответственно появится несколько первых перфокартов вашей колоде описывающих требуемый ресурс и тогда операторы собирают воедино задание с одинаковыми ресурсами И получается то что принято называть пакет заданий чем хороший пакет заданий тем что перед началом работы этого пакета Вы установили на внешние носители требующиеся ресурсы А дальше можете последовать загружать вычислительную систему одно задание за другим из пакета вереск переустановки ресурсов так вот для того чтобы мыло проще загружать задания из пакета одно за другим появляется первая система так называемый пакетной обработки это ничто иное как просто автоматизированная система ввода заданий из пакета когда одно задание завершает свою работу в вычислительной системе и если можно так выразиться система покидает автоматически на вход поступает следующее задание из пакета вот эти самые пакетные системы или система пакетной обработки можно рассматривать как прообразы первых операционных систем и в целом мы можем охарактеризовать Этот второй период как начало использования ЭВМ В научных и коммерческих целях третий период эволюции вычислительных систем принято отсчитывать с 1960 года Точнее с начала 60-х годов Здесь тоже начало не совсем определено и завершать в 1980 годом Вот это дата является точной А почему Чуть позже расскажу чем характеризуется этот третий период развития вычислительных систем опять-таки меняется у нас элементная база теперь вместо отдельных полупроводниковых элементов машины стали делать на интегральных схемах которые представляют собой несколько полупроводниковых элементов на одном кристалле которые находятся в Едином корпусе и в это время появляется в частности так называемый закон Мура который принято формулировать достаточно странным образом в большинстве современных источников то что количество транзисторов и производительность вычислительных систем количество транзисторов на одном кристалле имеется в виду будут удваиваться в среднем каждые полтора-два года мур это один из будущих основателей фирмы Intel и надо честно сказать что Прочитав оригинальную работу мура такой формулировки я там не обнаружил Дело в том что мур был экономистом и рассматривал производство интегральных схем с точки зрения экономики так вот проанализировав различные технологии которые существовали к началу 60-х годов и перспективные которые только начинали развиваться он пришел к выводу для того чтобы фирма оставалась конкурентоспособной количество элементов полупроводниковых на кристалле должно удваиваться каждые полтора-два года это оказывается наиболее экономически выгодным и тогда фирма конкуренты не вытеснит соответственно Когда у нас увеличивается количество полупроводниковых элементов на кристалле у нас уменьшается расстояние между ними и сигнал между элементами начинает проходить меньшее расстояние и можно поднять тактовую частоту работы процессоров вычислительных систем отсюда повышается производительность вычислительных систем процессоры могут решать очень сложные задачи достаточно быстро Но этому начинает препятствовать производительность устройств ввода/вывода надо сказать что к этому моменту наиболее быстрое считыватели с перфокард могли считывать 1200 перфокарт в минуту конечно значительное количество но тем не менее по сравнению с количеством производимых операций на процессоре это в общем-то ничтожная величина наиболее быстрые принтеры тогда были только матричные принтеры которые печатали построчно могли печатать не более 600 строк в минуту и Вот наличие устройств ввода-вывода при загрузке задания вычислительную систему стало являться Ну таким бутылочным горлышком снижающим производительность вычислительной системы очень долго задание грузилось в систему с перфокарт а затем после быстрых расчетов приходилось Достаточно долго ждать выдачи окончательных результатов для того чтобы можно было справиться с возникшим противоречием каким-то образом его разрешить появляется идея использования Наряду с мощной считающей вычислительной системы вспомогательных вычислительных систем малой мощности Одна из таких систем используется для того чтобы можно было с перфокард задание записать на магнитную ленту или на магнитный диск а к этому моменту уже Начинает появляться магнитные диски магнитная лента или магнитный диск обладают существенно большей скоростью доступа к информации которая на них хранится и затем уже с магнитных лент или с диска пакет заданий загружается в основную вычислительную систему точно так же у вас не сразу идет печать на принтер на основной вычислительной системе А все что необходимо напечатать записывается на ленту или на диск а затем на второй вспомогательной машине с лентой или с диска осуществляется реальная печать Это позволяет ускорить прохождение заданий через ЭВМ это подымает производительность вычислительной системы но в то же время вызывает определенные неудобство для операторов потому что нужно ленточки постоянно переставлять с одной вычислительной системы на другую и тогда появляется идея с пуллинга spooling это сокращение по первому буквам от слова сочетания спрерол прессинс онлайн то есть одновременное выполнение периферийных операций в режиме онлайн Когда у вас на вычислительной системе в одном корпусе располагается и мощный счетный процессор их вспомогательные процессоры ввода-вывода нет необходимости заниматься перетаскиванием магнитных лент или магнитных дисков с одной системы на другую в это же время появление магнитных дисков которые являются устройствами прямого доступа то есть я могу взять и прочитать любую произвольную информацию с магнитного диска а не читать информацию в том порядке как она представлена в пакете заданий в виде набора перфокард или как записывается на магнитную ленточку приводит к возможности решать Какое очередное задание будет загружено в систему и нарушать Порядок в котором они были записаны появляется возможность планирования заданий то есть принятие решений о том какое задание очередным поступит вычислительную систему и в то же время на самом-то деле у нас никакого серьезного развития операционных систем пока не происходит все остается на уровне пакетных систем но с планированием заданий а вот существенные изменения в области как программного обеспечения так и в области технического обеспечения происходит когда появляется идея создания мультипрограммных вычислительных систем идея на самом деле просто замечательная Она приводит к революционным изменениям в строении вычислительных систем в целом в чем эта идея заключается идея собственно заключается вот в чем Когда у нас есть некоторая программа работающая внутри вычислительной системы она периодически может приостанавливать свою деятельность потому что и нужно дождаться ввода очередной порции данных или вывода какой-то очередной порции информации и в это время у нас основной Центральной счетный процессор простаивает А почему бы тогда не держать в памяти машины не одну программу а сразу несколько программ и когда одна из программ не может выполняться дальше Потому что иногда дождаться завершения операции ввода или операции вывода можно было бы передавать процессор другим программам находящимся в памяти которая готова продолжать свои вычисления А потом когда операции ввода или операции вывода будут завершены можно вернуть управление Или точнее сказать предоставить процессор первый приостановленной программе чтобы она продолжила свою работу дальше идея совершенно замечательная и она действительно позволяет сильно повысить производительность вычислительной системы чтобы это стало очевидным давайте рассмотрим некоторые житейские примеры которые хорошо иллюстрируют чем мультипрограммный режим работы отличается от n-программного режима работы представим себе что у нас есть некоторые преподаватели которые выступают в роли процессора и есть студенты которые пришли сдавать за счет и они выступают в роли программ как будет выглядеть в такой ситуации однопрограммный режим работы в аудиторию Где находится преподаватель запускается студенты Строго по очереди по одному человеку зашедший студент готовится отвечать на вопрос пока Он готовится преподобляка простаивает можно считать что у нас происходит операция ввода у программы а затем начинает отвечать на вопросы заданные преподавателем он отвечает некоторое время потом получает новые дополнительный вопрос снова задумывается и снова преподавателя простаивает опять идет операция ввода или операция вывода а потом опять студент отвечает на поставленный вопрос а остальные студенты в это время толпятся в коридоре и ждут своей очереди когда им разрешат войти в аудиторию для сдачи за счет это программная система Что будет происходить мультипрограммной системе в аудиторию сразу запускается группа студентов Ну естественно все эти студенты должны быть рассажены за разными столами то есть они должны расположиться в оперативной памяти как программа так чтобы не мешать друг другу и не влиять на Результаты работы друг друга и тогда когда один из студентов начинает обдумывать поставленный вопрос преподаватель имеет возможность переключиться на работу с другим студентом процессор передается другой программе когда студент подготовился и готов отвечать преподаватель свое внимание переключает снова на этого студента понятно что при второй схеме работы Когда у нас преподаватель работает в мульти студенческом мультипрограммном режиме У нас группа в целом быстрее сдаст зачет чем в той ситуации когда студенты запускаются в аудиторию строго поодиночке почему же у нас здесь действительно происходят вот такие революционные изменения А все на самом деле очень просто с точки зрения логики Давайте посмотрим как влияет у нас идея мультипрограммности на развитие софтва и ходовые но в первую очередь Что необходимо отметить то что у нас теперь планирование заданий то есть выбор очередного задания на загрузку вычислительной системы из опции которую можно было иметь в пакетной системе или не иметь становится обязательно потому что у нас память оперативная вычислительной системе ограничена и когда какое-то задание покидает систему и память освобождается Мы из заданий ждущих загрузки должны выбрать подходящие по размеру что вы смогли его загрузить вычислительную систему то есть здесь планирование заданий теперь уже не опция а обязательная черта Кроме того когда у нас начинается мультипрограммный режим работы мы должны эту самую оперативную память ограниченный ресурс вычислительной системы делить между несколькими потребителями мы должны управлять памятью мы должны помещать новое поступившее задание в нужно освободившееся пространство или изначально свободное и вести учет свободной и занятой памяти это требует опять-таки изменения в работе software поскольку у нас в памяти сидит теперь много программ нужно добиться того чтобы они не мешали работе друг друга было бы неправильно если бы программа одна или одного пользователя могла залезть в память другой программы поменять там какие-то данные или не Приведи Господи вообще изменить ее код Но если пользоваться той же самой аналогией со студентами преподавателем студенты должны сидеть за разными столами и не общаться несанкционировано друг с другом не списывать и не подсказывать друг другу это работа возлагается обычно на техническое обеспечение требуется изменение в составе ходовые когда мы прекращаем временно взаимодействие процессора с некоторой программой Она собирается дождаться допустим окончания операции ввода-вывода и переключаемся на другую программу мы должны запомнить где мы приостановили работу первой программы с тем чтобы после окончания завершения соответствующих операций вернуться к первой программе и продолжить ее выполнение с того места на котором мы ее приостановили нужно уметь сохранять контекст работы программы и соответственно восстанавливать этот контекст вот Сохранение и восстановлением контекста одновременно должны заниматься и собственно и хат в Кроме того когда устройство ввода-вывода завершило выполнение определенной операции мы должны об этом как-то оповестить процессор чтобы он знал что можно вернуться к выполнению приостановленной программы и это требует появления вход в механизма прерываний механизма оповещения процессора о том что то или иное устройство вывода операцию закончила и готова к выполнению следующей операции Когда у нас памяти находится несколько программ и у нас освободился процессор либо потому что какая-то программа завершила свою деятельность либо просто потому что ей потребовалось дождаться некоторого события вычислительной системе мы должны подумать о какой следующий программе мы предоставим процессор Нам необходимо заниматься планированием использования процессора требуется Принятие решения Кто из готовых к исполнению программ на самом деле будет исполняться это решается на уровне программного обеспечения не все команды теперь у нас с вами оказываются равноправными Дело в том что обращение к таким ресурсам как устройство ввода-вывода невозможно на просто на уровне пользователя поскольку в общем-то это сильно влияет на функционирование того что мы можем уже назвать будущей операционной системы и команда на уровне ходьбы начинают делиться на два класса команды привилегированная которая может исполнять только специализированное программное обеспечение например операционная система и команды не привилегированная которая может выполнять в принципе любая программа и соответственно чтобы выполнить операцию ввода-вывода то есть выполнить некоторые привилегированные команды А вот вывод так или иначе любой программе пользователя нужен нам придется обращаться к операционной системе через специальные системные вызовы то есть внутри операционной системы появляются точки входа для выполнения привилегированных команд те самые системные вызовы Мы говорили о том что у нас не должно происходить несанкционированного взаимодействия различных программ которые находятся в памяти в но тем не менее для решения определенных задач Иногда приходится организовывать общение различных программ которые сидят у нас внутри вычислительной системы и поэтому требуется некоторые средства коммуникации опять-таки на уровне софтовая или теперь уже правильно говорить операционной системы которая позволили бы санкционированное общение чтобы данная санкционированным образом могли передаваться от одной программы к другой программе А если нам еще важен и порядок вот этого взаимодействия тогда необходимо некоторые средства синхронизации вот смотрите очень простая идея идея мультипрограммирования приводит к тому что у нас очень сильно меняются и собственно и ходовые это действительно революционные изменения в процессе и все это происходит в третий период развития вычислительных систем дальнейшее развитие идеи мультипрограммирования приводит к идее систем разделения времени так называемых тайм-сервинг Systems что это за система если в обычных мульти программных системах у нас управление от одной программы к другой передается только тогда когда Первая программа не может дальше продолжать работу не дождавшись некоторого события то в системах разделения времени все происходит несколько по-другому мы просто каждой программе находящейся в памяти выделяем определенный промежуток времени Его принято называть еще квант времени для выполнения и когда этот промежуток истечет независимо от того нужно дожидаться чего-то этой программе или не нужно дожидаться этой программе мы отбираем ее процессор и Передаем другой программе для исполнения то есть системы разделения времени это по сути дела частный случай мультипрограммных пакетных систем в это же время возникает желание располагать в памяти машины как можно больше различных программ чем больше программ в памяти машины находятся А количество программ в памяти машины еще принято называть термином степень мультипрограммирования тем в общем-то по идее производительнее должна стать вычислительная система но у нас количество находящихся в памяти программ ограничено объемом оперативной памяти и тогда появляется следующая идея А зачем нам собственно всю программу сразу держать в оперативной памяти ведь вся программа никогда сразу не считается обычно исполняется какая-то небольшая часть кода которая обрабатывает какую-то небольшую часть данных так вот Давайте эту часть кода и часть данных необходимых для выполнения и Будем держать в оперативной памяти Оста Пусть находится на каком-то внешнем носителе на той же магнитной ленте или магнитном диске и подкачивается только по мере необходимости когда мы дошли до этой стадии вычислений А если мы начинаем держать в памяти машины лишь небольшое количество кода и данных конкретной программы то тогда у нас появляется возможность писать программы которые будут во много раз больше превосходить по своему объему оперативную память то есть появляется так называемая идея виртуальной памяти когда адресное пространство в котором работают программы может существенно превышать по размеру реальное физическое адресное пространство оперативной памяти Вот это тот самый случай про который рассказывал в начале сегодняшней темы когда говорил о том что операционная система может выступать в роли иллюзиониста в это же время происходит переосмысление роли терминалов и клавиатур до этого терминала и клавиатура были но они использовались как правило Как из управляющие устройства оператора для того чтобы можно было управлять функционированием все вычислительной системы А теперь выясняется что можно в принципе каждому пользователю предоставить терминал и клавиатуру и тогда он сможет наблюдать в режиме онлайн интерактивно за выполнение своей программы может заниматься ее отладкой править Исходный код компилировать и тут же отправлять снова на вычисления Но тогда возникает необходимость появления развитых файловых систем потому что до момента появления интерактивной отладки программ файловой системы были в общем-то не нужны у каждого пользователя был свой диск или своя магнитная лента на которой он хранил информацию в удобном ему виде А здесь нам требуется хранение информации в неком Едином формате в неком Едином стандарте ну и соответственно все это были внутренние изменения которые происходили с вычислительными системами в третий период их эволюции но появляются еще и внешние изменения Дело в том что до третьего периода каждая фирма разрабатывая новую вычислительную систему конечно опиралась на опыт предыдущих своих разработок но часто это разработка шла под совершенно новые процессор с новой системой команд и поэтому не было никакой переносимости программ написанных для ведущих вариантов электронных вычислительных машин фирмы и нового современного варианта машины этой же фирмы так вот фирма застали задумываться о том что она разрабатывать теперь некоторые семейства электронных вычислительных машин разные производительности которые обладали бы сходной архитектурой и самое главное обладали бы полной переносимостью с точки зрения программиста то есть программа написанная для самых маломощных машин из этого семейства могли бы без всяких изменений работать на более производительных машинах входящих в этой семейство появляется действительно Вот Эта замечательная идея семейств ЭВМ и можно рассмотреть два основных таких семейства это машины фирмы IBM так называемая серия ibm360 370 и машины серии PDP фирмы Digital конечно это было удобно с точки зрения пользователя с точки зрения программиста с точки зрения фирм которые машины покупали она сказать что в этот период у нас с вами количество продаваемых машин стала исчисляться уже не десятками а сотнями в отличие от второго периода эволюции вычислительных систем в чем удобство заключается если фирма пока еще маленькая только начинает функционировать она может купить небольшую маломощную вычислительную систему из какого-то семейства там отладить свои программы а затем по мере роста фирмы закупать все более мощные и мощное вычислительные системы и без всяких изменений переносить разработанная программное обеспечение на эти системы это действительно позволяло сэкономить массу времени пользователям вычислительных машин но в то же время все преимущества всегда имеют определенные недостатки сила семействам связанных с переносимостью стало одновременно их слабостью потому что естественным образом маломощная машина разрабатывались в начале когда только задумывались семейства электронных вычислительных машин а более производительные системы это уже более поздний период разработки и когда разрабатывались мощные машины могло выясниться что решение принятое на начальном этапе разработки семейства были не оптимальными можно придумать что-нибудь получше но из-за необходимости обеспечить совместимость эти старые решения приходилось тащить вплоть до самых производительных систем понятно что и программатура становилась все более сложной и сложной потому что с точки зрения переносимости нужно было все что входило в состав операционной системе на низших членах семейства электронных вычислительных систем тащить и на более продвинутые вычислительные системы поэтому операционная система стали включать в себя миллионы строк исходного кода и писались уже тысячи программистов А когда такое большой объем исходного кода и когда работает такой большой коллектив людей всегда неизбежно некоторые ошибки и такие ошибки постоянно фиксировались они исправлялись но под конец вот этого самого третьего периода эволюции исправление старых Ошибок стало приводить к новым ошибкам и поэтому в частности фирма IBM волевым решением запретила исправлять имеющиеся ошибки в операционной системе а просто операционная система наслаждаться большим Томом в котором использовалась более тысячи известных ошибок и теперь эти ошибки уже перестали считаться багами остались считаться характерной чертой фичей вот этих самых операционных систем собственно весь этот третий период эволюции мы можем охарактеризовать как широкое использование ЭВМ В научных и коммерческих целях четвертый период эволюции мы начинаем отсчитывать строго с 1980 года почему 1980 год да потому что в это время появляются первые персональные электронные вычислительные машины естественным образом меняется у нас элементная база появляются большие интегральные схемы если в третьем периоде интегральная схема как правило содержали в себе полупроводниковые элементы достаточные для функционирования какого-то небольшого устройства скажем логического элемента и или не то машины на больших интегральных схемах теперь у нас на одном кристалле в одном корпусе содержат процессор целиком естественно стоимость их становится существенно ниже и тогда у нас обычные пользователи обычные люди которые не связаны с программированием получают возможность приобретать такие устройства собственно в этом и заключается у нас появление персональных машин А если у нас на персональных машинах начинают работать неподготовленные люди то и соответствующее программное обеспечение должно быть Рассчитано на этих подготовленных неподготовленных людей то есть мы должны создавать дружественная программное обеспечение ну и соответственно здесь у нас с вами когда машин становится много есть возможность соединять машины между собой строить различные сети и появляются сетевые и распределенные операционные системы собственно в чем состоит различие между сетевой и распределенной операционной системы сетевая операционная система строится практически как операционная система для автономной машины которая не подключена в сеть просто к ней добавляется небольшой участок небольшая специфическая часть которая позволяет взаимодействовать через сетевой интерфейс с другими устройствами в сети поэтому для того чтобы пользователь мог доступиться ресурсами имеющимися в сети он должен знать о том что такие ресурсы в сети есть он должен знать где они расположены и должен уметь к этим ресурсам добираться то есть ему требуется некоторые дополнительные специфические знания если брать распределенную операционную систему на самом деле название не совсем удачное поскольку все-таки не одна система по сути дела получается а на каждом компьютере в сети все равно крутится свои операционная система просто сверху есть некоторые объединяющие их надстройка которая получила название Middle то есть среднее обеспечение Да если можно так выразиться Software это у нас программное обеспечение значит ходовые техническое обеспечение амитловая это вот некоторое среднее обеспечение то что объединяет программные части разных компьютеров между собой и позволяет практически программам пользователя прикладным программам работать единым образом вот на этой самой распределенной системе так вот пользователь распределенной системы может вообще не знать что у нас компьютер находится в распределенной находится в сети с его точки зрения Он работает на распределенной системе как на обычной автономной системе его совершенно не интересует где находится допустим файл хранящий информацию на его компьютере или это в сети потому что независимо от расположения он доступается к ним одинаковым способом когда он запускает некоторую программу на счет он совершенно не должен думать о том где она в реальности будет считаться на его компьютере или на каком-нибудь другом более Свободном компьютере которая входит в распределенную систему здесь совершенно другое строение операционных систем и собственно тому как функционирует Что делают Как устроено распределенные операционные системы и каким-то математическим основам работы таких систем посвящается целые большие семестровые курсы которые на западе могут называться Как дистрибьюторы так и Advance System У нас тоже существует естественным образом курсы распределенных операционных систем Но это отдельная тема Это не наш предмет исследования и поэтому мы на этом пока говорить про распределенные системы прекращаем и вот весь этот период в целом можно охарактеризовать как широкое использование ЭВМ в быту в образовании и на производстве Обратите внимание на дату окончания этого периода там стоит 2005 год на самом деле вот эта граница между 4 периодом и следующим пятым периодом она не так четко определена а даже здесь наверное неправильно сказать четко не все придерживаются этой точки зрения то есть практически все специалисты в области компьютер сайленс считают что сейчас идет пятый период эволюции вычислительных систем Но вот время окончания четвертого периода и начало 5 это дата которая является предметом обсуждения в частности уже упоминавшейся сегодня эндритон считает что четвертый период закончился в 1990 году когда появились первые носимые вычислительные системы и не важно что эти носимые вычислительная система были очень больших размеров они были очень тяжелыми но вот он считает что именно таким образом можно охарактеризовать переход от периода 4 к периоду 5 то что у нас появляется мобильность вычислительных систем но мы считаем что это не совсем правильное датировка мы считаем что все-таки пятый период начинается с 2005 года потому что у нас с вами до сих пор периоды в основном выделялись по смене элементной базы и вот пятый период следует тоже выделять по смене элементной базы Когда у нас появляется первая многоядерные процессоры А это как раз 2005 год и поэтому пятый период начинается с 2005 года продолжается по настоящее время и когда он завершится и на что сменится мы пока не в состоянии сказать Когда у нас появляется многомерные процессоры у нас естественно происходит дальнейшая материализация вычислительных систем и вот теперь уже мобильные компьютеры Ну к ним мы будем относить и Смартфоны и планшеты и ноутбуки становятся общеупотребительным средством для производства вычислений для общения людей то есть это теперь уже не единичный экземпляры как было в начале 90-х годов а повсеместно имеющие распространение устройства Кроме того появление многомерных процессоров приводит к созданию высокопроизводительных вычислительных систем Когда у нас воедино собрано несколько процессоров с большим количеством ядер соединенных между собой какими-то интерфейсами сетевыми высокопроизводительными и на этих вычислительных системах появляется возможность решать задачи из области математического моделирования которое до сих пор оставались нерешенными ввиду своего числительной сложности то есть если такие задачи удается декомпозировать развалить на части Так что каждая часть может быть выполнена на своем исполнителе на своем процессоре или ядре тогда скорость решения таких задач становится выше появляются элементы виртуализации выполнения программ мы уже говорили про виртуализацию когда упоминали виртуальную память то есть это некоторая абстракция которая скрывает от себя какие-то технические детали устройство Х2 Ну вот виртуальная память это связано как раз со скрытием детали устройства оперативной памяти а можно виртуализировать не только память можно виртуализировать устройство ввода/вывода можно виртуализировать сами операционные системы можно виртуализировать хранилища данных все эти передачи информации и в результате появляется возможность на одном и том же компьютере одновременно запускать несколько операционных систем или выполнять несколько приложений которые были подготовлены для работы в разных операционных системах но и пожалуй высшей частью вот этой всей виртуализации это является появление облачных технологий Когда у нас с вами не обязательно всю программу держать на нашем небольшом мобильном компьютере а мы можем держать только клиентскую часть А все самые сложные вычисления и все большие обрабатывая данные хранить где-то на других больших серверах расположенных в так называемом облаке и тогда этим облачным данным Вы можете добираться не только со своего мобильного компьютера но и с любого другого устройства которое у вас имеет доступ к этому самому облаку в результате существующий период эволюции вычислительных систем мы можем охарактеризовать как некоторую глобальную компьютерную Но вот мы рассмотрели с вами основные этапы эволюции вычислительных машин и теперь пришло время сделать некоторые выводы что мы увидели из рассмотрения этой самой эволюции мы увидели что действительно операционные системы появляются в прообразе только на втором этапе эволюции вычислительных систем дальше продолжают развиваться и совершенствоваться Хотя определенный спад их развития был в четвертом периоде А когда появились персональные ЭВМ была тенденция все что было привнесено в третьем периоде из мультипрограммирования из операционных систем выкинуть Но это же персональная машина это один пользователь будет на ней работать Зачем одному пользователю одновременно считать несколько программ А давайте мы все это выкинем Пусть работает только одна программа Но это продолжалось недолго по мере роста производительности все опять вернулось в прежнем количестве в пресных функциях и вот мы видим что на сегодня существующие операционные системы выполняют следующие основные функции 1 это планирование заданий и использование процессора планирование заданий это Принятие решения о том какое задание очередным будет загружено вычислительную систему планирование использования процессора это принятие решений о том из программ находящихся в памяти машины Мы предоставим следующий процессор Когда у нас процессор освободится функция номер два это обеспечение программ средствами коммуникации и синхронизации чтобы они могли у нас взаимодействовать разрешенным способом третья функция это функция управления памятью четвертая функция это управление файловой системой или даже лучше сказать файловыми системами Пятая функция это управление работой устройств ввода/вывода и наконец шестая функция эта функция которая обеспечивает безопасность взаимодействия программ между собой и пользователей безопасность их совместного существования в рамках одной вычислительной машины вот эти самые функции они стали такими именно в процессе эволюции никто не сказал что эволюция вычислительных Систем должна была идти именно тем путем по которому она пошла возможно и другие наверное варианты эволюции и тогда может быть мы сейчас с вами операционными системами называли что-нибудь другое если вообще существовало такое название и функции которые они выполняли могли бы стать другими более того мы не можем сказать останутся эти функции теми же самыми в процессе дальнейшего развития вычислительной техники может быть Они изменятся какие-то функции пропадут а какие-то наоборот добавятся Единственное что мы можем с вами точно утверждать что операционные системы на сегодняшний момент существует потому что их существование это разумный способ использования вычислительных систем вот в дальнейшем в наших темах мы будем с вами рассматривать как операционная система эти функции будут выполнять по отдельности и совместно потому что на самом-то деле функционирование операционных систем это не есть по очереди выполнения скажем планирования использования процессора затем обеспечение программ коммуникации и синхронизации управления памятью все эти функции Они перемешаны между собой и постоянно выполняются совместно этим мы с вами и будем в дальнейшем заниматься правда исходя из ограниченности наших часов у нас обычно выпадает тема безопасности из лекционного курса но мы посмотрим как у нас пойдет дело и возможно лекцию по безопасности все-таки в самом конце курса я добавлю собственно на этом У меня сегодня все с этой темой вводная мы с вами завершаем я бы хотел принести некоторые извинения за то что я старался говорить довольно быстро но это вполне естественно потому что вы совершали некие краткий эволюционный экскурс а любой краткий исторический обзор он в общем-то является Ну достаточно такой вот не очень интересные вещи интересно говорить про историю про эволюцию когда есть возможность обсудить какие-то интересные детали интересные нюансы А вот в таком быстром обзоре К сожалению тонкости тают мы не можем на них останавливаться и поэтому преподаватели всегда стараются побыстрее проскочить эту малоинтересную с их точки зрения но к сожалению необходимую часть курса Я надеюсь что в последующем я буду говорить Медленнее и понятнее Так что если вдруг у вас возникли какие-то претензии к стилю изложения или есть какие-то вопросы по этой теме можно обращаться ко мне вот здесь на слайде приведен адрес моей электронной почты которая заведена специально для курсов по основам операционных систем Спасибо за внимание и до следующей встречи