Лекція Що таке операційна система? Історія операційних систем



Скачать 400.67 Kb.
Дата24.11.2016
Размер400.67 Kb.
Просмотров370
Скачиваний0
ТипКраткое содержание

Лекція 1. Що таке операційна система? Історія операційних систем.
План

  1. Понятие операционной системы и цели ее работы

  2. Компоненты компьютерной системы

  3. Классификация компьютерных систем

  4. Основные компоненты операционной системы


Краткое содержание курса

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

Набор операционных систем, рассматриваемых в курсе, очень широк. Это прежде всего ОС семейства Windows (2000, XP, 2003, Vista, 2008, 7), в том числе - Windows для встроенных систем (Windows Embedded), Windows для мобильных устройств (Windows Mobile) и Windows для облачных вычислений (Windows Azure).

Кроме того, рассматриваются популярные ОС семейства Linux, а также особенно хорошо известная автору ОС Solaris разработки Sun / Oracle, которая была для автора основным рабочим инструментом в течение 10 лет.

Рассмотрена, также популярная современная ОС для мобильных устройств Google Android.


Почему важно знать операционные системы - мнение эксперта из Microsoft

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

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

С этим компетентным мнением нельзя не согласиться.




Расцвет ОС в 2000-х гг.

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

Бесспорным лидером в данной области является корпорация Microsoft, выпустившая менее чем за 10 недавних лет целую серию ОС семейства Windows: Windows XP, Windows 2003, Windows Vista (2007), Windows 2008, Windows 2008 High-Performance Computing (HPC), Windows 7.

Развиваются также диалекты ОС Linux (Red Hat, Fedora, Mandrake, Ubuntu, SuSE и др.- сотни диалектов). Linux - операционная система типа UNIX, ядро которой свободно распространяется с исходными кодами.

Фирма Sun (в 2010 г. вошедшая в состав фирмы Oracle) разрабатывает и выпускает ОС Solaris - одну из наиболее современных ОС типа UNIX с развитой поддержкой параллельного программирования, новыми видами файловых систем, отличающуюся своей повышенной надежностью.

Это лишь некоторые ОС, которым в данном курсе будет уделено значительное внимание. Существует также много других операционных систем. В США и Канаде, как известно, весьма популярны компьютеры семейства Macintosh фирмы Apple (коротко - Mac) со своей операционной системой MacOS, являющейся законодателем мод в области графических пользовательских интерфейсов (GUI) и обмена мультимедийной информацией (например, речевого ввода). Назовем также ОС фирмы IBM для суперкомпьютеров и компьютеров общего назначения (mainframes).

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

Корпорация Microsoft положила начало этому движению в 2003 г., когда была объявлена академическая программа Windows Embedded Shared Source - был открыт исходный код Windows для встроенных систем. А в 2006 г. произошло и вовсе невероятное доселе в программистском мире событие - Microsoft открыла "святую святых", исходный код ядра ОС Windows семейства NT (NT|2000|XP|2003|2008|7) и предоставила в распоряжение университетов и академических организаций Windows Research Kernel (WRK) - самодокументированный исходный код "исследовательского" ядра Windows. Теперь каждый студент, преподаватель и исследователь имеют возможность изучать систему Windows "изнутри" и даже развивать ее, но только для целей обучения и исследований, а не для коммерции.

Фирма Sun (ныне - Oracle) положила начало аналогичной инициативе для ОС Solaris - несколько лет назад был начат проект OpenSolaris. Результаты этого академического проекта используются при выпуске новых версий коммерческой ОС Solaris.

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

Также интенсивно развиваются ОС для мобильных устройств. Еще несколько лет назад наиболее используемыми ОС в этой области были ОС семейства Symbian. Однако сейчас ОС Microsoft Windows Mobile и Google Android активно теснят Symbian с рынка.

ОС для облачных вычислений - принципиально новый вид ОС, отражающий современную тенденцию к организации вычислений как облачных (cloud computing). Облако - это метафора Интернета. При облачных вычислениях пользователь со своего компьютера получает платный доступ через Интернет к Web- сервисам, работающим на компьютерах мощных центров обработки данных (например, на серверах Microsoft). При этом не только используемое программное обеспечение (в виде набора Web-сервисов), но и сами обрабатываемые данные пользователя хранятся на серверах "облачного" центра обработки данных. На своем компьютере пользователь имеет лишь простой и удобный и не требующий больших ресурсов "облачный" Web-интерфейс. Наиболее распространенной ОС для облачных вычислений является в настоящее время Microsoft Windows Azure.

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

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


Понятие операционной системы и цели ее работы

После краткого вводного обзора перейдем к основным понятиям и их определениям. Прежде всего, дадим определение операционной системы.



Операционная система (ОС, в англоязычном варианте - operating system) -

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



Основные цели работы операционной системы следующие.

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

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

  3. Обеспечение удобства, эффективности, надежности, безопасности использования сетевых, дисковых и других внешних устройств, подключенных к компьютеру. Особая функция операционной системы, без которой невозможно использовать компьютер, - это работа с внешними устройствами. Например, ОС обрабатывает любое обращение к жесткому диску, обеспечивая работу соответствующего драйвера (низкоуровневой программы для обмена информацией с диском) и контроллера (специализированного процессора, выполняющего команды ввода-вывода с диском). Любая "флэшка", вставленная в USB-слот компьютера, распознается операционной системой, получает свое логическое имя (в системе Windows - в виде буквы, например, G) и становится частью файловой системы компьютера на все время, пока она не будет извлечена (демонтирована).

  4. Подчеркнем особую важность среди функций современных ОС обеспечения безопасности, надежности и защиты данных. Следует учитывать, что компьютер и операционная система работают в сетевом окружении, в котором постоянно возможны и фактически происходят атаки хакеров и их программ, ставящие своей целью нарушение работы компьютера, "взлом" конфиденциальных данных пользователя, хранящихся на нем, похищение логинов, паролей, использование компьютера как "робота" для рассылки реклам или вирусов и др. В связи с этим в 2002 г. фирма Microsoft объявила инициативу по надежным и безопасным вычислениям (trustworthy computing initiative), целью которой является повышение надежности и безопасности всего программного обеспечения, прежде всего - операционных систем. В данном курсе мы будем подробно останавливаться на том, какие действия по обеспечению надежности, безопасности и защите данных предпринимают современные ОС.


Компоненты компьютерной системы

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



  1. Аппаратура (hardware) компьютера, основные части которой - центральный процессор (Central Processor Unit - CPU), выполняющий команды (инструкции) компьютера; память (memory), хранящая данные и программы, и устройства ввода- вывода, или внешние устройства (input-output devices, I/O devices), обеспечивающие ввод информации в компьютер и вывод результатов работы программ в форме, воспринимаемой пользователем- человеком или другими программами. Часто на программистском сленге аппаратуру называют "железом".

  2. Операционная система (operating system) - основной предмет нашего курса; системное программное обеспечение, управляющее использованием аппаратуры компьютера различными программами и пользователями.

  3. Прикладное программное обеспечение (applications software) - программы, предназначенные для решения различных классов задач. К ним относятся, в частности, компиляторы, обеспечивающие трансляцию с программ с языков программирования, например, C++, в машинный код (команды); системы управления базами данных (СУБД); графические библиотеки, игровые программы, офисные программы. Прикладное программное обеспечение образует следующий, более высокий уровень, по сравнению с операционной системой, и позволяет решать на компьютере различные прикладные и повседневные задачи.

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

Девизом фирмы Sun Microsystems еще в 1982 г., при ее создании, стал афоризм "The network is the computer" (Сеть - это компьютер). Эту истину следует помнить всем пользователям компьютеров и их операционных систем и шире использовать возможности компьютерных сетей, распределяя различные функции между ее различными компьютерами (или хостами - hosts, как на компьютерном сленге принято называть компьютеры в сети). Изолированный от сети компьютер ныне - это "каменный век". Отсюда - неразрывная связь операционных систем и сетей.


Рис. 1.1. Общая картина функционирования компьютерной системы
Общая картина функционирования компьютерной системы

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

Классификация компьютерных систем

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



Суперкомпьютеры (super-computers) - мощные многопроцессорные компьютеры, наиболее современные из которых имеют производительность до нескольких petaflops (1015 вещественных операций в секунду; аббревиатура flops расшифровывается как floating-point operations per second). Пример - суперкомпьютер "Ломоносов", установленный в МГУ. Суперкомпьютеры используются для вычислений, требующих больших вычислительных мощностей, сверхвысокой производительности и большого объема памяти. В реальной практике это прежде всего задачи моделирования - например, моделирования климата в регионе и прогнозирования на основе построенной модели погоды в данном регионе на ближайшие дни. Особенностью суперкомпьютеров является их параллельная архитектура - как правило, все они являются многопроцессорными. Соответственно, ОС для суперкомпьютеров должны поддерживать распараллеливание решения задач и синхронизацию параллельных процессов, одновременно решающих подзадачи некоторой программы.

Многоцелевые компьютеры, или компьютеры общего назначения (mainframes)

  • традиционное историческое название для компьютеров, распространенных в 1950-х - 1970-х гг., еще до эпохи всеобщего распространения персональных компьютеров. Именно для mainframe-компьютеров создавались первые ОС. Типичные примеры таких компьютеров: IBM 360/370; из отечественных - М-220, БЭСМ-6. На таких компьютерах решались все необходимые задачи - от расчета зарплаты сотрудников в организации до расчета траекторий космических ракет. Подобный компьютер выглядел достаточно неуклюже и громоздко и мог занимать целый большой зал. Вспомните, например. огромный компьютер HAL на космическом корабле в фантастическом фильме 1960-х гг. Стэнли Кубрика "Космическая одиссея 2001 г." Но никакие фантасты не смогли предвидеть прогресса компьютерной техники XXI века - прежде всего, того, что мощный компьютер будет не занимать целую комнату, а помещаться в небольшом ящике. Параметры ранних mainframe-компьютеров были весьма скромными: быстродействие - несколько тысяч операций в секунду, оперативная память - несколько тысяч ячеек (слов). Недостаточно удобным был пользовательский интерфейс (интерактивное взаимодействие с компьютерами было реализовано гораздо позже, в 1960-х гг.). Тем не менее, на таких компьютерах решались весьма серьезные задачи оборонного и космического назначения. С появлением персональных и портативных компьютеров классические mainframe-компьютеры ушли в прошлое. Однако следует подчеркнуть, что в именно в операционных системах для mainframe-компьютеров были реализованы все основные методы и алгоритмы, рассмотренные в данном курсе, которые впоследствии были использованы в ОС для персональных, карманных компьютеров и мобильных устройств.

Кластеры компьютеров (computer clusters) - группы компьютеров, физически расположенные рядом и соединенные друг с другом высокоскоростными шинами и линиями связи. Кластеры компьютеров используются для высокопроизводительных параллельных вычислений. Наиболее известны в мире компьютерные кластеры, расположенные в исследовательском центре CERN (Швейцария) - том самом, где находится большой адронный коллайдер. Как правило, компьютерные кластеры располагаются в исследовательских институтах и в университетах, в том числе, например, в Петродворцовом учебно-научном комплексе СПбГУ они используются в Петродворцовом телекоммуникационном центре (ПТЦ), на нашем математикомеханическом и на физическом факультетах. Операционная система для кластеров должна, помимо общих возможностей, предоставлять средства для конфигурирования кластера, управления компьютерами (процессорами), входящими в него, распараллеливания решения задач между компьютерами кластера и мониторинга кластерной компьютерной системы. Примерами таких ОС являются ОС фирмы Microsoft

  • Windows 2003 for clusters; Windows 2008 High-Performance Computing (HPC).

Настольные компьютеры (desktops) - это наиболее распространенные в настоящее время компьютеры, которыми пользуются дома или на работе все люди, от школьников и студентов до домашних хозяек. Такой компьютер размещается на рабочем столе и состоит из монитора, системного блока, клавиатуры и мыши. Параметры современного (2010 г.) настольного компьютера, наиболее приемлемые для использования современных ОС: быстродействие процессора 1 - 3 ГГц, оперативная память - 1 - 8 гигабайт и более, объем жесткого диска (hard disk drive - HDD) - 200 Гб - 1 Тб и более (1 терабайт, Тб = 1024 Гб). Все разнообразие современных операционных систем (Windows, Linux и др.) - к услугам пользователей настольных компьютеров. При необходимости на настольном компьютере можно установить две или более операционных системы, разделив его дисковую память на несколько разделов (partitions) и установив на каждый из них свою операционную систему, так что при включении компьютера пользователю предоставляется стартовое меню, из которого он выбирает нужную операционную систему для загрузки.

Портативные компьютеры (laptops, notebooks - дословно "компьютеры, помещающиеся на коленях"; "компьютеры-тетрадки") - это миниатюрные компьютеры, по своим параметрам не уступающие настольным, но по своим размерам свободно помещающиеся в небольшую сумку или рюкзак или, например, на коленях пользователя, летящего в самолете в командировку и не желающего терять времени даром. Ноутбуки стоят обычно в несколько раз дороже, чем настольные компьютеры с аналогичными характеристиками. На ноутбуках используются те же операционные системы, что и для настольных компьютеров (например, Windows или MacOS). Характерными чертами портативных компьютеров являются всевозможные встроенные порты и адаптеры для беспроводной связи: Wi-Fi (официально IEEE 802.11)

  • вид радиосвязи, позволяющая работать в беспроводной сети с производительностью 10-100 мегабит в секунду (используется обычно на конференциях, в гостиницах, на вокзалах, аэропортах - т.е. в зоне радиусом в несколько сотен метров от источника приема-передачи); Bluetooth - также радиосвязь на более коротких расстояниях (10 - 100 м для Bluetooth 3.0), используемая для взаимодействия компьютера с мобильным телефоном, наушниками, плейером и др. Внешние устройства (дополнительные жесткие диски, принтеры, иногда даже DVD-ROM) подключаются к ноутбуку через порты USB. Еще лет 10 назад на ноутбуках активно использовались инфракрасные порты (IrDA), которые, однако, неудобны, так как требуют присутствия "ответного" IrDA - порта другого устройства на расстоянии 20-30 см от порта ноутбука, при отсутствии между ними препятствий. Другая характерная черта ноутбуков - это наличие кард-ридеров - портов для чтения всевозможных карт памяти, используемых в мобильных телефонах или цифровых фотокамерах; обеспечивается также интерфейс FireWire (официально - IEEE 1394) для подключения цифровой видеокамеры; таким образом, ноутбуки хорошо приспособлены для ввода, обработки и воспроизведения обработки мультимедийной информации. Ныне портативный компьютер имеется почти у каждого студента, что они и используют для подготовки к ответу на экзамене, либо для решения задач практикума, иногда прямо в университетском буфете. Один из критических параметров ноутбука - время работы его батарей без подзарядки; очень хорошо, если это время составляет порядка 10 часов, что пока сравнительно редко; на компьютерах, используемых автором, это время составляет не более 5 часов. Популярная разновидность ноутбука ныне - это нетбук - ноутбук, предназначенный для работы в сети, обычно менее мощный и поэтому более дешевый, а также более миниатюрный.

Карманные портативные компьютеры и органайзеры (КПК, handhelds, personal digital assistants - PDA) - это "игрушки для взрослых" в виде миниатюрного компьютера, помещающегося на ладони или в кармане, но по своему быстродействию иногда не уступающего ноутбуку. При всей привлекательности, серьезные недостатки КПК, с точки зрения автора, - это неудобство ввода информации (приходится пользоваться палочкой-стайлусом, - ведь не носить же с собой еще и громоздкую клавиатуру, - либо микроскопической выдвижной клавиатурой, на которой фактически тем же стайлусом только и можно работать), а также неудобство чтения информации на маленьком экране. Автор уже "наигрался" в подобные КПК, - например, типа PalmPilot,

  • предпочитает пользоваться ноутбуками, а самым надежным органайзером считает ... небольшой бумажный блокнот. Однако молодежь приглашается к этой увлекательной интересной игре - через все в жизни нужно пройти. Современные КПК имеют фактически те же порты и адаптеры, что и ноутбуки - Wi-Fi, Bluetooth, IrDA, USB. Операционные системы для КПК аналогичны ОС для ноутбуков, но все же учитывают более жесткие ограничения КПК по объему оперативной памяти. В настоящее время для КПК широко используется ОС Windows Mobile - аналог Windows для мобильных устройств. До недавнего времени была также широко распространена PalmOS для органайзеров типа PalmPilot фирмы 3COM. Разумеется, для КПК имеется аппаратура и программное обеспечение для подключения к ноутбуку или настольному компьютеру с целью синхронизации данных, что обеспечивает дополнительную надежность.

Мобильные устройства (mobile intelligent devices - мобильные телефоны, коммуникаторы) - это устройства, которыми каждый из нас пользуется постоянно для голосовой связи, реже - для записи или обработки какой-либо информации или для выхода в Интернет. С точки зрения автора, наиболее важные параметры мобильного устройства - это по-прежнему качество голосовой связи и время автономной работы батареи. Однако все большее значение приобретают встроенные в них цифровые фото- и видеокамеры. Операционные системы для мобильных устройств отличаются большей компактностью, ввиду более жестких ограничений по памяти (например, собственная память, не расширенная SmartMedia-картой, у используемого автором с 2006 г. мобильного телефона Nokia 3230, кстати, с неплохой встроенной фотокамерой - всего 30 мегабайт). Эпоха доминирования на рынке мобильных телефонов операционных систем типа Symbian, видимо, заканчивается, и они уступают место более современным и обеспечивающим лучший пользовательский интерфейс ОС Google Android и Microsoft Windows Mobile. Для мобильных устройств, как и для КПК, весьма важная характеристика ОС - это ее надежность, в частности, сохранность данных после переполнения памяти, возникающего, например, в результате приема большого числа SMS-сообщений, интенсивной фото- или видеосъемки. К сожалению, ОС Symbian, по опыту автора, ведет себя в этом отношении недостаточно надежно: при приеме "лишнего" SMS-сообщения, не помещающегося в память телефона, он ... блокируется с жалобным сообщением "Memory full", после чего приходится вручную отключать и включать телефон и таким образом перезагружать ОС (к сожалению, SMS-ка, переполнившая чашу терпения ОС, при этом пропадает). С этой точки зрения, ОС для мобильных устройств нуждаются в дальнейшем совершенствовании. Что касается прочего программного обеспечения для мобильных телефонов (игр, утилит, прикладных программ и др.), то при их разработке доминирует Java-технология - одна из постоянных областей научных интересов автора. Изучить основы Java Вы можете, например, по книге автора "Введение в Java-технологию" или по его Интернет-курсу, опубликованному на русском сайте Sun / Oracle. В мобильных телефонах используется платформа ("издание") JME - Java Micro Edition, и любой мобильный телефон, выпускаемый вот уже в течение вот уже более 10 лет, поддерживает Java. Программы на Java для мобильных телефонов называются мидлетами (от аббревиатуры MID - Mobile Intelligent Device).

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

Распределенные системы (distributed systems) - это системы, состоящие из нескольких компьютеров, объединенных в проводную или беспроводную сеть. Фактически, таковы ныне все компьютерные системы (вспомните девиз "Сеть - это компьютер"). Все операционные системы должны, таким образом поддерживать распределенный режим работы, средства сетевого взаимодействие, высокоскоростную надежную передачу информации через сеть. Все эти вопросы подробно рассмотрены в данном курсе.

Системы реального времени (real-time systems) - вычислительные системы, предназначенные для управления различными техническими, военными и другими объектами в режиме реального времени. Характеризуются основным требованием к аппаратуре и программному обеспечению, в том числе к операционной системе: недопустимость превышения времени ответа системы, т.е. ожидаемого времени выполнения типичной операции системы. Для ОС требования реального времени накладывают весьма жестких ограничения - например, в основном цикле работы системы недопустимы прерывания (так как они приводят к недопустимым временным затратам на их обработку). Системы реального времени - особая весьма серьезная и специфическая область, изучение которой выходит за рамки данного курса.

Приведенный обзор дает некоторое представление о разнообразии компьютерных систем в наше время. Для каждой из них должна быть разработана адекватная операционная система.




Основные компоненты операционной системы

Рассмотрим теперь основные части ОС.



Ядро (kernel) - низкоуровневая основа любой операционной системы, выполняемая аппаратурой в особом привилегированном режиме (подробно о нем речь в

следующей лекции). Ядро загружается в память один раз и находится в памяти резидентно - постоянно, по одним и тем же адресам.

Подсистема управления ресурсами (resource allocator) - часть операционной системы, управляющая вычислительными ресурсами компьютера - оперативной и внешней памятью, процессором и др.

Управляющая программа (control program, supervisor) - подсистема ОС, управляющая исполнением других программ и функционированием устройств ввода- вывода.


Ключевые термины

Внешние устройства - см. Устройства ввода-вывода

Гибридный процессор - новый, все шире распространяющийся подход к архитектуре компьютеров, при котором процессор имеет гибридную структуру - состоит из (многоядерного) центрального процессора (CPU) и (также многоядерного) графического процессора (GPU - Graphical Processor Unit).

Инициатива по надежным и безопасным вычислениям (trustworthy computing initiative) - инициатива корпорации Microsoft (2002), целью которой является повышение надежности и безопасности программного обеспечения, прежде всего - операционных систем.

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

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

Многоцелевые компьютеры (компьютеры общего назначения, mainframes) -



традиционное историческое название для компьютеров, распространенных в 1950-х - 1970-х гг., использовавшихся для решения любых задач.

Многоядерный компьютер (multi-core computer) - наиболее распространенная в настоящее время (2010 г.) архитектура компьютеров, при которой каждый процессор имеет несколько ядер (cores), объединенных в одном кристалле и параллельно работающих на одной и той же общей памяти, что дает широкие возможности для параллельных вычислений.

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

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

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

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

Память - часть компьютера, хранящая данные и программы.

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

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

Прикладное программное обеспечение - программы, предназначенные для решения различных классов задач.

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

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

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

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



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

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

Центральный процессор - центральная часть компьютера, выполняющая его команды (инструкции)

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


Краткие итоги

В настоящее время наблюдается бурное развитие операционных систем (Windows, Linux, Solaris, MacOS и др.) , в том числе - с открытым исходным кодом (Windows Research Kernel, Linux, OpenSolaris и др.).

По мнению Дэвида Проберта (менеджера Microsoft по развитию Windows), Знание ОС способствует становлению зрелого мышления программиста и хорошему знанию сетевых технологий и протоколов, виртуальных машин, методов современного программирования.

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

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

(trustworthy computing) фирмы Microsoft.

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

Компьютерные системы очень разнообразны по своему назначению и по архитектуре.

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

Основные архитектуры компьютеров: CISC, RISC, VLIW, EPIC, многоядерные компьютеры, компьютеры с гибридными процессорами.

Основные компоненты операционной системы: ядро, подсистема управления ресурсами, управляющая программа.


Эволюция ОС

Первый период (1945-1955)

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

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

Второй период (1955-1965)

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

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

Третий период (1965 - 1980)

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

Для этого периода характерно также создание семейств программно-совместимых машин. Первым семейством программно-совместимых машин, построенных на интегральных микросхемах, явилась серия машин IBM/360. Построенное в начале 60-х годов это семейство значительно превосходило машины второго поколения по критерию цена/произ-водительность. Вскоре идея программно-совместимых машин стала общепризнанной.

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

Однако, несмотря на необозримые размеры и множество проблем, OS/360 и другие ей подобные операционные системы машин третьего поколения действительно удовлетворяли большинству требований потребителей. Важнейшим достижением ОС данного поколения явилась реализация мультипрограммирования. Мультипрограммирование - это способ организации вычислительного процесса, при котором на одном процессоре попеременно выполняются несколько программ. Пока одна программа выполняет операцию ввода-вывода, процессор не простаивает, как это происходило при последовательном выполнении программ (однопрограммный режим), а выполняет другую программу (многопрограммный режим). При этом каждая программа загружается в свой участок оперативной памяти, называемый разделом.

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

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

Четвертый период (1980 - настоящее время)

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

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

На рынке операционных систем доминировали две системы: MS-DOS и UNIX. Однопрограммная однопользовательская ОС MS-DOS широко использовалась для компьютеров, построенных на базе микропроцессоров Intel 8088, а затем 80286, 80386 и 80486. Мультипрограммная многопользовательская ОС UNIX доминировала в среде "не-интеловских" компьютеров, особенно построенных на базе высокопроизводительных RISC-процессоров.

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



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

Каталог: wp-content -> uploads -> 2016
2016 -> Государственное областное бюджетное
2016 -> В. П. Зинченко писал о том, что если человек в детстве не дополучил некую норму участия в игровом времяпрепровождении, он приобретает социально-психологическую ущербность вроде «игровой дистрофии», которую в последу
2016 -> Общешкольное родительское собрание «Об ответственности родителей за воспитание детей»
2016 -> 1 июня 2016 года Международный день защиты детей 1 июня
2016 -> «Формирование социально-нравственной позиции дошкольников посредством введения сказочных сюжетов в компьютерные дидактические игры»
2016 -> Принята Утверждена
2016 -> Конкурс по разработке компьютерных игр патриотической направленности «патриот by»


Поделитесь с Вашими друзьями:


База данных защищена авторским правом ©nethash.ru 2019
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал