Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Структура ОС




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

Хэширование.

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

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

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

Существует два способа разрешения коллизии:

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

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


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

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

С 1990-х наиболее распространенными операционными системами являются ОС семейства Microsoft Windows и UNIX-подобные системы.

Функции:

Интерфейсные функции:

  1. Управление аппаратными средствами, устройствами ввода/вывода
  2. Файловая система
  3. Поддержка многозадачности (разделение использования памяти, времени выполнения)
  4. Ограничение доступа, многопользовательский режим работы
  5. Сеть

Внутренние функции:

  1. Обработка прерываний
  2. Виртуальная память
  3. Планировщик задач
  4. Буферы ввода-вывода
  5. Обслуживание драйверов устройств

Операционная система состоит из следующих компонентов:

1. Ядро занимается планировкой задач и обеспечивает доступ к оборудованию.

2. Системные библиотеки предоставляют приложениям интерфейс к функциям ядра на более абстрактном уровне.

3. Оболочка представляет пользовательский интерфейс — интерфейс командной строки или графический пользовательский интерфейс.

4. Низкоуровневые системные утилиты для управления ядром и оборудованием (форматирование дисков, включение/выключение и т.д.)

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

Свойства ОС

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

Резидентная постоянно находящаяся в памяти

Ядро (kernel) – резидентная часть ОС, работающая в режиме супервизора. («обычно» работает в режиме физической адресации).

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

Динамически подгружаемые драйверы устройств:

• резидентные / нерезидентные

• работают в пользовательском режиме / в режиме супервизора

«Системный вызов» - обращение к ОС за предоставление той или иной функции (возможности, услуги, сервиса). Пример: создание/завершение процесса, создание канала взаимодействия между процессами и т.д.

При системном вызове основной исполняемый код – часть кода ядра. Вызов подпрограммы – исполняемый код не в ядре.

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

  1. объекта ядра, через который операционная система управляет процессом. Там же хранится статистическая информация о процессе;
  2. адресного пространства, в котором содержится код и данные всех EXE- и DLL модулей. Именно в нем находятся области памяти, динамически распределяемой для стеков потоков и других нужд.

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

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

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

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

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

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

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

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

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

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




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


Дата добавления: 2015-01-03; Просмотров: 366; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




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