Это интересно

  • ОКД
  • ЗКС
  • ИПО
  • КНПВ
  • Мондиоринг
  • Большой ринг
  • Французский ринг
  • Аджилити
  • Фризби

Опрос

Какой уровень дрессировки необходим Вашей собаке?
 

Полезные ссылки

РКФ

 

Все о дрессировке собак


Стрижка собак в Коломне

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

НАУКА и ОБРАЗОВАНИЕ. Журналы работы операционных систем


АНАЛИЗ СОСТОЯНИЯ ОПЕРАЦИОННОЙ СИСТЕМЫ И СИСТЕМНЫХ СОБЫТИЙ - Мой компьютер - Каталог статей

    АНАЛИЗ СОСТОЯНИЯ ОПЕРАЦИОННОЙ СИСТЕМЫ И СИСТЕМНЫХ СОБЫТИЙ

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

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

        Типы событий операционных систем

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

        События типа «Информация» (еще этот тип событий называется «Сведения») отображают факт успешной операции. Этим событиям соответствует пиктограмма в журнале событий в виде кружочка с буквой «i» внутри кружочка (см.12 Рис.2). Справа от пиктограммы текстом отображается тип события «Сведения».

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

        Событие «Ошибка» отображает проблемы, которые могут привести к потере работоспособности системы или потере информации. Этим событиям соответствует пиктограмма в журнале событий в виде красного кружочка с восклицательным знаком внутри кружочка (см.13 Рис.2). Справа от пиктограммы текстом отображается тип события «Ошибка».

 

 

 

        Журналы событий и их включение

        Как уже отмечалось выше, все события регистрируются в специальных журналах. Чтобы запустить любой из журналов, необходимо воспользоваться утилитой «Администрирование» из панели управления. Для этого необходимо последовательно нажать кнопки Пуск\ Панель управления\ Система и безопасность\ Администрирование, и перед вами откроется окно Рис.1. В случае с Windows XP вам необходимо запустить Панель управления, перейти к классическому виду отображения Панели управления и из перечня утилит выбрать «Администрирование». Если вы обладатель ОС Windows 10, воспользуйтесь рекомендациями, выложенными в статье «КУДА ДЕЛАСЬ ПАНЕЛЬ УПРАВЛЕНИЯ В WINDOWS 10?», либо кнопкой «Поиск», с последующим введением в поле поиска поискового слова «Администрирование». В любом случае, результатом ваших действий должно быть открытие окна Рис.1. Чтобы открыть необходимый вам журнал, вы должны выбрать оснастку «Управление компьютером» (см.1 Рис.1), после чего перед вами откроется окно Рис.2.

        В окне Рис. 2 откройте вкладку «Просмотр событий» (см.1 Рис.2). Выберите «Журналы Windows» (см.2 Рис.2) и в открывшемся перечне существующих журналов (см.3 Рис.2) выберите тот, который вас интересует. Но, если вы пытаетесь найти причину проблемной работы вашего ПК, вам наверняка придется анализировать все журналы.

        Существует три основных журнала, в которые записываются наиболее важные события. Это: а) Система, б) Приложения и в) Безопасность. Кроме этого, есть еще и такие журналы, как «Установка» и «Перенаправленные события» (см.3 Рис.2). Названия вышеуказанных журналов отображают события, которые в них фиксируются (системные события, события приложений и т.д.).

        Все события, имевшие место на вашем компьютере, записываются в ключе реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog, который имеет подключи, соответствующие имеющимся журналам (Система, Безопасность и т.д.). А это значит, что пользователь ПК имеет возможность создавать новые журналы, адаптированные под его запросы.

        И еще несколько слов об окне Рис.2. При открытии любого из журналов событий Windows, окно делится на три вертикальных подокна. Первое (левое) подокно (см.4 Рис.2) служит для выбора соответствующего журнала. Второе (среднее) подокно (см.5 Рис.2) служит для анализа событий. И третье (правое подокно) содержит набор органов управления для выполнения определенных действий со стороны пользователя компьютера. Среднее окно (см.5 Рис.2) является основным источником проведения анализа.

        Анализ событий в операционных системах Windows

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

        Все события, зарегистрированные в соответствующем журнале, отображаются в среднем вертикальном подокне (см.5 Рис.2), которое делится на три горизонтальных части. В верхней части отображается перечень зафиксированных событий (см.7 Рис.2). Под ней расположен раздел с информацией о коде события и источнике события (см.8 Рис.2), а ниже – детальная информация о событии с его описанием, если оно есть в перечне событий Windows.

        Как отмечалось выше, основными событиями являются Информация (Сведения) (см.12 Рис.2), Предупреждения и Ошибки (см.13 Рис.2). Событие типа «Предупреждение» не показано на Рис.2, но внешний вид его детально описан в начале статьи.

        Для проведения анализа событий, имевших место на вашем ПК, необходимо открыть соответствующие журналы событий и найти события, которые предшествовали неустойчивой работе (сбоям) компьютера. При этом делается привязка по времени внешнего проявления неустойчивой работы (сбоя) компьютера и событий, зафиксированных в Журналах событий. Если все зафиксированные в Журналах события четко привязываются к системному времени (см.14 Рис.2), то внешнее проявление (сбой, зависание и т.п.) вам необходимо зафиксировать самостоятельно.

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

        Среди зафиксированных системой событий необходимо искать в первую очередь события типа «Ошибка». Что касается событий типа «Информация» («Сообщение»), то обычному пользователю нет смысла анализировать эти события, т.к. они информируют об успешном выполнении какой-либо задачи. К примеру, успешный переход системы в режим «Сон», выход из режима «Сон» и т.п. Но, если у кого-нибудь возникнет желание или необходимость, он сможет самостоятельно выбрать событие типа «Информация», выделить его и посмотреть его описание в разделе с детальной информацией (см.9 Рис.2).

        Итак, как вы, наверное, уже догадались, выделение любого события из списка событий (см.13 Рис.2) приводит к появлению соответствующей информации в разделах «Код события» (см.8 Рис.2) и «Детальная информация о событии» (см.9 Рис.2). Вам только остается внимательно изучить эту детальную информацию и, в первую очередь, текстовую информацию в подокне «Описание события» (см.10 Рис.2). Но, если этой информации недостаточно и вам не понятно, что вы должны предпринять, то воспользуйтесь кнопкой «Справка в Интернете для…» (см.11 Рис.2).

        Примечание: В разных операционных системах кнопка «Справка в Интернете для…» (см.11 Рис.2) может называться по-другому. В Windows 7 эта кнопка называется «Веб-справка журнала».

        После нажатия на кнопку «Справка в Интернете для…» (см.11 Рис.2) система запросит у вас разрешения на отправку в компанию Microsoft информации о вашем событии. Это проявится в появлении окна Рис.3, в котором вам необходимо будет нажать кнопку «Да» (см.1 Рис.3).

        После того, как вы нажмете кнопку «Да» (см.1 Рис.3), ваш браузер, установленный по умолчанию, откроет окно на официальном сайте Microsoft, где должно быть описание ошибки и рекомендации об ее устранении. Вот только для операционных систем Windows 10 это не всегда работает, видимо, потому, что для данной системы накоплено недостаточное количество статистического материала. А вот что касается Windows 7, то тут все нормально. Для большинства ошибок есть и описание, и рекомендации.

        Теперь несколько слов о журнале «Безопасность».  Как я уже говорил, по умолчанию в Windows XP этот журнал не активирован, т.е. в нем не фиксируется ни одно событие. В операционных системах Windows 7 и выше фиксируется несколько событий, причем для разных систем они различны. Чтобы активировать этот журнал для Windows XP или расширить список событий для других систем, необходимо произвести настройку аудита параметров безопасности. Для этого в окне «Администрирование» необходимо выбрать «Локальная политика безопасности» (см.2 Рис.1).

        В новом окне Рис.4 откройте вкладку «Локальные политики» (см.1 Рис.4) и выберите «Политика аудита» (см.2 Рис.4), после чего в правой части этого окна у вас появится перечень событий, которые подлежат аудиту (см. 3 Рис.4). Выбрав любое из событий, для которого вы хотите назначить аудит, выполните настройку этого аудита. Вы можете настраивать аудит таким образом, чтобы фиксировались все удачные попытки или только неудачные попытки совершения события («Успех» или «Отказ»). Вы можете задать перечень объектов, доступ к которым ограничен определенным представителям пользователей компьютера. Вы можете включить и настроить аудит отслеживания определенных процессов и многое другое. Единственное, что не следует забывать, так это то, что для настройки параметров аудита безопасности необходимо зайти на компьютер как представитель группы «Администраторы».

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

        Иценко Александр Иванович

iaisite.ru

Операционные системы мобильных мультимедиа устройств для журналиста



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

Ключевые слова: операционные системы, мобильные мультимедиа устройства, средства информации, информационные технологии, компьютерные сети.

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

Рассмотрим какие операционные системы мобильных устройств используются сегодня и какие из них могут быть использованы в работе профессиональных журналистов? Среди самых распространенных можно выделить IOS, Windows 10 Mobile, BlackBerry OS, Android OS (логотипы можно увидеть на рисунке 1.). В последнее время, становится все более популярной прошивка последней под названием — MIUI.

Рис. 1. Логотипы самых распространенных ОС. Слева направо: Android, Windows 10 Mobile, IOS, BlackBerry

Помимо вышеперечисленных, существует достаточно большое количество малоизвестных и мало используемых ОС:

‒ Fire OS;

‒ Flyme OS;

‒ Sailfish OS;

‒ Tizen OS;

‒ Replicant OS;

‒ Firefox OS.

Большая часть таких систем, основана на Android OS. Какие достоинства есть у этой системы?

Эта ОС изначально разрабатывалась компанией Android, Inc., которую затем купила Google. Android основана на монолитном модифицированном ядре Linux с собственной реализацией виртуальной машины Java от Google, включающем в себя как собственно базовые сервисы ОС (управление процессами и потоками, обмен сигналами и сообщениями, таймеры и синхронизация), так и огромный пласт подсистем и сервисов. В ядро Linux входят все драйверы аппаратной части устройства, драйверы файловой системы, сетевой стек и даже такие вещи, как поддержка CIFS (ранее англ. Common Internet File System — единая файловая система для Internet, сейчас — SMB (сокр. от англ. Server Message Block) сетевой протокол прикладного уровня для удалённого доступа к файлам, принтерам и другим сетевым ресурсам, а также для межпроцессного взаимодействия.). Чем это примечательно? Тем, что системы на основе этого ядра создаются и распространяются в соответствии с моделью разработки свободного и открытого программного обеспечения на условиях GNU (General Public License), по этой причине появилось большое количество модификаций ядра Linux.

Свободное программное обеспечение.

Популярность OS Android можно объяснить большим количеством различных прошивок, вследствие открытости исходного кода, а именно, свободного и открытого программного обеспечения — Free and Open-Source Software (FOSS) и проприетарных драйверов, то есть, являющихся частной собственностью. Это является как важным преимуществом для многих разработчиков, так и главной проблемой этой ОС.

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

В отличие от Android, операционная система iOS не используется на устройствах от других производителей и не адаптируется под них. Поэтому эта платформа лишена фрагментации и полностью совместима с «железом» собственного производства, что в свою очередь приводит к уменьшению ошибок в коде операционной системы, стабильной работе оборудования и практически полному отсутствию каких-либо конфликтов: программных или аппаратных. [2],

Кастомные прошивки системы

Прошивка (от английского Firmware) — это программное обеспечение и комплекс аппаратных настроек, которые расположены в памяти устройства. С технической точки зрения прошивка — это бинарный файл, который записывается в энергонезависимую память устройства.

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

Пожалуй, самой популярной прошивкой Android является OS MIUI, разработанная компанией Xiaomi Inc для смартфонов и планшетов на основе операционной системы Android, также с открытым исходным кодом, пример интерфейса изображен на рисунке 2.

Рис. 2. Интерфейс с MIUI

OS MIUI представляет собой сильно изменённый пользовательский интерфейс, в котором отсутствует меню приложений. Включает в себя дополнительные функции, которые совмещают в себе некоторые решения из Android и iOS [1].

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

Устройства с Android OS.

Популярность Android можно объяснить большим количеством устройств, работающих на этой платформе, так к мобильным устройствам, использующим ее, помимо смартфонов и планшетов, можно отнести: смарт-часы, игровые приставки, нетбуки, очки Google, электронные книги и цифровые проигрыватели. В отличие от своих главных конкурентов, эта система поддерживает аппаратные платформы ARM, MIPS, x86, в то время, как Windows 10 Mobile только ARM, а iOS только архитектуру, производимую компанией Apple, а именно, iPhone, iPodTouch, IPad, Apple TV и AppleHomePod. Из этого преимущества вытекает и недостаток системы — фрагментация.

Фрагментация.

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

Проблема фрагментации наиболее актуальна для смартфонов под управлением ОС Android. Большое количество производителей и широкий ассортиментный ряд у каждого из них спровоцировал широкое разнообразие размеров экранов. Это привело к тому, что на сегодняшний день существует почти 12 000 устройств на Android отличающихся друг от друга характеристиками. У других популярных мобильных платформ, в частности у iOS, таких проблем нет, потому что разнообразие устройств не такое большое.

Нужно заметить, что фрагментация Android — это проблема разработчиков, а вот с точки зрения потребителей это –плюс. Благодаря наличию широкого ассортимента смартфонов, пользователи могут выбрать именно тот телефон, который им нравится и подходит больше всего. Поэтому аудитория Android гораздо больше, чем у других мобильных операционных систем. [4]

Безопасность и обновления.

Одним из главных недостатков Android является высокая подверженность вирусным атакам, вследствие открытости исходного кода, возможности его модификации и реализации на различной архитектуре, делающей ее более уязвимой. У iOS такой проблемы нет, она безопасна и практически не подвержена вирусным атакам, потому что относится к проприетарному программному обеспечению, то есть, являющемуся частной собственностью авторов или правообладателей и не удовлетворяющему критериям свободного ПО. Необходимо отметить, что у обеих ОС стабильно выходят обновления, что помогает в некоторой степени бороться с уязвимостями систем. Но проблема обеих систем в том, что последнюю версию могут получить обладатели только новых устройств флагманских моделей, в случае с Android, таких как Samsung и тд. Более того, установить более актуальную версию ОС на смартфонах, выпущенных уже несколько лет назад невозможно.

Обновления

Весьма оригинальный способ обновления Chrome OS придумала компании Google. Chrome OS –операционная система с открытым программным обеспечением, предназначенным для устройств на процессорах ARM или x86. Построена на гибридном ядре (основа — ядро Linux и сервисы от компании Google) с использованием браузера Google Chrome. [5].

Изначально для этой ОС Google использовала другой механизм для «доставки» обновлений на устройства. Был использован подход с промежуточным образом: на устройство устанавливались два образа операционной системы, один из которых обеспечивал работу систему, второй же просто находился «на фоне». При наличии обновления оно замещало неактивный и устаревший образ ОС. После перезагрузки устройство переключалось на новую версию. Таким образом, устройство всегда имело актуальную версию ОС без каких-либо усилий со стороны пользователя. Сейчас в Google работают над подобным способом обновления для OS Android.

Но самой безопасной ОС является BlackBerry из-за множества интегрированных слоев безопасности. Они связаны между собой, задействованы внешние центры и аппаратные возможности, системы управления привилегиями и прочее. Из ядра QNX, на котором основана эта ОС взято несколько решений для принудительного управления привилегиями на уровне приложений и файлов, а на уровне ядра — технология Neutrino RTOS Secure Kernel, которая имеет сертификат EAL4+ (Evaluation Assurance Level). Также в BlackBerry 10 использована концепция микроядер для реализации различных функций безопасности. [6].

В BlackBerry 10 используется компактное микроядро QNX Neutrino, внутри которого работают планировщик процессов, система обмена сообщениями, обработчик исключений и таймеры. Все остальное: все драйверы, файловые системы, службы и приложения — исполняется в пространстве пользователя в виде отдельных процессов. И все они общаются друг с другом через микроядро, которое выступает диспетчером сообщений от одного компонента системы к другому [6].

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

Минус микроядерной архитектуры в том, что ядра на ее основе более медлительны в сравнении с монолитными.

Плюсы и минусы OS Android.

Преимущества.

‒ Файловая система телефонов на Android открыта для изменений. Вы без труда можете использовать память телефона как флешку: скидывать туда файлы, менять прошивку на любую из представленных на рынке. Множество пользовательских модификаций могут дать именно тот набор функций, который подходит именно для вас. А получение Root прав снимает вообще какие-либо границы в работе с системой.

‒ Свободная установка приложений из сторонних источников. У этой ОС их огромный выбор. Хоть и у главного конкурента — iOS их ничуть не меньше, но возможности их установки из любых источников без особых манипуляций нет и наличие таковой — это большой плюс. А, если нужной программы нет в Play Market, ее можно написать хоть самому.

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

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

‒ Широчайшие возможности настройки интерфейса (вплоть до полного изменения внешнего вида).

‒ Большое количество прошивок. Возможность полного изменения интерфейса операционной системы производителями (хотя многие компании используют в своих устройствах почти “чистый” интерфейс Android, некоторые из них, особенно крупные, например, Samsung и HTC, используют собственные оболочки, полностью меняющие внешний вид системы.

Недостатки.

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

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

‒ Наличие вредоносных приложений.

‒ Сильная фрагментация системы, в силу огромного количества устройств под её управлением (т. е. приложение, даже из официального магазина приложений (Google play) может работать на одном устройстве корректно, а на другом — не работать совсем). Хотя этот недостаток для разработчиков, а для пользователей, наоборот, широкий выбор устройств с разной архитектурой.

Выводы и перспективы.

Изучение операционных систем мобильных мультимедиа устройств и возможность их использования в профессиональной деятельности журналиста. Может ли быть смартфон «рабочим инструментом» представителя средств массовой информации и как на его работу влияет операционная система?

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

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

У Windows 10 Mobile свои преимущества, но к сожалению, разработка этой системы остановлена и вскоре будет прекращена поддержка со стороны компании-разработчика — Microsoft. Поэтому использование устройств на этой платформе нежелательно. Конечно, в Microsoft обещают заменить эту ОС на новую Andromeda OS. Но когда это произойдет — неизвестно.

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

Литература:
  1. [Электронный ресурс]. — Android — Википедия. — https://ru.wikipedia.org/wiki/Android (Дата обращения 15.12.1017).
  2. [Электронный ресурс]. — Android vs iOS — что лучше, сравнение операционных систем. — http://tarifkin.ru/mobilnye-sovety/chto-luchshe-android-ili-ios-sravnenie (Дата обращения 15.12.1017).
  3. [Электронный ресурс]. — MIUI — Википедия. — https://ru.wikipedia.org/wiki/MIUI (Дата обращения 15.12.1017).
  4. [Электронный ресурс]. — Что такое фрагментация мобильных устройств, фрагментация Android. — http://blog.profmobile.com/chto-takoe-fragmentaciya-mobilnyx-ustrojstv/ (Дата обращения 15.12.1017).
  5. [Электронный ресурс]. — Chrome OS — Википедия. — https://ru.wikipedia.org/wiki/Chrome_OS (Дата обращения 15.12.1017).
  6. [Электронный ресурс]. — BlackBerry. Рассказ об одной из лучших ОС — https://xakep.ru/2017/02/09/forgotten-blackberry/ (Дата обращения 15.12.1017).

Основные термины (генерируются автоматически): операционная система, MIUI, устройство, ARM, система, эта, IOS, QNX, смартфон, исходный код.

moluch.ru

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

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

автор: Грошев С.

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

Модели операционных систем

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

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

Существует множество способов структурирования операционных систем. В небольших операционных системах, например, в MS-DOS, используют принцип организации системы, как набора процедур, каждую из которых может вызывать любая пользовательская процедура. Такая модель называется монолитной (Рис. 2.1).

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

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

Монолитная модель операционной системы

Другой подход к структурированию системы предполагает разделение ее на модули, наслоенные один поверх другого. Каждый модуль предоставляет набор функций, которые могут вызываться другими модулями. Код, расположенный в некотором слое, вызывает код только из нижележащих слоев (Рис. 2.2). В некоторых операционных системах, строящихся по данной модели, например, в VAX/VMS или в системе Multics, многослойность даже принудительно обуславливается аппаратными средствами.

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

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

Третий подход к проектированию операционных систем – это модель клиент-сервер. Идея его состоит в разделении системы на несколько процессов, каждый из которых реализует один набор сервисов: например, распределение памяти, создание процессов или планирование процессов. Каждый сервер выполняется в режиме пользователя, все время проверяя, не обратился ли к нему за обслуживанием какой-либо клиент. Клиент, которым может быть либо другой компонент операционной системы, либо прикладная программа, запрашивает выполнение сервиса, посылая серверу сообщение. Ядро операционной системы, выполняющееся в режиме ядра, доставляет сообщение серверу. Тот выполняет запрашиваемые действия, после чего ядро возвращает клиенту результаты в виде другого сообщения (Рис. 2.3).

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

Модель клиент-сервер

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

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

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

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

Помимо того, что уменьшается влияние изменений, построение операционной системы на ос­нове объектов имеет еще ряд несомненных преимуществ:

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

- Упрощается защита, так как для всех объектов она осуществляется одина­ково. При попытке доступа к объекту подсистема защиты вмешивается и проверяет допустимость операции, независимо от того, какой ресурс представляет объект.

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

Эволюция операционных систем

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

Первое упоминание об операционных системах данного вида относятся к 50-м годам 20-го столетия, и относится к компьютерам IBM 701 и IBM 704. Впослед­ствии эта концепция была усовершенствована, и в начале 60-х годов были разработаны пакетные операционные системы для компьютеров различных фирм.

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

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

Распределение памяти в пакетных системах

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

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

Таким образом, наличие монитора решает проблему очередности выполнения заданий и повышает загрузку вычислительной машины. Задания в па­кетах выстраиваются в очередь и выполняются без простоев настолько быстро, насколько это возможно. Кроме того, монитор помогает в подготовке программы к исполнению. В пакетных операционных системах в каждое задание включаются простые команды языка управле­ния заданиями (JCL – Job Control Language). Это специальный тип языка про­граммирования, используемый для того, чтобы отдавать команды монитору. Примерами таких команд могут служить команды $JOB, $LOAD, $RUN и $END, соответственно обозначающие начало задания, загрузку программы, ее запуск и конец задания.

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

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

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

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

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

Несмотря на повышение производительности, процессору часто приходилось простаивать даже при автоматическом вы­полнении заданий под управлением простой пакетной операционной системы. Проблема заключается в том, что устройства ввода-вывода работают намного медленнее, чем процессор. В среднем, 96% всего времени процессор ждет, пока устройства ввода-вывода за­кончат передачу данных в файл и из него, а лишь 4% тратятся на вычисления. Некоторое время процессор исполняет команды; за­тем, дойдя до команды ввода-вывода, он должен подождать, пока она не закон­чится. Только после этого процессор сможет продолжить работу (Рис. 2.5).

Выполнение одной задачи

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

Выполнение двух задач

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

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

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

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

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

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

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

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

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

Одним из основополагающих понятий, помогающих понять структуру опера­ционных систем, является понятие процесса. Этот термин впервые был применен в 60-х годах 20-го века разработчиками операционной системы Multics – предшественницы системы UNIX, и с тех пор широко используется. Есть много определений термина процесс, в том числе:

- выполняющаяся программа;

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

- объект, который можно идентифицировать и выполнять на процессоре;

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

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

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

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

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

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

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

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

- Выполняющаяся программа.

- Данные, нужные для ее работы.

- Контекст или состояние программы.

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

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

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

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

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

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

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

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

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

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

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

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

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

С добавлением в операционные системы все новых функций, а также с рос­том возможностей управляемого операционными системами аппаратного обеспе­чения и его разнообразия возрастает степень их сложности. Так, современная система UNIX по своей сложности намного превосходит свой почти игрушечный первоначальный вариант, разработанный несколькими талантливыми программистами в начале 70-х годов 20-го века. То же самое произошло с простой системой MS-DOS, со временем переросшей в сложные и мощные операционные системы OS/2 и Windows XP.

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

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

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

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

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

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

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

- Третий уровень абстракции вводит понятие программы, а также опе­рации вызова и возврата.

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

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

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

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

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

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

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

- На десятом уровне абстракции предоставляется доступ к внешним устройствам с помощью стандартных интерфейсов.

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

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

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

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

 

 

www.technomag.bmstu.ru


Смотрите также

KDC-Toru | Все права защищены © 2018 | Карта сайта