Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Функциональные компоненты ОС. Общая характеристика






4.1. Понятие ресурса

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

Основные ресурсы:

- аппаратные – процессоры, память, внешние устройства;

- информационные – данные и программы.

4.2. Основные функциональные компоненты ОС автономного компьютера

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

- по типам локальных ресурсов, которыми управляет ОС; соответствующие подсистемы – подсистемы управления ресурсами;

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

Основные подсистемы управления ресурсами – это подсистемы:

· управления процессами;

· управления памятью;

· управления файлами и внешними устройствами.

Общие для всех ресурсов – это подсистемы:

· прикладного программного и пользовательского интерфейсов;

· защиты данных и администрирования.

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

· Управление процессами

Эта подсистема – важнейшая часть ОС.

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

Подсистема управления процессами планирует выполнение процессов и выполняет следующие функции:

- распределяет процессорное время между несколькими одновременно существующими в системе процессами;

- занимается созданием, переключением состояния и уничтожением процессов;

- обеспечивает процессы необходимыми системными ресурсами;

- поддерживает синхронизацию процессов;

- обеспечивает взаимодействие процессов.

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

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

- отслеживание свободной и занятой памяти;

- выделение памяти процессам и ее освобождение при завершении процесса;

- защита памяти процесса;

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

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

· Управление файлами и внешними устройствами

Управление файлами и внешними устройствами осуществляется совместной работой двух подсистем – файловой системыи подсистемы ввода-вывода.

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

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

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

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

· Интерфейс прикладного программирования и пользовательский интерфейс

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

 

20. Независимые и взаимодействующие вычислительные процессы и потоки.

 

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

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

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

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

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

Процессы, выполняющие общую совместную работу таким образом, что резуль­таты вычислений одного процесса в явном виде передаются другому, то есть их работа построена именно на обмене данными, называются сотрудничающими. Взаимодействие сотрудничающих процессов удобно всего рассматривать в схеме «производитель — потребитель» (produces — consumer) или, как часто говорят — «поставщик — потребитель».

 

21. Сессии и идентификаторы пользователя.

 

Сессии в Unix
Например, в системах семейства Unix пользователь идентифицируется целочисленным значением uid (user identifier). С каждой задачей (процессом) связано два идентификатора пользователя: реальный и эффективный. В большинстве случаев эти идентификаторы совпадают (ситуации, когда они не совпадают, подробно обсуждаются в разд.Изменение идентификатора пользователя). Таким образом, каждая задача обязательно исполняется от имени того или иного пользователя, имеющего учетную запись в системе.
Пользователь может иметь также символьное имя. В старых Unix системах соответствие между символьным и числовым идентификаторами устанавливалось на основе содержимого текстового файла /etc/passwd. Каждая строка этого файла описывает одного пользователя и состоит из семнадцати полей, разделенных символом ': '. В первом поле содержится символьное имя пользователя, во втором — числовой идентификатор в десятичной записи. Остальные поля содержат другие сведения о пользователе, например, его полное имя.
Пользовательские программы могут устанавливать соответствие между числовым и символьным идентификаторами самостоятельно, путем просмотра файла /etc/passwd, или использовать библиотечные функции, определенные стандартом POSIX. Во многих реализациях эти функции используют вместо /etc/passwd индексированную базу данных, а сам файл /etc/passwd сохраняется лишь для совместимости со старыми программами.
В современных системах семейства Unix библиотеки работы со списком пользователей имеют модульную архитектуру и могут использовать различные, в том числе и распределенные по сети базы данных. Интерфейс модуля работы с конкретным типом БД называется РАМ (Person Autentification Module -модуль аутентификации людей) (рис. 12.1).
Нужно отметить, что соответствие между символьным и числовым идентификаторами в Unix не является взаимно однозначным. Одному и тому же числовому идентификатору может соответствовать несколько имен. Кроме того, в Unix разрешено создать объекты с числовым uid, которому не соответствует никакое символьное имя.

Большинство современных ОС позволяют также запускать задания без входа систему и создания сессии. Так, практически все системы разделения времени (Unix, VMS, MVS-OS/390-z/OS) предоставляют возможность пользователям запускать задачи в заданные моменты астрономического времени периодически, например, в час ночи в пятницу каждой недели. Каждая такая задача исполняется от имени определенного пользователя — того, кто запросил запуск задачи. Для управления правами доступа в таких ситуациях идентификатор пользователя ассоциируется не с сессией, а с отдельными заданиями, а обычно даже с отдельными задачами. В Windows NT/2000/XP задачи, которые могут запускаться и работать без входа пользователя в систему, называются сервисами. По умолчанию, сервисы запускаются от имени специального [псевдо|пользователя System, но в свойствах сервиса можно указать, от чьего имени он будет запускаться. Кроме того, некоторые комплектации системы (Terminal Server Edition, Citrix ICA) допускают одновременную интерактивную работу нескольких пользователей. Чтобы обеспечить разделение доступа во всех этих случаях, каждый процесс в системе имеет контекст доступа (security context), соответствующий той или иной учетной записи.

 

22. Ресурс. Виды и типы ресурсов. Основные виды ресурсов.

 

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

В первых системах программирования под понятием «ресурсы» понимали: процесс-сорное время, память, каналы ввода/вывода и периферийные устройства. Однако скоро понятие ресурса стало более универ-сальным и общим.

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

Ресурс может быть выделен задаче, в следующих случаях:

1.) ресурс свободен, и в системе нет запросов от задач более высокого приоритета к запрашиваемому ресурсу;

2.) текущий запрос и ранее выданные запро-сы допускают совместное использование ресурсов;

3.) ресурс используется задачей низшего приоритета и может быть временно отобран (разделяемый ресурс).

—————————————————————

Схема освобождения ресурса:

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

—————————————————————

Основные функции ядра ОС, распределение ресурсов:

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

1.) порождение процессов, уничтожение процессов (завершение) и реализация механизмов связи между процессами;

2.) обработка прерываний;

3.) реализация основных функций распреде-ления ресурсов.

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

23. Критические секции. Блокирующие переменные.

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

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

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

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

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

При этом неважно, находится этот поток в активном или в приостановленном состоянии. Этот прием называют взаимным исключением.

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

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

 

24. Аутентификация и авторизация.

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

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

· Как предшественник авторизации, идентифицируя объект запроса, чтобы определить, должен ли тот объект иметь разрешение выполнить работу

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

Три типа аутентификации наиболее распространены:

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

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

· Аутентификация удаленных пользователей. Пользователи часто аутентифицируются удаленными серверами при выполнении определенных задач. Аутентификация пользователя удаленно требует, чтобы Ваш код отправил учетные данные в некоторой форме, такой как пароль, cookie или цифровой сертификат.

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

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

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

Подробные данные авторизации зависят от того, используете ли Вы iOS или OS X.

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

В OS X существует несколько уровней авторизации:

· Если (полное шифрование диска) FileVault 2 включено, компьютер требует, чтобы пароль дешифровал загрузочный том.

· Если автоматический вход в систему отключен, OS X выводит на экран экран входа в систему после начальной загрузки.

· Когда пользователь выходит из системы, OS X также выводит на экран экран входа в систему.

· Если надлежащий флажок в предпочтительной области Системы безопасности проверяется, OS X выводит на экран экран входа в систему при пробуждении от сна или при отъезде экранной заставки.

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

· Если приложение или потребности инструмента поднятые полномочия, требуется пароль администратора.

· Некоторые приложения могут ограничить доступ к частям их функциональности через Authorization Services API.

Кроме того, и на OS X и на iOS, некоторые приложения могут потребовать, чтобы Вы вошли в систему удаленного сервера, поочередно выполняющего аутентификацию и авторизацию.

 

 

25. Классификации операционных систем. Привести примеры реализации.

Классификация ОС Операционные системы могут различаться особенностями реализации внутренних алгоритмов управления основными ресурсами компьютера (процессорами, памятью, устройствами), особенностями использованных методов проектирования, типами аппаратных платформ, областями использования и многими другими свойствами. Ниже приведена классификация ОС по нескольким наиболее основным признакам. 1.1 Особенности алгоритмов управления ресурсами От эффективности алгоритмов управления локальными ресурсами компьютера во многом зависит эффективность всей сетевой ОС в целом. Поэтому, характеризуя сетевую ОС, часто приводят важнейшие особенности реализации функций ОС по управлению процессорами, памятью, внешними устройствами автономного компьютера. Так, например, в зависимости от особенностей использованного алгоритма управления процессором, операционные системы делят на многозадачные и однозадачные, многопользовательские и однопользовательские, на системы, поддерживающие многонитевую обработку и не поддерживающие ее, на многопроцессорные и однопроцессорные системы. Поддержка многозадачности. По числу одновременно выполняемых задач операционные системы могут быть разделены на два класса: однозадачные (например, MS-DOS, MSX) и многозадачные (OC EC, OS/2, UNIX, Windows 95 и т.д.). Однозадачные ОС в основном выполняют функцию предоставления пользователю виртуальной машины, делая более простым и удобным процесс взаимодействия пользователя с компьютером. Однозадачные ОС включают средства управления периферийными устройствами, средства управления файлами, средства общения с пользователем. Многозадачные ОС, кроме вышеперечисленных функций, управляют разделением совместно используемых ресурсов, таких как процессор, оперативная память, файлы и внешние устройства. Поддержка многопользовательского режима. По числу одновременно работающих пользователей ОС делятся на: однопользовательские (MS-DOS, Windows 3.x, ранние версии OS/2); многопользовательские (UNIX, Windows NTи т.д.). Главным отличием многопользовательских систем от однопользовательских является наличие средств защиты информации каждого пользователя от несанкционированного доступа других пользователей. Следует заметить, что не всякая многозадачная система является многопользовательской, и не всякая однопользовательская ОС является однозадачной. Вытесняющая и невытесняющая многозадачность. Важнейшим разделяемым ресурсом является процессорное время. Способ распределения процессорного времени между несколькими одновременно существующими в системе процессами (или нитями) во многом определяет специфику ОС. Среди множества существующих вариантов реализации многозадачности можно выделить две группы алгоритмов: невытесняющая многозадачность (NetWare, Windows 3.x); вытесняющая многозадачность (Windows NT, OS/2, UNIX и т.д.). Основным различием между вытесняющим и невытесняющим вариантами многозадачности является степень централизации механизма планирования процессов. В первом случае механизм планирования процессов целиком сосредоточен в операционной системе, а во втором - распределен между системой и прикладными программами. При невытесняющей многозадачности активный процесс выполняется до тех пор, пока он сам, по собственной инициативе, не отдаст управление операционной системе для того, чтобы та выбрала из очереди другой готовый к выполнению процесс. При вытесняющей многозадачности решение о переключении процессора с одного процесса на другой принимается операционной системой, а не самим активным процессом. Поддержка многонитевости. Важным свойством операционных систем является возможность распараллеливания вычислений в рамках одной задачи. Многонитевая ОС разделяет процессорное время не между задачами, а между их отдельными ветвями (нитями). Многопроцессорная обработка. Другим важным свойством ОС является отсутствие или наличие в ней средств поддержки многопроцессорной обработки - мультипроцессирование. Мультипроцессирование приводит к усложнению всех алгоритмов управления ресурсами. В наши дни становится общепринятым введение в ОС функций поддержки многопроцессорной обработки данных. Такие функции имеются в операционных системах Solaris 2.x фирмы Sun, Open Server 3.x компании Santa Crus Operations, OS/2 фирмы IBM, Windows NT фирмы Microsoft (и далее) и NetWare 4.1 фирмы Novell. Многопроцессорные ОС могут классифицироваться по способу организации вычислительного процесса в системе с многопроцессорной архитектурой: асимметричные ОС и симметричные ОС. Асимметричная ОС целиком выполняется только на одном из процессоров системы, распределяя прикладные задачи по остальным процессорам. Симметричная ОС полностью децентрализована и использует весь пул процессоров, разделяя их между системными и прикладными задачами. Выше были рассмотрены характеристики ОС, связанные с управлением только одним типом ресурсов - процессором. Важное влияние на облик операционной системы в целом, на возможности ее использования в той или иной области оказывают особенности и других подсистем управления локальными ресурсами - подсистем управления памятью, файлами, устройствами ввода-вывода. Специфика ОС проявляется и в том, каким образом она реализует сетевые функции: распознавание и перенаправление в сеть запросов к удаленным ресурсам, передача сообщений по сети, выполнение удаленных запросов. При реализации сетевых функций возникает комплекс задач, связанных с распределенным характером хранения и обработки данных в сети: ведение справочной информации о всех доступных в сети ресурсах и серверах, адресация взаимодействующих процессов, обеспечение прозрачности доступа, тиражирование данных, согласование копий, поддержка безопасности данных.

 

 


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

mylektsii.su - Мои Лекции - 2015-2024 год. (0.014 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал