Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Лекция 4. Системное ПО и архитектура.





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

У ОС есть две ипостаси

· Представление с точки зрения пользователя (интерфейс, меню)

· Представление с точки зрения системы (аллокация ресурсов для приложения)

Выделяют обычно ОС и некоторое системно-технологическое обеспечение.

В ОС есть ядро (core, kernel) – это резидентная часть. Она грузится всегда в составе ОС. В ядро включается часть, которая осуществляет системные процессы, а юзер-часть выбрасывается в утилиты (утилита копирования, утилита отладки).

Когда система грузится, реализуется IPL (Initial Program Loader), то есть из какого-то места в памяти осуществляется загрузка некоторого маленького куска кода, который в свою очередь загрузит резидентную часть операционной системы. Под системой ввода-вывода ОС профессионалы понимают только дисковые подсистемы ввода-вывода, так как с ней есть сложности (мыши и клавиатуры- это периферия). Согласно архитектуре фон Неймана, процессор работает только с адресами main memory, он не умеет работать с адресами дисковых подсистем. ОС грузит адреса дисковых подсистем в main memory. У периферии есть свои процессоры, ОС не управляет клавиатурой, мышью и т.д. Main memory – это память, которая сделана с помощью полупроводниковых технологий (read only), либо перезаписываемая (RAM), либо быстрая технология (DRAM). Вся main memory представляется процессору как массив слов (48 бит или 32 бита). В составе процессора есть регистры (индексные или регистры инструкций), в которые записываются команды. Есть secondary memory – то, что управляется, что видно, к чему доступ предоставляется через ОС (флешки, электронные диски). Tertiary memory – DVD, CD-ROM, которые не управляются ОС и отдаются на откуп утилитам.

Чтобы работать с вводом-выводом, разработаны специальные контроллеры, которые находятся на диске. На материнской плате находится контроллер HBA, который преобразует команды ОС, переданные с помощью драйвера, в команды контроллера. Это и есть система ввода-вывода.

Без ОС работать можно, если не нужно делить память и делить процессор между приложениями, то ОС совершенно не нужна.

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

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

Загрузка информации из main memory в регистр и из регистра в main memory выполняется хардвеерно. ОС не работает с процессорными регистрами!

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

Существует множество таких решений, но ни тандемы, ни кластеры не называют сетевыми ОС.

Любая такая вычислительная система поддерживает multiprogramming. Job (работа) - это программа и данные, которые нужны для её выполнения, которые находятся на вторичных носителях. Job находится на диске. При запуске job, загружается в память программа вместе с данными, и создается процесс. Если мы запускаем job’ы и, соответственно, создаем процессы последовательно, то ОС для этого не нужна. Для этого всегда нужны compiler (компиляторы), loader, bindery. Такая работа, с последовательным запуском job’ов неэффективна из-за того, что пока создается один процесс, второй создаваться не может, возникает очередь. Поэтому нам нужен не multiprogramming с использованием job’ов, а multitasking с использованием task’ ов. Multitasking означает, что мы запускаем какой-то процесс, то есть загрузили job в память, и этот процесс на какое-то время занял процессор. Пока мы чем-то занимаемся (например, время ввода-вывода значительно более медленное, чем время вычисления процессора), я запущу другой job и, соответственно, другой task. Так вот, как только мы начинаем делить процессор, у нас появляется multitasking. Task- это job, который делит процессор. ОС должна поддерживать multitasking. Задача ОС: составление расписания (schedule) для запуска процессов и деление времени процессора. Multitasking только тогда им является, когда время отклика (response time) меньше одной секунды!

Чтобы это организовать нужна файловая подсистема (чтобы выбирать данные и процессы, это будет организовывать ОС, она будет организовывать schedule), нужно осуществлять защиту ресурсов (создаются restriction, то есть одному процессу не разрешается работать в области памяти другого процесса), аллокацию памяти, синхронизацию работы процессов и обеспечивать взаимосвязи между ними. Если возникает неприятность в ОС, то возникает trap – это exception, exclusion, деление на 0, исключение, это контролируется хардвером.

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

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

Чтобы что-то выполнить в Main memory нужно сделать mapping – привязать физические адреса к какому-то логическому названию, то есть к тем адресам, которые нужны. Существуют различные схемы обработки памяти. Операционная система этим не занимается, она только делает аллокацию, а всё это делает хардвер! ОС следит, какая часть памяти сейчас используется, следит какой процесс надо загрузить или выгрузить, согласно расписанию и следит за тем, какой процесс сейчас займет процессор, согласно расписанию. Связь между адресом переменной a и тем адресом, по которому она должны грузиться, совершает компилятор. Когда мы делаем компилятор, мы делаем mapping. Компилятор компилирует в относительные адреса, а loader будет загружать, создавая mapping между абсолютным и относительным адресом для данной структуры вычислительной техники. До Loader еще может работать bindery – собираем все модули, которые нужно загрузить. Может нам нужно будет загрузить не один модуль, а кучу, по их абсолютным адресам. Есть осуществление mapping во время compile time, load time, execute time. Чтобы перевести логический адрес в физическим будет работать memory management unit (MMU). Процессор будет работать по логическим адресам – это способ организации виртуальной памяти virtual memory. Все ОС на сегодняшний день поддерживают virtual memory.

Чтобы работать со storage (вторичной памятью) придумали file management (это вопросы ОС) и это работа с secondary storage. Это и есть ввод-вывод для ОС.

Есть дополнительный вид памяти: кэш-память, которая медленнее, чем регистр, но быстрее чем RAM и DRAM. Это хардвеерная реализация. Регистры управляются компиляторами, кэш управляется хардвером, main memory и disk storage управляются ОС. При этом регистры копируются в кэш, кэш копируется в Main memory, main memory на storage, storage на CD. Отсюда и разделение.

Скорость обращения к регистрам до 0,5 наносекунд, к кэшу от 0,5 до 25 наносекунд, к main memory до 250 наносекунд, а к storage до 5000 наносекунд. Размер регистра до 1 Кбайт, кэша до 64 Кбайт, main memory 64 Гбита, storage больше 100 Гбит.

Проблема в том, что мы постоянно должны делить0и строить расписание. Построить такое расписание и сделать коммуникацию процессов сложно. У компании IBM была создана ОС VM/SP, которая разделяла так, что каждый пользователь имеет как будто бы свою ОС, свои диски, свой процессор (виртуальные машины – VM). Если я хочу работать с базой данных, то я запущу процесс, который обслуживает базу данных. Хочу получить почту, выделю специальный процесс. Процесс- это софт, а каждый процесс, который запущен на своей машине, называется server. Сервер- это процесс, запущенный на отдельном процессоре.

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

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

Существуют разные события с файлами. Существуют file migration, computation migration, process migration. Если мы посылаем такой запрос, что в ответ мне в удаленном варианте будет послан файл, то это file migration, файл-серверная архитектура. Могу послать запрос, при котором у нас будет только ответ на запрос (я не требую, чтобы мне прислали файл, а требую, чтобы мне нашли какие-то данные и ответ на запрос), это будет computer server. Всё вместе это называется клиент-серверная архитектура, она подразумевает то, что в ответ на запрос я потребую либо ответ на запрос, либо файл. Наконец, мы можем на своей рабочей станции инициализировать процесс, и получить в ответ не файл, не запрос, не ответ на запрос, а запуск процесса совершенно в другом месте, это process migration – один из вариантов работы либо File server либо Computer server.

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







Что будет с Землей, если ось ее сместится на 6666 км? Что будет с Землей? - задался я вопросом...

Что делать, если нет взаимности? А теперь спустимся с небес на землю. Приземлились? Продолжаем разговор...

Что способствует осуществлению желаний? Стопроцентная, непоколебимая уверенность в своем...

ЧТО ПРОИСХОДИТ, КОГДА МЫ ССОРИМСЯ Не понимая различий, существующих между мужчинами и женщинами, очень легко довести дело до ссоры...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.