Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

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

Работа добавлена на сайт samzan.net:


1. Лекция: Понятие операционной системы (ОС), цели ее работы. Классификация компьютерных систем

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

Содержание

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

Введение

Данный курс познакомит Вас с основами современных операционных систем и сетевых технологий и научит их практически использовать.

Комментарии к списку литературы

Список литературы по курсу приведен в конце данной лекции.

Вот некоторые комментарии к этому списку.

Книга [1] классический учебник по ОС Йельского университета (США). Некоторые материалы презентаций к этому курсу использованы при подготовке презентаций моего курса, за что автор выражает признательность коллегам из Йельского университета.

Книги [2], [3] профессора Эндрю Таненбаума входят в "золотой фонд" современной учебной литературы по ИТ. Настоятельно рекомендую их студентам в качестве основной литературы по моему курсу.

Учебник [4] представляет классическую литературу по ОС прошлых лет (1970-х гг.). Несмотря на свой возраст, он является фундаментальной работой, одной из лучших книг по операционным системам, материал которой не устарел и по сей день.

Книги [5], [6], [8], [9] посвящены некоторым конкретным современным операционным системам – Windows, Linux, MacOS.

Книга [7] уникальна, так как является первой книгой по внутренней архитектуре Windows. Она написана специалистами, несколько лет работавшими совместно с подразделением разработки Windows в Microsoft (один из ее авторов стал сотрудником Microsoft).

Рекомендую для использования также материалы своих курсов по ОС в электронном виде на русском и английском языках [10], [11].

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

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

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

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

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

Современность курса нашла свое выражение также в рассматриваемых сетевых протоколах. Рассмотрена не только классическая 8-уровневая модель сетевых протоколов ISO / OSI, но и некоторые современные протоколы, например, Wi-Fi, GPRS, EVDO, SIMPLE/SIP.

Почему важно знать операционные системы – мнение эксперта из 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) – вычислительные системы, предназначенные для управления различными техническими, военными и другими объектами в режиме реального времени. Характеризуются основным требованием к аппаратуре и программному обеспечению, в том числе к операционной системе: недопустимость превышения времени ответа системы, т.е. ожидаемого времени выполнения типичной операции системы. Для ОС требования реального времени накладывают весьма жестких ограничения – например, в основном цикле работы системы недопустимы прерывания (так как они приводят к недопустимым временным затратам на их обработку). Системы реального времени – особая весьма серьезная и специфическая область, изучение которой выходит за рамки данного курса.

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

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

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

CISC (Complicated Instruction Set Computers – компьютеры с усложненной системой команд) – исторически первый подход к компьютерной архитектуре, суть которого в том, что в систему команд компьютера включаются сложные по семантике операции, реализующие типовые действия, часто используемые при программировании и при реализации языков – например, вызов рекурсивных процедур и автоматическое обновление дисплей-регистров, групповые операции пересылки строк и массивов и др. Типичными представителями CISC-компьютеров были: из зарубежных компьютерных систем – машины серии IBM 360/370, из отечественных – многопроцессорные вычислительные комплексы (МВК) "Эльбрус". В IBM 360, например, была реализована команда MVC (move characters), которая выполняла пересылку массива символов (строки) из одной области памяти в другую, причем адреса источника, получателя и длина пересылаемой строки задавались в регистрах. В "Эльбрусе" был аппаратно реализован в общем виде вход в процедуру с передачей через стек параметров, обновлением дисплей-регистров, указывающих на доступные процедуре области локальных данных. Другой пример – в "Эльбрусе" команда считывания в стек значения по заданному адресу осуществляла автоматический проход "косвенной цепочки" заранее не известной длины – если значение оказывалось также адресом, то происходило считывание в стек значения по нему и т.д., до тех пор, пока считанная в стек величина не окажется значением, а не адресом. С одной стороны, понятно стремление авторов CISC-архитектур сделать аппаратуру как можно более "умной". С другой стороны, жесткое "вшивание" сложных алгоритмов выполнения команд в "железо" приводило к тому, что аппаратура исполняла каждый раз некоторый общий алгоритм команды, требовавший десятков или даже сотен тактов процессора, но как-либо оптимизировать выполнение этих команд с использованием конкретной информации о длине строки, косвенной цепочки и т.д. возможности не было. Другой недостаток CISC-архитектур в том, что подобные групповые операции на время их выполнения фактически останавливали работу конвейера (pipeline) - реализованной в любой компьютерной архитектуре аппаратной оптимизации, параллельного выполнения нескольких соседних команд при условии их независимости друг от друга по данным.

RISC (Reduced Instruction Set Computers – компьютеры с упрощенной системой команд) – упрощенный подход к архитектуре компьютеров, предложенный в начале 1980-х гг. профессором Дэвидом Паттерсоном (университет Беркли, США) и его студентом Дэвидом Дитцелом (впоследствии – крупным ученым, руководителем компании Transmeta). Примеры семейств RISC-компьютеров: SPARC, MIPS, PA-RISC, PowerPC. Принципы данного подхода: упрощение семантики команд, отсутствие сложных групповых операций (которые могут быть реализованы последовательностями команд, содержащими циклы); одинаковая длина команд (32 бита – архитектура была разработана в расчете на 32-битовые процессоры); выполнение арифметических операций только в регистрах и использование специальных команд считывания из памяти в регистр и записи из регистра в память; отсутствие специализированных регистров (например, дисплей-регистров для адресации доступных областей локальных данных в стеке); использование большого набора регистров (регистрового файла) общего назначения– 512, 1024, 2048 регистров и т.д., в зависимости от конкретной модели процессора; передача при вызове процедур параметров через регистры. Подобная архитектура дает широкий простор для оптимизаций, выполняемых компиляторами, что и демонстрируют компиляторы Sun Studio разработки фирмы Sun / Oracle для ОС Solaris и Linux. RISC-архитектура до сих пор используется при разработке новых компьютеров.

VLIW (Very Long Instruction Word – компьютеры с широким командным словом) – подход к архитектуре компьютеров, слошившийся в 1980-х – 1990-х гг. Основная идея данного подхода – статическое планирование параллельных вычислений компилятором на уровне отдельных последовательностей команд и подкоманд. При данной архитектуре каждая команда является "широкой" (long) и содержит несколько подкоманд, выполняемых параллельно за один машинный такт на нескольких однотипных устройствах процессора – например, в таком компьютере может быть два устройства сложения, два логических устройства, два устройства для выполнения переходов и т.д. Задачей компилятора является оптимальное планирование загрузки всех этих устройств в каждом машинном такте и генерация таких (широких) команд, которые позволили бы оптимально загрузить на каждом такте каждое из устройств. Достоинством такой архитектуры является возможность распараллеливания вычислений, недостатком – сложность (по сравнению с RISC-архитектурой). Примеры компьютеров таких архитектур: из зарубежных – компьютеры Cray X/MP, Cray Y/MP и др., разработанные компьютерным гением Сей муром Креем (Cray) и его фирмой Cray Research; из отечественных – многопроцессорный вычислительный комплекс "Эльбрус-3".

EPIC (Explicit Parallelism Instruction Computers – компьютеры с явным распараллеливанием) – по архитектуре аналогичны VLIW, но с добавлением ряда важных усовершенствований: например, спекулятивных вычислений – параллельного выполнения обеих веток условной конструкции с вычислением условия. Подход сложился и используется с 1990-х гг. Примеры процессоров данной архитпктуры - Intel IA-64, AMD-64.

Multi-core computers (многоядерные компьютеры) – получившая наиболее широкую популярность в настоящее время архитектура компьютеров, при которой каждый процессор имеет несколько ядер (cores), объединенных в одном кристалле и параллельно работающих на одной и той же общей памяти, что дает широкие возможности для параллельных вычислений. В настоящее время известны многоядерные процессоры фирмы Intel (Cure 2 Duo, Dual Core и др.), а также мощные многоядерные процессоры фирмы Sun / Oracle: Ultra SPARC-T1 ("Niagara") - 16-ядерный процессор; Ultra SPARC-T2 ("Niagara2") – 32-ядерный процессор. Все ведущие фирмы мира заняты разработкой и выпуском все более мощных многоядерных процессоров. Соответственно, создатели операционных систем для таких компьютеров разрабатывают базовые библиотеки программ, позволяющие в полной мере использовать возможности параллельного выполнения на многоядерных процессорах.

Hybrid processor computers (компьютеры с гибридными процессорами) – новый, все шире распространяющийся подход к архитектуре компьютеров, при котором процессор имеет гибридную структуру – состоит из (многоядерного) центрального процессора (CPU) и (также многоядерного) графического процессора (GPU – Graphical Processor Unit). Такая архитектура была разработана, в связи с необходимостью параллельной обработки графической и мультимедийной информации, что особенно актуально для компьютерных игр, просмотре на компьютере высококачественного цифрового видео и др. Гибридная архитектура является новым "интеллектуальным вызовом" для разработчиков компиляторов, которым необходимо разработать и реализовать адекватный набор оптимизаций, как для центральных, так и для графических процессоров. Примерами таких архитектур являются новые процессоры фирмы AMD, а также графические процессоры серии Tesla фирмы NVidia.

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

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

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

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

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

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

CISC (Complicated Instruction Set Computer – компьютер с усложненной системой команд) – исторически первый подход к компьютерной архитектуре, суть которого в усложненности в системы команд вследствие реализации в них сложных по семантике операций, реализующие типовые действия, часто используемые при программировании и при реализации языков (например, групповая пересылка строк).

EPIC (Explicit Parallelism Instruction Computers – компьютеры с явным распараллеливанием команд) – подход к архитектуре компьютера, аналогичный VLIW, но с добавлением ряда усовершенствований, например, спекулятивных вычислений – параллельного выполнения обеих веток условной конструкции с вычислением условия.

RISC (Reduced Instruction Set Computer – компьютер с упрощенной системой команд) – упрощенный подход к архитектуре компьютеров, характеризующийся следующими принципами: упрощение семантики команд; отсутствие сложных групповых операций; одинаковая длина команд (32 или 64 бита, по размеру машинного слова); выполнение арифметических операций только в регистрах и использование  специальных команд записи и считывания регистр память; отсутствие специализированных регистров; использование большого набора регистров общего назначения (регистрового файла); передача при вызове процедур параметров через регистры.

VLIW (Very Long Instruction Word – компьютеры с широким командным словом) – подход к архитектуре компьютеров, основанный на следующих принципах: статическое планирование параллельных вычислений компилятором на уровне отдельных последовательностей команд и подкоманд.; представление команды как "широкой" - содержащей несколько подкоманд, выполняемых параллельно за один и тот же машинный такт на нескольких однотипных устройствах процессора – например, двух устройствах сложения и двух логических устройствах.

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

Гибридный процессор – новый, все шире распространяющийся подход к архитектуре компьютеров, при котором процессор имеет гибридную структуру – состоит из (многоядерного) центрального процессора (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, многоядерные компьютеры, компьютеры с гибридными процессорами.

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

Набор для практики

Вопросы

  1.  Назовите наиболее распространенные операционные системы, в том числе – с открытым исходным кодом.
  2.  Дайте определение операционной системы.
  3.  Каковы цели работы операционной системы?
  4.  Назовите компоненты компьютерной системы (включая программное обеспечение и пользователей).
  5.  Назовите основные виды компьютерных систем, различающиеся по своему назначению и параметрам.
  6.  Назовите основные архитектуры компьютерных систем и кратко определите, в чем суть каждой из них.
  7.  Каковы основные компоненты операционной системы?

Темы для курсовых работ, рефератов, эссе

  1.  Краткий обзор современных операционных систем (реферат).
  2.  Классификация современных компьютерных систем (реферат).
  3.  Обзор современных компьютерных архитектур (реферат).




1. Учет расчетов с бюджетом по налогам коммерческих банков
2. Тема- составление квартального финансового плана предприятия ОАО
3. закреплена в кодексе Наполеона 1804; собственность священа неприкосновенна едина и неделима
4. виникнення електричних зарядів які можуть утримуватись на поверхні цих тіл протягом тривалого часу
5. Статья- Принципы формирования капитала предприятия
6. це комплекс заходів ЦЗ по запобіганню й послабленню впливу на людей радіоактивного випромінювання отруйни
7. тема сохранения жизни и здоровья работников в процессе трудовой деятельности включающая в себя правовые со
8. Введение в экономическую теорию Экономическая теория ~ совокупность знаний об экономических явлениях и пр
9. Б классе. Учитель первой квалификационной категории школы имени К
10. Образование как социальный институт Образование это профессионально организованный процесс приоб
11. 10 5 КЛАССИФИКАЦИЯ СРЕДСТВ ДЕЙСТВУЮЩИХ НА ЭФФЕРЕНТНЫЙ ОТДЕЛ НЕРВНОЙ СИСТЕМЫ ХОЛИНЕРГИЧЕСКИЕ СРЕДСТВА
12. А~ это средство получения цельного знания о хозяйственной деятельности знаний о бизнесе понимания деятель
13. Реферат- Туристические ресурсы Алтая
14. Реферат на тему- НОРМИ СУЧАСНОЇ УКРАЇНСЬКОЇ МОВИ У СПІЛКУВАННІ Процес спілкування
15. юношескую спортивную школу в городе Ачинске для одновременного нахождения 150 человек
16. комплекс общественных наук изучающих искусство художественную культуру общества в целом отдельные виды
17. х годах до 17 в 2010 но абсолютные показатели определяют его ежегодное увеличение примерно на 20 млн
18. волновой природе частиц вещества для описания микрочастиц используются то волновые то корпускулярные пред
19. х гг Нашествия 1й пол
20. военному коммунизму была провозглашена Ленинской резолюцией X съезда РКПб в марте 1921 г