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

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

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

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

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

1.Единообразная по логике работы память (виртуальная) практически неогра­ниченного объема. Организация работы с информацией в такой памяти производится в терминах обработки данных (в терминах работы с сегментами данных на уровне выбранного пользователем языка программи­рования);

2. Произвольное количество процессоров (виртуальных), способных работать па­раллельно и взаимодействовать во время работы. Способы управления про­цессорами, в том числе синхронизация и информационные взаимодействия, реализованы и доступны пользователям на уровне используемого языка в терминах управления процессами;

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

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

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

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

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

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

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

Принцип обеспечения безопасности при выполнении вычислений является желательным свойством для любой многопользовательской системы. Правила безопасности определяют такие свойства, как защита ресурсов одного пользователя от других и установление квот по ресурсам для предотвращения захвата одним пользова­телем всех системных ресурсов. Обеспечение защиты информации от несанкци-онированного доступа является обязательной функцией операционных систем. В соответствии со стандартами Национального центра компьютерной безопасности США (NCSC – National Computer Security Center) безопасной считается систе­ма, которая «посредством специальных механизмов защиты контролирует доступ к информации таким образом, что только имеющие соответствующие полно­мочия лица или процессы, выполняющиеся от их имени, могут получить доступ на чтение, запись, создание или удаление информации». Иерархия уровней безопасности отмечает низ­ший уровень безопасности как D , а высший – как А . В класс D попадают системы, оценка которых выявила их несоответствие требо­ваниям всех других классов. Основными свойствами, характерными для систем класса (уровня) С , являются наличие подсистемы учета событий, связанных с безопасностью, и избирательный кон­троль доступа. На уровне С должны присутствовать:

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

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

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

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

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

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

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

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

Принцип генерируемости . Позволяет настроить ядро и остальные компоненты ОС исходя из конкретной конфигурации ЭВМ и круга решаемых задач. Процедура настройки называется инсталляцией.

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

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

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

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

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

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

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

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

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

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

    Утилиты: классификация, описание.

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

Пример классификации утилит по функциям: - Диспетчеры файлов; - Архиваторы (с возможным сжатием данных) ; - Просмотрщики; - Утилиты для диагностики аппаратного или программного обеспечения; - Утилиты восстановления после сбоев; - Оптимизатор диска - вид утилиты для оптимизации размещения файлов на дисковом накопителе, - --например, путём дефрагментации диска; - Деинсталляторы; - Утилиты управления процессами.

    Основные функции ОС

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

Функции операционных систем

Основные функции (простейшие операционные системы):

    Стандартизованный доступ к периферийным устройствам (устройства ввода-вывода).

    Управление оперативной памятью (распределение между процессами, организация виртуальная память).

    Управление доступом к данным на энергонезависимых носителях (таких как жёсткий диск,компакт-диски т. д.), организованным в той или инойфайловой системе.

    Пользовательский интерфейс.

    Сетевые операции, поддержка стека протоколов.

    Системы программирования: понятие, состав.

Системы программирования системные программы, предназначенные для разработки программного обеспечения:

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

    трансляторы - программы или технические средства, выполняющее трансляцию программы;

    • компиляторы - Программы, переводящие текст программы на языке высокого уровня, в эквивалентную программу на машинном языке.

      интерпретаторы - Программы (иногда аппаратные средства), анализирующие команды или операторы программы и тут же выполняющие их;

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

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

    отла́дчики (англ. debugger) - модули среды разработки или отдельные программы, предназначенные для поиска ошибок в программах;

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

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

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

    редакторы графического интерфейса.

    Процесс. Диаграмма состояний процесса.

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

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

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

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

    Потоки(треды):описание, свойства, связь с процессами.

Для организации мультизадачности были введены так называемые легковесные процессы – потоки или треды.

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

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

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

Каждый поток выполняется строго последовательно и имеет свой собственный программный счетчик и стек.

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

    Понятие ресурса. Основные виды и типы ресурсов выч.с-мы.

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

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

1) Процессорное время

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

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

3) Программные модули. Системные программные ресурсы. Могут быть разделены между выполняющимися процессами. Программные модули могут быть

однократно исполняемыми (исполняются правильно только один раз, и являются

неделимыми ресурсами, более того их вообще можно не рассматривать как ресурс

системы. Такие модули используются, как правило, при загрузке системы.) и многократно исполняемыми. Многократно исполняемые программные модули могут

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

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

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

Структура модуля:

Непривилегированные модули – обычные программные модули. которые могут быть

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

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

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

процесс возвращается к прерванной ранее точке.

    Классификация ОС. Примеры

1)По назначению. Прежде всего ОС разделяют

на системы общего и специального назначения. ОС специального назначения в свою очередь разделяют на ОС для переносных микрокомпьютеров (карманные PC) и различных встроенных систем.

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

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

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

4) По способу построения. По своему архитектурному принципу ОС разделяются на микроядерные и монолитные, примером микроядерной является ОС QNX, примером монолитной – Windows 9.XX,200.

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

Принцип модульности

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

Принцип функциональной избирательности

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

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

Принцип генерируемости ос

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

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

Принцип функциональной избыточности

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

    Основные принципы построения ОС: принцип вирт

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

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

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

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

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

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

    Основные принципы построения ОС: принцип независимости программ от внешних устройств, принцип совместимости.

Принцип независимости программ от внешних устройств.

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

Принцип совместимости

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

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

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

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

    Основные принципы построения ОС: принцип открытой и наращиваемой ОС, принцип мобильности.

Принцип открытости и наращиваемости

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

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

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

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

    Основные принципы построения ОС: принцип обеспечения безопасности вычислений

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

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

Во многих современных инф.сис-х гарантируется степень безопасности данных соотв.уровню С2

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

Основными свойствами, характерными для класса С, являются наличие подсистемы учёта событий, связанных с безопасностью, и избирательный контроль доступа. Класс С делится на 2 подуровня: С1 – обеспечивает защиту данных от ошибок пользователей, но не от действий злоумышленников, на более строгом уровне С2 должны присутствовать:

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

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

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

    Защита памяти заключается в том, что память перед её повторным использованием должна инициализироваться.

    Реестр Windows. Ветви системного реестра

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

    – HKEY_CURRENT_CONFIG (HKCC) – в разделе находится вся информация об аппаратном профиле, который используется на локальной машине во время запуска системы;

    – HKEY_CURRENT_USER (HKCU) – в разделе хранится информация о конкретном пользователе, который вошел в систему и работает в ней в настоящий момент времени. В этой ветви сохраняются его папки, настройки экрана, установленные параметры для панели управления;

    – HKEY_CLASSES_ROOT (HKCR) – в разделе содержатся данные о расширениях типов файлов и приложениях, которые при их запуске будут открываться;

    – HKEY_USERS (HKU) – в этой ветви хранится информация обо всех загруженных активных профилях пользователей конкретного ПК;

    – HKEY_LOCAL_MACHINE (HKLM) – ветвь для хранения сведений о загрузке ОС Windows, информации о драйверах устройств и аппаратном обеспечении компьютера;

    – HKEY_USERS (HKU) – ветвь хранит индивидуальные настройки профиля каждого пользователя, который зарегистрирован в системе. Здесь же хранится информация о профиле «по умолчанию» для создаваемых новых пользователей.

    Командная строкаWindows: понятие, сценарии, функционал.

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

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

Среду командной оболочки Windows запускают разными способами, в частности указывая параметры при запуске Cmd.exe или используя собственный стартовый файл, хранящийся в каталоге %SystemRoot%\System32. Кроме того, командная строка может работать в пакетном режиме для выполнения набора команд. В пакетном режиме командная строка считывает и выполняет команды одну за другой. Работая с командной строкой Windows, вы должны понимать, откуда берутся используемые вами команды. «Родные» команды (встроенные в операционную систему) бывают двух видов: ■ внутренние - существуют внутри командной оболочки; у них нет отдельных исполняемых файлов; ■ внешние - реализованы в отдельных исполняемых файлах, которые обычно хранятся в каталоге %SystemRoot% \System32.

Сценарии командной строки - текстовые файлы с команда¬ми, которые вы хотите выполнить. Это те же команды, которые обычно вводятся в командной оболочке Windows. Одна¬ко, вместо того чтобы вводить команды каждый раз, когда они понадобятся, можно создать соответствующий сценарий и упростить себе жизнь. Поскольку сценарии состоят из стандартных текстовых символов, их можно создавать и редактировать в любом стандартном текстовом редакторе, скажем, в Notepad (Блокнот). Вводя команды, убедитесь, что каждая команда или группа команд, которые должны выполняться совместно, разметаются с новой строки. Это обеспечит их корректное выполнение. Закончив создание сценария командной строки, сохраните файл сценария с расширением.bat или.cmd.

В командной строке можно запускать команды разных типов: встроенные команды, утилиты Windows и версии приложений, рассчитанные на командную строку.

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


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


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


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


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


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


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


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


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


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


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


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


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


Принцип совместимости Совместимость на уровне исходных текстов требует наличия соответствующего транслятора в составе системного программного обеспечения, а также совместимости на уровне библиотек и системных вызовов. При этом необходима перекомпиляция имеющихся исходных текстов в новый выполняемый модуль. Гораздо сложнее достичь двоичной совместимости между процессорами, основанными на разных архитектурах. Для того чтобы один компьютер выполнял программы другого (например, программу для ПК типа IBM PC желательно выполнить на ПК типа Macintosh фирмы Apple), этот компьютер должен работать с машинными командами, которые ему изначально непонятны. Выходом в таких случаях является использование так называемых прикладных сред или эмуляторов. Одним из средств обеспечения совместимости программных и пользовательских интерфейсов является соответствие стандартам POSIX. Использование стандарта POSIX позволяет создавать программы в стиле UNIX, которые впоследствии могут легко переноситься из одной системы в другую.


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


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


Принцип мобильности (переносимости) 2. 2.Важно минимизировать или, если возможно, исключить те части кода, которые непосредственно взаимодействуют с аппаратными средствами. Зависимость от аппаратуры может иметь много форм. Некоторые очевидные формы зависимости включают прямое манипулирование реги­страми и другими аппаратными средствами Если аппаратно-зависимый код не может быть полностью исключен, то он должен быть изолирован в не­скольких хорошо локализуемых модулях. Аппаратно- зависимый код не должен быть распределен по всей системе. Например, можно спрятать аппаратно- зависимую структуру в программно задаваемые данные абстрактного типа. Введение стандартов POSIX преследовало цель обеспечить переносимость создаваемого программного обеспечения. Введение стандартов POSIX преследовало цель обеспечить переносимость создаваемого программного обеспечения.


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


Принцип обеспечения безопасности вычислений Безопасной считается система, которая «посредством специальных механизмов защиты контролирует доступ к информации таким образом, что только имеющие соответствующие полномочия лица или процессы, выполняющиеся от их имени, могут получить доступ на чтение, запись, создание или удаление информации». Иерархия уровней безопасности, приведенная в стандартах, помечает низший уровень безопасности как D, а высший как А. В класс D попадают системы, оценка которых выявила их несоответствие требованиям всех других классов.


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


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


Принцип обеспечения безопасности вычислений Уровень А является самым высоким уровнем безопасности, он требует в дополнение ко всем требованиям уровня В выполнения формального, математически обоснованного доказательства соответствия системы требованиям безопасности. А-уровень безопасности занимает своими управляющими меха­низмами до 90 % процессорного времени. Более безопасные системы не только снижают эффективность, но и существенно ограничивают число доступных прикладных пакетов, которые соответствующим образом могут выполняться в подобной системе. Например, для ОС Solaris (версия UNIX) есть несколько тысяч приложений, а для ее аналога В-уровня только около ста.


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


Микроядерные операционные системы Микроядро включает только те функции, которые требуются для определения набора абстрактных сред обработки для прикладных программ и для организации совместной работы приложений в обеспечении сервисов и в действии клиентами и серверами. В результате микроядро обеспечивает только пять различных типов сервисов: управление виртуальной памятью; задания и потоки; межпроцессные коммуникации (IPC - inter-process communication, межпроцессные коммуникации); управление поддержкой ввода/вывода и прерываниями; сервисы набора хоста (host - главный компьютер. Сейчас этим термином обозначают любой компьютер, имеющий IP- адрес) и процессора.


Микроядерные операционные системы Наиболее ярким представителем микроядерных ОС является ОС реального времени QNX. Микроядро QNX поддерживает только планирование и диспетчеризацию процессов, взаимодействие процессов, обработку прерываний и сетевые службы нижнего уровня. Микроядро может быть целиком размещено во внутреннем кэше даже таких процессоров, как Intel 486. Разные версии этой ОС имели и различные объемы ядер от 8 до 46 Кбайт. Чтобы построить минимальную систему QNX, требуется добавить к микроядру менеджер процессов, который создает процессы, управляет процессами и памятью процессов. Чтобы ОС QNX была применима не только во встроенных и бездисковых системах, нужно добавить файловую систему и менеджер устройств.


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


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


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




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


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


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


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


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


Предсказуемость ОСРВ Поведение ОС должно быть известно и достаточно точно прогнозируемо. Времена выполнения системных вызовов и временные характеристики поведения системы в различных обстоятельствах должны быть известны разработчику. Поэтому создатель ОСРВ должен приводить следующие характеристики: латентную задержку прерывания (то есть время от момента прерывания до момента запуска задачи): она должна быть предсказуема и согласована с требованиями приложения. Эта величина зависит от числа одновременно «висящих» прерываний; максимальное время выполнения каждого системного вызова. Оно должно быть предсказуемо и не зависимо от числа объектов в системе; максимальное время маскирования прерываний драйверами и ОС.

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

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

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

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

1. Главная программа, которая вызывает требуемые сервисные процедуры;

2. Набор сервисных процедур, реализующих системные вызовы;

3. Набор утилит, обслуживающих сервисные процедуры.

Управление памятью

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

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

Символьные имена присваивает пользователь при написании программы на алгоритмическом языке или ассемблере.

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

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

Управление вводом-выводом

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

Устройства ввода-вывода делятся на два типа: блок-ориентированные устройства и байт-ориентированные устройства .

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

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

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

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

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

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

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

Файлы и файловые системы

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

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

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

– работа с не дисковыми периферийными устройствами как с файлами;

– обмен данными между файлами, между устройствами, между файлом и уст­ройством (и наоборот);

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

– защита файлов от несанкционированного доступа.

В некоторых ОС может быть несколько систем управления файлами, что обеспе­чивает им возможность работать с несколькими файловыми системами. Очевид­но, что системы управления файлами, будучи компонентом ОС, не являются не­зависимыми от этой ОС, поскольку они активно используют соответствующие вызовы прикладного программного интерфейса API (application program interface) . Физическая организация файла описывает правила расположения файла на устройстве внешней памяти, в частности, на диске. Файл состоит из физических записей – блоков . Блок (как уже было отмечено выше) – наименьшая единица данных, которой внешнее устройство обменивается с оперативной памятью. В некоторых ОС такая наименьшая единица обмена называется кластером . При этом кластер может состоять из нескольких блоков.



Эта статья также доступна на следующих языках: Тайский

  • Next

    Огромное Вам СПАСИБО за очень полезную информацию в статье. Очень понятно все изложено. Чувствуется, что проделана большая работа по анализу работы магазина eBay

    • Спасибо вам и другим постоянным читателям моего блога. Без вас у меня не было бы достаточной мотивации, чтобы посвящать много времени ведению этого сайта. У меня мозги так устроены: люблю копнуть вглубь, систематизировать разрозненные данные, пробовать то, что раньше до меня никто не делал, либо не смотрел под таким углом зрения. Жаль, что только нашим соотечественникам из-за кризиса в России отнюдь не до шоппинга на eBay. Покупают на Алиэкспрессе из Китая, так как там в разы дешевле товары (часто в ущерб качеству). Но онлайн-аукционы eBay, Amazon, ETSY легко дадут китайцам фору по ассортименту брендовых вещей, винтажных вещей, ручной работы и разных этнических товаров.

      • Next

        В ваших статьях ценно именно ваше личное отношение и анализ темы. Вы этот блог не бросайте, я сюда часто заглядываю. Нас таких много должно быть. Мне на эл. почту пришло недавно предложение о том, что научат торговать на Амазоне и eBay. И я вспомнила про ваши подробные статьи об этих торг. площ. Перечитала все заново и сделала вывод, что курсы- это лохотрон. Сама на eBay еще ничего не покупала. Я не из России , а из Казахстана (г. Алматы). Но нам тоже лишних трат пока не надо. Желаю вам удачи и берегите себя в азиатских краях.

  • Еще приятно, что попытки eBay по руссификации интерфейса для пользователей из России и стран СНГ, начали приносить плоды. Ведь подавляющая часть граждан стран бывшего СССР не сильна познаниями иностранных языков. Английский язык знают не более 5% населения. Среди молодежи — побольше. Поэтому хотя бы интерфейс на русском языке — это большая помощь для онлайн-шоппинга на этой торговой площадке. Ебей не пошел по пути китайского собрата Алиэкспресс, где совершается машинный (очень корявый и непонятный, местами вызывающий смех) перевод описания товаров. Надеюсь, что на более продвинутом этапе развития искусственного интеллекта станет реальностью качественный машинный перевод с любого языка на любой за считанные доли секунды. Пока имеем вот что (профиль одного из продавцов на ебей с русским интерфейсом, но англоязычным описанием):
    https://uploads.disquscdn.com/images/7a52c9a89108b922159a4fad35de0ab0bee0c8804b9731f56d8a1dc659655d60.png