русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Текст лекции


Дата добавления: 2013-12-23; просмотров: 1397; Нарушение авторских прав


Ключевые вопросы

Лекция № 3. Подсистемы управления

Продолжительность:2 часа (90 мин.)

· Цель и задачи курса.

· Информация и данные.

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

· Основные понятия и определения: дисковые операционные системы (ДОС); ОС общего назначения.

· Управление процессами, памятью, файлами.

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

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

 

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

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

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

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



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

В задачу управления любыми ресурсами входит четыре типа подзадач :

- планирование ресурса – определение, какому процессу, когда и в каком количестве (если ресурс может выделяться частями) следует выделить данный ресурс,

- удовлетворение запроса на ресурс,

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

- разрешение конфликтов между запросами ресурсов.

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

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

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

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

Функции операционной системы обычно группируются либо в соответствии с типами ресурсов, которыми управляет операционная система, либо в соответствии со специфическими задачами, применимыми ко всем ресурсам. Иногда такие группы функций называют подсистемами. Наиболее важными подсистемами являются подсистемы управления:

- процессами;

- памятью;

- файлами;

- внешними устройствами.

Подсистемами, общими для всех ресурсов являются подсистемы:

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

- защиты данных;

- администрирования.

 

6.2.1 Управление процессами— до 15 мин.

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

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

Для выполнения процесса необходимы:

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

- необходимое количество процессорного времени.

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

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

- историю пребывания процесса в системе (относительные доли вычислений и ввода-вывода),

- его текущее состояние (активное или заблокированное),

- уровень привилегированности процесса (значение приоритета).

Эти дополнительные данные могут учитываться системой при принятии решения о предоставлении ресурсов процессу.

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

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

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

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

- состоянием регистров и программного счетчика процессора,

- режимом работы процессора,

- указателями на открытые файлы,

- информацией о незавершенных операциях ввода-вывода,

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

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

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

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

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

В итоге можно сказать, что подсистема управления процессами:

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

- создает и уничтожает процессы,

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

- обеспечивает синхронизацию процессов,

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

6.2.2 Управление памятью— до 15 мин.

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

Управление памятью заключается в:

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

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

- настройке адресно-зависимых частей кодов процесса на физические адреса выделенной области,

- защите областей памяти каждого процесса.

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

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

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

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

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

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

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

- защита памяти,

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

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

 

6.2.3 Управление файлами— до 15 мин.

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

Операционная система позволяет пользователю выполнять с файлами и каталогами различные действия:

- поиск по имени или типу,

- создание,

- удаление,

- вывод содержимого на внешнее устройство,

- изменение и сохранение содержимого.

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

- отображает символьные имена файлов во внутренние идентификаторы;

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

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

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

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

6.2.4 Подсистема управления внешними устройствами— до 15 мин.

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

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

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

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

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

 

6.2.5 Защита данных и администрирование— до 15 мин.

 

Безопасность данных вычислительной системы определяется:

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

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

В последнем случае принято различать защиту от ошибочного и от злонамеренного доступа.

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

Функции защиты операционной системы непосредственно связаны с функциями администрирования:

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

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

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

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

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

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

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

 

6.2.6 Интерфейс прикладного программирования— до 15 мин.

 

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

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

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

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

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

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

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

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

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

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

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

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

Способ реализации системных вызовов зависит от реализации конкретной операционной системы, от аппаратной платформы и от языка, на котором написано приложение.

 

6.2.7 Пользовательский интерфейс— до 15 мин.

 

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

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

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

- алфавитно-цифровыми и

- графическими.

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

- запускать и останавливать приложения,

- выполнять различные операции с файлами и каталогами,

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

- администрировать систему.

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

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

 



<== предыдущая лекция | следующая лекция ==>
 | Текст лекции


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.007 сек.