Logo GenDocs.ru

Поиск по сайту:  

Загрузка...

Лекции - Операционные системы, среды и оболочки - файл 1.doc


Лекции - Операционные системы, среды и оболочки
скачать (172.5 kb.)

Доступные файлы (1):

1.doc173kb.09.12.2011 02:41скачать

содержание

1.doc

1. Предпосылки появления первых ОС.

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

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

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

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

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

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

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

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

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

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

К этому времени можно констатировать существенное изменение в распределении функций между аппаратными и программными средствами компьютера. Операционные системы становились неотъемлемыми элементами компьютеров, играя роль «продолжения» аппаратуры.

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

В начале 70-х годов появились первые сетевые операционные системы, которые в отличие от многотерминальных ОС позволяли не только рассредоточить пользователей, но и организовать распределенное хранение и обработку данных между несколькими компьютерами, связанными электрическими связями. В 1969 году Министерство обороны США инициировало работы по объединению суперкомпьютеров оборонных и научно-исследовательских центров в единую сеть. Эта сеть получила название ARPANET и явилась отправной точкой для создания самой известной ныне глобальной сети — Интернета. Сеть ARPANET объединяла компьютеры разных типов, работавшие под управлением различных ОС с добавленными модулями, реализующими коммуникационные протоколы, общие для всех компьютеров сети. В 1974 году компания IBM объявила о создании собственной сетевой архитектуры для своих мэйнфреймов, получившей название SNA (System Network Architecture). Эта многоуровневая архитектура, во многом подобная стандартной модели OSI, появившейся несколько позже, обеспечивала взаимодействие типа «терминал-терминал», «терминал-компьютер» и «компьютер-компьютер» по глобальным связям.

^ 3. ОС миникомпьютеров.

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

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

Доступность мини-компьютеров и вследствие этого их распространенность на предприятиях послужили мощным стимулом для создания локальных сетей. Предприятие могло себе позволить иметь несколько мини-компьютеров, находящихся в одном здании или даже в одной комнате. Естественно, возникала потребность в обмене информацией между ними и в совместном использовании дорогого периферийного оборудования. Первые локальные сети строились с помощью нестандартного коммуникационного оборудования, в простейшем случае — путем прямого соединения последовательных портов компьютеров. Программное обеспечение также было нестандартным и реализовывалось в виде пользовательских приложений. Первое сетевое приложение для ОС UNIX — программа UUCP — появилась в 1976 году и начала распространяться с версией 7 AT&T UNIX с 1978 года. Эта программа позволяла копировать файлы с одного компьютера на другой в пределах локальной сети через различные аппаратные интерфейсы.
^ 4. ОС в 80-е годы.

К наиболее важным событиям этого десятилетия можно отнести разработку стека TCP/IP, становление Интернета, стандартизацию технологий локальных сетей, появление персональных компьютеров и операционных систем для них. Рабочий вариант стека протоколов TCP/IP был создан в конце 70-х годов. В 1983 году стек протоколов TCP/IP был принят Министерством обороны США в качестве военного стандарта. Внедрение протоколов TCP/IP в ARPANET придало этой сети все основные черты, которые отличают современный Интернет. Для обозначения составной сети ARPANET и MILNET стало использоваться название Internet, которое в русском языке со временем превратилось в Интернет. Интернет стал отличным полигоном для испытаний многих сетевых операционных систем, позволившим проверить в реальных условиях возможности их взаимодействия.

Все десятилетие было отмечено постоянным появлением новых, все более совершенных версий ОС UNIX. Среди них были и фирменные версии UNIX: SunOS, HP-UX, Irix, AIX и многие другие, в которых производители компьютеров адаптировали код ядра и системных утилит для своей аппаратуры.

Начало 80-х годов связано с еще одним знаменательным для истории операционных систем событием — появлением персональных компьютеров. Компьютеры стали широко использоваться неспециалистами, что потребовало разработки «дружественного» программного обеспечения, и предоставление этих «дружественных» функций стало прямой обязанностью операционных систем.

^ Первая версия наиболее популярной операционной системы раннего этапа развития персональных компьютеров — MS-DOS компании Microsoft. Это была однопрограммная однопользовательская ОС с интерфейсом командной строки, способная стартовать с дискеты. Основными задачами для нее были управление файлами, расположенными на гибких и жестких дисках в UNIX-подобной иерархической файловой системе, а также поочередный запуск программ. MS-DOS не была защищена от программ пользователя. Недостающие функции для MS-DOS и подобных ей ОС компенсировались внешними программами, предоставлявшими пользователю удобный графический интерфейс или средства тонкого управления диска. Наибольшее влияние на развитие программного обеспечения для персональных компьютеров оказала операционная среда Windows компании Microsoft, представлявшая собой надстройку над MS-DOS. Сетевые функции также реализовывались в основном сетевыми оболочками, работавшими поверх ОС. При сетевой работе всегда необходимо поддерживать многопользовательский режим, при котором один пользователь — интерактивный, а остальные получают доступ к ресурсам компьютера по сети. Вместе с выпуском версии MS-DOS 3.1 в 1984 году компания Microsoft также выпустила продукт, называемый Microsoft Networks, который обычно неформально называют MS-NET.

В 1987 году в результате совместных усилий Microsoft и IBM появилась первая многозадачная операционная система для персональных компьютеров с процессором Intel 80286, в полной мере использующая возможности защищенного режима — OS/2. Она поддерживала вытесняющую многозадачность, виртуальную память, графический пользовательский интерфейс и виртуальную машину для выполнения DOS-приложений. OS/2 с ее развитыми функциями многозадачности и файловой системой HPFS со встроенными средствами многопользовательской защиты оказалась хорошей платформой для построения локальных сетей персональных компьютеров. Сетевые разработки компаний Microsoft и IBM привели к появлению NetBIOS — транспортного протокола и одновременно интерфейса прикладного программирования для локальных сетей, получившего применение практически во всех сетевых операционных системах для персональных компьютеров.

В 80-е годы были приняты основные стандарты на коммуникационные технологии для локальных сетей: в 1980 году — Ethernet, в 1985 — Token Ring, в конце 80-х — FDDI. Это позволило обеспечить совместимость сетевых операционных систем на нижних уровнях, а также стандартизовать интерфейс ОС с драйверами сетевых адаптеров. Для персональных компьютеров применялись не только специально разработанные для них операционные системы, подобные MS-DOS, NetWare и OS/2, но и адаптировались уже существующие ОС. Появление процессоров Intel 80286 и особенно 80386 с поддержкой мультипрограммирования позволило перенести на платформу персональных компьютеров ОС UNIX.
^ 5. Современные ОС.

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

Во второй половине 90-х годов все производители операционных систем резко усилили поддержку средств работы с Интернетом. Кроме самого стека TCP/IP в комплект поставки начали включать утилиты, реализующие такие популярные сервисы Интернета, как telnet, ftp, DNS и Web. Влияние Интернета проявилось и в том, что компьютер превратился из чисто вычислительного устройства в средство коммуникаций с развитыми вычислительными возможностями.

Особое внимание в течение всего последнего десятилетия уделялось корпоративным сетевым операционным системам. Корпоративная операционная система отличается способностью хорошо и устойчиво работать в крупных сетях, которые характерны для больших предприятий, имеющих отделения в десятках городов и, возможно, в разных странах. Для корпоративной ОС очень важно наличие средств централизованного администрирования и управления, позволяющих в единой базе данных хранить учетные записи о десятках тысяч пользователей, компьютеров, коммуникационных устройств и модулей программного обеспечения, имеющихся в корпоративной сети. Первой успешной реализацией справочной службы корпоративного масштаба была система StreetTalk компании Banyan. К настоящему времени наибольшее признание получила справочная служба NDS компании Novell, выпущенная впервые в 1993 году для первой корпоративной версии NetWare 4.O.

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

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

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

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

Операционная система автономного компьютера — комплекс управляющих и обрабатывающих программ, которые, с одной стороны, выступают как интерфейс между устройствами вычислительной системы и прикладными программами, а с другой стороны — предназначены для управления устройствами, управления вычислительными процессами, эффективного распределения вычислительных ресурсов между вычислительными процессами и организации надёжных вычислений. Это определение применимо к большинству современных ОС общего назначения. Основные семейства операционных систем: UNIX, Windows, QNX, MS-DOS, NetWare,, Mac OS.

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

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

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

Основные задачи ОС:

• увеличение пропускной способности ЭВМ (за счет организации непрерывной обработки потока задач с автоматическим переходом от одной задачи к другой и эффективного распределения ресурсов ЭВМ по нескольким задачам);

• уменьшение времени реакции системы на запросы пользователей пользователями ответов от ЭВМ;

• упрощение работы разработчиков программных средств и сотрудников обслуживающего персонала ЭВМ (за счет предоставления им значительного количества языков программирования и разнообразных сервисных программ).

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

- программы управления вводом/выводом;

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

- процессор командного языка, который принимает, анализирует и выполняет команды, адресованные операционной системе.

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

^ 7. Сетевые ОС.

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

Сетевая ОС предоставляет пользователю некую виртуальную вычислительную систему, работать с которой гораздо проще, чем с реальной сетевой аппаратурой. В то же время эта виртуальная система не полностью скрывает распределенную природу своего реального прототипа, то есть является виртуальной сетью. Термин «сетевая операционная система» используется в двух значениях: во-первых, как совокупность ОС всех компьютеров сети и, во-вторых, как операционная система отдельного компьютера, способного работать в сети. Исходя из этого определения следует, что такие операционные системы, как, например, Windows NT, NetWare, Solaris, HP-UX, являются сетевыми, поскольку все они обладают средствами, которые позволяют их пользователям работать в сети.

В результате сетевая ОС может рассматриваться как набор операционных систем отдельных компьютеров, составляющих сеть. На разных компьютерах сети могут выполняться одинаковые или разные ОС. Например, на всех компьютерах сети может работать одна и та же ОС UNIX. Более реалистичным вариантом является сеть, в которой работают разные ОС, например часть компьютеров работает под управлением UNIX, часть — под управлением NetWare, а остальные — под управлением Windows NT и Windows 98. Все эти операционные системы функционируют независимо друг от друга в том смысле, что каждая из них принимает независимые решения о создании и завершении своих собственных процессов и управлении локальными ресурсами. Но в любом случае операционные системы компьютеров, работающих в сети, должны включать взаимно согласованный набор коммуникационных протоколов для организации взаимодействия процессов, выполняющихся на разных компьютерах сети.

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

^ Основные функциональные компоненты сетевой ОС:

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

• сетевые средства, в свою очередь, можно разделить на три компонента:

• средства предоставления локальных ресурсов и услуг в общее пользование — серверная часть ОС;

• средства запроса доступа к удаленным ресурсам и услугам — клиентская часть ОС;

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

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

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

^ 8. Серверные ОС.

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

^ Основные серверные ОС:

1. Windows (Microsoft). Серверные версии операционной системы Windows сегодня применяются довольно широко - благодаря удобству администрирования и невысокой совокупной стоимости владения. Windows NT, Windows 2000, Windows Server 2003.

2. UNIX. Общими для всех версий UNIX особенностями являются многопользовательский режим со средствами защиты данных от несанкционированного доступа, реализация мультипрограммной обработки в режиме разделения времени, использование механизмов виртуальной памяти и свопинга, унификация операций ввода-вывода, иерархическая файловая система, разнообразные средства взаимодействия процессов, в том числе межсетевого. Solaris, HP-UX, AIX.

^ 3. Linux и FreeBSD. Одним из серьезных преимуществ Linux является низкая стоимость ее приобретения (хотя сама операционная система является некоммерческим продуктом, сертифицированные дистрибутивы Linux - обычно продукты коммерческие). Кроме того, ряд компаний, в частности IBM, вкладывают значительные средства в развитие Linux как серверной платформы, одновременно стремясь реализовать совместимость с Linux в своих коммерческих версиях UNIX в расчете на возможный переход с Linux на указанные операционные системы. FreeBSD нередко используется Интернет-провайдерами, а также в качестве операционной системы для корпоративных брандмауэров.

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

^ 5. Mac OS X (Apple). В целом Mac OS X представляется многообещающей серверной операционной системой, и для нее уже начали выпускаться серверные СУБД и иное инфраструктурное программное обеспечение, хотя корпоративные пользователи пока относятся к ней достаточно осторожно.
9. Мультипрограммирование.

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

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

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

• реактивность системы — способность системы выдерживать заранее заданные (возможно, очень короткие) интервалы времени между запуском программы и получением результата.

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

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

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

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

^ 10. Планирование процессов и потоков.

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

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

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

^ 11. Алгоритмы планирования процессов.

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

• когда создается процесс

• когда процесс завершает работу

• когда процесс блокируется на операции ввода/вывода, семафоре, и т.д.

• при прерывании ввода/вывода.

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

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

^ Основные три системы:

• системы пакетной обработки - могут использовать неприоритетный и приоритетный алгоритм

• интерактивные системы - могут использовать только приоритетный алгоритм

• системы реального времени - могут использовать неприоритетный и приоритетный алгоритм

^ 12. Основные понятия ОСРВ.

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

^ Система (приложение) реального времени - программная система, в которой корректность работы зависит не только от результатов вычислений, но также от времени получения этих результатов. Система должна завершить обработку события (выработать отклик) не позднее заранее определенного момента времени. Система управляет обработкой большого количества разных событий. Реальное время определяется соотношением срока исполнения и временем отклика. Существует несколько типов реального времени:

жесткое реальное время требует, чтобы время отклика никогда не превышало срок исполнения. Примеры: система управления двигателем, система торможения, подушка безопасности.

комбинированное реальное время комбинирует два срока выполнения - короткого «с допуском» и более длинного «жесткого». Примеры: мультимедиа приложения, высокоскоростные сети передачи данных.

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

^ Базовые объекты ОСРВ:

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

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

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

Сообщения предназначены для обмена данными любого типа между задачами и обработчиками прерываний.

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

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

Типы ОСРВ:

1) Временной циклический исполнитель. Обработка событий привязана к временным промежуткам (таймерным слотам).

2) ^ Система, построенная на обработчиках прерываний. Обработка событий выполняется вложенными обработчиками прерываний.

3) Приоритетный планировщик позволяет добиться гарантированного соблюдения сроков исполнения (исполнимости) при некотором оптимальном способе назначения приоритетов.

^ Примеры ОСРВ:

1. OSEK/VDX. Спецификации встроенной операционной системы реального времени (OS), коммуникационная подсистема (COM) и управление сетью (NM). Основная область применения - транспортные средства (автомобили).

2. ^ Real-Time Linux. Модификации ОС общего назначения для применения в приложениях реального времени. Существует несколько совершенно различных решений, в частности: архитектура с интегрированным ядром реального времени, архитектура с модифицированным планировщиком реального времени.

^ 13. Планирование процессов в ОСРВ.

Планирование и диспетчеризация процессов в системах реального времени должно удовлетворять следующим требованиям:

• строгое соблюдение дисциплины планирования,

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

• сохранение контекста задачи при вытеснении ее с процессора,

• восстановление контекста задачи при назначении ей процесоора,

• минимально возможное потребление ресурсов - памяти и процессорного времени.

Существует 2 типа планировщиков задач. ^ Простой планировщик – список готовых задач, упорядоченных по убыванию приоритета. «POSIX» планировщик поддерживает списки задач для каждого приоритета.

Типы планирования:

невытесняющее планирование - обычно применяется для быстрой обработки события,

вытесняющее планирование - основной тип планирования в системах жесткого реального времени,

круговое планирование - обычно применяется как замена «общего цикла выполнения». ОС не влияет на вытеснение задач и на время выполнения задач,

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

time-triggered scheduling - двойное и тройное исполнение задачи для сравнения результата вычислений. Жесткий (непериодический) график задач строится до исполнения (off-line). Прерывания разрешаются только в определенные моменты времени или не разрешаются во время полного цикла выполнения.

^ 14. Необходимость решения сложных задач на кластерах.

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

^ Параллельные вычисления - достаточно специфичная область математики и далеко не всегда параллельные вычисления могут быть применимы.

Существует необходимость решения задач на кластерах если:

1) программы не адаптированы для параллельных вычесление в средах MPI и PVM .В этом случае вы просто не сможете задействовать долее одного процессора для выполнения задачи или вообще запустить вашу программу в чужой операционной среде.

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

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

^ 15. Структура Windows.

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

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

В операционной системе W2K (сокращение Windows) трудно однозначно выделить микроядро. Вместо этого W2K имеет структуру, которую фирма Microsoft называет модифицированной архитектурой микроядра. Как и обычной архитектуре микроядра, операционной системе W2K присуще четкое разделение на модули. Каждая функция системы управляется только одним компонентом операционной системы. Остальные ее части и все приложения обращаются к этой функции через стандартный интерфейс. Доступ к основным системным данным можно получить только через определенные функции. В принципе любой модуль можно удалить, обновить или заменить, не переписывая всю систему или стандартный интерфейс прикладного программирования (application program interface — API). Однако в отличие от систем с четко выделенным микроядром, у W2K многие функции системы, которые не входят в микроядро, выполняются в режиме ядра, что сделано с целью повышения производительности. Разработчики системы W2K обнаружили, что использование традиционного подхода с выделением микроядра приводит к тому, что многие функции, не входящие в микроядро, требуют наличия нескольких переключателей процессов или потоков, переключателей режимов, а также используют дополнительные буферы памяти.

^ 16. Процессы и потоки в Windows.

В операционной системе Windows поддерживаются традиционные процессы, способные общаться и синхронизироваться друг с другом так же, как это делают процессы в UNIX. Каждый процесс содержит по крайней мере один поток, содержащий, в свою очередь, как минимум одно волокно (облегченный поток). Более того, для управления определенными ресурсами процессы могут объединяться в задания. Все вместе – задания, процессы, потоки и волокна – образует общий набор инструментов для управления ресурсами и реализации параллелизма как на однопроцессорных, так и на многопроцессорных машинах. Как и в системе UNIX, процессы представляют собой контейнеры для ресурсов. У каждого процесса есть 4-гигабайтное адресное пространство, в котором пользователь занимает нижние 2 Гбайт (в версиях Windows 2000 Advanced Server и Datacenter Server этот размер может быть по желанию увеличен до 3 Гбайт), а операционная система занимает остальную его часть.

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

^ 17. Управление памятью в Windows.

В Windows каждый процесс имеет свое адресное пространство до 4 Гб памяти (не физическое ОЗУ). Физическая память ограничена системными ресурсами: ОЗУ и дисковым пространством. Windows выделяет приложению 2 Гб памяти, а остальные 2 Гб резервируются для нужд ядра. Если объем ОЗУ меньше, чем 4 Гб, то Windows использует механизм виртуальной памяти: когда объем ОЗУ будет исчерпан, часть содержимого физической памяти переносится на жесткий диск. Этот механизм называется подкачкой. Для каждого процесса ядро поддерживает таблицу страниц - структуру, позволяющую преобразовать виртуальные адреса в физические.

^ Виртуальная память Windows использует механизм отображения области физической памяти на любую область 32-разрядных адресов для того, чтобы любая программа как бы обладала своим собственным физическим ОЗУ. Каждая программа имеет собственное виртуальное адресное пространство, которое диспетчер виртуальной памяти преобразует в адреса физического ОЗУ или в файлы на жестком диске.

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

^ 18. Безопасность Windows.

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

1. Безопасная регистрация в системе с мерами предосторожности против попыток применения фальшивой программы регистрации.

2. Дискреционное управление доступом.

3. Управление привилегированным доступом.

4. Защита адресного пространства для каждого процесса.

5. Обнуление страниц перед выделением их процессу.

6. Аудит безопасности.

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

У каждого пользователя (и группы) операционной системы Windows есть идентификатор безопасности SID (Security IDentifier), по которому операционная система отличает его от других пользователей. Идентификаторы безопасности представляют собой двоичные числа с коротким заголовком, за которым следует длинный случайный компонент. Каждый SID должен быть уникален в пределах всей планеты. Когда пользователь запускает процесс, этот процесс и его потоки работают под идентификатором пользователя. Большая часть системы безопасности спроектирована так, чтобы гарантировать предоставление доступа к каждому объекту только потокам с авторизованными идентификаторами безопасности. У каждого процесса есть маркер доступа, в котором указывается SID и другие свойства. Как правило, он назначается при регистрации в системе процедурой winlogon. Заголовок маркера содержит некоторую административную информацию.

^ 19. Обзор системы Unix.

UNIX — семейство переносимых, многозадачных и многопользовательских операционных систем. Первая система UNIX была разработана в 1969 г. в подразделении Bell Labs компании AT&T. Некоторые отличительные признаки UNIX-систем включают в себя:

• использование простых текстовых файлов для настройки и управления системой;

• широкое применение утилит, запускаемых в командной строке;

• взаимодействие с пользователем посредством виртуального устройства — терминала;

• представление физических и виртуальных устройств и некоторых средств межпроцессового взаимодействия как файлов;

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

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

• сохранить простоту и обойтись минимальным количеством функций;

• общность - одни и те же методы и механизмы должны были использоваться во многих случаях;

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

^ Общность в ОС UNIX проявляется во многих аспектах:

• обращение к файлам, устройствам ввода/вывода и буферам межпроцессных сообщений выполняется с помощью одних и тех же средств;

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

• одни и те же механизмы обслуживают программные и аппаратные прерывания.

В настоящее время UNIX используются в основном на серверах, а также как встроенные системы для различного оборудования. На рынке ОС для рабочих станций и домашнего применения лидером является Microsoft Windows, UNIX занимает только второе (Mac OS X), третье (GNU/Linux) и многие последующие места. UNIX-системы имеют большую историческую важность, поскольку благодаря им распространились некоторые популярные сегодня концепции и подходы в области ОС и программного обеспечения. Также, в ходе разработки Unix-систем был создан язык Си.

^ 20 Процессы Unix.

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

• пользовательском. Процесс выполняет пользовательскую программу и имеет доступ к пользовательскому сегменту данных;

• системном. Процесс выполняет программы ядра и имеет доступ к системному сегменту данных.

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

^ В ОС UNIX используется разделение времени, каждому процессу выделяется квант времени:

• процесс завершается сам до истечения отведенного ему кванта времени;

• процесс откладывается по истечении кванта времени.

^ Пользовательским процессам устанавливаются приоритеты в зависимости от количества получаемого ими процессорного времени:

- процессам, которые получили больше процессорного времени, назначаются более низкие приоритеты;

- процессам, которые получили небольшое количество процессорного времени, приоритет повышают.

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

^ 21.Управление памятью в Unix.

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

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

^ В современных реализациях UNIX для большинства аппаратных архитектур используется страничная организация виртуальной памяти. В этом случае всё адресное пространство процесса разбивается на участки одинакового размера (страницы), аналогичным образом разбивается вся физическая память. Каждая станица адресного пространства процесса может отображаться на какую-то страницу физической памяти. Это обеспечивается специальной таблицей преобразования адресов, которую операционная система поддерживает в адекватном состоянии. Таким образом, физическая память разделяется между множеством процессов, причём каждый из процессов имеет доступ только к «своим» страницам, что гарантируется операционной системой и аппаратными возможностями процессора.

В 32-разрядной архитектуре объём адресного пространства процесса равен 4 гигабайтам. Так как число процессов в системе потенциально не ограничено, очевидно, что суммарный размер адресного пространства, необходимого всем процессам, вполне может превысить размеры физической памяти. Конечно, большая часть программ оперирует довольно небольшим объёмом памяти. Однако страничное преобразование позволяет решить проблему недостатка физической памяти: неиспользуемые страницы могут копироваться из физической памяти на диск в специальную область подкачки и храниться там до момента, когда они вновь потребуются для исполнения процесса.

Ещё один мощный механизм, возможный благодаря страничному преобразованию, — это файлы, проецируемые в память. Процесс может «присоединить» файл к своему виртуальному адресному пространству. Это означает, что при обращении к файлу или изменении данных в нем операционная система будет автоматически выполнять отображение содержимого файла в страницы памяти процесса и обратно. Фактически операционная система здесь использует тот же механизм, что и при работе с областью подкачки, когда данные перемещаются с внешнего носителя в память при обращении к соответствующему адресу виртуальной памяти. Отображаемые в память файлы используются в тех случаях, когда необходимо с минимальными временными затратами многократно модифицировать содержимое файла, например, в базах данных или редакторах.

^ 22.Файловые системы Unix.

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

• неиспользуемый блок;

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

• i-список, состоящий из описаний файлов, называемых i-узлами;

• область для хранения содержимого файлов.

^ Каждый i-узел содержит:

- идентификационный номер владельца;

- идентификационный номер группы владельцев;

- права доступа;

- физические адреса на диске, где находится содержимое файла;

- размер файла;

- время создания файла;

- время последней модификации файла;

- время последнего изменения атрибутов;

- число ссылок на файл;

- тип файла: каталог, обычный файл или специальный файл.

Следом за i-списком идут блоки, предназначенные для хранения файлов. Пространство на диске, оставшееся свободным от файлов, образует связанный список свободных блоков.

^ Защита файлов осуществляется при помощи идентификатора пользователя и десяти битов защиты - прав доступа. Права доступа подразделяются на три типа:

• чтение (read);

• запись (write);

• исполнение (execute).

Эти права доступа могут быть предоставлены трем классам пользователей:

- владельцу файла;

- группе, в которую входит владелец;

- всем прочим пользователям.

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

^ Файловая система UNIX характеризуется:

• иерархической структурой;

• возможностью создания и удаления файлов;

• защитой информации в файлах;

• трактовкой периферийных устройств как файлов и так далее.

^ 23. Модель исполнения приложения в Windows Mobile.

Windows Mobile— мобильная операционная система, разработанная Microsoft для собственных аппаратных платформ Pocket PC (коммуникатор) и Smartphone.

Текущая версия — Windows Mobile 6.5 — основана на Windows CE 5.2, имеет базовый набор приложений, разработанных с использованием Microsoft Win32 API (программы могут приобретаться через сервис Windows Marketplace for Mobile или устанавливаться вручную пользователем; доступна свободная разработка программ для третьих лиц), функционально и визуально пытается быть похожим на настольную версию Windows. Существуют три версии операционной системы для различных программно-аппаратных платформ:

• Windows Mobile Professional — для смартфонов с сенсорным экраном и функцией мобильного телефона (платформа Pocket PC)

• Windows Mobile Classic — для карманных персональных компьютеров (платформа Pocket PC)

• Windows Mobile Standard — для смартфонов с функцией мобильного телефона, но без сенсорного экрана (платформа Smartphone)

Изначально классические устройства Windows Mobile были карманными персональными компьютерами без возможности подключения к сотовой сети и имели название Pocket PC (PPC). Наследниками Pocket PC являются операционные системы Windows Mobile Professional, кроме функций КПК поддерживающая ещё и функции телефона, и Windows Mobile Classic, тоже предназначенная для КПК, но построенная на более современных технологиях.

^ Платформа Smartphone вышла вместе с Pocket PC 2002 (по сути она является его [PPC 2002] урезанной версией). Хотя в широком смысле термин «смартфон» включает как Pocket PC, так и телефоны с функциями КПК, следует отметить, что Microsoft использует термин для определения более конкретных аппаратных свойств устройств: smartphone-устройство должно быть оптимизировано для работы одной рукой и наделено экраном малой площади без сенсорных возможностей.

^ 24. Платформа Android и архитектура приложения.

Android — операционная система для мобильных телефонов, планшетных компьютеров, цифровых проигрывателей, нетбуков и смартбуков, основанная на ядре Linux® V2.6. Изначально разрабатывалась компанией Android Inc., которую затем купила Google. Впоследствии Google инициировала создание Open Handset Alliance (OHA), которая сейчас и занимается поддержкой и дальнейшим развитием платформы. Android позволяет создавать Java-приложения, управляющие устройством через разработанные Google библиотеки. Также есть возможность писать приложения на Си и других языках программирования с помощью Android Native Development Kit. Приложения для Android являются программами в нестандартном байт-коде для виртуальной машины Dalvik.

Google предлагает для свободного скачивания инструментарий для разработки (Software Development Kit), который предназначен для x86-машин под операционными системами Windows XP, Windows Vista, Mac OS X и Linux. Для разработки требуется JDK 5 либо JDK 6.

Разработку приложений для Android можно вести на языке Java (не ниже Java 1.5). ^ Доступные библиотеки:

• Bionic — библиотека стандартных функций, несовместимая с libc

• SSL — шифрование

• Media Framework (PacketVideo OpenCORE, MPEG4, H.264, MP3, AAC, AMR, JPG, PNG)

• Surface Manager

• LibWebCore (на базе WebKit)

• SGL — 2D-графика

• OpenGL ES — 3D-библиотека

• SQLite — легковесная СУБД

По сравнению с обычными приложениями Linux, приложения Android подчиняются дополнительным правилам:

• Content Providers — обмен данными между приложениями;

• Resource Manager — доступ к таким ресурсам, как файлы XML, PNG, JPEG;

• Notification Manager — доступ к строке состояния;

• Activity Manager — управление активными приложениями.

Для Android был разработан формат архивных исполняемых файлов-приложений .apk.

С момента выхода первой версии в сентябре 2008 года произошло несколько обновлений системы. Эти обновления как правило касаются исправления обнаруженных ошибок и добавления нового функционала в систему. Каждая версия системы получает собственное кодовое имя на тему десерта. Кодовые имена присваиваются в алфавитном порядке. На настоящий момент выпущено 9 версий системы и ещё одна находится в разработке. Последняя версия — 3.1 «Ice Cream».

^ Приложение Android состоит из следующих типов:

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

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

3. Контент-провайдеры. Работа контент-провайдера осуществляется для управления доступом сохраненных данных, таких как базы данных SQLite. Если ваше приложение очень просто, вы не обязательно создавать контент-провайдер. Если вы строите большие приложения, или тот, который делает данные доступными для нескольких видов деятельности или приложений, контент-провайдер является средством доступа к вашим данным.

4. ^ Трансляции приемники. Приложение Android может быть запущено для обработки элементов данных или реагировать на события, такие как получение текстовых сообщений.


Скачать файл (172.5 kb.)

Поиск по сайту:  

© gendocs.ru
При копировании укажите ссылку.
обратиться к администрации