Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
iCarnecie_SSD2_RU_v5 (2).docx
Скачиваний:
18
Добавлен:
23.12.2018
Размер:
6.54 Mб
Скачать

Модуль 3. Программное обеспечение операционных систем

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

Для чтения:

  • 3.1 Структура

  • 3.2 Управление устройствами и конфигурация

  • 3.3 Совместное использование ресурсов

  • 3.4 Файловая система

    1. Структура

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

Последовательность чтения:

 Parsons/Oja, Chapter 4-Section A. Комментарий: понять важность операционной системы в компьютере. Возможно, вас удивит то, сколько различных операционных систем существует помимо Windows. Windows существует в нескольких, постоянно обновляемых версиях. Детали функционирования операционной системы будут описаны в следующем модуле.

  • 3.1.1Уровни программного обеспечения . Цель изучения: Понимание важности концепции уровней программного обеспечения и того как формируется компьютерная система из программного обеспечения разных уровней.

  • 3.1.2 BIOS: Жизнь снизу. Цель изучения: Понимание того, что такое BIOS и как она обеспечивает связь между высокими уровнями операционной системы и аппаратным обеспечением.

  • Parsons/Oja, Chapter 3-Section D: Цель изучения: Знание инсталляции программного обеспечения и его модернизации (upgrade).

  • 3.1.3 Управление процессами . Цель изучения: Понимание ядра операционной системы и того как оно выполняет свою основную функцию — планирование задач. Эта функция определяет, какое следующее приложение или процесс должны использовать процессор.

3.1.4Лабораторная работа: Диспетчер задач. Комментарий: Лабораторная работа выполняется для просмотра списка процессов, выполняющихся в настоящий момент на компьютере.

3.1.1 Уровни программного обеспечения

  • Уровни и управление процессами

  • Инкапсуляция и абстрагирование(Encapsulation and Abstraction)

  • Уровни программного обеспечения (Layers of Software)

Уровни и управление процессами

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

Однако откуда же появились гренки? Их купили в булочной, где они были сделаны из муки, дрожжей и специй. Мука прибыла из мукомольни, в которой приобрели пшеницу и измельчили ее. Пшеница поступила от фермера, который посеял семена и, в конечном счете, собрал урожай пшеницы. Когда вы платите за ваш обед, вы оплачиваете (косвенно) около одной тысячной цента (предполагая, что вы оплачиваете в американской валюте) этому фермеру за пшеницу в ваших гренках. И, вы платите тысячам других людей, которые обеспечивали ваш обед различными способами. К счастью, вам не платите всем этим людям непосредственно! Вы платите только «за обед», а детали отсортировываются на нижних уровнях.

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

Инкапсуляция и абстрагирование.

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

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

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

Однако если бы слои были полностью скрыты, то невозможно было бы связаться со слоями программного обеспечения, находящимися выше и ниже. Для того, чтобы обмениваться некоторой, не слишком большой информацией, проектировщик слоя конкретизирует абстракцию (abstraction) , поддерживаемую им. Пекарня поддерживает абстракцию, называемую "заказ гренок", посредством чего клиент может заказать X фунтов гренок, на что пекарни ответят производством гренок и их поставкой. Заказчик не видит, что происходит внутри пекарни. Например, пекарня может иметь большую и маленькую печи, и менеджер должен решить какую использовать для выполнения заказа. Иногда, возможно, имеет смысл, испечь два маленьких пакета гренок вместо одного большого. Иногда одна или другая печь выключается для текущего ремонта. Эти детали скрыты от клиента, что в терминологии информатики означает, что скрыта (encapsulated) информация. К тому же, даже если клиент, так или иначе, знал, что были две духовки, нельзя определить, какая духовка использовалась при выполнении заказа, так как на бланке заказов не предусмотрена запись этой информации. В терминах вычислительной техники, мы говорим, что абстракция заказа гренок не поддерживает выбор духовки.

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

Слои программного обеспечения (Layers of Software)

Давайте рассмотрим слои программного обеспечения, из которых состоит компьютер:

Скрипты или макросы, написанные пользователем (User-Written Scripts or Macros)

Интерфейс пользователя (User Interface)

Приложение (Application)

Библиотека времени выполнения (Run-time Library)

Интерфейс программы-приложения (Application Program Interface)

Операционная система (Operating System)

Ядро (Kernel)

Драйверы устройств (Device Drivers)

BIOS

Аппаратное обеспечение (Hardware)

Таблица 1 Слои программного обеспечения

Рассмотрим слои от нижнего к верхнему:

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

  • BIOS или Базовая система ввода/вывода, — самый основной слой программного обеспечения. Он имеет дело непосредственно с сигналами, которые управляют аппаратными компонентами. Многое из его работы выполняется при включении компьютера.

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

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

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

Интерфейс прикладной программы, или API (application program interface), — уровень, где пользовательские программы (приложения) связываются с операционной системой. Например, предположим, что приложение веб-навигатор решает, что требуется больше памяти для отображения большого файла с изображением. Операционная система ответственна за хранение информации о программах, использующих части памяти в любое время. Эта информация скрыта в пределах операционной системы; приложение не знает ничего о том, как организована информация в памяти, так как в этом нет необходимости. Операционная система определяет абстракцию для управления памятью, называемую вызов API (API call). Всем разработчикам приложений нужно знать — какой интерфейс использовать для того, чтобы потребовать больше оперативной памяти. Если новая версия операционной системы поддерживает использование различных способов организации памяти, прикладная программа будет продолжать работать также хорошо, пока вызов API остается тем же.

Библиотека времени выполнения (библиотека программ этапа исполнения ) — коллекция подпрограмм, от которых зависят прикладные программы. Например, если вы пишите приложение на языке C для открытия файла и чтения данных из него, вы будете использовать две стандартных функции называемых fopen и fscanf. Эти функции выбираются из библиотеки подпрограмм ввода/вывода (I/O), называемой stdio, которую может использовать любая программа на C. Они выполняют соответствующий вызов API, чтобы операционная система делала то, что вам нужно. Абстракция Stdio означает, что ваша программа не зависит от набора вызовов API , поэтому вы можете выполнять ее на любой машине, которая имеет компилятор C и реализацию C-библиотеки. Большинство программ используют во время работы подпрограммы из нескольких библиотек.

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

 Уровень интерфейса пользователя ответственен за коммуникацию между приложением и пользователем. Это обычно GUI (graphical user interface -графический интерфейс пользователя), составленный из кнопок и всплывающих меню. Предположим, пользователь хочет, чтобы приложение открыло файл. Для этого требуется диалог, который обрабатывается GUI. Сначала, в меню Файл, пользователь нажимает Открыть.... Появляется диалоговое окно Открыть и предлагает пользователю выбрать файл. Как только пользователь выбрал файл, GUI передает запрос и имя файла в приложение, которое открывает и обрабатывает его.

 Скрипты (scripts) или макросы (macros) — подпрограммы, которые многие приложения позволяют создавать пользователям из наборы встроенных команд. Скрипты и макросы позволяют пользователям автоматизировать последовательность часто выполняемых действий. Например, макрос Microsoft Excel может открыть файл, копировать группу чисел из файла в электронную таблицу, выполнить вычисления с ними и записать результаты в другой файл. Если эти вычисления требуются каждый день, то, возможно, было бы полезно собрать вычисления в сценарий, который можно выполнить нажатием нескольких клавиш. Таким образом, пользователь может забыть о деталях. Скрипты размещаются выше уровня приложений в иерархии программного обеспечения, потому что они формируются на уровне команд приложений.

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

1 Гренки — слегка поджаренные кусочки хлеба, популярные в салатах в U.S., где салат обычно состоит из листьев салата, кусочков помидоров (или очень маленьких вишнеобразных помидоров), и иногда из кусочков других овощей — огурцов или зеленого перца. Гренки кладутся сверху.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]