Добавил:
Developer Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

СОС зачёт ответы

.pdf
Скачиваний:
8
Добавлен:
25.03.2023
Размер:
1.08 Mб
Скачать

1.Классификацию операционных систем можно осуществлять несколькими способами

2.Где применяются ОС?

3.Архитектура ПК

4.История создания ОС

5.Что такое операционная система?

6.Основные понятия операционной системы

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

8.Что такое ядро ОС?

9.Чем user space отличается от kernel space?

10.Два основных вида ядра и ОС в чем их различия?

11.Что такое прерывания и для чего они нужны?

12.Виды и примеры прерываний

13.Как ОС загружается на компьютер?

14.Как приложения взаимодействуют с ОС?

15.Как оборудование взаимодействует с ОС?

16.Основные сервисы операционной системы?

17.Что такое процесс?

18.Основные состояния процесса?

19.Какую информацию о процессе использует ОС?

20.Различие процесса и потока?

21.Что такое файл, файловая система? Примеры файловых систем

22.Как реализуется многозадачность в операционной системе?

23.Проблемы, связанные с многозадачностью?

24.Что такое дедлок?

1.Классификацию операционных систем можно осуществлять несколькими способами

1.По способу организации вычислений:

o системы пакетной обработки (batch processing operating systems) – целью является выполнение максимального количества вычислительных задач за единицу времени; при этом из нескольких задач формируется пакет, который обрабатывается системой;

o системы разделения времени (time-sharing operating systems) – целью является возможность одновременного использования одного компьютера несколькими пользователями; реализуется посредством поочередного предоставления каждому пользователю интервала процессорного времени;

oсистемы реального времени (real-time operating systems) – целью является выполнение каждой задачи за строго определённый для данной задачи интервал времени.

2.По типу ядра:

oсистемы с монолитным ядром (monolithic operating systems);

oсистемы с микроядром (microkernel operating systems);

oсистемы с гибридным ядром (hybrid operating systems).

3.По количеству одновременно решаемых задач:

oоднозадачные (single-tasking operating systems);

oмногозадачные (multitasking operating systems).

4.По количеству одновременно работающих пользователей:

oоднопользовательские (single-user operating systems);

oмногопользовательские (multi-user operating systems).

5.По количеству поддерживаемых процессоров:

oоднопроцессорные (uniprocessor operating systems);

oмногопроцессорные (multiprocessor operating systems).

6.По поддержке сети:

oлокальные (local operating systems) – автономные системы, не предназначенные для работы в компьютерной сети;

oсетевые (network operating systems) – системы, имеющие компоненты, позволяющие работать с компьютерными сетями.

7.По роли в сетевом взаимодействии:

oсерверные (server operating systems) – операционные системы,

предоставляющие доступ к ресурсам сети и управляющие сетевой инфраструктурой;

oклиентские (client operating systems) – операционные системы, которые могут получать доступ к ресурсам сети.

8.По типу лицензии:

oоткрытые (open-source operating systems) – операционные системы с открытым исходным кодом, доступным для изучения и изменения;

oпроприетарные (proprietary operating systems) – операционные системы, которые имеют конкретного правообладателя; обычно поставляются с закрытым исходным кодом.

9.По области применения:

oоперационные системы мэйнфреймов – больших компьютеров (mainframe

operating systems);

o операционные системы серверов (server operating systems);

oоперационные системы персональных компьютеров (personal computer operating systems);

o операционные системы мобильных устройств (mobile operating systems); o встроенные операционные системы (embedded operating systems);

oоперационные системы маршрутизаторов (router operating systems).

2.Где применяются ОС?

Суперкомпьютеры. Операционные системы для современных суперкомпьютеров представляют собой многозадачные многопроцессорные операционные системы с разделением времени, способные работать в сетевой распределенной среде. Обычно операционная система суперкомпьютера — это оснащенная специальными программными расширениями система UNIX или Linux. В последние два года наблюдаются попытки корпорации Microsoft выйти на этот рынок, становящийся все более популярным. Так, операционная система Windows HPC Server 2008 создана специально для высокопроизводительных кластерных систем. В России высокопроизводительные кластерные системы работают под управлением отечественных разработок Linux (суперкомпьютер СКИФ-МГУ, операционная система ALT Linux 4.1 SKIF).

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

Серверы. Основная черта серверных систем — поддержка большого числа одновременно работающих служб, обслуживание множества клиентов и передача большого количества информации. Таким образом, серверные операционные системы должны быть многозадачными системами с разделением времени и развитыми сетевыми возможностями. Традиционно в качестве серверных систем использовались различные варианты UNIX. После появления Linux и Windows NT эти операционные системы также стали использоваться в качестве серверных[8].

Персональные компьютеры. Операционные системы для персональных компьютеров в первую очередь должны обладать дружественным пользовательским интерфейсом. Хотя у систем семейства UNIX есть графическая оконная среда XWindows, долгое время она считалась менее «дружественной», чем Windows или Macintosh. Однако активная экспансия Linux в сферу персональных машин привела к тому, что эта операционная система сегодня может предложить пользователям не менее, а иногда и более удобные средства работы в графической оконной среде.

Наладонные компьютеры. Малые размеры этих устройств изначально подразумевали ограничения в ресурсах, которые компьютер может выделить для выполнения заданий. В то же время название «компьютер» требует от этого устройства, чтобы номенклатура выполняемых пользовательских заданий была примерно такой же, какую обеспечивает пользователю настольный компьютер. Таким образом, операционная система наладонного компьютера должна эффективно функционировать с разделением времени в условиях ограниченных ресурсов. Эта задача решается либо специализированными версиями операционных систем (например, Windows CE или специальным образом собранный ОС Linux), либо разработанными специально для этого операционными системами (Palm OS).

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

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

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

3. Архитектура ПК

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

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

Рис. 1. Общее представление архитектуры компьютера

Сама по себе, аппаратура умеет делать только очень простые, базовые операции - по типу:

сложить два числа, перейти к адресу, записать по адресу и тд.

Например, процессор умеет выполнять только четыре базовых типа инструкции:

Чтение инструкций/данных из памяти (read)

Выполнение интрукции (execute)

Запись результата в память (write)

Прерывание (interrupt)

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

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

Большинство современных компьютеров состоит из двух и более уровней. Существуют машины даже с шестью уровнями (рисунок 1).

Уровень 0 — аппаратное обеспечение машины. Его электронные схемы выполняют программы, написанные на языке уровня 1. Ради полноты нужно упомянуть о существовании еще одного уровня, расположенного ниже уровня 0. Этот уровень не показан на рисунке 1, так как он попадает в сферу электронной техники и,

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

Следующий уровень — микроархитектурный уровень. На этом уровне можно видеть совокупности 8 или 32 регистров, которые формируют локальную память и схему, называемую АЛУ (арифметико-логическое устройство). АЛУ выполняет простые арифметические операции. Регистры вместе с АЛУ формируют тракт данных, по которому поступают данные. Основная операция тракта данных состоит в следующем. Выбирается один или два регистра, АЛУ производит над ними какую-либо операцию, например сложения, а результат помещается в один из этих регистров.

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

Новые средства, появившиеся на третьем уровне, выполняются интерпретатором, который работает на втором уровне. Этот интерпретатор был когда-то назван операционной системой. Команды третьего уровня, идентичные командам второго уровня, выполняются микропрограммой или аппаратным обеспечением, но не операционной системой. Иными словами, одна часть команд третьего уровня интерпретируется операционной системой, а другая часть — микропрограммой. Вот почему этот уровень считается гибридным. Мы будем называть этот уровень уровнем операционной системы.

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

Пятый уровень обычно состоит из языков, разработанных для прикладных программистов. Такие языки называются языками высокого уровня. Существуют сотни языков высокого уровня. Наиболее известные среди них — BASIC, С, C++, С#, Java, LISP и Prolog. Программы, написанные на этих языках, обычно транслируются на уровень 3 или 4. Трансляторы, которые обрабатывают эти программы, называются компиляторами. Отметим, что иногда также используется метод интерпретации. Например, программы на языке Java обычно интерпретируются.

Различают два основных типа архитектуры – Фон Неймановскую (принстонскую) и гарвардскую.

Архитектура Фон Неймана

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

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

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

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

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

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

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

Рис.1 Схема ВМ по архитектуре Фон Неймана

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

В соответствии с принципами фон Неймана компьютер состоит из арифметикологического устройства — АЛУ (англ. ALU, Arithmetic and Logic Unit), выполняющего арифметические и логические операции; устройства управления, предназначенного для организации выполнения программ; запоминающих устройств (ЗУ), в т.ч. оперативного запоминающего устройства (ОЗУ) и внешнего запоминающего устройства (ВЗУ); внешних устройств для ввода-вывода данных.

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

Команда состоит из указания, какую операцию следует выполнить (из возможных операций на данном «железе») и адресов ячеек памяти, где хранятся данные, над которыми следует выполнить указанную операцию, а также адреса ячейки, куда следует записать результат (если его требуется сохранить в ЗУ).

Из арифметико-логического устройства результаты выводятся в память или устройство вывода. Принципиальное различие между ЗУ и устройством вывода заключается в том, что в ЗУ данные хранятся в виде, удобном для обработки компьютером, а на устройства вывода (принтер, монитор и др.) поступают так, как удобно человеку. УУ управляет всеми частями компьютера. От управляющего устройства на другие устройства поступают сигналы «что делать», а от других устройств УУ получает информацию об их состоянии. Управляющее устройство содержит специальный регистр (ячейку), который называется «счетчик команд». После загрузки программы и данных в память в счетчик команд записывается адрес первой команды программы. УУ считывает из памяти содержимое ячейки памяти, адрес которой находится в счетчике команд, и помещает его в специальное устройство — «Регистр команд». УУ определяет операцию команды, «отмечает» в памяти данные, адреса которых указаны в команде, и контролирует выполнение команды. Операцию выполняет АЛУ или аппаратные средства компьютера.

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

Гарвардская архитектура

Рис.2 Схема ВМ по гарвардской архитектуре

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

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

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

4. История создания ОС

Первая операционная система

Первой операционной системой для компьютеров стала GM-НАА. Она была создана в 1955 году Робертом Патриком с General Motors и Оуэном Моком с North American Aviation. Она была основана на системных мониторах и работала исключительно на больших машинах. Основная функция GM-НАА – автоматическое выполнение новой программы, когда старая программа завершилась.

Операционные системы Мейнфреймов

Мейнфрейм – это высокопроизводительный компьютер, предназначенный для большой обработки данных и хранения большого количества данных, а также имеющий большой объем памяти. Первый мейнфрейм создала компания IBM в 1964 году, который получил название IBM System/360.

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

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

Пакетная обработка

Разделение времени и многозадачность

Разделение полномочий

Пакетная обработка

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

Разделение времени и многозадачность

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

операционные системы универсальных машин выполняют их в комплексе. Примером операционной системы универсальных машин может послужить OS/390, наследница OS/360. Однако эти операционные системы постепенно вытесняются вариантами операционной системы UNIX, например Linux.

Разделение полномочий

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

Эволюция операционных систем

Первый период (1945-1955)

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

Второй период (1955-1965)

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

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

Третий период (1965 - 1980)

Соседние файлы в предмете Современные операционные системы