Основные темы на экзамен по дисциплине "Операционные системы и среды"
Скачать 326.86 Kb.
|
Основные темы на экзамен по дисциплине: "Операционные системы и среды". Что такое операционная система? Операционная система – это комплекс программ, которые выступают как интерфейс между устройствами вычислительной системы и прикладными программами, предназначены для управления устройствами и вычислительными процессами, а также для эффективного распределения вычислительных ресурсов и организации надёжных вычислений. Таким образом, операционная система – это программное обеспечение, выполняющее две функции: 1) предоставление пользователю-программисту более удобной в использовании «виртуальной машины», скрывающей реальное оборудование; 2) обеспечение эффективного использования компьютера путем рационального управления его ресурсами. История операционных систем MS-DOS, Windows, UNIX-подобных, Linux-подобных, Android, MacOS, iOs, основные операционные системы Linux. Linux была создана в 1991 году Линусом Торвальдсом, финским студентом. Тот факт, что Линус сразу после создания ОС выложил исходный код своей ОС в Интернет, был решающим в дальнейшей судьбе Linux. Хотя в 1991 году Интернет еще не был так широко распространен, как в наши дни, зато пользовались им в основном люди, которые имеют достаточную техническую подготовку. И уже с самого начала Торвальдс получил несколько заинтересованных отзывов с предложением помочь в разработке, на что Линус ответил согласием, и уже через полгода к разработке присоединились сотни, потом сотни тысяч добровольных помощников.В силу того, что исходные коды Linux распространяются свободно и общедоступно, к развитию системы с самого начала подключилось большое число независимых разработчиков. MS-DOS — коммерческая операционная система фирмы Microsoft для IBM PC-совместимых персональных компьютеров. MS-DOS работает в режиме реального времени процессора x86. Обеспечивается единовременное выполнение только одной программы. MS-DOS была спроектирована так, чтобы пользователи могли легко заменить встроенный интерпретатор посторонними интерпретаторами командной строки, например 4DOS. В 1985 году появляется первая версия Windows, которая не была оценена пользователями и ее проигнорировали. Возможно потому, что она всего лишь дополняла возможности DOS, будучи фактически графической оболочкой и надстройкой над комплектом MS-DOS. Со временем, система Windows все более совершенствовалась, появилась полноценная графика, лишила пользователей от видения системных файлов, был преодолен барьер многозадачности, что позволяет запустить 2-3 программы.В 1992 году с момента возникновения Windows 3.1, по мнению многих пользователей и профессионалов, новые возможности ОС были оценены по достоинству. С версии Windos3.1 ОС получила начало 32-разрядная доступность к жесткому диску. В 1998 году, 25 июня, новая OC Windows 98 вышла на рынок потребителей. Преимуществом, по сравнению с предыдущими образцами, были: полная интеграция с Интернетом, более совершенное управление интерфейсом, новый процессор Pentium II, графический портал AGP, шина USB. IOS — мобильная операционная система, созданная на ядре Linux и разрабатываемой и выпускаемой американской компанией Apple. Была выпущена в 2007 году изначально — для iPhone и iPod Touch. Сейчас же она установлена на всех устройствах Apple. Такие нововведения как мобильный браузер Safari, визуальная голосовая почта, виртуальная клавиатура сделали IOS одной из наиболее популярных систем для смартфонов. Андроид — система, которая наиболее динамично развивается, разработанна для смартфонов(изначально для коммунникаторов(Айфон и его тачскрин изменили мнение Гугла)). Она является упрощенным вариантом аналогичных систем Windows и Linux, используемых на стационарных ПК и ноутбуках, ориентированной для тачскрина. Платформа Андроид состоит из операционной системы, интерфейса, связывающего ПО и мощных приложений. Загрузка компьютера. Загрузка компьютера - это процесс загрузки операционной системы в основную память компьютера/оперативную память (ОЗУ) с последующей подготовкой системы к запуску пользователями приложений при включении компьютера. Классификация операционных систем Классификация ОС. Операционные системы можно разделить на группы (классифицировать) по следующим признакам: По количеству пользователей: однопользовательская ОС (обслуживает только одного пользователя); многопользовательская (работает со многими пользователями) По числу процессов: однозадачные (обрабатывают только одну задачу — уже не используются); многозадачные (располагает в оперативной памяти одновременно несколько задач, которые попеременно обрабатывает процессор) По типу средств вычислительной техники: однопроцессорные, многопроцессорные (задачи могут выполняться на разных процессорах; серверы, как правило, многопроцессорные), сетевые (обеспечивают совместное использование ресурсов всеми выполняемыми в сети задачами). По типу интерфейса (способа взаимодействия с пользователем) операционные системы делятся на 2 класса: ОС с интерфейсом командной строки и ОС с графическим интерфейсом. Серверные операционные системы Пример: Windows Server Управление приложениями. Использует много памяти и может стать веб сервером. Может подкл к инету многих пользователей. Управление несколькими пользователями в одной системе Операционные системы персональных компьютеров Управление ресурсами ПК через графический интерфейс. Обычная операционная система Операционные системы карманных персональных компьютеров Отличается только своеобразным интерфейсом, поддержкой беспроводной связи и мультимедиа Встроенные операционные системы Простая ОС, Однозадачная. Обычно такие находятся в Кассах принтерах и тд. Операционные системы реального времени Операционная система реального времени — тип специализированной операционной системы, основное назначение которой — предоставление необходимого и достаточного набора функций для проектирования, разработки и функционирования систем реального времени на конкретном аппаратном оборудовании. (Реальное время в операционных системах — это способность операционной системы обеспечить требуемый уровень сервиса в определённый промежуток времени.) Операционные системы смарт-карт На такие операционные системы накладываются крайне жесткие ограничения по мощности процессора и памяти. Некоторые из них могут управлять только одной операцией, например электронным платежом, но другие операционные системы на тех же самых смарт-картах выполняют сложные функции. Зачастую они являются патентованными системами. Некоторые смарт-карты являются Java-ориентированными. ПЗУ смарт-карт содержит интерпретатор виртуальной машины Java. Апплеты Java загружаются на карту и выполняются JVM-интерпретатором. Некоторые из таких карт могут одновременно управлять несколькими апплетами Java, что приводит к многозадачности и необходимости планирования. Из-за одновременной работы двух и более программ возникает необходимость в управлении ресурсами и защитой. Соответственно, все эти задачи выполняет обычно крайне примитивная операционная система, находящаяся на смарт-карте. Структура операционной системы (из чего состоят?) Процессы и потоки Процесс- это любое запущеное приложение. Поток- Это выполнение нескольких задач внутри приложения. Модель процесса Добавление к модели процесса потоков делает возможным реализацию нескольких независимых друг от друга выполняемых задач в единой среде процесса. Потоки называют иногда облегченными процессами из-за имеющихся между понятиями потока и процесса сходств. Иерархии процессов В некоторых системах родительский и дочерний процессы остаются связанными между собой определенным образом. Дочерний процесс может, в свою очередь, создавать процессы, формируя иерархию процессов. В UNIX системах заложена жесткая иерархия процессов. Каждый новый процесс, созданный системным вызовом fork, является дочерним к предыдущему процессу. Дочернему процессу достаются от родительского переменные, регистры и т.п. После вызова fork, как только родительские данные скопированы, последующие изменения в одном из процессов не влияют на другой, но процессы помнят о том, кто является родительским. В таком случае, в UNIX существует и прародитель всех процессов - процесс init. В Windows не существует понятия иерархии процессов, и все процессы равноправны. Хотя можно задать специальный маркер родительскому процессу, позволяющий контролировать дочерний процесс. Состояния процессов Три состояния процесса: Выполнение (занимает процессор) Готовность (процесс временно приостановлен, чтобы позволить выполняться другому процессу) Ожидание (процесс не может быть запущен по своим внутренним причинам, например, ожидая операции ввода/вывода) Возможные переходы между состояниями. 1. Процесс блокируется, ожидая входных данных 2. Планировщик выбирает другой процесс 3. Планировщик выбирает этот процесс 4. Поступили входные данные Потоки Поток – последовательность команд, работающих в рамках некоторого процесса Применение потоков Необходимость в потоках обусловливается целым рядом причин. Основной причиной использования потоков является то, что многие приложения должны одновременно выполнять несколько действий, причем выполнение части которых необходимо периодически блокировать. Программирование таких приложений упрощается за счет разделения на несколько последовательных потоков, которые выполняются в псевдопараллельном режиме. Классическая модель потоков С каждым потоком связывается: - счетчик выполнения команд; - регистры для текущих переменных; - стек; - состояние. Потоки делят между собой элементы своего процесса: - адресное пространство; - глобальные переменные; - открытые файлы; - таймеры; - семафоры; - статистическую информацию. Взаимодействие процессов Процессы могут взаимодействовать посредством обмена информацией. По объему передаваемой информации и возможному воздействию на поведение другого процесса все средства такого обмена можно разделить на категории: · Сигнал (signal) - передается минимум информации: один бит, “да” или “нет”. Используется для извещения процесса о наступлении какого-либо события. Примитив signal извещает о наступлении события, примитив wait выдает процесс, ожидающий этого события; · Сообщение (message) - передается блок данных вместе с управляющей информацией, определяющей тип сообщения; · Разделяемая память (shared memory). Два или более процессов могут совместно использовать некоторую область адресного пространства; · Канал (pipe) - средство межпроцессного взаимодействия в многозадачных системах, доступ к каналу осуществляется на его конец (end), канал может быть однонаправленным или двунаправленным. Состязательная ситуация В операционных системах процессы, работающие совместно, могут сообща использовать некое общее хранилище данных. Каждый процесс может считывать из общего хранилища данных и записывать туда информацию. Таким хранилищем может быть участок разделяемой памяти или файл общего доступа. Природа хранилища данных не влияет на суть проблемы. Какие могут возникнуть проблемы? Состояние состязания - ситуация, в которой два и более процесса считывают или записывают данные одновременно и конечный результат зависит от того, какой из них был первым. Критические области Как избежать состязания? Основной способ - это запрет одновременной записи и чтения разделяемых данных более чем одним процессом. Иными словами, необходимо взаимное исключение. Это означает, что в тот момент, когда один процесс использует разделенные данные, другому процессу это делать будет запрещено. Проблема, описанная выше, возникла из-за того, что процесс В начал работу с совместно используемой переменной до того, как процесс А ее закончит. Для решения проблемы попадания в критическую область есть два способа: § программный, при помощи специальных алгоритмов, § применение специальных примитивов межпроцессного взаимодействия. Семафоры Семафор — это примитив синхронизации, позволяющий ограничить доступ к критической секции только для N процессов. При этом семафор позволяет реализовать это без использования ожидания. Концептуально семафор включает в себя неотрицательный целочисленный счетчик и очередь ожидания для процессов. Интерфейс семафора состоит из двух основных операций: вниз (down) и вверх (up). Операция вниз атомарно проверяет, что счетчик больше 0 и уменьшает его. Если счетчик равен 0, процесс блокируется и ставится в очередь ожидания. Операция вверх увеличивает счетчик и посылает ожидающим потокам сигнал пробудиться, после чего один из этих процессов сможет повторить операцию вниз. Мьютексы Мьютекс — от словосочетания mutual exclusion, те. взаимное исключение — это примитив синхронизации, напоминающий бинарный семафор с дополнительным условием: разблокировать его должен тот же поток, который и заблокировал Мониторы Монитор — это механизм синхронизации в объектно-ориентированном программировании, при использовании которого объект помечается как синхронизированный и компилятор добавляет к вызовам всех его методов блокировку с помощью мьютекса. При этом код, использующий этот объект, не должен заботиться о синхронизации. В этом смысле монитор является более высокоуровневой конструкцией, чем семафоры и мьютексы. Передача сообщений Для решения проблемы согласованности процессов при передаче информации, существуют специальные механизмы обмена данными, основанные на мьютексах. Это системные вызовы send() и recieve(). Первый посылает сообщение заданному адресату, второй получает сообщение от указанного источника. Если сообщения нет, второй запрос блокируется до поступления сообщения либо немедленно возвращает код ошибки. Барьеры Некоторые приложения делятся на фазы, и существует правило, что процесс не может перейти в следующую фазу, пока к этому не готовы все остальные процессы. Этого можно добиться, разместив в конце каждой фазы барьер. Когда процесс доходит до барьера, он блокируется, пока все процессы не дойдут до барьера. Планирование в пакетных системах Планирование в интерактивных системах Планирование в системах реального времени Планирование потоков Классические задачи взаимодействия процессов Управление памятью Абстракция памяти: адресные пространства Понятие адресного пространства Свопинг Подкачка, или своппинг (swapping - обмен), - это процесс выгрузки редко используемых областей виртуального адресного пространства программы и/или всей программы на диск или другое устройство внешней памяти. Такая внешняя память всегда намного дешевле оперативной памяти, хотя и намного медленнее. Управление свободной памятью Виртуальная память Страничная организация памяти Таблицы страниц Алгоритмы замещения страниц Краткая сравнительная характеристика алгоритмов замещения страниц Политика очистки страниц Сегментация |