Студопедия

КАТЕГОРИИ:

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


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




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

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

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

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

3. Управление файлами. Файловая подсистема ОС виртуализирует в виде файлов набор данных[2], хранящихся на внешнем накопителе. Для удобство пользователя файлы могут объединяться в группы — каталоги, в свою очередь, каталоги и файлы также могут группировать в каталоги, образуя древовидную структуру. Многие реализации файловых систем позволяют реализовать не только древовидную структуру организации информации, но более сложные структуры, когда один и тот же файл или каталог отображается одновременно в различных частях структуры (например, в разных каталогах). Такая организация файлов называется сетевой[3], а соответствующая математическая структура носит название — сеть и является частным случаем более сложного математического объекта — графа.

Виртуализация информации в виде файлов оказалась настолько удобной, что некоторые операционные системы обобщили этот подход на прочие задачи представления ресурсов компьютерной системы. Так например файловые системы семейства *nix (Linux, Unix, Free BSD и прочие) отображают в файловой системе специальный каталог /dev/ каждый файл которого на самом деле является интерфейсом какого-либо устройства, и для каждого подключенного в систему устройства в этом каталоге создаётся специальный файл. Таким образом, взаимодействия с устройствами сводятся к операциям записи и чтения, производимым с такими специальными файлами.

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

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

Одна из важнейших её задач — определение прав субъекта, получающего доступ к компьютерной системе. С этой целью используется процедура логического входа в систему, в процессе которого «устанавливается личность пользователя» (введённые имя и пароль проверяются на соответствие хранимым). Такая процедура называется аутентификацией[4].

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

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

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

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

Также подсистема защиты и администрирования обеспечивает отказоустойчивость[5] вычислительной системы с использованием как программных, так и аппаратных средств.

6. Интерфейс прикладного программирования. Развитие модулей этой подсистемы происходит особенно бурно в последнее время. Изначально предусматривалось, что подсистема интерфейса прикладного программирования (API, Application Programming Interface) будет предоставлять прикладным программам набор функций, упрощающий написание приложений. Например, функции, отвечающие за графический интерфейс (отрисовка окон приложений, их масштабирование, перенос на экране и т.п.). Приложения выполняют обращения к функциям API с помощью системных вызовов, по логике работы похожих на вызовы подпрограмм. Таким образом, в прикладных программах эти функции не описаны, но успешно используются, что сокращает объём кода и времени написания программ, а также повышает надёжность. В последствие различных библиотек таких «удобных» функций становилось всё больше, сами библиотеки расширялись, покрывая целые предметные области. Со временем концепция интерфейса прикладного программирования эволюционировала в концепцию программных прикладных сред, которая будет рассмотрена позже.

7. Пользовательский интерфейс. Подсистема пользовательского интерфейса обеспечивает удобство взаимодействия пользователя (программиста, администратора) с компьютерной системой, предоставляет удобный и интуитивно понятный для человека интерфейс, обеспечивает интерактивность работы за терминалом (алфавитно-цифровым либо графическим). При работе с алфавитно-цифровым терминалом, пользователь взаимодействует с ОС с помощью команд, набираемых в командной строке. Если ОС поддерживает графический интерфейс, то взаимодействие осуществляется через множество объектов GUI (Graphical User Interface) — окна, иконки и прочие объекты.

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


Поделиться:

Дата добавления: 2015-09-13; просмотров: 68; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты