Автор работы: Пользователь скрыл имя, 27 Января 2012 в 00:57, шпаргалка
Работа содержит ответы на вопросы по дисциплине "Программирование и компьютеры"
1.
Понятие ОС. Классификация
и архитектура
ОС. Архитектура ОС Linux.
Операционная система (ОС) - комплекс системных и управляющих программ, предназначенных для наиболее эффективного использования всех ресурсов вычислительной системы (ВС) (Вычислительная система - взаимосвязанная совокупность аппаратных средств вычислительной техники и программного обеспечения, предназначенная для обработки информации) и удобства работы с ней.
Назначение ОС - организация вычислительного процесса в вычислительной системе, рациональное распределение вычислительных ресурсов между отдельными решаемыми задачами; предоставление пользователям многочисленных сервисных средств, облегчающих процесс программирования и отладки задач. Операционная система исполняет роль своеобразного интерфейса ( Интерфейс - совокупность аппаратуры и программных средств, необходимых для подключения периферийных устройств к ПЭВМ) между пользователем и ВС, т.е. ОС предоставляет пользователю виртуальную ВС.
В соответствии с условиями применения различают три режима ОС: пакетной обработки, разделения времени и реального времени. В режиме пакетной обработки ОС последовательно выполняет собранные в пакет задания. В этом режиме пользователь не имеет контакта с ЭВМ, получая лишь результаты вычислений. В режиме разделения времени ОС одновременно выполняет несколько задач, допуская обращение каждого пользователя к ЭВМ. В режиме реального времени ОС обеспечивает управление объектами в соответствии с принимаемыми входными сигналами. Время отклика ЭВМ с ОС реального времени на возмущающее воздействие должно быть минимальным.
Классификация операционных систем
Операционные
системы различаются
Так, в зависимости от алгоритма управления процессором, операционные системы делятся на:
Однозадачные и многозадачные
Однопользовательские и многопользовательские
Однопроцессорные и многопроцессорные системы
Локальные и сетевые
По числу одновременно выполняемых задач операционные системы делятся на два класса:
Однозадачные (MS DOS)
Многозадачные (OS/2, Unix, Windows)
В однозадачных системах используются средства управления периферийными устройствами, средства управления файлами, средства общения с пользователями. Многозадачные ОС используют все средства, которые характерны для однозадачных, и, кроме того, управляют разделением совместно используемых ресурсов: процессор, ОЗУ, файлы и внешние устройства.
В зависимости от областей использования многозадачные ОС подразделяются на три типа:
Системы пакетной обработки (ОС ЕС)
Системы с разделением времени (Unix, Linux, Windows)
Системы реального времени (RT11)
Системы пакетной обработки предназначены для решения задач, которые не требуют быстрого получения результатов. Главной целью ОС пакетной обработки является максимальная пропускная способность или решение максимального числа задач в единицу времени.
Эти системы обеспечивают высокую производительность при обработке больших объемов информации, но снижают эффективность работы пользователя в интерактивном режиме.
В системах с разделением времени для выполнения каждой задачи выделяется небольшой промежуток времени, и ни одна задача не занимает процессор надолго. Если этот промежуток времени выбран минимальным, то создается видимость одновременного выполнения нескольких задач. Эти системы обладают меньшей пропускной способностью, но обеспечивают высокую эффективность работы пользователя в интерактивном режиме.
Системы реального времени применяются для управления технологическим процессом или техническим объектом, например, летательным объектом, станком и т.д.
По числу одновременно работающих пользователей на ЭВМ ОС разделяются на однопользовательские (MS DOS) и многопользовательские (Unix, Linux, Windows 95 - XP)
В многопользовательских ОС каждый пользователь настраивает для себя интерфейс пользователя, т.е. может создать собственные наборы ярлыков, группы программ, задать индивидуальную цветовую схему, переместить в удобное место панель задач и добавить в меню Пуск новые пункты.
В многопользовательских ОС существуют средства защиты информации каждого пользователя от несанкционированного доступа других пользователей.
Многопроцессорные
и однопроцессорные операционные системы.
Одним из важных свойств ОС является
наличие в ней средств
Одним из
важнейших признаков
В состав локальных ОС входит клиентская часть ПО для доступа к удаленным ресурсам и услугам. Сетевые ОС предназначены для управления ресурсами ПК включенных в сеть с целью совместного использования ресурсов. Они представляют мощные средства разграничения доступа к информации, ее целостности и другие возможности использования сетевых ресурсов.
По основному архитектурному принципу ОС разделяются на микроядерные и монолитные. В некоторой степени это разделение тоже условно, однако можно в качестве яркого примера микроядерной ОС привести ОСРВ QNX, тогда как в качестве монолитной можно назвать Windows 95/98 или ОС Linux. Ядро ОС Windows мы не можем изменить, нам не доступны его исходные коды и у нас нет программы для сборки (компиляции) этого ядра. А вот в случае с Linux мы можем сами собрать ядро, которое нам необходимо, включив в него те необходимые программные модули и драйверы, которые мы считаем целесообразным включить именно в ядро (а не обращаться к ним из ядра).
Архитектура ОС Linux (UNIX)
Можно выделить 2 основных объекта системы Unix с которыми приходится работать пользователю – это файлы и процессы. Они сильно связаны между собой. И организация работ с ними по сути определяет архитектуру ОС.
В общем виде архитектуру Unix можно представить как двухуровневую модель состоящую из пользовательской и системной части.
Ядро непосредственно взаимодействует с аппаратной частью компьютера, изолируя прикладные программы от особенности архитектуры. Свои услуги ядро предоставляет пользовательским программам посредством системных вызовов.
Таким образом, в системе можно выделить два уровня привилегий:
1) Пользовательский.
2) Системный.
Важной составной частью системных программ являются специальные процессы – «демоны», которые запускаются при инициализации системы, выполняют определенные задачи и не связаны конкретно ни с одним пользователем.
Демоны: HTTP, FTP, электронная почта и др.
Ядро Unix
Ядро – представляет собой монолитную структуру. Другими словами монолитное ядро – это ядро, скомпонованное как одна программа, использующая быстрые переходы с одной процедуры на другую и выполняющаяся в привилегированном режиме.
Можно выделить три основные подсистемы входящие в ядро:
- файловая
- подсистема управления процессами, потоками (нитями)
- управление памятью и в/в
Файловая подсистема обеспечивает унифицированный доступ к данным расположенным на различных типах носителей.
Особенностью ОС Unix является то что все объекты воспринимаются ОС как файлы, что позволяет использовать один и тот же набор системных вызовов (read, open, close) обращаться к совершенно различным устройствам (монитор, принтер, сеть, клавиатура) используя единый интерфейс.
Подсистема управления процессами (потоками) решает такие задачи как: создание процессов (потоков), их удаление, распределение ресурсов между процессами, планирование процессов, обеспечение межпроцессорного взаимодействия.
Подсистема управления памятью, в/в решает такие задачи как: распределение памяти для размещения процесса, обработка запросов файловой системы, подсистема управления процессами к периферийным устройствам, взаимодействие с другими устройствами.
Основной средой взаимодействия пользователей с Unix-системой можно считать командную оболочку Shell.
С каждым терминалом пользователя связана своя оболочка, которая выполняет следующие действия:
1) Анализ введенной команды
2) Выделение параметров команды
3) Если это встроенная в shell команда – она выполняется сразу (cat), если невстроенная, то осуществляется ее поиск (passed).
4) Создается
дочерний процесс, который
Командная оболочка содержит средства программирования, которые позволяют создавать простейшие программы, скрипты для решения задач ОС. Поддерживаются такие синтаксические конструкции как for, until, while, работа с переменными и параметрами.
С каждой оболочкой связаны переменные окружения – это системные переменные в которых хранится информация используемая оболочкой.
Для просмотра всего перечня переменных можно воспользоваться командой: set.
Наибольший интерес представляют переменные:
PATH – где хранятся имена директорий (пути в которых оболочка shell осуществляет поиск по умолчанию).
HOME – в этой переменной хранится имя домашнего каталога пользователя.
SHELL – имя командной оболочки запускаемой по умолчанию.
2. Процессы и потоки в ОС. Планирование процессов, дисциплины планирования. Планирование в ОС Linux.
Понятие процесса достаточно абстрактное и обычно рассматривается в двух аспектах: как носитель данных и как последовательность операций по их обработке. Неформально можно сказать, что это совокупность связанных между собой и образующих единое целое программных модулей и данных, требующих определенных вычислительных ресурсов для своей реализации.
В литературе иногда выделяют понятия как задача и процесс. Как правило, задача – характеристика некоторого программного приложения, процесс – некоторая системная программа.
Термин ресурс используется применительно к повторно используемым относительно стабильным объектам, которые запрашиваются и освобождаются процессами в период их активности.
Состояние процесса
Выделяют активные и пассивные процессы. Активные процессы могут участвовать в конкуренции за использование вычислительных ресурсов и в свою очередь могут находиться в следующих состояниях:
- выполнение, т.е. процесс в данный момент выполняется на ЦП.
- готовность к выполнению, т.е. процесс не ожидает никакого устройства в/в, либо какого-то события, а в очереди ожидании ЦП.
- блокировка, т.е процесс заблокирован, потому что ждет.
Из состояния выполнения процесс может перейти по одной из следующих причин:
- процесс завершился;
- процесс
переводится в состояние
- процесс
блокируется, либо в следствии
действия запроса операции в/в,
Информация о работе Шпаргалка по "Программированию и компьютерам"