ГЛАВА3. УРОК 1. Операционная система. Основные понятия. Задачи. Функции.
ОС – является важной (необходимой) частью ПО.
ОС – постоянно развивающаяся часть ПО современных ЭВМ.
ОС – программно реализует то, что не удалось реализовать аппаратно.
ОС – комплекс системных и управляющих программ.
ОС – обеспечивает совместное функционирование всех устройств ЭВМ.
ОС – служит для организации надёжных вычислений.
ОС – обеспечивает интерфейс между устройствами системы и прикладными программами.
ОС – предоставляет пользователю доступ к его ресурсам.
Задачи ОС:
Создание комплекса логических ресурсов (информационные – файлы; программные – процедуры; аппаратные).
Распределение ресурсов.
Обеспечение доступа к ресурсам.
Функции ОС.
Управление доступом к данным;
Управление оперативной памятью;
Управление внешними устройствами;
Загрузка программ в оперативную память и их выполнение;
Обеспечение пользовательского интерфейса;
Сетевые операции, поддержка стека сетевых протоколов.
Преодоление исключительных ситуаций (невозможность одного вычислительного процесса намеренно или по ошибке повлиять на вычисления в другом процессе и т.д.)
Адаптация к условиям эксплуатации.
Параллельное выполнение задач (многозадачность).
Защита системы от злонамеренных действий пользователей или приложений.
Многопользовательский режим работы и разграничение прав доступа.
Средства аппаратной поддержки ОС:
Системы прерывания, синхронизации, приоритетов.
Система защиты памяти для исключения взаимного влияния задач, протекающих одновременно.
Таймер для разделения времени процессов.
Состав ОС:
-
Ядро — центральная часть ОС, управляющая выполнением процессов, ресурсами (процессорное время, память и устройства ввода-вывода) и предоставляющая процессам координированный доступ к этим ресурсам. Доступ к файловой системе и сетевое взаимодействие также могут быть реализованы на уровне ядра.
планировщик;
драйверы устройств, непосредственно управляющие оборудованием;
сетевая подсистема,
файловая система;
системные динамические библиотеки;
оболочка с утилитами.
ГЛАВА3. УРОК 2. История развития ОС.
XIX век.
Сформулирована идея компьютера Чарльзом Беббиджем.
40е гг. XX века.
Созданы первые электрические ламповые ЭВМ. Один из представителей – это ENIAC. Она использовалась для решения единственной частной задачи – расчет траектории артиллерийских снарядов в системах ПВО.
В силу специфики применения (решение единственной задачи), первые ЭВМ не использовали ни какой операционной системы. В тот период времени, решением задач на ЭВМ занимались в основном сами же разработчики ЭВМ. Задачи организации вычислительного процесса решались вручную каждым программистом. Была введена должность: оператор ЭВМ.
Идея 1. BIOS – первый шаг к созданию операционных систем
Вскоре ЭВМ начали успешно применять для решения других задач: анализ текстов и решение сложных прикладных задач из области физики. Круг потребителей услуг ЭВМ несколько расширился. Однако, для решения каждой конкретной задачи в то время необходимо было написать заново не только код, реализующий алгоритм решения, но и процедуры ввода-вывода и другие процедуры управления процессом вычисления.
Поэтому для разрешения указанных проблем были созданы специальные библиотеки процедур ввода-вывода (BIOS – Base Input-Output System). Создание BIOS стало первым шагом на пути к созданию полноценной операционной системы. Тщательно отлаженные и эффективные процедуры из BIOS можно было легко использовать с любыми новыми программами, не затрачивая время и силы на разработку и отладку стандартных процедур для ввода и вывода данных.
50е гг. ХХ века.
Идея 2. Система пакетной обработки – прообраз современной операционной системы
По мере дальнейшего развития электронно-вычислительных машин, с расширением сферы их применения, на первый план быстро вышла проблема недостаточной эффективности использования дорогостоящей ЭВМ.
В 50-е годы персональных компьютеров еще не было, и любая ЭВМ была очень дорогой, громоздкой и относительно редкой машиной. Для доступа к ней со стороны различных научных учреждений составлялось специальное расписание. К указанному времени программист должен был прийти в машинный зал, загрузить свою задачу с колоды перфокарт, дождаться завершения вычислений и распечатать результаты.
При использовании жесткого расписания, если программист не успевал закончить расчеты за отведенное время, он все равно должен был освободить машину, так как для нее была запланирована новая задача. Но это означает, что машинное время было затрачено впустую – результатов то не получено! Если же по какой либо причине расчеты завершались раньше ожидаемого срока, то машина просто простаивала.
Для того, чтобы избежать потерь процессорного времени, неизбежных при работе по расписанию, была разработана концепция пакетной обработки заданий, сущность которой поясняет следующий рисунок (Рисунок 1).
Рисунок 1 Структура вычислительной системы с пакетной обработкой
Впервые, пакетная система была разработана в середине 50-х компанией General Motors для машин IBM 701. По-видимому, это была первая операционная система. Основная идея пакетной обработки состоит в том, чтобы управление загрузкой программ и распечатку результатов поручить маломощным и относительно дешевым машинам-сателлитам, которые подключаются к большой (основной) машине через высокоскоростные электронные каналы. При этом большая ЭВМ будет только решать задачу, полученную от машины-сателлита, и после завершения задачи передавать результаты по высокоскоростному каналу другой машине-сателлиту для распечатки. Машины сателлиты работают самостоятельно, освобождая центральный процессор от необходимости управления медленными внешними устройствами. При этом распечатка результатов предыдущей задачи может происходить в ходе решения текущей задачи, и одновременно в электронную память машины-сателлита может считываться следующая задача. Такая организация системы пакетной обработки заданий известна как простая пакетная система.
Системы пакетной обработки заданий, реализованные в 50-е годы, стали прообразом современных операционных систем. В них впервые было реализовано программное обеспечение, используемое для управления исполнением прикладных программ. Современные периферийные устройства, и, прежде всего, это накопители на жестких магнитных дисках, способны передавать большие объемы данных без участия центрального процессора. Забегая вперед, укажем, что только благодаря такому свойству аппаратуры компьютера существуют и эффективно работают современные многозадачные операционные системы.
1960 -70 гг. ХХ века.
Переход к интегральным микросхемам. Появилось мультипрограммирование – способ организации вычислительного процесса, при котором в памяти ЭВМ находятся одновременно несколько программ.
Идея 3. Многозадачные операционные системы
Первые многозадачные операционные системы появились в 60-е годы в результате дальнейшего развития систем пакетной обработки заданий. Основным стимулом к их появления стали новые аппаратные возможности ЭВМ.
Основная идея многозадачности вполне очевидна – если текущая программа приостанавливается в ожидании завершения ввода-вывода, то процессор переходит к работе с другой программой, которая в данный момент готова к выполнению. Однако, переход к другой задаче должен быть сделан так, чтобы сохранить возможность вернуться к брошенной задаче спустя некоторое время и продолжить ее работу с точки останова.
Появление многозадачности потребовало реализации в составе операционной системы сразу нескольких фундаментальных подсистем, которые также представлены в любой современной операционной системе. Это подсистема управления процессорами (определяет какую задачу и в какое время следует передать процессору для обслуживания); подсистема управления памятью (обеспечивает бесконфликтное использование памяти сразу несколькими программами); подсистема управления процессами (обеспечивает бесконфликтное разделение ресурсов компьютера (например, магнитных дисков или общих подпрограмм) сразу несколькими программами).
Почти сразу после появления многозадачных операционных систем, было замечено, что многозадачность полезна не только для повышения коэффициента использования процессора. Например, на основе многозадачности можно реализовать многопользовательский режим работы компьютера, т.е. подключить к нему несколько терминалов одновременно, причем для пользователя за каждым терминалом будет создана полная иллюзия, что он работает с машиной один. До эпохи массового использования персональных компьютеров, многопользовательский режим был основным режимом работы практически для всех ЭВМ. Повсеместная поддержка многопользовательского режима резко расширила круг пользователей компьютеров, сделала его доступным для людей различных профессий, что в конечном итоге и привело к современной компьютерной революции и появлению ПК.
В качестве вывода отметим, что появление многозадачности было вызвано желанием максимально использовать процессор, исключив по возможности его простои, и в настоящее время многозадачность является неотъемлемым качеством практически любой современной операционной системы.
Идея 4. Операционные системы с поддержкой виртуальной памяти
Появление системы виртуальной памяти в конце 60-х, стало последним шагом на пути к современным операционным системам. Появление в дальнейшем графических пользовательских интерфейсов и даже поддержка сетевого взаимодействия уже не были столь революционными решениями, хотя и существенно повлияли и на развитие аппаратуры компьютеров, и на развитие самих операционных систем.
Толчком к появлению виртуальной памяти стали сложности управления памятью в многозадачных операционных системах. Основные проблемы здесь следующие:
Программы, как правило, требуют для своего размещения непрерывную область памяти. В ходе работы, когда программа завершается, она освобождает память, но этот регион памяти далеко не всегда пригоден для размещения новой программы. Он или слишком мал, и тогда для размещения программы приходится искать участок в другой области памяти, или слишком велик, и тогда после размещения новой программы останется неиспользуемый фрагмент. При работе операционной системы, вскоре образуется очень много таких фрагментов – суммарный объем свободной памяти велик, но разместить новую программу не удается так как нет ни одной достаточно длинной непрерывной свободной области. Такое явление называется фрагментацией памяти.
В случае, когда несколько программ одновременно находятся в общей памяти, ошибочные или преднамеренные действия со стороны какой-либо программы могут нарушить выполнение других программ, кроме того, данные или результаты работы одних программ могут быть несанкционированно прочитаны другими программами.
Решающей предпосылкой для появления системы виртуальной памяти стал механизм свопинга (от англ. to swap – менять, обменивать).
Идея свопинга состоит в том, чтобы выгружать из ОЗУ во вторичную память (на магнитный диск) программы, временно снятые с выполнения, и загружать их обратно в ОЗУ, когда они становятся готовыми к дальнейшему выполнению. Таким образом, происходит постоянный обмен программами между ОЗУ и вторичной памятью.
Свопинг позволяет освободить место в оперативной памяти для загрузки новых программ за счет выталкивания во вторичную память программ, которые не могут выполняться в данный момент. Свопинг достаточно эффективно решает проблему нехватки оперативной памяти и фрагментации, но не решает проблемы защиты.
Как уже было сказано, виртуальная память впервые была использована в реальных операционных системах в конце 60-х, но широкое распространение виртуальная память получила только в 80-х (UNIX, VAX/VMS), а повсеместно стала применяться в персональных компьютерах лишь в середине 90-х годов (OS/2, Linux, Windows NT). В настоящее время, виртуальная память, наряду с многозадачностью, является неотъемлемой частью практически любой современной операционной системы.
Идея 5. Графические интерфейсы пользователя
В конце 80-х сложились все условия для повсеместного перехода на графический интерфейс пользователя: с одной стороны возникла потребность в более простом и удобном механизме управления компьютером, с другой стороны, развитие аппаратных средств позволяло построить такой механизм.
Основная идея графического интерфейса пользователя состоит в следующем:
- пользователю, в зависимости от текущей ситуации, предлагается выбрать один из нескольких альтернативных вариантов дальнейших действий;
- возможные варианты действий пользователя представлены на экране ЭВМ в виде текстовых строк (меню) или схематичных рисунков (пиктограмм);
- для выбора одного из вариантов дальнейших действий достаточно совместить на экране монитора указатель (курсор) с элементом меню или пиктограммой и нажать заранее определенную клавишу (обычно это <�пробел>, <�ввод> или кнопка мышки), чтобы проинформировать систему о сделанном выборе.
Первый графический интерфейс был разработан в 81 году в компании Xerox. Говорят, что посещение главой компании Microsoft Билом Гейтсом компании Xerox и знакомство с ее разработками в области графических пользовательских интерфейсов, подвигли Microsoft на создание собственных графических интерфейсов пользователя.
Использование графического интерфейса оказалось настолько простым и интуитивно понятным, что компьютеры в настоящее время стали эффективно использовать в своей работе люди, которые даже не имеют никакого представления об архитектуре самого компьютера, операционной системы или прикладной программы.
В конечном итоге, появление графических интерфейсов пользователя в составе операционных систем и прикладных программ оказало колоссальное влияние на компьютеризацию современного общества.
Идея 6. Встроенная поддержка сети
Вершиной интеграции при сетевом взаимодействии являются сетевые операционные системы, объединяющие ресурсы всех компьютеров сети в общий сетевой ресурс, доступный любому компьютеру сети. Разумное использование сетевой операционной системы позволяет решать сложные переборные или оптимизационные задачи при наличии в сети достаточно большого количества ЭВМ, каждая из которых в отдельности не в состоянии решить задачу за приемлемое время.
Встроенная сетевая поддержка в составе операционных системах общего назначения первоначально обеспечивала только доступ к удаленным файлам, расположенным на дисках другого компьютера. Первоначально, поддержка сети требовалась только в небольших офисах для совместной работы нескольких компьютеров над одним документом. Однако развитие сети Интернет быстро привело к необходимости встроить сетевую поддержку даже в операционные системы для домашних компьютеров. Кроме того, интересно отметить, что постоянное снижение стоимости домашних компьютеров в последние годы вызвало к жизни домашние компьютерные сети, когда в одной семье используется несколько компьютеров с возможностью совместного использования общего принтера, сканера или другого оборудования.
В 1974 году компания IBM объявила о создании собственной сетевой архитектуры для своих мэйнфреймов, получившей название SNA (System Network Architecture).
К середине 70-х годов наряду с мэйнфреймами широкое распространение получили мини-компьютеры, такие как PDP-11, Nova, HP.
Важной вехой в истории мини-компьютеров и вообще в истории операционных систем явилось создание ОС UNIX. Первоначально эта ОС предназначалась для поддержания режима разделения времени в мини-компьютере PDP-7. С середины 70-х годов началось массовое использование ОС UNIX. Хотя UNIX была первоначально разработана для мини-компьютеров, гибкость, элегантность, мощные функциональные возможности и открытость позволили ей занять прочные позиции во всех классах компьютеров: суперкомпьютерах, мэйнфреймах, мини-компьютерах, серверах и рабочих станциях, персональных компьютерах.
80-е гг. ХХ века.
Идея 7. «Дружественные» персональные компьютеры.
Начало 80-х годов связано с еще одним знаменательным для истории операционных систем событием — появлением персональных компьютеров. С точки зрения архитектуры персональные компьютеры ничем не отличались от класса мини-компьютеров типа PDP-11, но их стоимость была существенно ниже. Если мини-компьютер позволил иметь собственную вычислительную машину отделу предприятия или университету, то персональный компьютер дал такую возможность отдельному человеку. Компьютеры стали широко использоваться неспециалистами, что потребовало разработки «дружественного» программного обеспечения, и предоставление этих «дружественных» функций стало прямой обязанностью операционных систем. Персональные компьютеры послужили также мощным катализатором для бурного роста локальных сетей, создав для этого отличную материальную основу в виде десятков и сотен компьютеров, принадлежащих одному предприятию и расположенных в пределах одного здания. В результате поддержка сетевых функций стала для ОС персональных компьютеров необходимым условием.
Однако и дружественный интерфейс, и сетевые функции появились у операционных систем персональных компьютеров не сразу. Первая версия наиболее популярной операционной системы раннего этапа развития персональных компьютеров — MS-DOS компании Microsoft — была лишена этих возможностей. Это была однопрограммная однопользовательская ОС с интерфейсом командной строки, способная стартовать с дискеты. Основными задачами для нее были управление файлами, расположенными на гибких и жестких дисках в UNIX-подобной иерархической файловой системе, а также поочередный запуск программ. MS-DOS не была защищена от программ пользователя, так как процессор Intel 8088 не поддерживал привилегированного режима. Разработчики первых персональных компьютеров считали, что при индивидуальном использовании компьютера и ограниченных возможностях аппаратуры нет смысла в поддержке мультипрограммирования, поэтому в процессоре не были предусмотрены привилегированный режим и другие механизмы поддержки мультипрограммных систем.
Недостающие функции для MS-DOS и подобных ей ОС компенсировались внешними программами, предоставлявшими пользователю удобный графический интерфейс (например, Norton Commander) или средства тонкого управления дисками (например, PC Tools). Наибольшее влияние на развитие программного обеспечения для персональных компьютеров оказала операционная среда Windows компании Microsoft, представлявшая собой надстройку над MS-DOS.
Сетевые функции также реализовывались в основном сетевыми оболочками, работавшими поверх ОС. При сетевой работе всегда необходимо поддерживать многопользовательский режим, при котором один пользователь — интерактивный, а остальные получают доступ к ресурсам компьютера по сети. В таком случае от операционной системы требуется хотя бы некоторый минимум функциональной поддержки многопользовательского режима.
Иной путь выбрала компания Novell. Она изначально сделала ставку на разработку операционной системы со встроенными сетевыми функциями и добилась на этом пути выдающихся успехов. Ее сетевые операционные системы NetWare на долгое время стали эталоном производительности, надежности и защищенности для локальных сетей. Первая сетевая операционная система компании Novell появилась на рынке в 1983 году и называлась OS-Net. Эта ОС предназначалась для сетей, имевших звездообразную топологию, центральным элементом которых был специализированный компьютер на базе микропроцессора Motorola 68000. Немного позже, когда фирма IBM выпустила персональные компьютеры PC XT, компания Novell разработала новый продукт — NetWare 86, рассчитанный на архитектуру микропроцессоров семейства Intel 8088.
В 1987 году в результате совместных усилий Microsoft и IBM появилась первая многозадачная операционная система для персональных компьютеров с процессором Intel 80286, в полной мере использующая возможности защищенного режима — OS/2. Эта система была хорошо продуманна. Она поддерживала вытесняющую многозадачность, виртуальную память, графический пользовательский интерфейс (не с первой версии) и виртуальную машину для выполнения DOS-приложений. Фактически она выходила за пределы простой многозадачности с ее концепцией распараллеливания отдельных процессов, получившей название многопоточности.
Конец ХХ века. ХХI век.
В 90-е годы практически все операционные системы, занимающие заметное место на рынке, стали сетевыми. Сетевые функции сегодня встраиваются в ядро ОС, являясь ее неотъемлемой частью. В операционных системах используются средства мультиплексирования нескольких стеков протоколов, за счет которого компьютеры могут поддерживать одновременную сетевую работу с разнородными клиентами и серверами. Появились специализированные ОС, которые предназначены исключительно для выполнения коммуникационных задач.
Во второй половине 90-х годов все производители операционных систем резко усилили поддержку средств работы с Интернетом (кроме производителей UNIX-систем, в которых эта поддержка всегда была существенной). Кроме самого стека TCP/IP в комплект поставки начали включать утилиты, реализующие такие популярные сервисы Интернета, как telnet, ftp, DNS и Web. Влияние Интернета проявилось и в том, что компьютер превратился из чисто вычислительного устройства в средство коммуникаций с развитыми вычислительными возможностями.
Идея 8. Корпоративные сетевые операционные системы.
Особое внимание в течение всего последнего десятилетия уделялось корпоративным сетевым операционным системам. Их дальнейшее развитие представляет одну из наиболее важных задач и в обозримом будущем. Корпоративная oпeрационная система отличается способностью хорошо и устойчиво работать в крупных сетях, которые характерны для больших предприятий, имеющих отделения в десятках городов и, возможно, в разных странах. Корпоративная ОС беспроблемно взаимодействует с операционными системами разных типов и работает на различных аппаратных платформах. К настоящему времени достаточно явно определилась тройка лидеров в классе корпоративных ОС — это Novell NetWare, Microsoft Windows NT, а также UNIX-системы различных производителей аппаратных платформ.
Для корпоративной ОС очень важно наличие средств централизованного администрирования и управления, позволяющих в единой базе данных хранить учетные записи о десятках тысяч пользователей, компьютеров, коммуникационных устройств и модулей программного обеспечения, имеющихся в корпоративной сети. В современных операционных системах средства централизованного администрирования обычно базируются на единой справочной службе. Первой успешной реализацией справочной службы корпоративного масштаба была система StreetTalk компании Banyan. К настоящему времени наибольшее признание получила справочная служба NDS компании Novell, выпущенная впервые в 1993 году для первой корпоративной версии NetWare 4.O.
Идея 9. Безопасность.
На современном этапе развития операционных систем на передний план вышли средства обеспечения безопасности. Это связано с возросшей ценностью информации, обрабатываемой компьютерами, а также с повышенным уровнем угроз, существующих при передаче данных по сетям, особенно по публичным, таким как Интернет. Многие операционные системы обладают сегодня развитыми средствами защиты информации, основанными на шифрации данных, аутентификации и авторизации.
Идея 10. Многоплатформенность.
Современным операционным системам присуща многоплатформенностъ, то есть способность работать на совершенно различных типах компьютеров. Многие операционные системы имеют специальные версии для поддержки кластерных архитектур, обеспечивающих высокую производительность и отказоустойчивость.
Идея 11. Удобства работы человека с компьютером.
В последние годы получила дальнейшее развитие долговременная тенденция повышения удобства работы человека с компьютером. Эффективность работы человека становится основным фактором, определяющим эффективность вычислительной системы в целом. Постоянно повышается удобство интерактивной работы с компьютером путем включения в операционную систему развитых графических интерфейсов, использующих наряду с графикой звук и видеоизображение. Это особенно важно для превращения компьютера в терминал новой публичной сети, которой постепенно становится Интернет, так как для массового пользователя, терминал должен быть почти таким же понятным и удобным, как телефонный аппарат. Пользовательский интерфейс операционной системы становится все более интеллектуальным, направляя действия человека в типовых ситуациях и принимая за него рутинные решения.
|